Block-Cipher

為什麼 ECB+CTR 不是一回事?

  • September 27, 2019

AES-CTR 的並行性和簡單性很好,但如果你複製一個 IV,你就會顯示明文。

CFB 和 CBC 等連結模式本身沒有這個問題,但它們不可並行化。(CBC 類型的模式也有填充問題,但這是一個單獨的問題。)

樸素的 ECB 模式並不安全,因為它以明文形式顯示結構,如此處所示

但是,如果您在 ECB 模式中添加了一個計數器,並將每個明文塊與該計數器進行異或運算,則可以避免該問題。

正如我所看到的,與 CTR 相比的優勢在於複製 nonce/IV (或沒有 nonce/IV)將不允許實際的明文恢復。它可能會顯示重複,但僅此而已。在無 IV 的情況下,重複消息將具有重複的密文,但這再次僅揭示消息重複但不會損害保密性。

顯然,您需要某種填充,但這又是一個單獨的問題。

為什麼這種模式不是一個東西?這樣的模式會不會有一些我看不到的問題,或者它只是被認為是不必要的?

但是,如果您在 ECB 模式中添加了一個計數器,並將每個明文塊與該計數器進行異或運算,則可以避免該問題。

這是非常不安全的。反例:考慮隨機數 $ 0^n $ 和明文 $ 0^{2n-1}|1 $ . 此模式將加密第一個塊 $ E(0^n) $ 第二塊是 $ E((0^{n-1}|1)\oplus(0^{n-1}|1))=E(0^n) $ 因此這兩個塊將匹配,顯示它們全為零且全零附加 1。這很容易破壞IND$-CPA 和 RoR-CPA 安全性(後者相當於更標準的 CPA 安全性)。

為什麼這種模式不是一個東西?

這種模式其實是一回事。只是不是問題中描述的幼稚公式。也就是說,如果你有一個幾乎異或通用的散列函式 $ H_K $ 用一些鍵鍵控 $ K $ 和一個分組密碼 $ E $ , 然後 $ H_K(T)\oplus E(M\oplus H_K(T)) $ 是一種安全的可調整分組密碼1。現在您可以在調整中放置一個計數器 $ T $ 並為每個塊更改它,以便交換攻擊不再像您從 ECB 知道的模式攻擊那樣起作用。事實上,可調整的分組密碼(模式)非常有用,他們認為XTS被廣泛使用(它基於上述結構的LRW,基本上所有磁碟加密軟體都使用這種模式的變體),並且是著名的快速OCB 模式


1:從技術上講,這建構了一個強大的可調整偽隨機排列。對於非強 TPRP,它實際上足以計算 $ E(M\oplus H_K(T)) $ 和最簡單的 $ H_K(T) $ 實際上是 $ K\cdot T $ 超過 $ F_{2^{128}} $ 與計數一起使用時 $ T $ 非常接近問題的結構,只是附加的秘密值會有所不同。

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