Des

如何在 ECB 模式下解密 3DES(使用單詞表)?

  • June 26, 2014

我有一些加密文本(在沒有鹽的 ECB 模式下使用 3DES 加密)。

我的問題:如何使用單詞表解密它們?(或沒有)

例子:

加密文本:

Xfi+h4Ir6l7zXCP+N4EPvQ==

這個詞表:

foo
bar
marketing

原始文本在加密之前是:“行銷”(只是為了使範例完整)。

你有一個密文(或者可能是多個),一個可能的明文列表,但沒有密鑰。因此,您的過程將是

  1. 生成隨機解密密鑰
  2. 使用該密鑰解密密文(首先使用 base64 解碼 CT)
  3. 查看結果是否出現在您的可能明文列表中
  4. 如果是,則返回該明文;否則轉到 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 模式不同)。因此,如果從單詞列表中選擇明文,則行銷是唯一的候選者。

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