Aes
AES-CBC 解密到錯誤的輸出?
我認識的人向我展示了這一點,我無法解釋為什麼會發生這種情況。我錯過了什麼嗎?
他們對文本進行加密,輸出真的是可以猜到的。 $ u\to t $ , $ i\to h $ (後面是一個字母), $ ? $ 只是空格。
他們用 IV 欺騙你。加密和解密的 IV 必須相同,以便加密具有以下功能;
$$ m = D_k(IV,E_k(IV,m)) $$ 令您驚訝的是,他們根據自己的意願修改了 IV,但您沒有看到。這是對 CBC 模式的 Bit-Flipping 攻擊的更一般情況。
這種攻擊是有效的,因為消息只有一個塊,並且 IV 上的更改只修改了第一個塊。那裡沒什麼特別的。
選擇一把鑰匙 $ K $ . 選擇一個單塊消息 $ m $ 和所需的密文 $ c $ . 然後計算 CBC 的 IV,如下所示:
$$ c=E_K(IV\oplus m)\iff D_K(c)\oplus m=IV $$
在哪裡 $ E_K $ 是密鑰下的AES加密 $ K $ 和 $ D_K $ 是對應的解密和 $ \oplus $ 是按位異或。
現在你有了映射的 IV $ m $ 至 $ c $ 在鑰匙下 $ K $ 他們三個都可以自由選擇。