考慮對具有兩個 128 位密鑰的 AES 算法使用雙重加密
下面的實際問題。
考慮將雙重加密應用於具有兩個 128 位密鑰的 AES 算法。執行中間相遇攻擊需要多少儲存和計算?
應用於 AES-128 算法和兩個隨機密鑰的雙重加密理論上可以通過通用的中間相遇攻擊從 3 個明文/密文對中破解,使用 2 128次加密來建構字典,預期每次需要2 127次嘗試a 大約一次解密和兩次加密(後者用於檢查一個候選密鑰對的平均值)。這總共是預期的 5×2 127 AES-128 操作。這大到目前不可能:現在的可行性領域停止在 2 75到 2 100之間,後來被許多權威機構承認對 2020 年有好處。因此,我們有大約 1000 萬的利潤,我想這在 20 年內還不錯,除了小精靈或量子電腦即將取得突破,使它們對此類任務有用。
教科書 MitM 攻擊所需的記憶體量是 2 128個字,每個 128 位,即 2 135位。如今,矽片很少小於80µm 50µm 厚(這些用於智能卡,通過銑削普通晶圓而不是使用超薄晶圓獲得),一個 DRAM 單元的面積至少為 4F 2,特徵尺寸F=10nm,因此我們說的是0.9⋅10 21 m 3的矽;那是地球體積的 80%,其中僅包含 15% 的矽。快,讓這些晶圓變得更薄,或者(更實際地)開始製造非堆疊晶圓的 3D 矽!
有一個眾所周知的 MitM 改進需要可行數量的 RAM,但比通用 MitM 需要更多的計算量。參見 Paul C. van Oorschot 和 Michael J. Wiener:Parallel Collision Search with Cryptanalytic Applications(密碼學雜誌,1999 年)。
有趣的是,不知道有任何通用技術使用中等數量的 RAM 並以與 2 b甚至 2 3 b /2加密相當的成本破壞某些b位塊密碼的兩密鑰三重加密。
fgrieu 在其他地方的腳註中回答了這個問題:
具有兩個 128 位密鑰的雙 AES 比具有 256 位密鑰的單 AES 慢得多(20 輪對 14 輪)。當 AES-256 不是時,雙 AES-128 理論上也容易受到中間相遇攻擊。
因此,中間相遇攻擊需要多少儲存和計算並不重要,因為沒有真正的理由使用雙 AES-128(因為它比 AES-256 更慢並且可能更弱)。