我对一个似乎是基于理论的问题感到困惑。

如果有一个抗冲突的哈希函数(由于哈希函数不可能没有冲突,这是一个理论问题),
如果说存在对于所有可能的消息$ x $和$ x'$没有两个唯一的哈希值,其中$ x \ neq x'$?

我觉得这是正确的...谁能支持我在此吗?

评论

zh.wikipedia.org/wiki/Collision_resistance

不用看定义,您就可以根据“抵抗”一词的常见含义做出初步猜测,这并不意味着“没有免疫力”或“免受免疫力”。抵抗使行动变得更加困难并非不可能。

标题中的问题是“如果H耐碰撞,是否也没有碰撞?”,然后在体内继续说没有H不会碰撞。所以您知道问题的答案:不。

抵抗是徒劳的

#1 楼

正如您正确观察到的那样,对于任何函数$ H \ colon \ {0,1 \} ^ \ ast \ to \ {0,1 \} ^ n $,都必须存在冲突,仅因为$ \ {0,1 \} ^ \ ast $是一个无限集,而$ \ {0,1 \} ^ n $是有限的。
可以定义“哈希函数”来表示其他含义(例如,仅采用有界的输入长度),但这是非标准。

但是,“抗碰撞性”一词与您似乎认为的有所不同:从计算的角度来看,这仅意味着很难找到碰撞。
从良好的哈希函数期望,没有人能够找到导致相同哈希值的两个输入,但是我们不在乎它们的抽象存在,这是必然的恶果。

因此,没有:耐碰撞性并不意味着对于任何$ x \ neq x'$,$ H(x)\ neq H(x')$。而是意味着实际上,没有人应该用$ H(x)= H(x')$找到$ x \ neq x'$。

评论


$ \ begingroup $
在这里,“没有人应该找到”的意思是“这将花费非常非常长的时间”,因为只要有足够的时间和计算能力,您几乎可以找到任何东西。除了不存在的事物,例如我的社交能力。
$ \ endgroup $
–莫妮卡基金的诉讼
17年2月6日在4:28

$ \ begingroup $
简而言之,“抗碰撞”意味​​着没有比简单地随机猜测更快地找到碰撞的方法。
$ \ endgroup $
–马克
17年2月6日在8:39

$ \ begingroup $
一些使用最广泛的哈希函数的长度字段为64或128位,这意味着输入长度在理论上是有界的,但实际上并不重要。
$ \ endgroup $
–卡巴斯德
17年2月6日在22:02