文档章节

非对称加密算法(转)

hefeiuu
 hefeiuu
发布于 2017/05/04 20:27
字数 2236
阅读 69
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

和对称加密算法一样,非对称加密算法也提供两个函数:消息加密和消息解密,但该算法较对 称加密算法有两个重要的区别。首先,用于消息解密的密钥值与用于消息加密的密钥值不同;其次,非对称加密算法比对称加密算法慢数千倍,但在保护通信安全方 面,非对称加密算法却具有对称密码难以企及的优势。  
为说明这种优势,来回顾一下前面使用对称加密算法的例子。Alice使用密钥K加密消 息并将其发送给Bob,Bob收到加密的消息后,使用密钥K对其解密以恢复原始消息。这里存在一个问题,即Alice如何将用于加密消息的密钥值发送给 Bob?答案是,Alice发送密钥值给Bob时必须通过独立的安全通信信道(即没人能监听到该信道中的通信)。
这种使用独立安全信道来交换对称 加密算法密钥的需求会带来更多问题。首先,如果有独立的安全信道,为什么不直接用它发送原始消息?答案通常是安全信道的带宽有限,如安全电话线或可信的送 信人。其次,Alice和Bob能假定他们的密钥值可以保持多久而不泄露(即不被其他人知道)以及他们应在何时交换新的密钥值?对这两个问题的回答属于密 钥管理的范畴。
密钥管理是使用加密算法时最棘手的问题,它不仅涉及如何将密钥值安全地分发给所有通信方,还涉及密钥的生命周期管理、密钥被破解时 应采取什么措施等问题。Alice和Bob的密钥管理需求可能并不复杂,他们可以通过电话(如果确定没人监听)或通过挂号信来交换密码。但如果Alice 不仅需要与Bob安全通信,还需要与许多其他人安全通信,那么她就需要与每个人交换密钥(通过可靠的电话或挂号信),并管理这一系列密钥,包括记住何时交 换新密钥、如何处理密钥泄漏和密钥不匹配(由于使用的密钥不正确,接收方无法解密消息)
等。当然,这些问题不只Alice会遇到,Bob和其他每个人都会遇到,他们都需要交换密钥并处理这些令人头痛的密钥管理问题(事实上,X9.17是一项DES密钥管理ANSI标准[ANSIX9.17])。
如果Alice要给数百人发送消息,那么事情将更麻烦,她必须使用不同的密钥值来加密每条消息。例如,要给200个人发送通知,Alice需要加密消息200次,对每个接收方加密一次消息。显然,在这种情况下,使用对称加密算法来进行安全通信的开销相当大。
非 对称加密算法的主要优势是使用两个而不是一个密钥值:一个密钥值用来加密消息,另一个密钥值用来解密消息。这两个密钥值在同一个过程中生成,称为密钥对。 用来加密消息的密钥称为公钥,用来解密消息的密钥称为私钥。用公钥加密的消息只能用与之对应的私钥来解密,私钥除了持有者外无人知道,而公钥却可通过非安 全管道来发送或在目录中发布。
仍用前面的例子来说明如何使用非对称加密算法来交换消息,Alice需要通过电子邮件给Bob发送一个机密文档。首 先,Bob使用电子邮件将自己的公钥发送给Alice。然后Alice用Bob的公钥对文档加密并通过电子邮件将加密消息发送给Bob。由于任何用Bob 的公钥加密的消息只能用Bob的私钥解密,因此即使窥探者知道Bob的公钥,消息也仍是安全的。Bob在收到加密消息后,用自己的私钥进行解密从而恢复原 始文档。
图2ˉ2说明了分别使用公钥和私钥来加密和解密消息的过程。


图2ˉ2 使用非对称加密算法的加密
如果Bob需要将编辑后的文档发回给Alice,他可以让Alice先将其公钥发送给他,然后
再用该公钥对编辑后的文档加密,并通过电子邮件将加密的文档发回给Alice。由于只有Ali
ce的私钥能解密该消息,并且只有Alice才有该私钥,因此消息是安全的,不能被其他人窥探
。如图2ˉ3所示。

图2ˉ3 Bob的公钥不能解密使用它加密的消息
注 意,非对称加密算法和对称加密算法之间有一个重要的差别:Alice和Bob不需要使用独立的安全管道交换用于加密消息的密钥值,从而解决了对称加密算法 中一个重要的密钥管理问题:如何将密钥值告诉对方。在非对称加密算法中,用于加密消息的密钥值是对所有人公开的。这还解决了对称密钥管理中另一个令人头疼 的问题:必须与每个通信方交换密钥值。在非对称加密算法中,任何需要给Alice发送安全消息的人都可以使用Alice的公钥。
回想一下,非对称 加密算法和对称加密算法之间的一个差别是,非对称加密算法的速度慢得多,比对称加密算法慢数千倍[WeiDai02]。在实际应用中,这种问题可以通过如 下方式解决:用非对称加密算法来传送临时对称密钥值,然后使用对称加密算法和该临时密钥来加密消息。这种对称密钥之所以是临时的(只持续一段时间),是因 为它只使用一次,而不像传统的对称密钥机制要求的那样持续可用或可重复使用。再回到前面的例子,Alice通过电子邮件给Bob发送机密文档。Alice 首先需要生成一个临时密钥值,用于使用对称加密算法加密
文档。然后创建另一条消息,即用Bob的公钥加密该临时密钥值,再将这两条消息都发送给Bob。收到消息后,Bob首先用自己的私钥解密出临时密钥值,再使用该临时密钥值(使用对称加密算法)来解密密文文档以恢复原始文档。
图2ˉ4给出了如何结合使用非对称加密算法和对称加密算法。

