2009-12-08 171 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位的行之间。