Encryption
使用具有固定 IV 和隨機第一個明文塊的 CBC
如果我不是以正常方式使用隨機 IV 的 CBC 模式,而是使用以下方法,該怎麼辦:
- 使用固定的 IV(如 0 塊)。
- 在加密之前,生成一個隨機塊並將其添加到明文中。
- 解密後,忽略第一個塊。
這在安全性方面與使用隨機 IV 完全相同嗎?
另外,如果我在步驟 2 中使用消息計數器而不是隨機塊,會有什麼不同嗎?
該方法的安全性與普通 CBC 的安全性相同。
您的方案與第一個明文塊 $ IV^\prime $ 與正常 CBC 明顯相同 $ IV=AES(IV^\prime) $ . 由於塊密碼是對塊的排列,因此對於普通 CBC,均勻隨機的第一個明文塊將導致均勻隨機的 IV。
使用您的方案生成的密文與普通 CBC 具有相同的性質。即你可以用你的算法解密一個普通的CBC密文,你可以用普通的CBC解密你的算法產生的密文。
您的方案的唯一缺點是每條消息需要額外呼叫一次 AES。密文大小沒有差異,並且除了單個呼叫之外沒有 CPU 成本。
一個有趣的問題是,獨特但不可預測的 IV 會發生什麼。我懷疑你的計劃在這種情況下是安全的,不像普通的 CBC。但我沒有證據證明這一點。