Encryption

傳播密碼塊連結操作模式 (PCBC) 的正確性

  • November 14, 2020

我正在查看有關塊密碼操作模式的 Wikipedia 文章,我想知道您如何從加密中獲得 $ C_i = E_K(P_i \oplus P_{i-1}\oplus C_{i-1}) $ 得到解密 $ P_i = D_K(C_i) \oplus P_{i-1}\oplus C_{i-1} $ ?

有沒有辦法從加密中解密(反之亦然)?

PPCBC 模式的工作原理

Propagating Cipher Block Chaining mode of operation (PCBC) 與消息索引一樣工作,從 1 開始;

  • 對於 PCBC 加密,我們有;

$$ C_i = E_K(P_i \oplus P_{i-1}\oplus C_{i-1})\text{ and } \color{red}{C_0 = P_0 \oplus IV} $$

  • 對於PCBC解密已經有了;

$$ P_i = D_K(C_i) \oplus P_{i-1}\oplus C_{i-1}\text{ and } \color{red}{C_0 = P_0 \oplus IV} $$

給定 $ C_1 $ 解密 $ P_1 $

$$ P_1 = D_K(C_1) \oplus P_{0}\oplus C_{0} = P_1 $$

給定 $ C_2 $ 解密 $ P_2 $

$$ P_2 = D_K(C_2) \oplus P_{1} \oplus C_{1} $$現在我們可以解決,因為我們知道, $ P_1 $ 我們都有 $ C_i $ s。

等等…

您的問題中缺少紅色部分。


PCBC模式的正確性

加密方案必須滿足正確性要求;每把鑰匙 $ k $ 密鑰生成算法和每條消息的輸出 $ m \in \mathcal{M} $ ( $ \mathcal{M} $ 是消息空間),以下必須成立;

$$ D_k(E_k(m)) = m $$


看PCBC是否正確;拿

$$ C_i = E_K(P_i \oplus P_{i-1}\oplus C_{i-1}) $$兩邊取解密

$$ D_K(C_i)= \color{red}{D_K}(\color{red}{E_K}(P_i \oplus P_{i-1}\oplus C_{i-1})) $$用 Dec. 取消 Enc。

$$ D_K(C_i)= P_i \oplus P_{i-1}\oplus C_{i-1} $$

所以:

$$ P_i = D_K(C_i) \oplus P_{i-1}\oplus C_{i-1} $$

既然我們知道,所有 $ C_{i} $ s,之前解密的 $ P_{i-1} $ .

如果是第一種情況 $ (i=1) $ , 那麼我們已經知道了 $ \color{red}{C_0 = P_0 \oplus IV} $

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