雙重加密真的是個壞主意嗎?中間相遇攻擊真的可行嗎?
中間相遇攻擊被用來證明對 ECC 和雙重加密的攻擊將具有以下複雜性 $ O(\sqrt{n}) $ 對於 ECC 和 $ O(2^{n+1}) $ 對於雙重加密複雜性而不是 $ O(n) $ 和 $ O(2^{2n}) $ , 分別。
據我了解(如果我錯了,請糾正我),中間相遇攻擊依賴於將結果儲存在地圖中。例如,如果我們使用 DES 進行雙重加密,我們會使用所有密鑰預先計算所有可能的加密(即 $ 2^{56} $ 可能性),將它們放入排序的映射中,然後使用所有可能的密鑰解密,並查看哪些解密中間密文與我們在映射中的匹配。鑑於地圖搜尋是 $ O(\log{n}) $ ,那麼我們就沒有問題了。
我知道這對於 DES 是可能的,儘管它非常難。我們需要大約 500 TB 的記憶體才能做到這一點。好吧,假設美國國家安全域有這個。
但是,當 ECC 和 AES 至少有 160 位或 128 位時,為什麼要認真對待中間相遇攻擊呢?如果我們使用地球上所有的原子來建構 SSD 來儲存我在上面討論過的所有地圖資訊,那可能還不夠。
我的問題基本上是:考慮到所有這些實際限制,在談到除 DES 以外的密鑰相對較長的加密算法時,雙重加密是一個愚蠢的想法嗎?而對於ECC,ECC真的可以用 $ O(\sqrt{n}) $ 複雜?
中間相遇攻擊依賴於將結果儲存在地圖中
只有 MitM 的幼稚版本可以。
樸素 MitM 的不切實際的記憶體需求(大小和訪問)可以通過其他計算成本的相對適度增加而大大降低,並將計算分配給獨立的設備。參考論文是 Paul C. van Oorschot 和 Michael J. Wiener 的Parallel Collision Search with Cryptanalytic Applications(密碼學雜誌,1999 年)。它在第 5.3 節中介紹了 MitM 。
這也在這個問題中討論過。
雙重加密是一個愚蠢的想法
很大程度上是這樣,因為 MitM 有了這樣的改進。在 AES 的情況下,使用 AES-256 比雙倍 AES-128 更好:它挫敗了 MitM,並且速度更快。
ECC可以破解嗎 $ \mathcal{O}(\sqrt{n}) $ 複雜?
是的,這就是在一般循環的階群中求解離散對數的成本 $ n $ ,包括使用橢圓曲線上的點加法定義。參考方法是Pollard 的 rho。這很少被 MitM 辨識(就像問題一樣),但有相似之處。並非巧合的是,平行波拉德的 rho在上述論文的第 5.1 節中進行了描述。