系统学习区块链比特币的密码学基础:非对称加密

Posted 不投资毋宁死

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统学习区块链比特币的密码学基础:非对称加密相关的知识,希望对你有一定的参考价值。

上一篇我们学习了哈希,这一篇我们学习密码学的另一个概念:非对称加密。


这个词大家可能没怎么听过,但“公钥”和“私钥”这两个词想必大家不陌生。其实,“公钥”和“私钥”就是非对称加密里的概念。 非对称加密这名字有点奇怪,加密就加密,还来个什么“非对称”,难不成还有个对称加密?还真聪明,你!没错,其实最早最原始的加密方法就是对称加密,那会还没发展出非对称加密,所以它就叫加密,后来,非对称加密发明出来了,大家为了区分,才分别称之为“对称加密”和“非对称加密”。  


我们先来看看什么是对称加密。


小明和小花是班上的一对恋人,上课的时候,经常按耐不住想要写几句情话,传个纸条给对方。可是他们的座位并不挨着,中间还坐着个小光。还好,小光同学乐于助人,急人所急,经常帮他俩传不言累。但是,小光同学好奇心实在太重了,经常偷看纸条的内容。小明和小花一想到赤裸裸的情话被第三者看到,就脸红脖子粗,决定想个办法。他们想到的办法就是加密。


有一天下课,小明跟小花说:“以后咱们把要写的字在新华字典上找出来,然后再往后数,找到第20个字来代替要写的字,比如在新华字典,‘我’字后面第20个字是‘於’,那以后写到‘我’的地方就用‘於’,以此类推,‘我爱你’就是‘於盦廿’,同样,拿到纸条后,只要在新华字典查到对应的字,然后倒数到第20个就能还原本来的内容了。这样,即使小光偷看内容,也不知道是啥意思啦。哈哈哈哈!” 小明的办法就是对称加密,“20”就是密钥,明文是“我爱你”,密文是“於盦廿”。顾名思义,所谓对称加密就是明文可以根据密钥加密成密文,密文可以通过同一个密钥来解密出明文。注意,关键词是“同一个密钥”。 


那么,非对称加密呢?我们继续看小明和小花的故事。 


小明和小花依计而行,小光同学依然会偷偷看,不过看得是一脸懵逼。小明和小花看着他那表情,暗自得意。不过他们也知道,如果长期用同一个密钥的话,不保险。所以两人每过一段时间,就凑在一起,协商一个新的密钥。但奇怪的是,有一次两人刚换完密钥,但小光同学看完之后,似笑非笑,一脸猥琐地朝他们挤眉弄眼,不像是看不懂啊。后来终于知道是怎么回事了,原来那天小明告诉小花密钥的时候,被小光偷听到了。。。


小明同学只好再次拿起《密码学原理》,苦心钻研,功夫不负有心人。小明终于找到了完美解决密钥被偷听的办法:非对称加密。关键时刻还是要读书啊! 非对称加密咋这么牛逼呢?老规矩,在最小知识集原则下,边看特征边聊应用: 



2、公钥是通过私钥算出来的,而私钥无法通过公钥算出。  这就是解决小明问题的关键。小明和小花各生成一对公钥/私钥,然后他们完全可以通过小光用传字条的方式,把自己的公钥告诉对方。因为公钥本来就是公开的,让小光知道也无妨。这样,小明和小花以后就不要专门凑在一起来协商密钥了。这个场景可能还不能完全显示公钥/私钥的价值。我们可以想想,现实中需要加密通信的双方通常天各一方,而且很可能互不相识,这时候,你让他们去见面协查一个密钥,几乎不可能。 


3、如果明文用公钥加密,那么密文只有私钥才能解密。 现在小明和小花相互知道了对方的公钥。于是,小明发给小花的信息,就用小花的公钥加密,小花收到后,再用自己的私钥解密;同样,小花给小明写纸条,用小明的公钥解密,小明拿到后用自己的私钥解密。从此,小明和小花再也不担心小光的偷看了,那个畅快! 我们用最常用的非对称加密算法RSA(比特币用的非对称加密算法叫ECC,椭圆曲线加密,算法不同,套路一样)来加密“我爱你”试试。 首先,先生成一个私钥/公钥对,有很多网站可以做这事。生成如下(太长了,截图展示): 


                      私钥 


                       公钥 

【系统学习区块链】比特币的密码学基础:非对称加密


然后,用公钥加密“我爱你”,如图: 


【系统学习区块链】比特币的密码学基础:非对称加密


 加密出来的密文就是橙色框框里那一串。


 4、用私钥解密密文,如图: 



出来的果然是“我爱你”。哈哈,惊不惊喜,意不意外? 


5、如果明文用私钥加密,那么密文只有公钥才能解密。 这个有什么用呢?我们下篇再聊。



不投资毋宁死

自由,就是拥有选择的权利,而每一次选择都是一次投资。



谢谢阅读

评论功能现已开启,灰常接受一切形式的吐槽和赞美☺

以上是关于系统学习区块链比特币的密码学基础:非对称加密的主要内容,如果未能解决你的问题,请参考以下文章

非对称加密与区块链钱包

初步理解哈希算法以及非对称加密

理解区块链的“非对称加密”

比特币所有权及隐私问题-非对称加密应用

区块链百科|如何理解非对称加密?

第五节:比特币非对称加密-公钥与私钥小时候