Encryption
OFB模式討論
在OFB模式下,我明白有點翻轉 $ c_i $ 為了 $ i > 0 $ 只會導致消息塊中的位翻轉 $ m_i $ . 但是,怎麼可能有點翻轉 $ c_0 $ (即在 IV 中)將導致所有明文塊都被錯誤地恢復。
OFB模式通過將上一個加密的輸出回饋為下一個塊的輸入來產生一個流;
$$ O_j = E_K(I_j) $$ $$ I_j = O_{j-1} $$ $$ I_0 = IV $$
輸出流 $ O_j $ 用於 x 或根據加密/解密模式生成密文/明文。
- $ C_j = P_j \oplus O_j $ 用於加密
- $ P_j = C_j \oplus O_j $ 用於解密。
現在,如果您修改 IV,則輸出 $ O_1 $ 會變成別的東西。然後下一個流輸入 $ I_2 $ 將使用此更改後的輸出作為輸入,以便 $ O_2 $ 也變了。接下來是其餘的,您將獲得不同的輸出流,這將導致不同的解密明文。
可以從下圖中的紅色位翻轉和受影響的紅線得出;
綠色用於密文修改的效果。