Block-Cipher

為什麼我們只在 Counter Mode 中加密 nounce + counter?

  • May 13, 2018

我不明白,僅加密 nonce + Ctr 並將其異或到我們的明文,而不是加密所有內容的優勢是什麼。(如果我們的分組密碼可以很容易地解密)

轉向的其他缺點是什麼

$ c_i = E_k(n + i) \oplus m_i $

進入

$ c_i’ = E_k((n + i) \oplus m_i) $

這應該可以防止在不破壞整個塊的情況下翻轉一點,對吧?

這應該可以防止在不破壞整個塊的情況下翻轉一點,對吧?

是的,它確實這樣做了,但代價是失去了類似於歐洲央行的安全性。

因此,讓我們通過竊聽者的安全遊戲,為簡單起見選擇 $ n_1=0 $ 和 $ n_2=2^{32} $ .

  1. 挑戰者生成密鑰 $ k $ .
  2. 攻擊者生成兩條長度相同的消息 $ m_0=m\parallel (m+1) $ 和 $ m_1=m\parallel m $ 對於任意選擇 $ m $ 並送出。
  3. 挑戰者加密它們並返回 $ c_b=n_b\parallel \operatorname{CTR’}_k(m_b)=n_b\parallel c’\parallel c’’ $ 對於一個統一選擇的 $ b\in{0,1} $ .
  4. 對手檢查是否 $ c’=c’’ $ ,如果是,則返回 0,否則返回 1,並且此答案始終正確,因此針對竊聽者(!) 的安全性已被完全破壞。

雖然上面的內容既好又簡單,但它需要可預測的隨機數才能工作。fgrieu 在評論中提出了一種不可預測的隨機數的變體,對上述內容進行了以下修改:

  1. $ m_0=0\parallel 1 \parallel 0 $ (即第一個和第三個塊全為零,第二個塊只有 LSB 集)和 $ m_1=0\parallel 0\parallel 0 $ (即三個全零塊)
  2. 現在的加密是 $ c_b=n_b\parallel c’\parallel c’’\parallel c’’’ $
  3. 對手現在返回 1 如果所有三個 $ c’,c’’ $ 和 $ c’’’ $ 成對不同,否則對手返回 0。

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