Hash

什麼是“自由啟動碰撞”?

  • February 23, 2017

他們關於 SHA-1 碰撞的工作中(參見Stevens、Karpman 和 Peyrin的EUROCRYPT-2016論文“Freestart collision on full SHA-1”)Stevens 等人表明他們能夠在 SHA- 1. 他們說:

儘管 freestart 碰撞不會直接導致 SHA-1 的實際碰撞,但在我們的案例中,與之前相比,我們在該過程中獲得的實驗數據可以顯著更準確地預測 SHA-1 實際碰撞的實際成本預測。

什麼是散列函式上的“自由啟動衝突”?

定義

在雜湊函式的Damgard-Merkle 構造中,壓縮函式作為輸入:

  • 一個消息塊
  • 一個連結值

對於第一個塊,沒有先前的“連結值”。取而代之的是一個特定的值,稱為初始化向量(IV)。

自由啟動碰撞是攻擊者可以選擇 IV 的碰撞。

特別是在他們的論文(第 3 頁,表 2-1)中,作者發現了兩個稍微不同的 IV(只有兩個位不同):

$ IV_1: $ 50 6b 01 78 ff 6d 18 90 20 22 91 fd 3a de 38 71 b2 c6 65 ea

$ IV_2: $ 50 6b 01 78 ff 6d 18 91 a0 22 91 fd 3a de 38 71 b2 c6 65 ea

正如他們在工作中所聲稱的那樣,他們的攻擊是第一個破壞整個 80 輪 SHA-1壓縮函式的攻擊。

影響

即使自由啟動碰撞不會立即給出標準碰撞,它也可以用於多塊碰撞搜尋。連結值確實是前一個塊的壓縮函式輸出。

目前尚不清楚~~(或至少對我來說不是)~~從自由啟動碰撞到標準碰撞的路徑有多容易。

舉個例子:MD5用了8年。MD5 的第一個 freestart 衝突是在 1996 年發現的(Dobbertin,Eurocrypt Rump Session),但 MD5 的第一個標準衝突僅在 2004 年發布。

未來的工作$$ Next step (from a freestart collision to a full collision) $$

找出散列函式上的自由啟動衝突並不會完全破壞該函式,但會顯示出很大的弱點。通過自由啟動碰撞,研究人員展示了兩條碰撞資訊的後半部分。可以說我們現在知道導致碰撞的路徑,但我們還不知道它從哪裡開始。自由啟動碰撞 研究的最後一步是找出一個塊消息 $ m_0 $ 哪個 $ SHA $ - $ 1(m_0) $ 等於freestart IV。當找到這樣的消息時,衝突被處理。不得不說,要找出散列成給定值的消息是不可行的(對於被破壞的MD5 散列函式來說,這仍然是一個難題)。

更新:已找到完整的碰撞:https ://shattered.it/

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