Authenticated-Encryption
AES-GCM 的缺點
AES-GCM 模式用於認證加密有什麼缺點?為什麼CAESAR 競賽說找到比 AES-GCM 更具優勢的 AE 方案是目標之一?他們在談論什麼優勢?
AES-GCM存在以下問題:
- 在隨機數重用的情況下,完整性和機密性屬性都被違反了。如果相同的 nonce 被使用兩次,對手可以輕鬆創建偽造的密文。
- 當使用短標籤時,很容易產生消息偽造。例如,如果標籤是 32 位,那麼在 $ 2^{16} $ 偽造企圖和 $ 2^{16} $ 所選明文的加密(也是長度 $ 2^{16} $ ),可以產生偽造的密文。當發現足夠多的偽造品時,可以立即創建偽造品。
- GCM 安全證明存在缺陷。它最近已修復,但對於非 12 字節長的 nonce,新的安全邊界要差得多;
- 如果不使用特殊的 AES 指令,GCM 實現很容易受到時間攻擊。即使 AES 本身以恆定時間實現,該漏洞仍然存在。GCM 的恆定時間實現存在,但它們相當慢。
- GCM 將消息長度限制為 68 GB,這在將來可能是不可取的。允許在單個密鑰上加密的數據總量受限於 $ 2^{64} $ 塊,但如果允許長隨機數,這個數字會減少。
- GCM 的合理快速實現需要特定的查找表,在某些架構上不適合快速記憶體(L1 記憶體或類似的)。
- GCM容易受到循環攻擊;內部價值觀不好 $ H $ 可以針對特定 AES 密鑰值預先計算的密鑰會對安全性產生負面影響。
我想像 GCM 這樣的模式的問題之一(他們在簡短閱讀後提到了幾個)是隨機數濫用(例如重用)。當密鑰相同且 nonce 被重用時,通過誤解概念或簡單的程式錯誤,可以揭示有關純文字的資訊。
Phillip Rogaway 已經定義了一種加密模式(SIV,Synthetic IV),它試圖更強大地防止隨機數濫用。但它很慢,因為它需要處理兩次數據。它也不是“線上”的,因為第一個數據處理必須在第二個數據處理開始之前完成。