据各种消息来源,攻击寻找SHA-1的碰撞已经被提高到2 ^ 52点的操作:
http://www.secureworks.com/research/blog/index.php/2009/6/3/sha-1-collision-attacks-now-252/
我想知道的是,这些发现对那些未受到攻击系统的含义。 这意味着如果我散列随机数据,有什么冲突的统计可能性有多大? 换句话说,它最近的研究表明,暴力生日攻击具有发现最初提出的冲突的机会较高?
有些writeups,像上面的一个,说是获得通过蛮力一个SHA-1碰撞将需要2 ^ 80的操作。 多数消息人士说,2 ^ 80是一个理论值(我假设,因为没有哈希函数是真正完美的分布即使在它的消化空间)。
因此,任何在基本散列分布宣布SHA1碰撞的弱点? 或者是碰撞只是引导数学攻击结果的机会更大?
我知道它到底只是赔率的游戏,他们是一个无限小的变化,你的第一和第二消息将导致碰撞。 我也认识到,即使2 ^ 52是一个非常大的数字,但我还是想了解未受到攻击的系统的影响。 所以请不要用“不担心”的答案。
在您的链接公布的结果是一个攻击的产生比会随机攻击的概率较大碰撞小心,算法挑选的一系列步骤。 这是不是在哈希函数的分布的弱点。 好吧,好吧,是的,但不是那种使可能的2 ^ 52的为了成功在随机攻击。
如果没有人尝试生成您的散列碰撞输出,这个结果不会影响你。
那么好的哈希函数是3种不同类型的攻击(如文章状态)耐药。
在实际意义上最重要的阻力是第二原像电阻。 这基本上意味着给定的消息M1和Hash(M1)= H1,它是很难找到一个M2,使得散列(M2)= H1。
如果有人发现了一种方法来做到这一点有效,这将是糟糕的。 此外,原像攻击是不容易的生日悖论,因为消息M1是固定的我们。
这不是一个预先的图像或第二图像前的攻击,仅仅是一个碰撞找到攻击。 要回答你的问题,没有一个强力攻击并没有发现碰撞的机会较高。 这意味着,该天真蛮力方法,与研究人员相结合的方法导致后2 ^ 52找出冲突。 一个标准的强力攻击仍需要2 ^ 80。
关键的问题是“攻击者可以修改这两个M1和M2的消息”? 如果是这样,攻击者需要找到M1,M2,使得散列(M1)=散列(M2)。 这是生日攻击和复杂显著减少---成为平方根。 如果散列输出是128位(MD5),复杂度是2 ^ 64范围内与当前的计算能力良好。
考虑到通常的例子是,卖方要求他的秘书类型的消息:“我会卖掉它1000万美元。” 诡计多端书记创建2个文件一个说:“我将出售其10亿美元”,另一个说:“我会卖掉它对于x万元”,其中x是小于10多,通过添加空格同时修改的消息,资本话等,修改的x,直到散列(M1)=散列(M2)。 现在,秘书显示正确的消息M1给卖家,他用它自己的私钥,导致哈希^ h标志。 秘书切换消息,并且发送出(平方米,H)。 只有卖方可以访问他的私钥,所以他无法否认,并说他没有签署该消息。
对于SHA1,其输出160位,生日攻击降低了复杂性为2 ^ 80。 这应该是30年或更安全。 新的政府法规,4G 3GPP规范也开始要求SHA256。
但是,如果在用例,攻击者不能同时修改消息(原像或第二原像的场景),那么对于SHA1的复杂度是2 ^ 160。 除非非蛮力攻击发现应该是永恒的安全。