生日攻擊對 AES 暴力破解的適用性
最近出版的密碼學書籍中的以下片段是否正確?
編輯:擴展書中的片段以使上下文(對稱密鑰搜尋)更加清晰。
您也可以將其應用於其他加密問題。讓我們回到 DES 算法。回想一下,它有 72,057,594,037,927,936 個可能的鍵。為確保您找到正確的密鑰,您可能需要檢查所有 72,057,594,037,927,936 種可能性。但是,如果您所尋求的只是超過 50% 的機會找到正確的密鑰,您可以嘗試 $ 1.774 \sqrt{72,057,594,037,927,936} $ 可能的鍵——只有 476,204,499 個可能的鍵。這更易於管理。事實上,再次參考我們之前使用 DES 的場景,如果您每秒可以嘗試 100 萬個密鑰,那麼您有 50% 的機會在 7.9 分鐘內找到正確的密鑰。儘管每秒 100 萬個密鑰超出了標準個人電腦的能力,但它完全在超級電腦甚至計算集群的能力範圍內。
生日悖論是為什麼需要更大的密鑰來保證安全性的原因之一。如果我們將注意力從 DES 轉移到 AES 128 位密鑰,大約有 $ 3.402 * 10^{38} $ 可能的鍵。應用生日悖論給了我們 $ 1.774 * \sqrt{3.402 * 10^{38}} $ , 或 32,724,523,986,760,744,567 個鍵,需要嘗試有 50% 的機會找到匹配項。這個數字足夠大,即使存在生日悖論,在計算上也無法通過蠻力方法破解它。
現在擴展的引用顯然是在密鑰搜尋的上下文中,並且是嚴重錯誤的,包括以每秒測試 100 萬個密鑰的 50% 的機率找到一個 DES 密鑰的時間估計(即超過 11 個世紀,其中 7.9 分鐘是聲明)。在其他情況下,解釋可能是正確的,除了一個中等因素直接在不安全方面犯錯,或者與相關現像模糊相關。在所有情況下,這是錯誤的。以及密鑰測試速率的估計:大約在 1997 年左右,消費者台式機 CPU 上每秒 100 萬個 DES 密鑰已經可行。
正如問題作者在評論中指出的那樣,在鍵搜尋的上下文中,我們需要搜尋一半的鍵空間以找到機率為 50% 的特定鍵(使用等效鍵和搜尋快捷方式)。生日綁定無關緊要。在我們搜尋了引文中指出的鍵數之後( $ 1.774\sqrt n $ 在哪裡 $ n $ 是密鑰空間的大小),我們找到正確密鑰的機率(假設隨機選擇並且最初未知)是測試的(不同)密鑰的數量與密鑰空間大小的比率;這是按順序排列的 $ 1.774/\sqrt n $ ,這是可以忽略不計的小,而不是所述的 50%。
生日界限的乘法常數應該是 $ \sqrt{\log4}\approx1.1774 $ 引文給出的地方 $ 1.774 $ , 並使用它,甚至使兩個生日界限的最左邊的數字都錯誤,並且在不安全的方面犯錯;見最後注。除此之外,如果問題是防止發現單向函式的碰撞,例如 $ H:{0,1}^{128}\to{0,1}^{128};; H(K)=\operatorname{AES-128}_K(0) $ .
如果我們考慮CBC 模式下的塊密碼(例如 DES 或 AES)的安全性,則呼叫生日界限來解決塊大小空間上的衝突是正確的;對於 AES-128,這與密鑰空間相同,這使得引用後半部分中數字的數量級相關;然而,在這種情況下,解釋並不能證明*“為什麼需要更大的密鑰大小”*;只是為什麼需要更大的塊大小。
作為 CBC 模式的生日界限相關性的實際說明,考慮一個 40 GiB 文件,該文件被懷疑是在 CBC 模式下使用 3DES 加密直接從藍光光碟中提取的電影文件(可能帶有在文件末尾添加了一點隨機以隱藏原始的確切長度)。加密文件足夠大,以超過 50% 的機率,兩個加密的 64 位塊是相同的。這意味著原始文件中兩個對應塊的異或等於加密文件中前面塊的異或。如果原始文件可用,即使我們必須在數千個潛在的原始文件中做出決定,這一觀察結果也可以毫無疑問地證明加密文件的性質。
注意:56 位(分別為 64 位和 128 位)值的實際生日界限為 316,058,597(分別為 5,056,937,541 和 21,719,381,355,163,562,492)。這就是應用 David Brink: A (Probably) Exact Solution to the Birthday Problem(在The Ramanujan Journal,2012 年 6 月,第 28 卷,第 2 期,第 223-238 頁),推測在 $ n\ge1 $ 碰撞機率達到 50% 時
$$ \left\lceil\sqrt{n\log4}+{3-\log4\over6}+{9-\log^2 4\over72\sqrt{n\log4}}-{\log^2 4\over270n}\right\rceil $$ 在密碼學中,我們傾向於近似於 $ 1.1774\sqrt n $ 要不就 $ \sqrt n $ ,從合法使用者的角度來看,兩者都在安全方面犯了一些錯誤。