我很难在纸上和脑海中解决这个问题。我知道这是围绕生日悖论的,但是,我似乎无法理解我的问题与BP解决方案之间价值的可互换性。
好吧,所以我知道SHA-1产生160位的散列。
在两条消息和0.5的概率之间,所述"攻击者"应该多少次?必须搜索以找到相同的哈希值?
我从搜索中遇到了一系列解决方案,但没有一个能彻底引导我完成整个过程并以对我有意义的方式解释它。以下是我在搜索过程中能够提出的最接近的内容。
我希望这有助于解释我的问题。
答案 0 :(得分:0)
是的,你是对的;这围绕着Birthday Problem。在散列中,你实际上是试图通过数学过程将一个理论上无限长的东西放入一个固定长度的字符串中;因此,碰撞是不可避免的。
生日问题基本上意味着假设你有一个满是人的大厅,你会问每个人他们的出生日期。找到与另一个人相同生日的人的概率会增加,因为你有更多的出生日期,两个人可以拥有相同的生日。最终你会找到一个生日相同的人。
Aaron Toponce在他的作品"The Reality of SHA1"中写到了这一点:
SHA1旨在替代MD5。 MD5的输出空间为 只有128位,其中SHA1的输出空间为160位。 SHA1是 也设计与MD5不同,并且意味着不受影响 MD5面临的同样的弱点或攻击。但是,随着时间的推移 密码学家已经能够严重攻击SHA1,并且作为一个 结果,他们都警告我们离开SHA1,然后转移到SHA2。 但是,应该花费2 ^ 160次操作来查找与SHA1的冲突 使用生日悖论,我们可以有50%的概率 在大约2 ^ 80次操作中找到SHA1冲突。然而, 密码分析师已将SHA1拆解为仅为2 ^ 61的复杂性 操作。更好。
基本上,SHA1是一种数学算法,可以在算法中找到弱点,使它们更容易破解并降低碰撞的概率。这项研究通常由计算机科学家,密码学家和数学家完成,然后可以通过使用新算法找到发现碰撞的新方法来减少发现碰撞的机会。