Hash

是否已經努力防止基於 Merkle-Damgård 構造的雜湊算法的長度擴展攻擊?

  • April 5, 2019

是否有過一些公開的努力來防止基於 Merkle-Damgård 構造(MD5、SHA1、SHA2……)的雜湊算法的長度擴展攻擊?

是的。在本文中,Coron 和 al。表明當輸入沒有前綴時,普通的 MD 結構是安全的。他們實際上證明了構造的不可微分性。換句話說,消息需要以無前綴的方式進行編碼。

引用論文:

字母表上的無前綴程式碼 $ {0, 1}^κ $ 是一個高效可計算的單射函式 $ g: {0, 1}^∗ \to ({0, 1}^κ)^∗ $ 這樣對於所有人 $ x \neq y $ , $ g(x) $ 不是的前綴 $ g(y) $ .

論文中給出了一種這樣的編碼

函式 g1(m):讓 $ N $ 是消息長度 $ m $ 位。寫 $ m $ 作為 $ (m_1, \ldots , m_l) $ 所有人在哪裡 $ i $ , $ |m_i| = k $ . 最後一個塊 $ m_l $ 填充 $ 10^r $ . 讓 $ g1(m) = (\langle N \rangle, m_1, \ldots , m_l) $ 在哪裡 $ \langle N \rangle $ 是一個 $ κ $ -bit 二進制編碼 $ N $ .

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