当前位置: 未解之谜网 > 技术创新 > RSA加密法遇上量子电脑

RSA加密法遇上量子电脑

2017年8月17日13:04 未解之谜网

量子电脑是基于量子力学的计算工具,图中为量子力学中波函数常用的符号。
■通讯和情报一直是商业和国防最重要的一环,而加密是其中的核心。二十世纪末以来, RSA加密法凭借著古典电脑难以企及的复杂度变得日趋流行,安全性高。但对于特定的计算工作,量子电脑的计算力远远超越古典电脑,这是否会对你我日常都在使用的RSA加密造成威胁呢?回答问题前,先让我们看看RSA和量子电脑背后分别有些什么。
●在RSA之前:对称性加密
关于对称性加密,最广为人知的是二次大战中德军的密码系统“Enigma”。每位军士官拥有一份密码表(金钥),当收到加密讯息时(图一),必须用相同的密码表才能翻译密文。敌军窃听者缺少了密码表,就算拦截到讯号也无法解开密文。这种密码系统非常成功,当时德军靠着它,透过闪电战顺利击败周围国家。

图一、对称性加密示意图。对称性加密中的“对称”指的是加密和解密使用相同的金钥(密码表)。他的优点是加密过程简单明了,且在金钥不外流的情况下安全性很高。但缺点是一旦金钥外流,整个密码系统就瓦解了。无论是过去战争或是现代生活,保证金钥绝不外流是一件不切实际的事,因此对称性加密的安全性并不是真的很可靠。
●非对称性加密
德军将密码表印在水溶性材料上,每个月更新一次。若遭到俘虏,密码表可以立即被销毁。即使密码表真的被拿走,也只能用一个月而已。但这仍非完美,如果团体中有间谍定期外流密码表,密码系统就瓦解了。可能的对策是每两个人之间都有一份独特的密码表,若团体中有n个人,一个间谍外流的密码表不会影响到其他(n-1)人。但如此一来,团体总共需要约n平方组密码表[注1],非常不方便。再者,要和一位新成员秘密通讯,如何安全传递密码表也是一个大问题。针对这些难题,非对称性加密因应而生。
非对称性加密的精随在于加密和解密需要不同的钥匙,分别为公开金钥和私有金钥。任何拥有公开金钥的人都可以加密任何讯息,但唯有私有金钥才能解开密文。图二中,男孩为了安全地向女孩发送讯息,事先向女孩索取一份用来加密的公开金钥。女孩收到加密讯息后用私有金钥解密。若有窃听者拦截讯号,他也只能得到已加密的讯息和加密用的公开金钥,无法解密。值得一提地,若男孩误删自己的讯息原文,他本人也无法透过公钥还原讯息,地位变得和窃听者一样。这样的密码架构下,虽然需要花时间事先索取公钥,但免去了传送密码表的风险,安全度大幅提升。

图二、非对称加密示意图。“非对称”指的是加密和解密使用不同的金钥,因此我们可以任意的发送只能用来加密的公开金钥。图中男孩像女孩发送讯息前,必须先索取一份公钥,传送讯息步骤稍长,但安全性提高很多。窃听者再怎么拦截讯号,都无法得到解密用的私钥,因为它从来不存在于通讯之中。唯一能窃取私钥的方法就是侵入持有者的电脑或家中(但如果他真的成功入侵,他直接窃取讯息就好,也不需要窃取金钥了)。
●密码背后的数学和安全性
当今最广为使用的非对称加密法是RSA算法,其名称由发明者Ron Rivest、 Adi Shamir 和 Leonard Adleman的姓氏组成。概念如图三,RSA算法基于两个质数p和q,它们制造符合条件的公开金钥(n,e)和私有金钥(n,d)。 加密和解密是对讯息取次方并取余数(mod) [注2],例如要使用公钥(n=143,e=7)加密体重“72”公斤,读者动笔 (或计算机) 算算会得到密文 。解密时,用私钥对密文做类似的运算可以得到 。
对于没有私钥却想要破解讯息的窃听者,他唯一的资讯只有公钥(n,e)。其中一种破解方式是对n做质因子分解找出p和q,从而推导出私钥d。但是对于标准的2048位元RSA加密,就算用目前世界上最强的超级电脑(太湖之光,中国制),花费地球年龄的时间(46亿年)都无法破解。RSA算法安全性高,又只需分享公开金钥,因此从社交软件到军事通讯都有他的踪影,我们的生活可说是一举一动离不开RSA。

图三、在RSA算法背后,公钥和私钥其实是两组数字,它们符合图中的数学条件。想要加密一个讯息(Message) m,只要对m做次方和余数的运算就好,而解密一则密文 (Ciphertext) c也只需要做类似的运算,非常方便。安全性方面,其实在公开金钥中已经含有足以破解密文的资讯,但是要找到这些正确的资讯需要计算非常久的时间,一般的古典电脑根本无法有效做到。对于深入数学有兴趣的读者,可以参考维基百科中RSA加密算法条目。
●量子电脑和周期性
量子电脑针对特定的问题,计算能力远大于古典电脑。由于量子力学用“波动性”的概念来描述物质,波动的“周期”是量子力学中根本的性质之一。各种物理量之间存在共轭性,而这些共轭的物理量有像是波动和周期的相互关系。例如:动量可以想成是空间上的周期、能量像是时间上的周期,或更抽象地,粒子数像是相位中的周期。因为这些特性,量子电脑特别擅长寻找周期。
在上述RSA算法中,一个核心的元素是“取余数(mod)”。这个函数具有周期性,是他的优点也是他的弱点。因为有周期性,他可以有效率地被用于加密和解密。但是若有一台机器能够快速找出函数的周期性,RSA算法则能轻松地被破解[注3]。量子电脑恰好就是这样的机器,破解RSA算法是量子电脑发展的目标之一,也是学界、业界和政府投入大量资金进行研发的重要原因之一。
若要破解一组2048位元的RSA加密,理论上大约需要4000个量子位元(qubit)。目前Google和IBM的量子电脑约有20个量子位元。尽管数量仍远远不足,但是相较于2016年的9位元和5位元,两家公司都将数目提升两倍了。未来能否用量子电脑对现有密码系统革命,让我们继续看下去吧。
注释:
[注1] 团体中有n人,任两个人配一个独特的密码表,总共需要n(n-1)/2个,复杂度为n平方。
[注2] mod是取余数的意思,他的格式为“被除数 = 余数 mod 除数”。例如17除以5等于3余2,可以写作“17=2 mod 5”。
[注3] 最广为人知的破解RSA的算法是“秀尔算法(Shor’s Algorithm)”,对细节有兴趣的读者可以参见其维基百科条目。

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18

真诚欢迎各科普媒体、机构、专家和网友与我们联系合作! Email: [email protected]

版权所有,保留一切权利! ©2011-2021 Designed by 未解之谜网

sitemap