考虑天真哈希函数:HASH = INPUT % 4
。这个函数是周期性的,如果我们用序号0, 1, 2, 3, 4, 5, ...
称它,则产生的散列序列将具有四个周期:0, 1, 2, 3, 0, 1, 2, 3, 0, ...
。
我的问题是现代加密哈希函数,例如SHA256,在这个意义上是否是周期性的?换句话说,是否有一些整数0 <= n
和0 < k
,HASH(n + b) = HASH(n + b + ak)
对b
中的所有整数[0, k - 1]
和所有正整数a
?例如,序列SHA256(0), SHA256(1), SHA256(2), SHA256(3), ...
在某个点之后是否是周期性的?
答案 0 :(得分:1)
绝对不是。如果是这种情况,发现碰撞将是微不足道的。加密哈希函数的强度由查找哈希(a)==哈希(b)的难度来定义。理想情况下,您需要找到Hash(b)的所有值来查找碰撞,如果Hash是很多位,则这是不可行的。