HASH碰撞


如果兩個輸入串的hash函數的值一樣,則稱這兩個串是一個碰撞(Collision)。既然是把任意長度的字符串變成固定長度的字符串,所以必有一個輸出串對應無窮多個輸入串,碰撞是必然存在的。

一個優良的hash函數 f 應當滿足以下三個條件:

(1)對於任意y,尋找x,使得f(x)=y,在計算上是不可行的。

(2)給定x1∈A,找x2∈B,,使得f(x1)=f(x2),在計算上是不可能的,這也就是弱無碰撞性。

(3)尋找x1,x2,使得f(x1)=f(x2),在計算上也是不可行的,這也就是強無碰撞性。

這樣就稱為安全保密的Hash函數,除了枚舉外不可能有別的更快的方法。如第3條,根據生日定理,要想找到這樣的x1,x2,理論上需要大約2^(n/2)的枚舉次數。

因為前兩條都能被破壞的hash函數太弱而被拋棄,幾乎所有的hash函數的破解,都是指的破壞上面的第3條性質,即找到一個碰撞。在密碼學上還有一個概念是理論破解,指的是提出一個算法,使得可以用低於理論值得枚舉次數找到碰撞。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM