如果 AES 遭受災難性攻擊,是否有應急計劃?
NIST 在 2000 年選擇 Rijndael 作為 AES。在Serpent 作者的一篇論文中,他們提到有可能選擇第二個密碼作為備份,以防出現任何嚴重的中斷:
我認為應該只有一個標準。NIST 應決定一個標準,以確保該標準盡快被接受和採用。但是,NIST 可以發布備份密碼的選擇,以在標準被破壞或其他情況(如智慧財產權問題)阻止其被公眾使用的情況下替換標準。
根據NIST 報告的第 2.4 節,NIST 沒有這樣做。如果發現針對 AES 的嚴重密碼分析攻擊,是否有任何流程到位?想像一下,現在是 2029 年,一篇新論文發表,表明所有 14 輪都可以被打破,其複雜性為 $ 2^{50} $ 以及微不足道的已知明文。NIST 是否會採取任何官方措施,例如更改標準以使用更多輪次?是否會選擇其他 AES 候選者之一作為 AES2?
如果沒有事先的密碼分析表明它會逐漸變得越來越弱,我不相信密碼會出現重大突破,所以我非常懷疑如果發現了一個徹底的破解,那將是一個驚喜。但是,我仍然很想知道是否有關於此事的官方政策。
我不知道 NIST 對此事的任何官方政策,所以我只能做出有根據的猜測。
我想新的算法已經出現並且已經到位。ChaCha20 用於 TLS 1.2 和 1.3。對於散列函式,SHA-2 和 SHA-3 都不以任何方式依賴 AES。Keccak (SHA-3) 中的海綿函式也可以用作對稱密碼(Ketje、Keyak 和 Kravatte),並且 - 稍作調整 - 作為 MAC (KMAC)。因此,我認為 NIST 不會倒退,而是簡單地將現有密碼與基於 Keccak 的更現代密碼一起標準化。
儘管我認為AleksanderRas 的回答有其優點,但我個人認為最初的 AES 候選者之一不會被選為新的 AES(或 FES,用於固定加密標準)。世界在前進;周圍可能有更安全、當然更快的分組密碼。例如,我可以看到 Bruce Schneier 和 Skein 團隊會選擇 Threefish 而不是 Twofish。如果 Rijndael 被破壞,Serpent 可能會抓住機會,以高安全係數獲得亞軍。不過,它似乎確實與 AES 有很多共同之處,所以即使它確實有很多輪次,中斷也可能會影響 Serpent 的安全性。
這給我們帶來了一個重要的最後一點:可能只是通過增加輪數來修復損壞的 AES。在那種情況下:國王死了,國王萬歲。畢竟硬體就在那裡,而且經常可以配置輪數。這在短期內是最有意義的,並且會讓 NIST 有一些喘息的空間來考慮更換。
選擇過程
AES 的要求是:
- AES 必須是對稱算法,特別是分組密碼
- AES 必須使用 128 位塊大小(192 位和 256 位可能是可能的擴展)
- AES 必須支持 128 位、192 位和 256 位的密鑰大小
- AES 必須相對容易在硬體和軟體中實現
- AES 必須具有高於平均水平的性能
- AES 必須能夠抵抗所有已知的密碼分析攻擊(尤其是功率和時序攻擊)
- AES 必須可用於智能卡(電腦記憶體不足)
- AES 必須是免費和開源的
送出可能的 AES 的可能性於 1998 年 6 月 15 日結束。
總共送出了 15 份提案。
15 個中的 5 個被選為 DES 的可能繼任者,將命名為 AES:
所有這些算法都滿足要求。選擇 Rijndael 算法是因為它在硬體和軟體方面的性能特別高(它只需要 500 行 C 程式碼)。
即使如果目前的 AES 被破壞,我找不到任何“下一步”的概念(現在 NIST 也部分由於政府關閉而關閉),但我個人建議如下:嘗試攻擊打破了其他 4 種算法的 Rijndael 算法,並評估它是否也破壞了其中任何一種。如果一個對這種攻擊有抵抗力,那麼應該選擇那個作為新的 AES。