Initialization-Vector

在 MAC 中生成的標籤對於 CBC-MAC 中的相同消息是否相等?

  • October 8, 2021

用於生成消息驗證碼的密碼塊連結算法使用 0 IV 。所以我的理解是相同的消息會生成相同的 MAC,這似乎違反了語義安全。攻擊者可以通過查看 MAC 推斷出 2 條消息是相同的。我的直覺正確嗎?

首先,您似乎在談論密碼的語義安全性。所以我會從這個角度回答。畢竟,對於相同的消息,沒有安全要求 M​​AC 是不可區分的。

所以,從這個角度來看,你的直覺是正確的。但是,通常我們執行 encrypt-then-MAC,在這種情況下,IV 也應該包括在內。由於 IV 至少應該是唯一的並且密文應該是隨機的,因此即使對於相同的消息,我們也不應該獲得相同的 MAC。

只有當您執行“加密和 MAC”時,語義安全問題才會成為問題。引用上面的答案:

可能會在 MAC 中顯示有關明文的資訊。當然是理論上的,但不太理想。如果明文消息重複,並且 MACed 數據不包含計數器,則會發生這種情況(它在 SSH 2 協議中包含,但僅作為 32 位計數器,因此您應該注意在溢出之前重新輸入密鑰)。

在 AEAD 密碼中,有時會使用稍微不同的方法:GMAC 在明文消息之上,但它依賴於隨機數,對於每條消息當然應該是唯一的。

引用自:https://crypto.stackexchange.com/questions/95483