我正在研究MD5
碰撞,发现在SHA-0
中也发现了碰撞。
现在,是否可以同时在两个字符串或文件中包含MD5和SHA-0 colliosion?
在这里,您可以在MD5&找到两种可能的碰撞的SHA-0。
任何人都可以解释是否可能同时发生两次碰撞?
我有一些MD5碰撞的例子。如果有人可以提供MD5和MD的示例,那会更好。 SHA-0碰撞都在同一个?
答案 0 :(得分:4)
所有哈希都可能发生碰撞,这是一种数学上的确定性。它发生的原因称为Pigeonhole Principle,这意味着您只有X
个哈希值可能的值,一旦您散列X+1
项,您就可以保证发生碰撞因为您必须至少使用一次哈希值,所以使X+1
项目散列为保证冲突。
现在,将此逻辑应用于MD5和SHA1。假设你有一个非常长的哈希,它只是MD5哈希(2^128
可能的哈希)连接到SHA1哈希(2^160
可能的哈希值)。您仍然只有2^128 * 2^160
个哈希值,一旦您散列2^128 * 2^160 + 1
个项目,您就可以保证在MD5中有一个碰撞项目,同时在SHA1中发生碰撞。
是否可以轻松找到这样的哈希值,以便您可以进行second-preimage攻击,以便将现有的哈希文件替换为具有匹配哈希值的第二个哈希值?不,这种攻击在非政府层面可能是不可行的。