Cryptography SHA-512耐碰撞吗?

Cryptography SHA-512耐碰撞吗?,cryptography,collision,sha,sha512,Cryptography,Collision,Sha,Sha512,根据我读过的书,它说S.H.A(安全哈希算法)是抗冲突的。但是如果输入空间是1024位的数字,而输出空间是512位的消息摘要,那么它不应该冲突吗 (2^1024)/(2^512)次?由于范围小于映射的域,因此应该存在冲突。请解释我的错误。也许你的书中也提到了碰撞阻力的定义?这并不意味着不会创建任何冲突(显然不是这样),但给定一个哈希,您无法轻松创建生成此哈希的消息 如果很难找到两个散列函数,则散列函数H是抗冲突的 散列到相同输出的输入;也就是说,两个输入a和b是这样的 H(a)=H(b)和a≠

根据我读过的书,它说S.H.A(安全哈希算法)是抗冲突的。但是如果输入空间是1024位的数字,而输出空间是512位的消息摘要,那么它不应该冲突吗
(2^1024)/(2^512)次?由于范围小于映射的域,因此应该存在冲突。请解释我的错误。

也许你的书中也提到了碰撞阻力的定义?这并不意味着不会创建任何冲突(显然不是这样),但给定一个哈希,您无法轻松创建生成此哈希的消息

如果很难找到两个散列函数,则散列函数H是抗冲突的 散列到相同输出的输入;也就是说,两个输入a和b是这样的 H(a)=H(b)和a≠ b


从维基百科上看,发生冲突的可能性并不取决于输入的大小。512位散列冲突的几率是1.4×10^77,请参见相关:我投票将这个问题作为离题题来结束,因为这纯粹是关于编程,而不涉及编程。是的,它会根据定义发生冲突。但是,不可能计算或猜测哪个值发生冲突。在找到冲突之前,你不能只是迭代可能的值。当然,在找到冲突之前,你已经用光了时间(任何时间-选择你的周期)。(2^1024)/(2^512)=2^512,接近10^155(比googol大但比googolplex小)。“输入空间是1024位数字”是什么意思?唯一重要的是唯一输入的数量,以及唯一输出的数量。也许可以看到。不完全是这样,加密散列(如SHA256)也经常用于相互识别文件内容等项。碰撞总是会发生变化,但实际上这是极为罕见的,在大多数情况下都会被忽略。例如,Git使用哈希来唯一地标识提交。不完全是什么?关于OP问题“什么是抗碰撞能力”,我不明白你的意思。@zaph Git使用SHA-1,因此不是一个很好的例子:P可以尝试ZFS或类似的方法。@MaartenBodewes注意到,没有人声称Git使用SHA-256。事实上,如果SHA-1足够,我们应该假设SHA-256在抵抗碰撞方面甚至更好。