Block-Cipher

無 IV 的 OFB 或 CTR 模式

  • October 28, 2013

我在這裡閱讀 SSL 規範。

有趣的事情似乎是 RC4 沒有為每條消息重新鍵入新的 IV。流密碼狀態簡單地轉移到下一條記錄。為什麼這是安全的?消息不應該用不同的IV加密嗎?老實說,這是我對 IV 不完全理解的一部分:每條消息都需要不同的 IV,但什麼才是消息?完整的記錄流?一個記錄?

CBC 模式對每個塊都有不同的 IV。

我的問題是,像 OFB 或 CTR 這樣的流密碼操作模式怎麼樣?我是否需要為每條小記錄提供新的 IV,或者我可以做 SSL 對 RC4 所做的事情,只保留密碼狀態?這有什麼不安全的嗎?WEP 似乎在做 new-IV-per-packet 的事情,這似乎導致了它的垮台。為什麼?

owlstead 的答案及其評論很好地涵蓋了 WEP 部分。

這個答案集中在 CTR 和 OFB 上。

嚴格來說,CBC、CFB、CTR 和 OFB 模式總是使用 IV 或計數器。我假設問題更像是是否可以在不傳輸 IV 的情況下安全地使用 CTR 或 OFB 模式。即,例如,從所有零開始 IV/計數器並為每條消息遞增計數器。這似乎是可能且安全的。(只要你足夠小心,不要重複使用相同的計數器+鍵組合。)

為 CTR 和 OFB 模式選擇 IV 的詳細資訊

IV(/nonce in CTR 和 OFB 模式的答案可在文件NIST SP 800-38A: Recommendation for Block Cipher Modes of Operation中找到,它描述了這些模式。本文件在附錄 B 和 C 中介紹了 NIST 選擇 IV 的各種建議/counter 用於 CBC、CFB、CTR 和 OFB。長話短說,對於 CTR 和 OFB 模式,IV/counter 使用的對於同一密鑰始終是唯一的就足夠了,只要它對於每次加密呼叫也是唯一的手術。

換句話說,計數器適用於 CTR 和 OFB。在 OFB 模式下,使用來自先前操作的密文作為 IV 是不安全的,這種做法經常與例如 CBC 模式一起使用。NIST 規範的語言可能具有誤導性。Rogaway對密碼操作模式進行了評估,您可能會發現它更易於閱讀和理解,並且包含許多額外的細節。

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