Hash

是否有任何加密雜湊函式被證明是滿射的?

  • January 24, 2018

這個答案聲稱“沒有證明 SHA-1 的所有輸出都是可能的。” 是否已證明任何加密雜湊函式可以產生所有可能的輸出(即,在所有可能數字的共域上是滿射的 $ [0, 2^n] $ , 在哪裡 $ n $ 是雜湊的位數)?

是否有任何加密雜湊函式被證明可以產生所有可能的輸出(即,是滿射的……

不是在查看像 SHA-2 系列這樣的實際使用的雜湊函式時,而是在查看我們不傾向於實際使用的理論結構時……答案是“是的”。

  • 對於 SHA-2 等實際使用的雜湊族,“否”

至少,當我們談論我們實際使用的加密雜湊函式時,不是這樣。實際上,如果您仔細考慮一下,原因就很明顯了。在 StackOverflow 上引用Pornin 的 2010 年回答

… 隨機預言機的完全性證明需要大量的計算能力,遠遠超過原像 (2^n) 和碰撞 (2^(n/2)) 等單純的攻擊。因此,一個好的散列函式“不應該”允許實際證明諸如滿射性之類的屬性。這將是非常可疑的:雜湊函式的安全性源於其內部結構的難處理性,這種難處理性應該堅決反對任何數學分析的嘗試。

因此,對於任何像樣的散列函式,都沒有正式證明滿射性,甚至對於像 MD4 這樣的“破碎”散列函式也沒有得到正式證明。它只是“高度懷疑”(輸入比輸出長得多的隨機預言應該是滿射的)。

(強調我的)

  • “是”以獲得更多理論雜湊結構

我們實際使用的雜湊沒有這樣的證明這一事實並不意味著理論上不可能創建這樣的雜湊函式。對於這種帶有暗示證明的構造的一個很好的例子,請查看 Lindell 的答案。(順便說一句:我將其稱為 Chaum-van Heijst-Pfitzmann 雜湊函式的範例,而不是像 Lindell 那樣將其歸因於 Damgård,但這只是旁白。)

我們不喜歡實際使用這種散列結構的原因是另一個問題

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