Keys
找出三重 DES 中使用了哪個鍵控選項?
據我所知,三個鍵有三個標準選項 $ K_1 $ , $ K_2 $ 和 $ K_3 $ 由 3DES 使用:
- 三個不同的鍵。
- 第一個和最後一個鍵相等: $ K_1 $ = $ K_3 $ .
- 三個相等鍵: $ K_1 = K_2 = K_3 $
我想知道在給定一組已知的(明文、密文)對的情況下,是否有辦法找出(最有可能)使用這些選項中的哪一個。攻擊不需要洩露密鑰;目標只是找出正在使用的鍵控選項。
目前,我能想到的唯一方法是嘗試恢復密鑰。即,對第三和第二鍵控選項應用已知攻擊。例如,複雜的蠻力攻擊 $ 2^{56} $ 隨後是複雜的選擇明文攻擊 $ 2^{57} $ .
所以問題真的是:有沒有一種方法可以更有效地做到這一點,而不必找出關鍵。如果這不可能,(如何)上述方法可以優化?
實際上,沒有已知的方法(假設實際計算能力)來區分鍵控方法 1 和 2。您提到了“複雜的蠻力攻擊” $ O(2^{56}) $ 隨後是複雜的選擇明文攻擊 $ O(2^{57}) $ “,在這件事上,沒有明顯的方法來對前兩個選項中的任何一個進行攻擊;你不能對其中一個鍵進行暴力攻擊,因為沒有明顯的方法來確認對潛在鍵的猜測(除了立即對另一個鍵進行蠻力攻擊之外,在這種情況下,您實際上是在談論 $ O(2^{112}) $ .
另一方面,將第三個選項與其他兩個選項區分開來是可行的(如果難度適中)。這第三個選項本質上是 DES;對所有可能的蠻力搜尋 $ 2^{56} $ DES 密鑰將在給定單個明文/密文對的情況下對其進行區分。此外,在足夠已知的明文/密文的情況下,線性密碼分析可以使區分工作變得更加容易。
我所知道的關於線性密碼分析的最好的工作是這篇論文;大約使用 $ 2^{43} $ 明文/密文對(即幾萬億),它們能夠將 DES 與隨機排列區分開來 $ O(2^{39}) $ DES 計算,比簡單的蠻力計算要便宜一些。