非对称加密中公钥、私钥的理解

个人理解:

A想从B那里拿到消息,B想给A发送消息,这个过程需要加密,

这个时候A提供一个空箱子和一把打开的锁给B,A有这个锁的钥匙

B把消息放进箱子里,用A给的锁把箱子锁上,连同箱子和锁都给A

这个过程: 锁就是公钥,钥匙就是私钥,箱子里装的就是报文

公钥:所有人都可以得到的密钥。比如说:A的公钥,A、B、C都可以得到并使用。同理:B的公钥,A、B、C都可以得到并使用。C的公钥,A、B、C都可以得到并使用。
私钥:只用自己才能用的密钥。比如说:A的私钥只有A自己才能得到并使用,B和C不可能得到,除非A自己泄露给B和C。同理:B的私钥只有B自己才能得到并使用,A和C不可能得到。C的私钥只有C自己才能得到并使用,A和B不可能得到

A–>B
A发送报文给B
A需要用B的公钥加密报文,因为只有B才拥有自己的私钥,所以只有B才能用自己的私钥解密报文,查看报文内容。
在A发送报文的同时,A要在报文末尾加上自己的数字签名以证明这篇报文是我A写的。因于数字签名只是用来查看到底是谁写的这封报文,所以不需要很高的保密性,所以A只需要用自己的私钥加密自己的数字签名,这样就具有不可抵赖性了(A就不能辩解这封报文不是他写的了)。而所有人包括B都可以用A的公钥来解密这封报文里面的数字签名,这样就能够明白这封报文是A写的。

总的来说,公钥加密需要传送的报文,报文只想给特定的人看到,所以只有拥有对应的私钥的特定的那个人才能解密这个报文,
所以只有对应私钥持有人才能看到报文的内容。
而随报文一起传递的还有数字签名,数字签名是用来验证这封报文是谁写的,使其具有不可抵赖性,所以数字签名需要用发送报文人的私钥加密,而所有人都可以用他的公钥来解密这个数字签名,证明这封报文是这个人写的,这个人不能抵赖他没发过这篇报文。
————————————————
版权声明:本文为CSDN博主「余殇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuzijm/article/details/99626739

原文地址:https://www.cnblogs.com/lqmblog/p/14709543.html