為什麼 EAX 不是通用組合?
在文件http://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf (p. 7) Rogaway et. 人。聲明 EAX 不是加密和身份驗證方法的通用組合。
EAX 算法如下圖所示:
(圖片取自參考論文的第 7 頁,並通過省略相關數據進行了簡化)
因此,明文 M 由 CTR 分組密碼模式加密,生成的密文由 OMAC 標籤驗證。到目前為止,這看起來很像基於加密然後驗證的通用組合。這裡唯一特別的是,標籤 $ \mathcal{C} $ 不是最終標記,而是由標記的 nonce 異或 $ \mathcal{N} $ .
我的問題是:
- 為什麼不將 EAX 視為通用組合?
- 如果 EAX 是分組密碼模式加密和 OMAC 身份驗證的通用組合 $ \mathcal{C} $ 將用作身份驗證標籤 T 嗎?
**補充:**其實,我認為答案取決於觀點。
(1) 安全證明:通用組合的安全證明假定使用兩個不同的獨立密鑰進行加密和認證。由於 EAX 對兩者使用相同的密鑰,因此通用組合的安全結果不適用於 EAX。所以從這個角度來看,EAX 不是一個通用的組合。
(2)設計原則:當我們嘗試對AE算法進行分類時,可以看看它們是如何設計的。根據設計,通用組合是一種算法,它以獨立於原語的(通用)順序執行加密和身份驗證算法:例如,加密-然後-驗證、驗證-然後-加密等。在這個觀點我會將 EAX(以及 CCM)視為通用組合。
閱讀論文時,似乎有三個左右的屬性可以構成通用的身份驗證加密方法:
- 使用通用加密方法和 MAC;
- 兩個不同的密鑰用於兩者;
- 使用兩遍加密(通常比 MAC 加密)。
EAX 使用兩種定義明確的算法:AES 和 CMAC。所以看起來定義在(1)上失敗了。由於 EAX 僅使用 1 個密鑰,它也將始終在 (2) 上失敗。
但是是的,如果您不考慮特殊方式 $ \mathcal{N} $ 構造然後EAX輸出只是 $ \mathcal{C} $ 當涉及到 (3) 時,可以被認為是一個相對通用的結構。
加起來,我個人認為這應該是一個很大的NO,EAX 不是論文中定義的通用結構;只是輸出 $ \mathcal{C} $ 只會產生微小的差異。