虽然量子计算机直至今日都只是来自实验室的传说,连王坚本人都说,和中科院的合作 “实际上就是一个没有限期的事,大家根本不知道结果是什么”,但它就像是一把高悬的达摩克利斯之剑,随时可能落在所有传统加密系统头上。
“所有现在的加密信息在未来都可能被量子计算机破解。”谷歌安全工程师亚当·兰利表示。谷歌已经于去年7月展开一项为期两年的实验:强化Chrome浏览器和谷歌服务中的加密协议,以期能在未来抵御量子计算的攻击。
而在2016年底,微软雷德蒙研究院首席研究员Kristin Lauter对密码学领域作出了这样的预测:到2027年,我们将拥有“至少可以打破低强度传统加密系统的量子计算机”。
也就是说,留给传统加密系统的“安全时间”,只有大约十年了。
加密和破解密码本就是一场绵延数千年的拉锯战。公元前1世纪,凯撒大帝为了传递军事机密而发明的“凯撒码”,不过是将字母表位移了3格,以D对应A,以E对应B,在今天看来毫无技术含量,却开启了密码的先河;到二次世界大战时期,德军的Enigma密码机用三个转子和六根连线创造了1016种可能的加密规律,让盟军头痛不已,直到艾伦·图灵发明了图灵机,这才帮助盟军在大西洋海战之中一锤定音。
许多影视作品对这场无声之战作出过戏剧化的展现,但不要以为密码战只是发生在战争年代的故事,事实上,加密、解密、与窃听者对抗,这样的过程每天都发生在互联网上。
为了保护互联网时代最重要的资源——数据,人们煞费苦心地设计出越来越复杂的“锁”,也就是加密算法;同时还必须想尽各种办法保证“钥匙”的安全。造锁困难,窃取钥匙却容易得多。无论多么精巧的锁,一旦钥匙失窃,也就再无勇武之地了。
密码学中,这把贵重的“钥匙”被称为“密钥”,它是一段特殊的秘密数据,是让密文现出原形的关键。
在经典加密算法“对称加密”之中,信息的发出者和接收者用来进行加密和解密的,是同一个密钥,相当于双方各持一把一模一样的钥匙,然后用这把钥匙对应的锁来锁住秘密。这个密钥必须在数据传输之前由双方事先约定,并妥善保管。不难想见,对称加密的软肋就在于这个密钥。在谍战小说或者电视剧里,敌人想尽办法要拿到的“密码本”就是一种密钥。
在互联网上,窃听者常做的就是截取密钥。由于密钥也通过网络传输,如果在传输过程中被窃听,整套加密机制就被破解了。
如何降低密钥泄露的风险呢?
1977年,麻省理工学院的三位学者罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(Leonard Adleman)一起提出了一种新的“非对称加密算法”,并以三人的姓氏缩写组合命名为RSA。
RSA算法是目前广泛采用的加密算法。它的“非对称”之处,体现在它所使用的加密密钥和解密密钥是不同的。加密密钥是“公钥”,即使泄露也无关紧要;解密密钥则是“私钥”,由信息接收者持有,不会在网上传输,保证安全。
“私钥”之所以能解“公钥”之锁,是因为二者之间存在某种数学关系。RSA算法巧妙地运用数学方法,把解密密钥“私钥”隐藏了起来。因此,这套加密算法是否靠得住,维系在这种数学方法的可靠性上。换句话说,得知了“公钥”的窃听者能否推算出“私钥”?
这其中的数学原理非常复杂,所以在此让我们直接揭晓答案:理论上可以推算,相应的算法早在上世纪90年代就已被发明出来,但所需的计算量极其恐怖,以现有计算机的能力,需要数千年才能算出结果。
数千年才能破解的密码,在现实意义上就等于破不了的密码。看起来,RSA这把“锁”非常牢靠。
果真如此吗?
不幸的是,预言中在十年之内就会走出实验室的量子计算,就是RSA加密算法的大克星。这件武器致命到什么程度呢?按照阿里巴巴集团系统研发美国研究所资深技术总监谢崇进博士的说法,“普通计算机需要算3000年的计算量,量子计算机可以在几分钟内算完”。
技术的发展又一次将关于安全的战争推到了新的转折点。在量子计算面前,RSA算法不再牢不可破,为了保证数据安全,开发新的加密通信方式势在必行。