Hash

對加密雜湊函式的實際碰撞攻擊是否也意味著它“與隨機數據無法區分”失敗?

  • August 24, 2017

眾所周知,SHA-1 在實踐中已經通過碰撞攻擊被破解。與 SHA-1 相關,這主要對

  • 數字證書籤名
  • 電子郵件 PGP/GPG 簽名
  • 軟體供應商簽名
  • 軟體更新
  • ISO 校驗和
  • 備份系統
  • 重複數據刪除系統
  • 等等

考慮到我們網站上與 LUKS 相關的問答,我想知道碰撞攻擊是否也意味著像 SHA-1 這樣的破碎雜湊可以——或者甚至應該——也被認為是“可與隨機數據區分開來”(從加密的角度來看看法)。

對加密雜湊函式的實際碰撞攻擊是否也意味著我們可以(或應該)認為它“與隨機數據無法區分”失敗?還是碰撞攻擊對此沒有影響?

對加密雜湊函式的實際碰撞攻擊是否也意味著我們可以(或應該)認為它“與隨機數據無法區分”失敗?還是碰撞攻擊對此沒有影響?

對於具有輸出長度的隨機預言機 $ n $ , 它需要 $ 2^{n/2} $ 是時候尋找碰撞了。所以如果你有一個輸出長度的雜湊函式 $ n $ 也可以,但是有一次攻擊會在不到 $ 2^{n/2} $ 時間,那麼雜湊函式的行為就不像隨機預言機,句點。該函式具有隨機預言機所沒有的一些屬性。

請注意,甚至在我們發現衝突之前,我們就已經知道像 MD5、SHA-1 和 SHA-2 這樣的 Merkle-Damgård 雜湊函式的行為不像隨機預言機,因為它們容易受到長度擴展攻擊:對於任何選擇消息的 $ m $ ,一個知道結果的對手 $ \mathrm{hash}(m) $ 和消息長度 $ |m| $ 可以利用這些知識“捷徑”計算 $ \mathrm{hash}(m || \mathrm{pad}(|m|) || s) $ 對於任何選擇 $ s $ . 隨機預言機沒有這個屬性——知道任何消息的散列對於預測它的任何擴展的散列沒有幫助。

這並不意味著不可能找到某種結構以嚴格限制的方式使用散列函式,使其輸出與隨機無法區分(實際上,HMAC-SHA1 被稱為偽隨機函式- 一個這樣的函式,如果你隨機選擇一個密鑰,對手無法分辨出它除了隨機函式)。這意味著從控制散列函式輸入的對手的角度來看,他們可以很容易地判斷出它的行為不像隨機函式那樣。

(請注意,我一直很小心地談論隨機預言隨機函式,而不僅僅是函式的輸出;我們對雜湊函式提出的非常嚴格的問題是,從**可以選擇什麼的對手的角度來看,它是如何表現的輸入來提供給它。同樣,這並不排除在較弱的攻擊模型中 - 對手的權力較少 - 對手可能不會成功。)

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