Cbc
Cryptool - DES(ECB 和 CBC) - 雙重加密
因此,我在 Cryptool 中上傳了一個文本文件,並使用密鑰 DES-ECB 對其進行了加密
FF FF FF FF FF FF FF FF
。我使用相同的密鑰使用 DES-CBC 再次加密了密文。然後,我再次使用 DES-CBC 對獲得的文本進行了加密。前 8 個字元與 ECB 的加密文本匹配。它的其餘部分是不同的。我想知道為什麼這 8 個字元相似,為什麼其餘字元不相似?如果有人可以向我解釋這一點,那將非常有幫助。
有幾件事正在發生:
- 首先,DES 密鑰
FF FF FF FF FF FF FF FF
恰好是“DES 弱密鑰”;我們的意思是,如果您通過密碼兩次發送一個塊,它將以原始值結束;那是:$$ X = DES_{weak}( DES_{weak} ( X )) $$
- 您顯然是在 CBC 模式下使用零 IV 進行加密。
那麼,讓我們看看在加密過程中第一個塊會發生什麼。他稱該明文塊的初始值 $ A $ (
44 6F 75 62 6C 65 20 65
在你的例子中)
- 首先,您以 ECB 模式加密文本。對於第一個塊,這只是通過 DES 發送它,從而產生我們稱為的密文塊 $ B $ (
A3 77 A8 0A AD 2B EA 6E
在你的例子中:$$ B = DES_{weak}(A) $$
- 然後,您在 CBC 模式下對其進行加密(IV 為零)。對於第一個塊,這個異或的塊與IV,並通過DES 發送。因為我們使用的是弱密鑰,所以這會導致原始 $ A $ 塊,如:
$$ DES_{weak}(IV \oplus B) = DES_{weak}(B) = DES_{weak}(DES_{weak}(A)) = A $$
- 最後,您在 ECB 模式下再次加密文本。對於第一個塊,這只是重做我們在第一遍中所做的(因為第一個塊與它的值完全相同):
$$ B = DES_{weak}(A) $$ 現在,第二個塊不會發生這種情況;這是因為第二遍中的 CBC 模式。CBC 模式在第一個塊的值中異或,因為它不為零,所以第二個等式不成立。