【发布时间】:2015-01-31 02:16:45
【问题描述】:
双散列确实可以提供比仅一层散列更高的安全性,但这是否一定意味着它更耐碰撞?这个问题以更数学的形式出现: 如果 H 是一个抗碰撞哈希函数,那么对于某些 x,H(H(x)) 是否仍然抗碰撞?
【问题讨论】:
标签: hash cryptography collision hash-function hash-collision
双散列确实可以提供比仅一层散列更高的安全性,但这是否一定意味着它更耐碰撞?这个问题以更数学的形式出现: 如果 H 是一个抗碰撞哈希函数,那么对于某些 x,H(H(x)) 是否仍然抗碰撞?
【问题讨论】:
标签: hash cryptography collision hash-function hash-collision
实际上,由于内部 H 的输出有限,因此抗碰撞性可能更差。
例如采用从 {0,1}n → {0,1}n 映射的函数 H。 (我们将 x 限制为 {0,1}n 以便于查看。)假设有 a, b 来自 {0,1}n 和 c = H(a) = H(b)时间>。这意味着 H(c) = H(H(a)) = H(H(b))。当您在第一次转换中发生碰撞时,您无法取消它。
如果您在 {0,1}n 中没有发生碰撞,则第二个转换以相同的方式执行。
由于我们通常将散列函数称为 {0,1}* → {0,1}n,因此必然有第一次转换和第二次转换中的碰撞可能会使情况变得更糟。
【讨论】:
原则上,生成的散列函数 H(H(x)) 的抗碰撞性要么较低要么相同,因为
【讨论】: