Encryption

為什麼我們在 3DES 中使用 encrypt-decrypt-encrypt (EDE),而不是 3 次加密?

  • April 12, 2020

我想知道為什麼我們在 3DES(也稱為 DES-EDE、TDES 或 TDEA)中使用三個密鑰而不是三個不同密鑰的三次加密(EEE)中的加密-解密-加密(EDE)序列?

好吧,標準答案是保持與 DES 的兼容性;實現 3DES(帶有 EDE)的硬體電路也可以用於執行 DES(例如,使所有三個子密鑰相同)。

現在,這個直截了當的論點有一個小問題。3DES(EEE,即具有三個加密操作)也將具有此屬性;如果我們選擇前兩個子密鑰為同一個弱密鑰,第二次用弱密鑰加密將完全撤銷第一次,明文塊將由第三個子密鑰操作(這是我們真正想要的 DES 操作)。

然而,設計 3DES 的人並沒有錯過這一點。相反,他們也在考慮第三種選擇,即 2 密鑰 3DES(這是普通的 3DES,除了第一個和第三個子密鑰相同)。

現在,如果我們有一個具有三個獨立子密鑰的 3DES EEE 實現,我們可以支持 DES(使用弱密鑰技巧)、2 密鑰 3DES (EEE) 和 3 密鑰 3DES (EEE)。然而,這並不是他們想到的唯一情況。他們還考慮了有人在硬體中實現了 2 個密鑰 3DES 的情況(第一個和最後一個子密鑰被限制為相同)。這是 EEE 模式無法做到的一件事。我們不能使用 2 密鑰 3DES 的弱子密鑰技巧(如果我們使兩個相鄰的子密鑰成為相同的弱密鑰,那麼所有三個子密鑰都是相同的弱密鑰)。但是,EDE 技巧仍然有效。

因此,完整的答案是,一個硬體電路可以同時支持 DES 和 2 密鑰 3DES(硬體電路堅持對第一個和第三個子密鑰使用相同的子密鑰),並且一個硬體電路可以支持 DES,2 密鑰3DES 和 3 鍵 3DES。

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