2009-12-08 63 views
59

給定一組等長的100個不同的字符串,你如何量化一個SHA1摘要碰撞的字符串的概率是不可能的......?概率SHA1碰撞

+0

澄清,你怎麼能有 '不同,但相同的長度' 字符串? – KevinDTimm 2009-12-08 14:13:52

+5

@kevindtimm「a」,「b」,「c」長度相等,但字符串不同 – 2009-12-08 14:16:32

+0

我假定字符串長度至少爲20個字節。否則,顯然碰撞的可能性會更高。 :) @anthony: – 2009-12-08 14:18:06

回答

137

alt text

是160位的散列值生成的通過SHA-1足夠大,以確保指紋 每個塊的是獨特 ? 假設與 均勻分佈的隨機散列值,的 n個不同的數據塊的集合,並且產生b個比特的散列 功能, 概率p會有一個 或多個衝突由 數對有界的塊乘以 乘以給定的對 將發生碰撞的概率。

(來源:http://bitcache.org/faq/hash-collision-probabilities

+9

總之,碰撞的可能性大約是10^-45。這是非常不可能的。 – 2009-12-08 14:41:39

+3

但SHA-1不均勻分佈,可能會大於此上限。我懷疑這個方程是不正確的。至少等於。 – Kamel 2015-04-11 02:12:00

+1

他們能夠產生碰撞2^69次迭代,而不是2^80蠻力 https://www.schneier.com/blog/archives預計在那裏這樣的回答並沒有考慮到2005年中國發現/2005/02/sha1_broken.html – Djarid 2016-04-18 14:09:04

3

那麼,發生碰撞的概率將是1 - ((2^160 - 1)/ 2^160)*((2^160 - 2)/ 2^160)* ... *((2-^160 - 99)/ 2^160)。

的2項中10中的第一項的一個空間中的衝突的概率的思考是與概率100%是唯一的。第二個是獨特的概率9/10。所以兩者唯一的概率是100%* 90%,碰撞概率是1-(100%* 90%)或1 - ((10-0)/ 10)*((10-1)/10)或1 - ((10-1)/ 10)。

這不太可能。你不得不有更多的字符串,因爲它是一個遙遠的可能性。

看看上this page on Wikipedia表;只需插入128位和256位的行之間。