非对称加密解密的理解

Posted by 土猪 on December 5, 2017

最近公司里有一个项目,要求我们跟交易所之间实现非对称的加密解密过程传输数据,这里头会用到私钥,公钥,证书等概念,虽然以前听说过,但是还是比较模糊,于是上网学习了很久,总算头脑清晰了许多。现在,我希望把这个复杂的事情尽可能用三言两语讲清楚。

举个例子,小明要传一封求爱信给小美,他希望:

  1. 这封信不要被别人看见;
  2. 希望小美知道是他发的信;
  3. 希望信件在传输过程中没有被别人篡改过。

小明自己有私钥,他把公钥给了包括小美在内的朋友们,小美也有自己的公钥和私钥,小美的公钥也在包括小明的朋友的手中。小明传输求爱信过程如下:

  1. 他用小美的公钥对信加密;
  2. 小明把加密后的信hash一下,然后用自己的私钥签名;
  3. 邮件转到了小美手里,小美用自己的私钥对信件解密,得到原始信件;她又用小明的公钥解密,得到hash后的哈希值,她把原始信件再同样hash一下,得到哈希值跟收到的一致,说明 没有人中途改动过。

那么证书有什么存在的必要呢?因为有可能发生这样的事情,小明的损友小赵,趁小明不注意,动用了小明的电脑,把小美的公钥换成了自己的公钥。这样,小明还蒙在鼓里呢,继续用“小美”的公钥给小美发肉麻的恋爱信,这样,小美收不到了,全被小赵收去了,当众读了出来,小明恨不得找个地洞钻进去。

小明跟小美私下里的时候,小明让小美去把公钥去一个公证处(certificate authority,简称CA)做公证。证书中心用自己的私钥,对小美的公钥和一些相关信息一起加密,生成”数字证书”(Digital Certificate)。于是小明以后给小美发信,就用公证处的公钥,去打开这个数字证书,获取小美的公钥,然后用小美公钥加密,再也不用担心被人窃取了。

这是两个重要的链接,一个图文并茂解释公钥,私钥,证书的概念,另一个告诉我们,如何用openssl这个工具生成公钥,私钥,和自签名的证书:

http://www.youdzone.com/signature.html

https://www.zybuluo.com/muyanfeixiang/note/392079

更多区块链文章:


支付宝打赏

您的打赏是对我最大的鼓励!