【发布时间】:2011-09-30 14:15:26
【问题描述】:
我想了解 SHA0 哈希函数是如何被破坏的。我知道利用生日问题/鸽子保留原则,发现了哈希冲突。 http://www.mail-archive.com/cryptography%40metzdowd.com/msg02554.html 包含一个示例消息。
我找不到/理解的问题: 这是否意味着有一种及时的数学方法总是会产生哈希冲突?
我最终能否为给定的 m1 找到一个 m2,使得 m1 != m2, sha(m1) == sha(m2) 还是只能在可能消息的子集上找到?改写:我的密码是否有可能保证有另一条冲突消息?
在上面的链接中找到 2 条具有相同哈希值的随机长消息有什么意义? 为什么他们必须筛选长随机消息以进行冲突而不是计算为诸如“棕色狗跳过狐狸”之类的实用信息而发生碰撞?
哈希冲突的几个例子似乎不如及时为任何消息生成冲突的方法重要,但所有帖子都在谈论前者。
感谢您的帮助/您的时间!我读过很多帖子/文章,但无法解决我的困惑。我怀疑我对 MD5 等其他损坏的哈希函数也有同样的问题。
编辑:
The paper (explaining improved method for finding collisions) referenced in the answer
【问题讨论】:
-
该邮件不过是对旧版本 SHA 的攻击的概念验证,由于几个已知的弱点而被弃用,这使得攻击比穷举搜索容易得多.所述攻击花费了 80,000 CPU 小时。您应该注意,相同的攻击不适用于常见的 SHA-1 实现。并且,回答您的问题:是的,这意味着原则上可以为每个输入找到冲突,给定一组强大的工作站,但仅使用 SHA0。
-
(通常你可以总是在每个哈希上找到每个输入的冲突,给定无限的时间/资源,这里唯一显着的区别是,对这个特定哈希的这种特殊攻击适用于相对中等的资源)
标签: hash md5 sha hash-collision