專剋量子計算機的超級密碼被10年前的老爺機幹碎了
最近美國科研圈估計很頭大。就在上個月美國國家標準與技術研究所( NIST )結束了一項為期6 年的國際競賽,目的是尋找對抗量子計算機的加密算法。之所以,有這麼個競賽,實在是加密專業的人的活的太慘,堪比國內的土木專業。自從量子計算機出現,各個學科都贏麻了,唯獨搞密碼學的崩潰了。

這源於密碼學一向叛逆的定位:別的學科是為了算出一個答案,密碼學是防止別人算出一個答案。
因此,量子計算機直接對密碼學帶來了 “ 連根拔起 ” 的威脅。
拿最常見的RSA-2048 算法舉例,這個算法是由2048 位長的加密信息組成的,即使是最先進超級計算機也需要3 千萬年才能破解。( 日本的富嶽超級計算機,計算速度 442 Pflop/s )

但是量子計算只需要8 個小時。( 使用窮舉法,一個一個的試 )
這就導致量子計算機原則上可以快速破解大多數的加密算法。
為了應對這種量子層面威脅,世界各地的密碼學家在過去的二十年裡一直在設計用來抵抗量子計算機攻擊的後量子加密算法,並誕生了相應的算法競賽。
不過,更戲劇的是,這個競賽剛宣布結果沒多久,8 強選手之一的SIKE 算法,就被人滿血給秒了。

而且,SIKE 算法是被一台十年前的台式機,用單核處理器在4 分鐘內破解了低安全版本,並在一個小時內破解了該算法的最強形態。
這有多麻瓜呢?
和SIKE 安全級別相同的 RSA3068 算法,用目前最先進的超級計算機破解,(日本的富嶽超級計算機,計算速度442 Pflop/s。)需要大約2 萬億年的時間,比宇宙存在的時間都要長。
然而, SIKE 算法,在一台10 年前的英特爾單核台式機面前,只堅持了一個小時。

一個對抗量子計算機的超級算法,被台式機給擊敗了,這離譜程度不亞於哥斯拉,被咱們的二踢腳給炸飛了。
不過,差評君仔細研究了一下發現:這可能只是一個嚴肅科學界的烏龍事件。
這個名為SIKE 的算法之所以 “ 一碰就碎 ”,還得從算法的內核說起。

在這個么蛾子之前,SIKE 算的上是21 世紀的算法新星了。這個算法是一種基於超橢圓曲線的年輕加密算法。在它誕生的12 年裡,一直在加強,從未被超越。

它最大的賣點,在超高的性價比上—— 安全性很高,而且體積還小。
一個由 335 個數字組成的 SIKE 算法,和由 3068 個數字組成的常用算法( RSA 算法 ),安全性是同一級別的。
這就好像用十進制來表達二進制的數字,不僅方便,而且更加簡潔。
在NIST 收集的90 多種後量子算法中,SIKE 及其衍生的算法佔據了絕對的上風,成為最短後量子密碼中的的前16 強。

也正是因此,SIKE 算法一直有不少的擁護者,想要見證和創造歷史。
不過,有趣的是,這個算法的破解者托馬斯 · 德克魯也是其中之一。
托馬斯是這麼描述他的破解過程的:
一天,托馬斯在和同事沃特 · 卡斯特里克,在研究SIKE 算法,試圖用來增強其他密碼的安全性。

結果在研究相關文獻的時候,發現了一篇1997 年的論文。
論文中,有一個 “ 幾乎立即適用於SIKE 算法 ” 的定理,以至於他們在兩天之內 “ 反向加強 ” 了SIKE 算法,並用台式機破解了它。
這就邪門了呀,要知道在此之前這個算法的破解已經10 年沒有進展了,而托馬斯只用了兩天,甚至還寫出了一個沒有bug 的破解程序。
不僅是密碼學家,就連程序員都得羞愧難當了。
8 月5 日,他們在一篇論文中記錄了這一神奇的破解方法:

雖然橢圓曲線是一維對象,但在數學中,橢圓曲線可以被可視化為二維或任何其他維數的對象。人們可以在這些廣義對象之間創建同源。
通過應用一個25 年前的定理,新的攻擊使用SIKE 公開的額外信息來構建二維的同源。然後這種同源性就可以重建SIKE 用來加密消息的密鑰。
專業以外的人其實很難理解,這一過程的有趣之處。
做一個不是很恰當的比方:
這個 SIKE 算法就像一個平面幾何問題( 也就是二維問題 ),專門用來對抗量子計算機的運算能力,因為平面幾何的難點在於畫輔助線。讓計算機一條一條地試輔助線,不知道得試到什麼時候去了。但是Thomas 將這個圖形三維化了,它變成空間向量坐標系的問題。

這樣子,這個問題就可以通過列方程組來解決,這就又回到計算的範疇了。

所以,這一次破解SIKE 算法的關鍵,被歸功於數學之神的青睞。

對此,有位密碼學家對這個算法的破解給予了高度的評價,“ 我懷疑:世界上只有不到50 人掌握了破解SIKE 算法必要的數學和密碼學知識。”
當然,我也懷疑這個密碼學家是在強行找回面子。
因為這個問題的破解者,只是一個非著名大學 “ 魯汶大學 ” 的博士後,甚至不是NIST 密碼破解組的成員,而是一個業餘愛好者。

也有大佬比較客觀地表示:“ 我們應該做好剩下的7 個選手都被幹掉的準備,畢竟所有的密碼在被破解之前,看起來都很可靠。”
總而言之,自從1981 年量子計算機的概念被提出以來,算法的加密和破解之間的戰鬥,比之前的幾千年都要劇烈。
在此之前,密碼學的聖經是:“ 想要密碼更安全?簡單加大計算量就行了 ”。
相較於計算機運算速度的發展,將加密信息從100 位增加到1000 位,或者是將一種算法更換成更複雜的算法,就已經夠用了。但是,後量子時代要求密碼學家的思維更加開闊。

比如,這次競賽中的另一個種子選手 — 格算法( Ring learning with errors )就是一個格局非常打開的存在。格算法看起來比較簡單,像是一個將經典問題放在坐標系裡。
但是它這個坐標係有些霸道,為了保證安全性,這個坐標系的維度常年保持在1000 維以上。這就相當於,大家還在做一元二次方程的年紀,你已經在進行1000 元二次方程的求解了。
同樣是九年義務教育,為啥你這麼優秀呢?當然,這也只是冰山一角。
過去幾十年,整個密碼學都被量子計算機,這一個沒有落地的概念給唬住了,然後開始拼了命的逃亡。我們見證了密碼學的崩潰、重構,甚至衍生出了一種理論上無敵的量子密碼,想要找回場子。科學,真是太tm 魔幻了。
來源:差評