Encryption

2DES 和 3DES 與免費的 DES 建構

  • November 26, 2019

我看到了這個複雜的問題,我不太確定,不勝感激您對此的看法。

以下建構是否比具有 2 個不同密鑰(甚至普通 DES)的 2DES 或 3DES 更強?

$ DES(DES(x,k),\overline{k}) $

我認為關於 $ 2^{56} $ 密鑰空間,我們需要執行以下操作:

  • 正常 DES:我們需要調度密鑰 $ k $ , 然後測試 $ E(k,m),k’ $ ;
  • 關於具有兩個不同密鑰的 2DES/3DES:不確定,但我認為在這種情況下我們需要安排 $ k_1 = k $ 和 $ k_2 = \overline{k} $ . 我很高興看到如何正確決定它是否使它比那些(2DES,3DES - 都具有兩個不同的密鑰)更強大。

為簡單起見(和問題)假設對手有少量已知的明文:密文對。

以下建構是否比具有 2 個不同密鑰(甚至普通 DES)的 2DES 或 3DES 更強?

$ DES(DES(x,k),\overline{k}) $

它僅比 DES 稍強;它比 2DES 或 3DES 更容易攻擊。

對 DES 最實際的攻擊是暴力破解;只需嘗試各種可能的鍵,直到找到正確的鍵。對於已知的明文/密文對,這需要一個預期的 $ 2^{55} $ 收視率。

與您的設計相反,因為密鑰仍然只有 56 位,所以這種蠻力方法仍然實用。在您的情況下,這需要一個預期的 $ 2^{56} $ 收視率。

我們通常不知道攻擊者的能力有多精確,工作量增加 2 倍遠低於我們的不確定性(因此實際上是相同的)。

相比之下,2DES 可以用相同的近似工作量進行攻擊;然而,這樣做的算法需要大量記憶體,並且更難並行化(因此在實踐中更難做到)。

此外,如果您認為您的設計為每個測試的 DES 密鑰強制使用兩個 DES 密鑰調度,那麼事實並非如此。由於 DES 密鑰互補屬性,我們有:

$$ DES(DES(x,k),\overline{k}) = \overline{ DES( \overline{ DES(x, k) }, k)} $$

因此,可以通過對同一密鑰執行兩次 DES 評估和中間補充來測試密鑰。

引用自:https://crypto.stackexchange.com/questions/75984