Mac

使用 encrypt-then-MAC 時重複使用 CBC 和 CBC-MAC 的密鑰是否安全?

  • February 9, 2016

我知道重用密鑰是一個壞主意,尤其是對於 CBC 和 CBC-MAC,但 Wikipedia 上的範例似乎使用了 encrypt-and-MAC。很明顯,以這種方式使用時,最後一個加密塊將等於 MAC。

如果它改為用於 encrypt-then-MAC,那不是可以接受的嗎?MAC 的每一位都將依賴於密文的每一位,從而防止選擇密文攻擊。

我在這裡錯過了什麼嗎?

不,它不一定安全。這是一個簡化的範例,說明為什麼不這樣做。

假設一個塊零消息被加密而沒有填充。密文是 $ I||E(I \oplus 0) $ . 因此 MAC 值為 $ E(E(I) \oplus E(I)) = E(0) $ . 因此,無論 IV 是什麼,所有此類消息的 MAC 都是相同的。因此,如果您加密多個零消息,您可以通過 MAC 洩露該事實。

當您考慮填充時,這個確切的問題不再可能,但您應該看到 MAC 和加密函式如何最終使用相同的值。

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