双向非对称加密如何工作?

Amy*_*Amy 6 public-key-encryption

说我们有爱丽丝和鲍勃.

Alice向Bob发送了一条她用Bob的公钥加密的消息.Bob是唯一可以使用他的私钥解密它的人.但他怎么能确定消息来自爱丽丝?

假设他回复,使用Alice的公钥加密他的消息.只有Alice可以解密该消息.但她怎么能确定它是由鲍勃发送的?

爱丽丝是否必须在她的消息中添加某种公共哈希,以便鲍勃可以说"这绝对来自爱丽丝?"

Dav*_*ter 9

您描述的场景确实无法提供真实性.所以爱丽丝和鲍勃都不能确定他们是在互相交谈.该方案仅提供机密性,因此也不保密.

Bob必须与Alice手动确认他认为公钥是Alice的公钥确实是她的(通过打电话给她并读出它并通过她的声音确认它是Alice).

此问题通常通过可信第三方(例如证书颁发机构,如VeriSign)解决,该第三方发布证明例如Alice确实是该特定公钥的所有者的证书.这是在现代浏览器中解决的方式,这是所有SSL会话(与您选择的银行)一起工作的方式.证书颁发机构从您的银行签署证书(说明您的银行确实是证书所包含的公钥的所有者),并且您的浏览器具有来自证书颁发机构的已内置证书(构建可以验证的证书链) ).

您描述的场景容易受到所谓的MITM(中间人)攻击,并且不能完全用公钥加密解决.


小智 5

Bob也有Alice的公钥,Alice用她的私钥签名.Bob使用Alice的公钥来验证签名.

为了确保消息来自Bob,请反向执行Alice.

你现在要做的就是确保Bob拥有Alice真正的公钥而不是中间人注入的公钥.