對 OCB2 的新攻擊是什麼,它是如何工作的?
OCB2 由 Rogaway 提出,Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC,並在ISO/IEC 19772:2009中標準化。作者還通過安全性降低提供了一個證明,即 OCB2 的破解意味著底層分組密碼的破解。
然而,Akiko Inoue 和 Kazuhiko Minematsu 描述了針對 OCB2 的實際偽造攻擊。
- 攻擊是如何工作的(在高層次上)?
- 為什麼安全降低證明失敗?
- 有什麼影響?
攻擊是如何工作的(在高層次上)?
這是如何計算最後一個加密塊的填充的不幸結果。pad 本質上可用於消除選定密文解密的分組密碼操作(允許攻擊者確定明文),並且pad 可用作此攻擊中的標籤。這太不可思議了。
攻擊製作一個特殊的初始明文,將其發送到加密預言機,接收密文和標籤,修改兩者,然後將它們發送到解密預言機,該解密預言機接受修改後的密文標籤(因此,偽造成功) .
修改後的密文(送出給解密預言機)將在解密時取消其分組密碼操作。有關其工作原理的詳細資訊,請參閱論文。這個想法的要點是用於最後一個(也是唯一一個塊)的填充具有與密文塊相同的塊密碼操作。換句話說,填充和密文都是數據與在同一輸入上呼叫的分組密碼異或的結果。由於 pad 與密文塊異或,我們基本上消除了唯一需要知道密鑰的操作,所以我們現在知道明文將是什麼。
修改後的密文的正確標籤原來是原始加密 oracle 呼叫中的 pad。這個填充只是初始明文的最後一個塊,它被發送到加密預言機,與預言機輸出的最後一個密文塊進行異或。因此,偽造只需要一個加密預言機呼叫。
我強烈建議您閱讀該論文以了解詳細資訊,自從您要求高水平以來,我一直試圖將所有數學都排除在外,但真正的魔力在於如何製作明文以及如何以某種方式修改密文攻擊者可以推斷出相應的標籤。
為什麼安全降低證明失敗?
安全性降低失敗是因為 XEX(xor encrypt xor)和 XE(xor encrypt)在 OCB2 模式下組合成 XEX* 的方式很微妙。問題是,即使加密函式(例如分組密碼)在理論上是安全的(考慮統一隨機排列),XEX* 也不是。
根據定義,在 OCB2 的安全證明中允許對手做什麼是有問題的。假設對手是標籤尊重的,即它只能向 XEX* 查詢帶有某些參數的加密和解密預言機,但 OCB2 的構造實際上以非常微妙的方式違反了這種標籤尊重屬性。我將再次向您推薦該論文以獲取詳細資訊,證明有點複雜,並且沒有好的方法可以徹底給出它而不重新重寫它。
強制執行此標籤尊重屬性的解決方案相當簡單,即使用 XEX 生成最後一個塊中使用的填充,而不是 XE。
有什麼影響?
此中斷非常特定於 OCB2,具體到它如何使用 XEX*。OCB1 和 OCB3 不受影響。應停止使用 OCB2 的 ISO 規範。對於需要快速修復的使用 OCB2 的部署,上面提到的使用 XEX 而不是 XE 填充最後一個塊的解決方案就足夠了。作者將此修改稱為 OCB2f,並斷言 OCB2 聲稱的安全邊界現在實際上是正確的。
我試圖在不涉及所有技術細節的情況下以可讀的方式回答(這相當於重寫論文),但真正理解攻擊及其影響的最佳方法是閱讀論文並了解數學攻擊如何工作的背後,以及它如何違反原始安全證明中的假設。