Hash

如果只有新消息的最後一位發生變化,是否可以執行長度擴展攻擊?

  • July 22, 2018

給定一個 Merkle-Damgård 雜湊函式 H,比如說 SHA256,它計算 MAC 如下:

H(secret_key||timestamp), so that the attacker knows the result and the timestamp.

是否可以通過長度擴展或其他攻擊生成 H(secret_key||timestamp+1) 的有效 MAC?

不,長度擴展屬性不允許計算 $ H(\text{secret_key}\mathbin|\text{timestamp}+1) $ 從 $ H(\text{secret_key}\mathbin|\text{timestamp}) $ 和 $ \text{timestamp} $ .

兩個警告:

  • 這是為了將整數合理編碼為位串 $ \text{timestamp} $ 欄位,包括任何固定大小、ASN.1、Integer-to-Octet-String Conversion以及任何可能的變化。參數:長度擴展屬性計算消息的散列值大於原始消息的填充大小(對於 SHA-256 至少為 65 位),並且擴展的大部分受到嚴格限制。
  • 考慮的不是預期用途 $ H $ ,並且我們沒有令人信服的關於其他攻擊的安全性的論據。學術上合理的事情是使用MAC,例如HMAC $ \text{secret_key} $ 作為關鍵和 $ \text{timestamp} $ 作為消息。

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