美文网首页
13RSA加密:公开的钥匙反而更安全RSAEncryption:

13RSA加密:公开的钥匙反而更安全RSAEncryption:

作者: 夕等会_ | 来源:发表于2019-01-30 19:40 被阅读0次

    RSAEncryption: open keys are more secure

    上节已经知道,通过模运算这种不可逆的数学工具,密码学已经发展到不需要单独发送钥匙了。

    这个突破很大,但它实用吗?答案是不行。

    因为这套方案有个前提——需要双方一直同时在线,通信才能启动。而现实中,像我们用微信、发短信、发邮件,一般都不用对方立刻回复。这个应用场景的问题不解决,这套方法就没法商用。

    最终实现这个功能的,是第六代密码法——RSA加密法。

    这门课到现在,我们讲了很多加密方法,如今大多数都不再使用了。而RSA加密法,仍是目前使用最广泛的方法。像我们的手机支付加密、网银加密,都会用到它。

    关乎钱包和信息安全,你一定得认真听。

    RSA这3个字母,分别代表的是它的3位创立者——Ron Rivest、Adi Shamir、Leonard Adleman。

    下面我们用打比方的方式,来说说具体的加密过程:

    1. 爱丽丝有很多把锁,每把锁都有两把不同的钥匙,一把专门用来上锁而不能开锁,另一把专门用来开锁而不能上锁。

    2. 爱丽丝把那把用来上锁的钥匙,尽量多的赠送给每个可能和她通信的人。这些人拿到钥匙后,就可以把要跟爱丽丝说的话写下来,再用爱丽丝给的钥匙把锁锁上,然后寄给爱丽丝。

    3. 爱丽丝拿到锁好的盒子后,用另外一把只有她才有的专用钥匙打开盒子,就可以看到信里的内容了。

    这个过程的关键点就是,对同一把锁来说,上锁和开锁用的是两把不同的钥匙,而之前我们说的所有加密法都是使用相同钥匙的。

    所以之前的都叫“对称钥匙”,而RSA因为使用了不同的钥匙,所以叫“非对称钥匙”,或者“非对称加密”。

    刚刚我们用一个非常简单的比喻,把非对称加密过程形容了一下。但还是那句话,比喻是不能代替理解的,实际的思考逻辑是这样的:

    爱丽丝要设计出一把公开钥匙,之所以公开,是为了让每个人都能复制这把钥匙,用来给自己发信息加密用。但这把钥匙,又一定不能解开加密过的信息。

    所以这一步,需要一种不可逆的函数运算,只能加密不能解密,这个就可以用我们上节课说的模运算来实现。

    爱丽丝本人还得有一把私人钥匙,它是不公开的。而这把钥匙,可以解开用她的公开钥匙加密过的信息。

    具体的细节比较难懂,需要公式的辅助,我来说说关键步骤:

    爱丽丝展示出来的公开钥匙,是通过两个比较大的素数p和q相乘得到的一个更大的数N得到的。p和q具体是多少,爱丽丝只要自己知道就行,千万不要告诉别人。而乘积N是公开的,谁都可以知道。

    凡是要给爱丽丝发消息的人,都需要用N来加密。加密的过程依然用的是模运算,而且模就是N。整个数学过程会保证这个模运算不可逆,所以伊芙就算知道N也没用。

    那爱丽丝是怎么解密的呢?她解密时就不需要N了,而是要用到p和q的具体值,而这两个值别人都不知道,只有爱丽丝自己知道。具体来说,爱丽丝私下做的另外一个模运算中的模,不是刚才我们说的N,而是另外一个值(p-1)×(q-1)。你看,在这个公式中就必须要知道p和q到底是多少才行。

    至于为什么一定要是(p-1)×(q-1),你不用纠结,数学原理保证这样操作能算出一把新钥匙,这把新的钥匙就是爱丽丝自己的私钥。用这把私钥,一定可以解出原文。

    你说,这样做就能保证安全吗?伊芙已经知道了一个大数N,她难道不能利用精巧的算法,找出N到底是由哪两个大的质数相乘得到的吗?

    不能的,这种不能是由数学保证的。N越大,找到p和q两个因数的时间就增加得越夸张。现在银行使用的RSA加密,都要求N是一个超过300位的大数。想分解这样一个数,大约需要把全球计算机的算力集中起来算上几亿年才行。

    有人可能会问,为什么非要用两个大的质数相乘呢?用两个巨大的合数相乘得到N,想把这个N的因数找齐,不是也要很久吗?没错,是要很久。但这样做的话,最后算出的私钥也没法解出原文了。所以,找两个质数相乘,也是由数学决定的。

    1978年2月,顶级期刊《ACM通信》刊登了一篇文章,叫《一种实现数字签名和公钥密码系统的方法》(A Method of Obtaining Digital Signatures and Public-Key Cryptosystems),作者就是姓名以RSA这三个字母开头的密码学家。

    在文章的第三页就出现了这么一句:

    “我们假设一个场景,爱丽丝和鲍勃是公钥密码系统中的两个用户。”这篇文章此后所有的技术细节,爱丽丝和鲍勃就成了主角。这是密码学史上,爱丽丝和鲍勃的首次出现。

    这种论文风格很另类,看上去好像在讲故事。那为什么是爱丽丝和鲍勃,而不是汤姆和杰瑞呢?

    只要参考之前的通信类论文你就会发现,以往用来指代发送方和接收方的,一直都是A和B,而且由A发出的内容大都是α,由B发出的内容大都是β。

    可能这三位密码学家不想太枯燥,就把名字以A开头的Alice当做A,把名字以B开头的Bob当做B,于是爱丽丝和鲍勃就这样尽人皆知了。

    现在我们再来回头看,密码学发展的过程中,公开透明的部分越来越多。

    到了第六代的RSA加密法,不但加密的操作公开了,连部分钥匙都公开了。而且公钥不是情不得已才公开的,而是越公开益处越大,因为这样才能有更多的人给你发加密消息。到了现在,唯一不能公开的就只有私钥。

    可能听到这里,你会感觉RSA加密法使用的数学工具很陌生。没错,这个方法用到了两大数学领域的知识——质数方面的应用和数论有关,单向函数的应用和群论有关。

    这个算法背后的数学证明,一般在计算机系《算法导论》有详细论述。如果想深入了解,你可以参考这类教科书。

    数学有很多分支,现在大多已经成为工程应用的理论基础了。不过它们化身为应用的范围有宽有窄,比如群论的应用就广阔很多,而数论部分就狭窄很多,目前只有密码学在应用。

    1979年,RSA注册了专利后,还成就了很多信息安全公司。但如果就这样介绍完RSA加密法是如何创生的,那真的有人要受委屈了。

    因为同样的加密法,其实早在4年就已经有人完整的做出来了。那他们为什么没有成为这种非对称钥匙系统的专利发明人呢?

    道理还是我之前说的,密码学领域注定会有很多受屈者。

    最早发明这种方法的,并不是RSA这三个人,而是詹姆斯·艾利斯(James Ellis)、克里佛·考克斯(Clifford Cocks)和马尔科姆·威廉森(Malcolm Williamson),我们简称他们三人为JCM。

    他们都是英国政府通讯总部的员工。不知道你是不是还记得图灵破解恩尼格玛机时,那个庞大的情报部门布莱切利园。当时9000名员工,战后绝大部分都回到了原来的生活中,只有少数转去英国通讯总部做了公务员,这3位密码学家就是这样留任的。

    他们之后的研究也全都带有军方项目的性质,所以是国家机密。别看1975年他们就做出了整套非对称钥匙加密系统,但直到24年后的1997年,人们才知道这件事。这时不要说和RSA争夺专利发明权了,连RSA的专利甚至都要过期了。

    其实在1975年,JCM刚刚做出全套算法的时候,他们曾经向国家通讯总部提出过注册专利的要求,但总部没有批。

    几年后他们听说RSA三个人注册了专利后,特别失落,因为他们才是最早的发明人,专利应该属于他们。但因为军方的限制,他们只好保持沉默。

    到了80年代,随着计算机性能持续提升,RSA实用性越来越高,连当年拒绝JCM申请专利的通讯总部的长官,都开始后悔了。

    而且这种遗憾,随着时间推移还在持续增加。2006年,RSA数据安全公司被EMC公司花2.1亿美元收购。又过了10年,EMC公司又被戴尔公司收购,成为戴尔技术品牌的一员。

    1997年,英国公布JCM三人成果不久之后,他们举行了一次公开演讲。

    演讲结束后,JCM里的威廉森接受采访,被问到错失专利的感受时,他说“没办法,人生就是这样”。另一个人考克斯的反应要更淡定一些,他说“我要是想得到公开的赞扬,就不会来做当前这份工作了”,他指的就是在英国通讯总部的工作。

    而第三个人,也是最早参与研发的詹姆斯·艾利斯,在演讲前一个月刚刚过世,享年73岁。

    讲到现在,密码学近代史上,已经有3个重要人物没有在他们有生之年获得应有的嘉奖了。

    第一个,是首位破解了维吉尼亚加密法的查尔斯·巴贝奇;

    第二个,是破解了恩尼格玛密码机的图灵;

    第三个,就是首次提出非对称钥匙加密系统的JCM三人小组。

    他们都是因为军方需要保密,而不得不做出牺牲。可从事密码学研究的人,有相当高的比例就是为政府情报部门工作的。这个属性就决定了,他们很容易受到历史不公正的评价。而对我们这些看客来说,关于密码学的突破,我们能了解到的,只是各国情报部门允许我们了解到的部分。

    这是密码学这个学科分支,独有的文化特征。

    这节讲了RSA加密法的加密原理,知道了这种“非对称加密”的高明之处。

    下节引起了整个美国全民大讨论的密码学事件,看看RSA加密法是怎么被普及的。

    相关文章

      网友评论

          本文标题:13RSA加密:公开的钥匙反而更安全RSAEncryption:

          本文链接:https://www.haomeiwen.com/subject/bjkadqtx.html