Encryption

使用 CBC 模式的理論 OTP 上的 CPA

  • May 12, 2016

問題主體

注意:這是理論練習。我了解 OTP 和 CBC 相處不來。

我必須在使用 OTP 作為加密算法的 CBC enc-mode 上找到一個 CPA,只為每條新消息生成一個新密鑰,而不是為每個塊生成一個新密鑰。

第二個問題是這種方法是否根本不安全,或者對於奇數塊或偶數塊可能是安全的?

我自己嘗試過的

我可以看到自己在偶數塊的情況下,最後取消了密鑰(感謝CBC),所以我得到的是 $ IV \oplus P_1 \oplus…\oplus P_n $ ,但想不出用 CPA 的 IND 測試區分兩條消息的方法。

基本上我可以計算每個塊 $ m_1,m_2 $ 我用於測試,但隨機 IV 將阻止我知道從測試中檢索到的密文是什麼消息……

那麼奇怪的情況呢?

有任何想法嗎?

對於任何超過一個塊的消息,Scheme 不是 IND-CPA。我將在下麵包含一張 CBC 模式的圖像以供參考(來源:維基百科)。

在此處輸入圖像描述

假設我們使用您建議的密鑰對明文進行異或運算,而不是分組密碼加密。您會注意到對於消息塊 1, $ M_1 $ , 密文塊 $ C_1 = M_1 \oplus IV \oplus Key $ . 相似地 $ C_2 = M_2 \oplus C_1 \oplus Key $ 代替 $ C_1 $ 我們得到 $ C_2 = M_2 \oplus M_1 \oplus IV \oplus Key \oplus Key $ 這減少到 $ C_2 = M_1 \oplus M_2 \oplus IV $ . 知道了這一點,我們可以建立一個區分器 $ D $ .

假設我們發送兩條消息 $ M0 $ 和 $ M1 $ 到加密預言機並返回 $ C $ . $ D $ 將採取 $ C $ 並檢查是否有 $ C_2 = M0_1 \oplus M0_2 \oplus IV $ 或者 $ C_2 = M1_1 \oplus M1_2 \oplus IV $ (請注意, $ IV $ 不是秘密),返回對應的明文 $ C $ . 顯然,這個區分器具有不可忽略的優勢,因此對於超過一個塊的消息,該方案不是 IND-CPA。

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