Aes

DES/AES如何通過提供不同的密鑰來保證加密的輸出是不同的?

  • August 28, 2019

我正在學習 DES 攻擊的中間相遇。我理解了它如何執行背後的基本邏輯;然而,另一個問題是:為什麼我們可以保證找到一****對k1 和 k2 ?

更進一步,DES如何保證通過使用相同的明文和不同的密鑰,加密的輸出永遠不會相同?

我正在學習 DES 攻擊的中間相遇。

我不知道對 DES 的任何中間相遇攻擊;我假設您在談論 2DES(您使用一個密鑰應用 DES $ k_1 $ ,然後使用另一個密鑰應用另一個 DES 迭代(可能在解密模式下) $ k_2 $ .

為什麼我們可以保證找到一對k1和k2?

我們沒有。事實上,如果我們只查看單個明文/密文塊,可能會有大約 $ 2^{48} $ $ k_1, k_2 $ 將該明文塊映射到該密文塊的對。

這不是主要障礙;我們通常假設我們有第二個可用於驗證的明文/密文塊;給了一個候選人 $ k_1, k_2 $ 對,我們在第二個明文塊上嘗試這些密鑰(看看我們是否得到第二個密文塊)。如果它通過了,那麼它很可能是正確的 $ k_1, k_2 $ 一對。

第二次檢查(我們可能需要執行 $ 2^{48} $ times) 比最初的 MITM 搜尋成本更低,因此我們在估計攻擊成本時大多會忽略該成本。

更進一步,DES如何保證通過使用相同的明文和不同的密鑰,加密的輸出永遠不會相同?

它沒有;我們通常假設不同的密鑰定義不同的 DES 排列(因此兩個不同的密鑰可以將同一個明文塊映射到同一個密文塊)。

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