Hash

破解 SHA-256 的計算要求?

  • July 30, 2020

讓我們定義“破壞”雜湊函式 $ H $ 作為三重(對應於密碼散列函式的主要屬性):

  1. 原像攻擊得到 $ m $ 會心 $ H(m) $
  2. 第二原像攻擊找到一些 $ m’\neq m $ 會心 $ m $ 以便 $ H(m)=H(m’) $
  3. 碰撞攻擊尋找 $ m_1,m_2\neq m_1 $ 為了 $ H(m_1)=H(m_2) $

我想知道理論上對 SHA-256 執行每次攻擊需要多少計算資源。我對複雜性理論幾乎沒有經驗,但找不到太多這方面的文獻。

我的方法是這樣的:一般來說,有 $ 2^{256} $ 可能的雜湊值。由於 SHA-2 中沒有已知的結構弱點,因此暴力破解原像是唯一的選擇,並且應該採取 $ 2^{255} $ 試驗(雜湊空間的一半)。不過大多指 $ 2^{256} $ ,是不是因為這意味著一定的成功,而不是需要預期的時間?

發生碰撞 $ 2^{128} $ 生日攻擊的步驟。我找不到第二次原像攻擊的數據。

首先,我上面的假設是否正確?這三種攻擊的複雜性是多少?

我也很好奇數字的“單位”是什麼 $ 2^{256} $ 暗示 - 是否需要執行類似於浮點運算?

我知道考慮到當今的計算能力,SHA-256 被認為是安全的。未來幾年,增加電腦容量(經典計算,而非量子計算)是否會成為威脅?

首先,我上面的假設是否正確?這三種攻擊的複雜性是多少?我也很好奇數字的“單位”是什麼 $ 2^{256} $ 暗示 - 是否需要執行類似於浮點運算?

幾乎,這個數字是必須呼叫基元(在本例中為 SHA-256)以破壞算法(例如,找到原像或碰撞)的次數。

我知道考慮到當今的計算能力,SHA-256 被認為是安全的。在接下來的幾年裡,增加電腦容量(經典計算,而不是量子計算)是否可能會對此構成威脅?

不,SHA-256 不會因為計算能力而被破壞。當您使用蠻力攻擊雜湊函式時,計算將花費數百萬年。 $ 2^{128} $ 操作只是一個太大的數字。

但是,大多數人預計 SHA-2 將在未來 100 年內被打破。這就是如何找到第一個原像/碰撞的方式。這意味著(在碰撞的情況下)有人設計了一種智能算法,可以在不需要執行大量操作的情況下找到碰撞。最近,Marc Stevens等人發表 了對 SHA-1 的攻擊,它只需要 $ 9,223,372,036,854,775,808 \approx 2^{63} $ 操作。這個數字足夠小,可以被 Google 強大的計算集群搜尋到(因此發現了第一個已知的 SHA-1 衝突)。

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