Encryption
為什麼需要 OCB 模式下的第二個 XOR 操作?
在 Rogaway 的 OCB 模式中,偏移量(從密鑰導出)進行了兩次異或相加:一次到明文塊,第二次在加密之後。
我想知道,為什麼第二個 XOR 操作是必要的。我相信這個設計的靈感來自於 DESX 引入的 XEX 結構。在這種情況下,需要第二個異或來防止中間攻擊,但這對 OCB 來說並不是真正的問題。
我想知道,為什麼第二個 XOR 操作是必要的。
如果省略,則密文塊的任意排列將不會修改標籤,因此不會檢測到任何此類修改。
在解密方向上,校驗和(這是標籤所依賴的)是由 AES 塊解密生成的所有值的異或,與密鑰/隨機數相關的常數(這是所有增量的異或,但這不是重要的)。如果您置換密文塊,那麼您將執行塊解密(這將導致相同的中間明文,只是順序不同);它們將異或到相同的值(使用相同的鍵/隨機數相關常數異或),因此不會修改校驗和,因此不會修改標籤。
第二個 XOR 操作可以防止這種情況;使用第二個異或,密文塊的排列將改變呈現給 AES 的內部密文塊列表(在解密方向),因此改變由 AES 生成的內部明文塊列表。
我相信這個設計的靈感來自於 DESX 引入的 XEX 結構。
沒有; 菲爾·羅加威(Phil Rogaway)做他設計的事情有一個具體的理由……