Block-Cipher
為什麼 CBC 模式加密中的錯誤傳播會影響兩個塊?
來自維基百科:
錯誤傳播
通常將“錯誤傳播”屬性作為操作模式的選擇標准進行討論。例如,可以觀察到,傳輸的密文中的一個塊錯誤將導致 ECB 模式加密的重構明文中的一個塊錯誤,而在 CBC 模式下,這樣的錯誤會影響兩個塊。
我以前讀過這個類似的文章。而且我可以理解,在CBC 解密中,由於錯誤傳播(1 個塊中的錯誤),只有兩個塊受到影響。
但是,對於CBC 加密中的相同情況,為什麼仍然只有兩個塊受到影響?看起來以下所有塊都會受到影響。
CBC模式下的加密過程執行為 $$ \begin{align} C_1 &= Enc_k(P_1 \oplus IV)\ C_i &= Enc_k(P_i \oplus C_{i-1}),;; 1 < i \leq nb, \end{align} $$ 在哪裡 $ nb $ 是塊的數量。
CBC 是為連結而設計的,因此在加密時,如果位置有一個塊錯誤 $ i $ ,它將影響密文的其餘部分。這也可以從下面看到,如果寫加密方程 $ j $ -第塊。
$$ C_j = Enc_k(P_j \oplus Enc_k(P_{j-1} \oplus \cdots Enc_k(P_1 \oplus IV)\cdots)). $$如果 $ i < j $ 然後 $ j $ -th 明文塊將受到影響。
但是,在對密文進行解密時,即對包含錯誤塊的明文進行加密,您只會得到一個有錯誤的塊,即錯誤的明文塊。或者簡單地說,如果密文塊上沒有錯誤/損壞,您將獲得加密的內容。
**注意:**如果其中一個密文塊出現錯誤,取決於密文塊的索引,它可能會影響一個或兩個明文塊。如果最後一個密文塊被破壞,則一個塊,否則兩個塊,請參見位翻轉攻擊以視覺化。問題在於明文上的錯誤。