区块链的故事-9-RSA算法
达菲和赫尔曼完美地解决了密钥分发的问题。从此,交换钥匙就非常简单了。艾丽丝和鲍勃可以通过村头的扬声器交换钥匙。但加密方式还是对称加密。
DH协议虽然方便交换密钥,但还是存在一些不尽如人意的麻烦。Alice仍然需要对Bob大喊很长时间才能生成密钥。爱丽丝要交换钥匙的时候,如果鲍勃在睡觉,爱丽丝的情书就发不出去了。
在他们的论文中,Duffy和Herman指出了未来加密方法的方向。最终的解决方案是通过单向函数设计非对称加密。所谓非对称加密,就是一把钥匙用来上锁,另一把钥匙用来开锁。这两把钥匙不一样。锁着的钥匙是不能解锁的。这把锁的钥匙打不开。
麻省理工学院的三位科学家罗恩·里维斯特、阿迪·萨莫尔和伦纳德·阿德曼读了达菲和赫曼的论文,深感兴趣并开始研究。达菲和赫尔曼未能解决的算法,就诞生于他们三人之手。
2002年,这三位大师因为RSA的发明获得了图灵奖。但不要以为RSA就是他们的全部。这三位都是真正的大师,他们每个人都有着丰硕的学术生涯。让我们抬头一探大师们的高度。
利文斯通还发明了RC2、RC4、RC5和RC6算法,以及著名的MD2、MD3、MD4和MD5算法。他还写过一本叫《算法导论》的书,里面程序员磨坏了无数脑细胞。
萨莫尔发明了格非-菲亚特-沙米尔认证协议,还发现了差分密码分析。
阿德曼更是传奇。他首创了DNA计算理论,用DNA计算机解决了“旅行推销员”问题。他的学生科恩发明了计算机病毒,所以他是计算机病毒的鼻祖。他还是艾滋病免疫学方面的大师级专家,在数学、计算机科学、分子生物学、艾滋病研究等方面做出了突出贡献。
从65438到0976,三个人都在麻省理工学院计算机科学实验室工作,他们的团队非常完美。利文斯通和萨莫尔是计算机科学家,他们不断提出新的想法,而阿德曼是一个极其聪明的数学家,总是能挑利文斯通和萨莫尔的毛病。
一年后,1977,一次聚会后,利文斯通躺在沙发上醒酒。他翻来覆去睡不着。在半睡半醒之间,突然一道闪电劈在他的大脑里,他找到了一个办法。他写了一整夜的论文。第二天早上,他把论文交给了阿德曼,阿德曼这次找不出任何错误。
以论文的名义,这三位先生真的很谦虚。利文斯通把它命名为Adleman-Rivest-Shamir,而伟大的Aderman要求去掉他的名字,因为这是利文斯通的一项发明。最终争议的结果是Aderman排在第三,所以这个算法就成了RSA。
RSA算法是基于一个非常简单的数论事实:两个大素数相乘是非常容易的,但是对它们的乘积进行因式分解却是极其困难的,所以乘积可以公开,作为加密密钥使用。
比如选择两个素数,一个是17159,一个是10247,那么两个数的乘积就是175828273。乘积175828273是加密的公钥,(17159,10247)是解密的私钥。
公钥175828273每个人都可以得到,但是要破解密文,把175828273分解成17159和10247是非常困难的。
当RSA在1977年发表时,数学家和科普作家马丁·加德纳在《科学美国人》杂志上发表了一个公钥:
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 842 935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543 541?
马丁向破解这一公开密钥的读者提供奖励。经过17年的漫长岁月,1994年4月26日,一群600的粉丝声称找到了私钥。私钥是:
电话:3490529510847650949147849619903898133417764638493384390820577
问:32 769 132 993 266 709 549 96190 834 4613 177 642 967 992 942 539 798 288 533
这次破解,耗时17年,只针对129位公钥。如今,RSA已经使用了2048位公钥,这几乎要耗费全世界计算机的计算能力,需要数十亿年才能破解。
RSA的安全性依赖于大数的分解,但其破解难度是否等于大数的分解还没有得到理论上的证明,因为还没有证明大数的分解是破解RSA的必要条件。
RSA仍然有它的弱点。RSA因为计算的是大数,所以无论是软件还是硬件实现,最快的情况都比普通对称加密慢很多倍。速度一直是RSA的短板。一般来说,它只用于加密少量数据。?
RSA还有一个弱点,后面会提到。
在密码学方面,美国学者很忙,成果一个接一个。然而,英国这个老牌帝国在密码学方面也并非完全没有建树。毕竟是图灵的故乡,是图灵带领密码学家在布莱切里公园打败德国英格玛加密机的国家。
英国人也发明了RSA,但是被埋没了。
在20世纪60年代,英国军方也担心密码分发问题。1969年,密码学家詹姆斯·埃利斯正在为军方工作,他接到了密钥分发的课题。他想出了一个想法,用单向函数实现非对称加密,但是找不到这个函数。政府通信总部的很多天才都加入进来,一起寻找单向函数。但是三年过去了,这些聪明的脑袋一无所获,大家都有点郁闷。这样的单一功能存在吗?
往往这个时候,就需要初生牛犊来拯救现场。考克斯是一只勇敢的小牛,他是一位年轻的数学家,非常纯洁,决心献身于缪斯。虽然年轻,但他有很大的优势。当时他对这个单向函数问题一无所知,也不知道老师们三年一无所获。所以我闯入了雷区。
面对如此危险的雷区,考克斯差点跳了过去。这个问题只用了半个小时就解决了,然后他就下班回家了,也没太当回事。只是领导给的一份工作,无非就是喝茶扫地解数学题。他很早就完成了,可以在回家的路上买新鲜出炉的面包。他不知道自己创造了历史。考克斯是一个纯粹的数学家,当他听到同事们的称赞时,他感到有点尴尬。在他眼里,数学应该像哈代说的那样,是无用的知识,可耻的是他用数学解决了具体的问题。
可惜考克斯的发明太早,当时的计算机计算能力太弱,无法实现非对称加密解密。因此,军方没有应用非对称加密算法。詹姆斯和考克斯已经把非对称加密理论发展到了极致,但他们也说不上什么。军方要求所有工作内容必须保密,他们甚至不能申请专利。
虽然军方对工作成果的保密非常严格,但并不太在意工作成果本身。后来英国通信总部发现了美国的RSA算法,觉得很棒。他们只是忘记了詹姆斯和考克斯的RSA。通信总部一惊,拉了自己的知识库,才发现自己的员工Cox已经为RSA发明了类似的算法。官僚主义真的是人类的好朋友,它总是能给人们制造各种各样的笑话,虽然它的初衷是制造威权主义。
考克斯对此毫不在意。他甚至说,“埋了它。我不想成为网络名人。我为什么需要粉丝?”那些粉丝能吃吗?“原话不是这样的,但表达的意思基本一致。
1982年,达菲专程去英国见了詹姆斯,他们两个,彼此欣赏,相见恨晚。不幸的是,詹姆斯仍然不能透露他们对RSA的研究。他只告诉达菲,“你做得比我们好。”世界各国的科学家可以比谁更优秀,但世界各国的官僚却很难比谁更优秀。他们并驾齐驱。
区块链的故事-1
区块链的故事-2
区块链的故事-3
区块链的故事-4
区块链的故事-5
区块链的故事-6
区块链的故事-7
区块链的故事-8