查找 IV 以偽造具有非固定 IV 的 AES CBC-MAC
由於 CBC 模式可能會進行幾輪,如何找到另一個 IV 進行偽造攻擊?
這是我課程中的一個範例:假設您收到一對帶有明文的 $ P_1 $ 及其 MAC 使用原始 $ IV_1 $ . 如果你想改變 $ P_1 $ 到另一個明文 $ P_2 $ , 如何找到 $ IV_2 $ ?
正如解釋中所說,該過程可能是:
$ MAC = E(P_1 \oplus IV_1) $
$ MAC = E(P_2 \oplus IV_2) $
所以,
$ IV_2 = P_1\oplus IV_1 \oplus P_2 $
為什麼有可能?
我用cryptool2測試它,但它不起作用……
這是 MAC 偽造的展示。這不是 IV 始終設置為零的CBC-MAC,並且還有 ECBC-MAC 作為加密最後一個不需要事先消息長度來保證安全的塊。
給定一個 MAC,它的明文 $ P_1 $ , 和 $ IV_1 $ 在這個簡單的 CBC-MAC $$ MAC_1 = E(P_1\oplus IV_1) $$
我們想以此為基礎偽造簽名;
$$ MAC_2 = E(P_2\oplus IV_2) $$
我們想要一個偽造品,甚至不知道鑰匙。由於 IV 不是固定的,我們可以玩弄它。
設置一個 IV 使得帶有明文的結果 X-or 將等於給定消息及其 IV。明文不同,但 MAC 值相同;贗品!
拿 $ P_2 $ 是要偽造到簽名中的目標消息。
拿 $$ IV_2 = \underbrace{P_1\oplus IV_1}{\text{cancel part}} \oplus \underbrace{P_2}{\text{target message}} $$
查看 $$ P_2 \oplus IV_2 = P_2 \oplus P_1\oplus IV_1 \oplus P_2 $$
簡化 $$ P_2 \oplus IV_2 = P_1\oplus IV_1 $$
而且,這是偽造的,因為我們有不同的消息和 IV,它是 x 或等於給定的 MAC。這可能發生,因為攻擊者可以選擇 IV。為了減輕在 CBC-MAC 中固定的 IV。
由於 CBC 模式可能會進行幾輪,如何找到另一個 IV 進行偽造攻擊?
上面的例子是針對一個塊的消息。對於多個塊,只需將第一個塊設置為如上,其餘塊保持相同。這將是此簽名方案上的多個塊消息偽造。