如果有一个抗冲突的哈希函数(由于哈希函数不可能没有冲突,这是一个理论问题),
如果说存在对于所有可能的消息$ x $和$ x'$没有两个唯一的哈希值,其中$ x \ neq x'$?
我觉得这是正确的...谁能支持我在此吗?
#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
评论
zh.wikipedia.org/wiki/Collision_resistance不用看定义,您就可以根据“抵抗”一词的常见含义做出初步猜测,这并不意味着“没有免疫力”或“免受免疫力”。抵抗使行动变得更加困难并非不可能。
标题中的问题是“如果H耐碰撞,是否也没有碰撞?”,然后在体内继续说没有H不会碰撞。所以您知道问题的答案:不。
抵抗是徒劳的