非对称加密
非对称加密, 也称作公开密钥加密. 是密码学的一种算法. 它需要两个密钥.
其中公钥用来对数据进行加密, 私钥用来解密. 使用其中一个密码加密后所得的密文,
只有用相对应的另一个密钥才能解密. 加密和解密用的是两个不同的密钥, 因此被称作非对称加密.
加密过程
让我们使用典型的爱丽丝与鲍伯假设来解释:
- 爱丽丝与鲍伯事先互不认识,也没有可靠安全的沟通渠道,但爱丽丝现在却要通过不安全的互联网向鲍伯发送信息
- 爱丽丝撰写好原文,原文在未加密的状态下称之为明文 x .
- 鲍伯使用密码学安全伪随机数生成器产生一对密钥,其中一个作为公钥为 c,另一个作为私钥 d.> >
- 鲍伯可以用任何方法发送公钥 c 给爱丽丝,即使伊夫在中间窃听到 c 也没问题.
- 爱丽丝用公钥 c 把明文 x 进行加密,得到密文 c(x).
- 爱丽丝可以用任何方法传输密文 c(x) 给鲍伯,即使伊夫在中间窃听到密文 c(x) 也没问题.
- 鲍伯收到密文,用私钥 d 对密文进行解密 d(c(x)),得到爱丽丝撰写的明文 x.
- 由于伊夫没有得到鲍伯的私钥 d,所以无法得知明文 x
- 如果爱丽丝丢失了她自己撰写的原文 x,在没有得到鲍伯的私钥 d 的情况下,她的处境将等同伊夫,即无法通过鲍伯的公钥 c 和密文 c(x) 重新得到原文x.
数字签名
如果某一用户使用他的私钥加密明文,任何人都可以用该用户的公钥解密密文;
由于私钥只由该用户自己持有,故可以肯定该文件必定出自于该用户.
公众可以验证该用户发布的数据或文件是否完整、中途有否曾被篡改,
接收者可信赖这条信息确实来自于该用户,该用户亦无法抵赖,这被称作数字签名.
大部分国家已经立法承认数字签名拥有等同传统亲笔签名的法律效力。
公钥可以通过数字证书认证机构签授的电子证书形式公布,
接收者通过信任链形成一套完整的公开密钥基础建设。
例如,从网上下载的安装程序,一般都带有程序制作者的数字签名,
可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。
对称加密
对称加密的加密过程和解密过程使用同样或者是经过简单推导即可得出的密钥.
它需要作者和读者在通信之前先通过另一个安全的渠道交换共用的密钥,才可以安全地把密文通过不安全的渠道发送.
对称密钥一旦被窃,其所作的加密将即时失效.
而在互联网,如果通信双方分隔异地而素未谋面,则对称加密事先所需要的“安全渠道”变得不可行.
非对称加密则容许加密公钥随便散布,解密的私钥不发往任何用户,只在单方保管;
如此,即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,极为适合在互联网上使用。