Keys

密鑰更新是否會增加 MAC 偽造的複雜性?

  • February 5, 2016

假設我已將加密消息發送到使用強共享加密密鑰作為密鑰的 MAC 進行身份驗證的設備。這個設備每單位時間只能處理這麼多的消息。這個加密密鑰每隔幾秒鐘更新一次:一個新的密鑰被獨立創建,之前的一個被銷毀。

這實際上對攻擊者使用有效 MAC 偽造消息的難度有任何影響嗎?我最初認為它確實如此,因為一旦更新密鑰,花費在密鑰上的任何計算工作都將被浪費,但我想到以結構化方式攻擊 MAC 是不可能的(否則它會被破壞);標籤只是隨機嘗試,直到找到有效的標籤,與密鑰無關。

我是否正確地說不斷更改密鑰無助於增加 MAC 的強度?如果不是,我是否可以縮短這些消息的 MAC,並由於使用短壽命密鑰而實現等效的防偽安全性到更大的 MAC 長度?

這取決於 MAC,因為要考慮不同類型的攻擊。

  1. 如果最好的攻擊是隨機嘗試身份驗證標籤,那麼密鑰就無關緊要了。
  2. 如果最好的攻擊是暴力破解密鑰,那麼密鑰更新確實意味著攻擊者必須“重新開始”,但只要密鑰空間足夠大,找到密鑰的機率很小,這個機率就不會降低這麼多。
  3. 如果 MAC 被破壞並允許其他攻擊,那麼密鑰更新可能會使攻擊更加困難(例如,如果需要大量已知的 MAC)或更容易(例如,如果某些密鑰很弱)。

諸如 SipHash 之類的 MAC 或許多基於 AES-256 的 MAC 屬於第一種情況。隨機猜測正確的 MAC 值比猜測正確的密鑰要快得多,因為密鑰空間大於標籤空間。

另一方面,HMAC 有時與比輸出更短的密鑰一起使用(例如 128 位密鑰和 HMAC-SHA-256)。如果 MAC 標籤沒有被截斷,那麼已知最快的攻擊就是暴力破解密鑰。這是第二種情況。

關於第三種情況,一個例子是 MAC 濫用,例如具有可變長度消息的 CBC-MAC,如果您更新每條消息的密鑰,它就會變得安全。只要您不重複使用密鑰太多次,簡短的 AES-GCM 標籤也是安全的。

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