Hash

是否有一種有效的算法可以建構加密安全的nnn基於兩個未鍵控的位散列函式nnn位排列?

  • November 19, 2021

讓 $ f(x) $ 和 $ g(x) $ 表示兩個獨立的、“理想的”、無鍵的、公共的 $ n $ 位排列(兩個眾所周知的雙射函式產生 $ n $ -位輸出 $ n $ -位輸入),其中 $ n $ 是大於或等於的任意自然數 $ 3 $ (號碼 $ 3 $ 之所以在這裡,是因為它是“具有密碼意義的”S-Box 的最小尺寸)。

是否存在有效的迭代算法(基於 $ f(x) $ 和 $ g(x) $ 作為底層函式),它允許建構一個加密安全的 $ n $ 位散列函式 $ k $ 位輸入,假設 $ k $ 是大於或等於零的任意自然數(即輸入的最大長度應該沒有限制)?

如果我正確理解了這個問題,那麼一種可能的構造就是在 SHA-3 競賽候選者 Grøstl中使用的東西,其中迭代壓縮函式是由兩個固定排列建構的 $ P $ 和 $ Q $ :

Groestl的壓縮函式

該結構的安全證明基於論文: P.-A。Fouque、J. Stern 和 S. Zimmer。SMASH 和修復的調整版本的密碼分析。2008 年密碼學選定領域,LNCS 5381,施普林格,2009 年

不可能通過黑盒構造從單向排列構造抗碰撞雜湊函式。因此,原則上的答案是否定的;這樣的結構是不可能的。在單行道上發現碰撞:安全雜湊函式可以基於一般假設嗎?西蒙(Eurocrypt'98)。這個答案與啟發式結構無關,但你不能用安全證明來做到這一點(除非它不是黑匣子)。

這裡的問題實際上與“理想”排列有關,在這樣的假設下它可能會有所不同。(雖然,我不確定“公共”理想是什麼意思。)我的回答是指(非理想)單向排列。

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