根据我读过的书,它说SHA(安全散列算法)是抗冲突的。但是如果输入空间是1024位数并且输出空间是512位消息摘要那么不应该碰撞 (2 ^ 1024)/(2 ^ 512)次?由于范围小于被映射的域,因此应该存在冲突。请解释我哪里出错了。
答案 0 :(得分:2)
也许你的书也提到了碰撞阻力的定义?这并不意味着不会创建冲突(显然不是这种情况),但是如果给出哈希,则无法轻松创建生成此哈希的消息。
如果难以找到两个,则散列函数H是抗冲突的 散列到相同输出的输入;也就是说,两个输入a和b就是这样 H(a)= H(b),a≠b
来自维基百科
答案 1 :(得分:2)
碰撞的机会不取决于输入大小。 512位哈希冲突的机会是1.4×10 ^ 77,请参阅Probability table