共钥和私钥:
共钥相当于一个保险箱,
私钥相当于打开该保险箱的钥匙。
只有私钥可以解密共钥加密的文件,
否则没有任何人能知道文件的内容。
1
A向B发送一个文件X,
首先A将文件X用保险箱装起来,即用自己的共钥加密X。然后发送给B,但是B需要A的私钥才能解开,所以文件X传递之前,两人必须交换自己的私钥,或者拿到对方的保险箱(共钥)。
2
需要交换私钥吗?只要私钥传递,就有被中间人拦截的风险,他可以用私钥尝试破解链路上传递的任何数据包(由于通信是相互的,所以肯定能得到一个私钥对应的数据包并破解),因此私钥是绝对保密的,只能放在本地存储。我们在链路上传递的,只能是共钥,即把保险箱发送给对方。
3
A拿到B的保险箱后,将文件X用B的保险箱加密,放到链路上传输。B拿到文件X用自己的私钥解密,即可看到A的文件。
4
根据上述理解,就可以用很规范的词汇来重现这一过程:A用B的共钥加密要发送的文件X,X在链路上传输即使被拦截也没有破解的可能,因为只有B在本地存储了自己的私钥。X发送到B后,B用自己的私钥解开文件X。如果B要发送另一个文件Y给B,和上述是类似的过程。