SIGMA 協議中的 MAC-then-encrypt 用於經過身份驗證的密鑰交換
2003 年提出並在 TLS 1.3 和 IKE 中使用的SIGMA 協議代表“SIGn-and-MAC”,可以選擇使用加密來保護身份。
下圖所示的 SIGMA-I 變體表明它使用 MAC-then-encrypt 方法:
這裡 $ {\dots }_{K} $ 表示在對稱加密函式下使用密鑰對括號之間的資訊進行加密 $ K $ .
是否有特殊原因使用 MAC-then-encrypt 而不是 encrypt-then-MAC 進行密鑰交換協議?在查看MAC-then-encrypt 和 encrypt-then-MAC 之間的比較時,我找不到比看起來更隨意的答案。
編輯:在 這個相關答案中連結的RFC 7366給出了一些提示,即 encrypt-then-MAC 應該是首選 (D)TLS 通信(沒有關於握手的說法)。它特別指出:
TLS 和 DTLS 使用 MAC-then-encrypt 結構,該結構在 1990 年代中期指定原始安全套接字層 (SSL) 協議時被認為是安全的,但不再被認為是安全的。
有趣的是,H Krawczyk(SIGMA 的作者)在 2001 年寫了保護通信的加密和認證順序(或:SSL 有多安全?) ——在SIGMA 之前。
Arnaud 讓我澄清這個問題。
確實應該使用經過身份驗證的加密模式或先加密 MAC,並且該論文明確說明了這一點。實際上,上圖之後的論文中的解釋性文本(https://webee.technion.ac.il/~hugo/sigma-pdf.pdf的第 5.2 節)解決了這個問題。它說:
我們強調加密功能(如第三條消息中所應用的)必須能夠抵抗主動攻擊,因此必須結合某種形式的完整性保護。組合的保密完整性轉換,例如來自
$$ 16 $$可以使用,或者可以使用傳統的加密模式(例如 CBC)和在密文之上計算的 MAC 函式$$ 3, 26 $$.
即,加密表示 $ {…}_{K_e} $ 需要使用經過身份驗證的加密方案。(附錄 B 中也重複了認證加密的需要,該附錄 B 顯示了 SIGMA-R 形式的更完整協議)。
加密下有一個 MAC(在身份上)的事實只是因為 MAC 是 SIGMA 協議的(必不可少的)部分,並且與加密完全無關(特別是即使您不關心保護身份也需要)。因此,雖然它看起來像“MAC-then encrypt”,但它與這種加密模式無關。
注意:正文中說僅第三條消息需要經過身份驗證的加密的原因是,正如同一段開頭所說,SIGMA-I 保護髮起者的身份免受主動攻擊者的攻擊,以及響應者的身份免受被動攻擊者的攻擊。攻擊者。因此,加密響應者的身份只需要針對未經身份驗證的加密就足夠的被動攻擊的安全性。這實際上是一種學術評論,因為實際上人們會對兩個流使用相同的加密方案,即對兩者都使用經過身份驗證的加密。