图2ˉ4 结合使用非对称加密算法和对称加密算法
非 对称加密算法的例子有RSA、Elgamal和ECC(椭圆曲线加密算法)。RSA是目前最常用 的算法。Elgamal是另一种常用的非对称加密算法,由Taher Elgamal于1985年发明,其基础 是DiffieˉHellman密钥交换算法,后者使通信双方能通过公开通信来推导出只有他们知道的 秘密密钥值[DiffieˉHellman]。    
DiffieˉHellman是Whitfield Diffie和Martin Hellman于1976年发明的,被视为第一种 非对称加密算法,尽管非对称加密算法的概念于6年前就已在英国提出了。DiffieˉHellman 与RSA的不同之处在于,DiffieˉHellman不是加密算法,它只是生成可用作对称密钥的秘密 数值。在DiffieˉHellman密钥交换过程中,发送方和接收方分别生成一个秘密的随机数,并 根据随机数推导出公开值,然后,双方再交换公开值。DiffieˉHellman算法的基础是具备生 成共享密钥的能力。只要交换了公开值,双方就能使用自己的私有数和对方的公开值来生成 对称密钥,称为共享密钥,对双方来说,该对称密钥是相同的,可以用于使用对称加密算法 加密数据。与RSA相比,DiffieˉHellman的优势之一是每次交换密钥时都使用一组新值,而 使用RSA算法时,如果攻击者获得了私钥,那么他不仅能解密之前截获的消息,还能解密之后 的所有消息。然而,RSA可以通过认证(如使用X.509数字证书)来防止中间人攻击,但Diff ieˉHellman在应对中间人攻击时非常脆弱。
hefeiuu
粉丝 3
博文 64
码字总数 0
作品 0
合肥
私信 提问
加载中
请先登录后再评论。
密码学入门科普

一、对称加密和非对称加密入门 1. 如何不被窃听 —— 加密 这种加密方案在密码学里称为对称密码,加密方和解密方使用的是相同的密钥。 知名的密码算法有 AES(2001)、Blowfish(1993)、DES...

盼望明天
2018/09/17
174
0
转:常用加密算法比较

http://blog.csdn.net/jiht594/article/details/6954155 对称加密算法(加解密密钥相同) 名称 密钥长度 运算速度 安全性 资源消耗 DES 56位 较快 低 中 3DES 112位或168位 慢 中 高 AES 128、...

BIBD
2013/09/23
157
0
接口请求 URL转码

什么是URL转码 不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。 尤其是当传递的url是经过B...

osc_ugxmmsvy
2019/06/24
2
0

简介 功能依赖 生成RSA秘钥 私钥操作 PEM操作 RSA加解密 编码算法 RSA加解密示例 下期预告 简介 加解密现状,编写此项目的背景: 需要考虑系统环境兼容性问题(Linux、Windows) 语言互通问题...

osc_wfhwwd4t
06/13
0
0
HTTPS加密原理(转)

Header HTTP、HTTPS在我们日常开发中是经常会接触到的。 我们也都知道,一般 Android 应用开发,在请求 API 网络接口的时候,很多使用的都是 HTTP 协议;使用浏览器打开网页,也是利用 HTTP...

osc_mt5p9sib
2018/08/15
2
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP解析/语法错误; 以及如何解决它们? - PHP parse/syntax errors; and how to solve them?

问题: Everyone runs into syntax errors. 每个人都遇到语法错误。 Even experienced programmers make typos. 即使是经验丰富的程序员也会打错字。 For newcomers, it's just part of the......

fyin1314
今天
20
0
OSChina 周三乱弹 —— 公主是大王的,命是自己的。小怪也要养家糊口啊!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :郭燕的单曲《下半生》 最近听一些轻快的歌 #今日歌曲推荐# 《下半生》 - 郭燕 手机党少年们想听歌,请使劲儿戳(这里) @锦年 :...

小小编辑
今天
38
0
未捕获ReferenceError:未定义$? - Uncaught ReferenceError: $ is not defined?

问题: How come this code throws an 此代码如何引发 Uncaught ReferenceError: $ is not defined 未捕获的ReferenceError:未定义$ when it was OK before? 以前什么时候可以? $(document......

javail
今天
12
0
263. Ugly Number

题目: 263. Ugly Number 题目地址:https://leetcode.com/problems/ugly-number/ Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers......

JiaMing
今天
68
0
HCIA_ARP01

ARP(地址解析协议) eNSP 常用路由器:AR2220 常用交换机:S5700、S3700 常用终端:PC、MCS(主播服务器) 设备连线:Copper(以太网用到的双绞线)、Serial(串口线,2SA接口)、Auto(自动连...

创业789
今天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部