Authenticated-Encryption
ECB模式真的會洩露一些字元嗎?
在一篇關於 Adobe 在 ECB 模式下使用 3DES 的Ars Technica 文章中,有一段
根據密碼專家史蒂夫“Sc00bz”托馬斯的說法,密碼以一種稱為 ECB 的模式加密。對於 Adobe 工程師來說,這是一個糟糕的選擇,因為 ECB 經常洩露有關密碼的資訊,例如密碼的最後幾個字元和一些長度。在某些情況下,例如,以 結尾的密碼
e
將生成以n2auThm2+Q==
;結尾的加密字元串。那些 9 或 17 個字元長的字元有時會以mfZq5OGbb5
.真的是這樣嗎?
文章提到在 ECB 模式下使用 3-DES 加密這些密碼。DES 有一個 64 位/8 字節的塊。
因此,假設您使用 ECB 加密九字節密碼。前 8 個字節使用 ECB 加密。到現在為止還挺好。
但是當我們來到第九個字節時會發生什麼?好吧,我們現在在一個新塊中,但只有第一個字節填充了任何數據。其餘為零(假設不使用填充)。
這意味著對於所有九字節密碼,第二個塊只有 256 種可能的加密。有了足夠大的數據庫,就比較容易猜出這些加密是什麼。如果你有一本常見的九個字元密碼的字典,那麼僅僅對密碼最後一個字元的頻率進行分析並與第二個 ECB 塊的頻率進行比較就足夠了!
所以是的,這一段是正確的。這是他們使用的方案中的一個重大漏洞。