Des
如何在 ECB 模式下解密 3DES(使用單詞表)?
我有一些加密文本(在沒有鹽的 ECB 模式下使用 3DES 加密)。
我的問題:如何使用單詞表解密它們?(或沒有)
例子:
加密文本:
Xfi+h4Ir6l7zXCP+N4EPvQ==
這個詞表:
foo bar marketing
原始文本在加密之前是:“行銷”(只是為了使範例完整)。
你有一個密文(或者可能是多個),一個可能的明文列表,但沒有密鑰。因此,您的過程將是
- 生成隨機解密密鑰
- 使用該密鑰解密密文(首先使用 base64 解碼 CT)
- 查看結果是否出現在您的可能明文列表中
- 如果是,則返回該明文;否則轉到 1
這是一種基本的蠻力攻擊,不會在任何合理的時間內起作用。原因是 3DES 的密鑰太大。使用 ECB 是不好的,但這並不一定意味著某些東西很容易被破解,並且通常需要大量密文才能產生破解(至少在我們正在討論的目前應用程序的情況下,其他應用程序可能會被渲染完全不安全由於歐洲央行的使用)。
在 base64 解碼後,我們得到 (hex)
5d f8 be 87 82 2b ea 5e f3 5c 23 fe 37 81 0f bd
,其大小為兩個塊。在你的小單詞列表中,只有行銷有這麼多字母,它需要兩個塊:
m a r k e t i n
作為第一個,g 07 07 07 07 07 07 07
作為第二個(或另一個填充,但這是一個常見的填充),因此可以對應這個密文。像這樣的詞
foo
適合一個塊,例如:f o o 05 05 05 05 05
,因此會給出一個 8 字節的結果。並不是說我們確實使用了 ECB 模式(沒有像 CBC 這樣的額外 IV 數據,一個塊轉到一個塊,我們需要填充,這與 CTR 模式不同)。因此,如果從單詞列表中選擇明文,則行銷是唯一的候選者。