Cbc

密碼塊連結,但首先加密純文字,然後與 IV 異或

  • February 22, 2020

我剛剛了解了 CBC 操作模式,它通過將明文 m0 與隨機 IV 異或然後用隨機密鑰對其進行加密來提供密碼,我發現如果 IV 可以預測,CBC 不是 CPA 安全的。

我正在考慮一種新模式,例如,如果 CBC 通過加密純文字然後與 IV 異或,它仍然是 CPA 安全嗎?並且仍然可以通過 CPA 攻擊來預測 IV 嗎?

$ C_0 = IV \oplus E(P_0) $ 和 $ C_i = C_{i-1} \oplus E(P_i) $ 為了 $ i>0 $

我的猜測是它不安全,因為我沒有加密 IV,我只用 E(m) 異或,攻擊者可以對 E(m) 進行 CPA 攻擊,然後用他猜到的 IV 異或然後可以將其與 Cipher 進行比較並猜出密鑰。

這是一個非常糟糕的主意$$ C_i = C_{i-1} \oplus E(P_i). $$密文洩露了每個明文塊的確定性函式,如 $$ C_i \oplus C_{i-1} =E(P_i). $$現在竊聽者可以很容易地判斷是否 $ P_i = P_j $ 通過檢查是否$$ C_{i-1} \oplus C_i = C_{j-1} \oplus C_j. $$

好吧,你當然猜對了。如果您知道或猜到 IV 的重要部分,則很容易區分任何初始塊。

即使您只看第一個塊,這也很容易看到:

$$ C_0 = IV \oplus E(P_0) $$

比如說 $ IV $ (部分)已知;在這種情況下 $ E(P_0) $ 以特定的 $ E(P_0) $ . 現在很明顯,如果我們有消息 $ P’ $ 在哪裡 $ P’_0 = P_0 $ 然後你可以比較 $ C’_0 = C’_1 $ 如果 IV 是完全已知的。

如果有關 IV 的資訊不完整,那麼您可以使用任何函式來比較兩個可以預測的密文,其機率高於 $ 1 / 2^{128} $ 這兩個密文是相同的。


如果您想尋找更好的 CBC,那麼您可以使用:

$$ IV = E(IV’) $$

這樣,IV 是一些可預測但唯一數據的鍵控隨機排列 $ IV’ $ (即非隨機隨機數)。其結果應該仍然是不可預測的。這應該對密碼的安全性影響最小(假設它僅用於 CBC)。

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