最近美國科研圈估計很頭大。就在上個月美國國傢標準與技術研究所( 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 魔幻。