标签:
一、概述
非对称加密算法,秘钥都是成对的,公钥(公开的,网络上都可以看到),私钥(私钥的,只有自己知道)。每个server都由一对秘钥
公钥加密,用私钥(秘钥对)解密:
私钥加密,用公钥(秘钥对)解密:
应用在不同场景
二、
Alice想发email给Bob。网络上存在第三方Eve
Alice 发email 数据分为两块:一部分是数据本身也就是email本身,另一部分是用Alice自己私钥加密的特征值
Eve截获到Alice发的数据,它又两种操作
仅仅篡改了数据本身,再发给Bob。Bob获取到数据后,用Alice的公钥进行解密特征值。能解密(因为Eve没有篡改,并且是用Alice公钥加密的),说明这段数据确实是由Alice发送的。当Bob解密,获得特征值。再把数据本身加密后与特征值比较,发现不一致,说明,数据本身已经被修改了。
篡改数据,同时篡改特征值。Eve获取到Email后,用Alice的公钥解密(肯定能解密,因为是用Alice私钥加密的),再篡改数据,并重新生成特征值。但此时问题来了,Eve再也无法用Alice的私钥加密这段特征值了(因为Alice的私钥只有Alice自己知道),所以Eve将就要自己的私钥加密。再发给Bob。当Bob获取到Email后,他尝试用Alice的公钥进行解密,但此时是无法解密的,因为这段是用Eve的私钥进行加密的,所以Bob立马就知道,这段数据不是Alice发送的了。
但是问题来了,Bob是如何获取Alice的公钥,Bob获取的Alice的公钥就是正确的嘛?
标签:
原文地址:http://my.oschina.net/u/204498/blog/526365