Hash 了解sha-1碰撞弱点

Hash 了解sha-1碰撞弱点,hash,cryptography,sha1,Hash,Cryptography,Sha1,根据各种消息来源,寻找sha-1碰撞的攻击已改进为2^52次行动: 我想知道的是这些发现对没有受到攻击的系统的影响。意思是如果我散列随机数据,碰撞的统计概率是多少?换句话说,最近的研究是否表明暴力生日攻击有更高的机会发现最初提出的碰撞 一些文字,比如上面的文字,说通过蛮力获得SHA-1碰撞需要2^80次操作。大多数资料都说2^80是一个理论数字(我假设,因为没有任何哈希函数是完全分布的,即使在它的摘要空间上也是如此) 那么,基本散列分布中是否存在任何已宣布的sha1冲突弱点?或者说,碰撞几率的

根据各种消息来源,寻找sha-1碰撞的攻击已改进为2^52次行动:

我想知道的是这些发现对没有受到攻击的系统的影响。意思是如果我散列随机数据,碰撞的统计概率是多少?换句话说,最近的研究是否表明暴力生日攻击有更高的机会发现最初提出的碰撞

一些文字,比如上面的文字,说通过蛮力获得SHA-1碰撞需要2^80次操作。大多数资料都说2^80是一个理论数字(我假设,因为没有任何哈希函数是完全分布的,即使在它的摘要空间上也是如此)

那么,基本散列分布中是否存在任何已宣布的sha1冲突弱点?或者说,碰撞几率的增加仅仅是由数学攻击引导的结果吗


我意识到最终这只是一场赔率游戏,它们是一个无穷小的变化,你的第一条和第二条信息将导致冲突。我也意识到,即使是2^52也是一个非常大的数字,但我仍然想了解对一个不受攻击的系统的影响。因此,请不要用“别担心”来回答。

在您的链接中宣布的结果是一次攻击,一系列经过仔细、算法选择的步骤会产生比随机攻击更大概率的碰撞。这不是散列函数分布中的一个弱点。好吧,是的,但不是那种使2^52左右的随机攻击可能成功的攻击


如果没有人试图在散列输出中生成冲突,此结果不会影响您。

好的散列函数可以抵抗3种不同类型的攻击(如文章所述)

实际意义上最重要的阻力是第二个图像前阻力。这基本上意味着给定消息M1和散列(M1)=H1,很难找到散列(M2)=H1的M2

如果有人找到了一种有效的方法,那就太糟糕了。此外,前置图像攻击不易受到生日悖论的影响,因为消息M1对我们来说是固定的

这不是预映像攻击或第二次预映像攻击,只是碰撞查找攻击。 回答你的问题,暴力攻击没有更高的发现碰撞的机会。这意味着朴素的蛮力方法,结合研究人员的方法,可以在2^52后发现碰撞。标准的暴力攻击仍然需要2^80。

关键问题是“攻击者能否同时修改m1和m2消息?”?。如果是这样,攻击者需要找到m1,m2,使得散列(m1)=散列(m2)。这是生日攻击,复杂性显著降低——成为平方根。如果散列输出为128位(MD5),则复杂度为2^64,与当前的计算能力相当

通常的例子是,卖家要求他的秘书输入信息“我将以1000万美元的价格出售”。密谋秘书创建了两个文档,一个写着“我将以1000万美元的价格出售”,另一个写着“我将以x百万美元的价格出售”,其中x远小于10,通过添加空格、大写等方式修改两条消息,修改x,直到散列(m1)=散列(m2)。现在,秘书将正确的消息m1显示给卖家,并使用他的私钥对其进行签名,从而生成哈希h。秘书切换消息并发出(m2,h)。只有卖家可以访问他的私钥,因此他不能否认并说他没有在邮件上签名

对于输出160位的SHA1,生日攻击将复杂性降低到2^80。这应该可以安全使用30年或更长时间。新的政府法规、4G 3gpp规范开始要求SHA256


但是,如果在您的用例中,攻击者无法同时修改这两条消息(预映像或第二个预映像场景),那么对于SHA1,复杂性为2^160。除非发现非暴力攻击,否则应该是永久安全的。

已经宣布了几个sha1碰撞弱点。他们都是精心策划的攻击吗?我没听说过任何不是的。你自己判断的一个方法是:如果一篇文章描述了在SHA-1中生成哈希冲突的技术,或者讨论了一次攻击,那么你可以确定这篇文章没有讨论SHA-1.Hmm的一般故障。这是一种模糊的推理。。。我没有投反对票,但如果我是OP,我会接受一个新的答案,因为它们的措辞更精确。@Jason S:其他答案可能更精确,但David Seiler的答案更具可读性,更切题。+1用于区分前像攻击和碰撞攻击,这是两种完全不同的风险。可能应该迁移到cryptography.SE