Hash

將雜湊函式重複應用於先前的結果會訪問所有可能的雜湊嗎?

  • January 12, 2021

如果要接收消息,請說“Hello world!”,然後計算 MD5 雜湊:

86fb269d190d2c85f6e0468ceca42a20

然後,獲取這個的 MD5 雜湊,並重複該過程:

d522231cf8bd5bd3bceb31c640bcab9a

64bb07c8a424dbb918495fa428702998

ed64b3e94672013dd88c415b8575dede

95119774bf93c232892b4f3071348abd

0d1fff8e1426591625a888451ed893c2

3e858eba431292825240db61628a817a

055609b11d0a06b46eff40bcb52eca09

8860c0fbffff97c16f1aa617e3b243e5

518ca0b27a1990b5bac51799c2c1b636

b62fd7e949b2995312b9fbddccd6b19f

b1d831a1d1c6ed8a81e4cb908f5aa36e

dd4e0883a48b1fd3a3a08e26cbc6adc4

3f4a12f0cdc506141badd00bf498dbad

be536872dde5b558975fd3a7dfec4884

402b32bb6839f17028deb13e60dd32ad

給定上述無限次重複,是否有可能計算所有可能的雜湊值無限次?是否有可能給定一些初始消息,在程序開始後不久可能會重新訪問初始雜湊,即。如果 402b32bb6839f17028deb13e60dd32ad 的 MD5 又是 86fb269d190d2c85f6e0468ceca42a20。

給定上述無限次重複,是否有可能計算所有可能的雜湊值無限次?

對的,這是可能的; 但是(據我們所知)這是極不可能的。MD5(在 16 字節輸入上)不僅是一個排列,它還需要是一個單週期排列。

是否有可能給定一些初始消息,在程序開始後不久可能會重新訪問初始雜湊

這也是可能的,但同樣不太可能(只是不像之前的情況那樣令人眼花繚亂);對於一個隨機函式,發生這種情況的機率大約是 $ 2^{-64} $

最可能的情況是我們會陷入不包含初始雜湊的循環。

如果假設 MD5 像隨機函式一樣工作,那麼所有這些都可以顯示出來。現在,MD5 不是一個隨機函式,它可能有一些未知的行為會改變事情。然而,根據我們對 MD5 的了解,這看起來不太可能。

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