安全 MAC 和安全加密方案結合起來形成不安全的身份驗證加密?
我正在閱讀 Authenticated Encryption 並且無法真正理解如何將一般安全的 MAC 和一般安全的加密方案組合成不安全的 AE 方案,例如在 MAC-and-Encrypt 中。我只需要連結到資源就可以了,這樣我就可以自己閱讀更多相關資訊。
- 考慮使用順序隨機數的 AES-CTR 密碼和消息明文上的 HMAC-SHA256 MAC 的 MAC 和加密。
顯然,它們分別是一個安全密碼和 MAC,但是兩次發送相同的明文,並且對手知道它是相同的明文。(也驗證隨機數,但是這個特殊問題就消失了。) 2. 對於 128 位字元串 $ m $ , 定義 $ E_{k_1}(m) = \operatorname{AES}{k_1}(m) $ , 和 $ M{k_2}(m) = \operatorname{AES}_{k_2}(m) $ .
顯然,這些分別是安全密碼和(作為 PRF 的 PRF 近似)安全 MAC,但如果 $ k_1 = k_2 $ ,而不是為 MAC 使用獨立的密鑰並按您應該的方式加密(或顯然獨立的密鑰,從 PRF 的主密鑰派生,例如HKDF),當您嘗試編寫這些密鑰時會發生不好的事情。
關於密碼和 MAC 的通用組合安全性的標準參考是Bellare 和 Namprempre 2004。假定的已驗證密碼有多種標準安全概念:不可區分性 (IND-) 或不可延展性 (NM-),在選擇明文攻擊 (-CPA) 或自適應選擇密文攻擊 (-CCA2) 下;明文 (INT-PTXT) 或密文 (INT-CTXT) 的不可偽造性。
Bellare 和 Namprempre 為這些安全屬性之間的所有含義和非含義證明或提供了反例。他們還證明或提供反例來證明 MAC-then-encrypt (MtE)、encrypt-and-MAC (E&M) 和 encrypt-then-MAC (EtM) 通常獲得或未獲得的安全屬性*,這些密碼由在以下情況下無法區分的密碼組成選擇明文攻擊(IND-CPA)和在選擇消息攻擊下不可偽造或強不可偽造的 MAC(UF-CMA,SUF-CMA)。 結果適用於任何確定性或隨機性、無狀態或有狀態、密碼和 MAC,只要解密和驗證是確定性和無狀態的。
如果像我一樣,您發現這些安全概念令人眼花繚亂,您可能會發現可以將它們收集到一個經過身份驗證的加密概念中,這意味著 IND-CCA2 和 INT-CTXT(它們共同暗示所有其他概念,並且是等價的IND-CCA3的另一個概念),它又可以擴展到具有關聯數據的經過身份驗證的加密。但 Bellare 和 Namprempre 的論文有助於研究概念之間的關係,以及通用組合的反例,在這些組合中直覺可能會導致我們誤入標准定義未提供的錯誤安全感。
**請注意,這個故事可能比簡單地為分組密碼選擇“操作模式”並選擇 MAC 更複雜一些,**因為一切都在為分組密碼選擇操作模式的錯誤範式中,這是一個令人困惑的範式那應該被丟在歷史的垃圾箱裡了。
例子。如果您選擇 CBC 模式,那麼您需要決定如何處理不完全是 128 位長度的倍數的消息。您可以選擇 AES-CBC-PKCS7。但是,如果您嘗試在(例如)MAC-then-encrypt 中應用它,您實際上擁有 MAC-then- format -then -encrypt,而相反的過程是解密-然後-解析-然後-驗證。在驗證階段之前發生了很多事情,因此這暴露了填充預言機攻擊的機會,因為對手可能擁有的不僅僅是自適應選擇密文攻擊模型中假定的解密預言機。
即使您只有一個 UF-CMA MAC 而沒有一個 SUF-CMA MAC,您最好記住 encrypt-then-MAC 作為您的首選組合,而不是使用 MAC-then-encrypt。 儘管完全安全地使用 EtM 和 MtE 提供了相同的安全屬性(IND-CPA 和 INT-PTXT),但除了 EtM 之外的任何東西都會讓您暴露於密碼學末日原則,因為您很容易接觸未經身份驗證的數據,這純粹是邪惡的。
- **劇透警告:**只有具有 IND-CPA 密碼和 SUF-CMA MAC 的 EtM 通常提供所有安全屬性。帶有 IND-CPA 密碼和 UF-CMA MAC 的 EtM 和 MtE 通常提供 IND-CPA 和 INT-PTXT。使用 SUF-CMA 而不是 UF-CMA,MtE 仍然不提供 IND-CCA2 或 INT-CTXT,因為密碼可能具有延展性。E&M 甚至一般不提供 IND-CPA。