Ecb

如果在 3DES 中加密的 8 字元字元串的後半部分始終相同,這意味著什麼?

  • November 6, 2013

在最近的 Adob​​e 密碼洩露中,大概是在 3DES ECB 中加密的,所有 8 字元密碼的後半部分是相同的:ioxG6CatHBw==

來源:http ://pastebin.com/iDTFARwq (根據明顯的密碼提示猜測)

L8qbAD3jl3jioxG6CatHBw== password
BB4e6X+b2xLioxG6CatHBw== adobe123
j9p+HwtWWT/ioxG6CatHBw== 12345678
rpkvF+oZzQvioxG6CatHBw== iloveyou
2dJY5hIJ4FHioxG6CatHBw== sunshine
Ttgs5+ZAZM7ioxG6CatHBw== princess
Dts8klglTQDioxG6CatHBw== computer
y7F6CyUyVM/ioxG6CatHBw== superman
2hD1nmJUmh3ioxG6CatHBw== asdfasdf
cSZM/nlchzzioxG6CatHBw== 1q2w3e4r
e+4n2zDarnvioxG6CatHBw== 1qaz2wsx
ueE89xIj8RTioxG6CatHBw== internet
ietF94QrMIbioxG6CatHBw== michelle
ecW6IyEemknioxG6CatHBw== football
lVwka/Mn8TPioxG6CatHBw== baseball
ghrvkwCcX4bioxG6CatHBw== jennifer
eOsrbcW/PeTioxG6CatHBw== abcd1234
Nz4/TI6o5RrioxG6CatHBw== trustno1
iMhaearHXjPioxG6CatHBw== whatever
OPQxDLW2L+DioxG6CatHBw== 11111111

它是否允許猜測使用的密鑰選項或其他 3DES 加密屬性?

DES 的塊大小為 8 個字節。因此,兩個塊達到 16 個字節。

看起來 Adbobe 在 ECB 模式下使用兩個 3-DES 塊加密密碼。

因為所有這些密碼都是八個字節長,所以第二個塊是空的,只是用零填充。由於密碼的位置 9 處的字元串終止 NUL 字元,第二個塊完全開始。塊的其餘部分填充的字元也是 NUL。因為我們處於 ECB 模式,所以這個塊每次都加密為相同的值。

這就是為什麼所有這些密碼都有相同的八個尾隨字節:ioxG6CatHBw==。這只是使用密鑰加密 64 個零位時獲得的字節序列。

注意:我將忽略以下文本中的 base64 編碼;base64 編碼不會改變生成密文的屬性。

您遇到的是與 ECB 模式一起填充。此填充可以是任何靜態填充。最常見的是 PKCS#5 填充,但零填充也是可能的。無法測試使用了哪個填充,除非您讓程序加密一個“密碼”,該“密碼”包含一個 8 個零或 8 個字節08為 PKCS#5 值的塊。在這種情況下,您會期望生成相同的字節。

最後相同的密文塊不是問題,而且肯定找不到密鑰(除非分組密碼失敗,或者密鑰可猜測,否則永遠不可能找到)。然而,使用歐洲央行一個問題。通過塊的二進制比較可以很容易地檢測到相同的 8 個字元串。眾所周知,ECB 加密不應用於字元串。

這取決於密碼的使用,但一般來說,儲存密碼(即使加密)是不安全的,也不需要儲存密碼才能登錄網站。為此,應使用基於密碼的密鑰派生函式(PBKDF2、bcrypt、scrypt)。如果需要額外的加密層,可以使用額外的秘密鹽。

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