【问题标题】:Is double hashing collision resistant?双散列是否抗碰撞?
【发布时间】:2015-01-31 02:16:45
【问题描述】:

双散列确实可以提供比仅一层散列更高的安全性,但这是否一定意味着它更耐碰撞?这个问题以更数学的形式出现: 如果 H 是一个抗碰撞哈希函数,那么对于某些 x,H(H(x)) 是否仍然抗碰撞?

【问题讨论】:

    标签: hash cryptography collision hash-function hash-collision


    【解决方案1】:

    实际上,由于内部 H 的输出有限,因此抗碰撞性可能更差。

    例如采用从 {0,1}n → {0,1}n 映射的函数 H。 (我们将 x 限制为 {0,1}n 以便于查看。)假设有 a, b 来自 {0,1}nc = H(a) = H(b)时间>。这意味着 H(c) = H(H(a)) = H(H(b))。当您在第一次转换中发生碰撞时,您无法取消它。

    如果您在 {0,1}n 中没有发生碰撞,则第二个转换以相同的方式执行。

    由于我们通常将散列函数称为 {0,1}* → {0,1}n,因此必然有第一次转换和第二次转换中的碰撞可能会使情况变得更糟。

    【讨论】:

      【解决方案2】:

      原则上,生成的散列函数 H(H(x)) 的抗碰撞性要么较低要么相同,因为

      1. 对于散列函数 H(x),对于每个 N 个唯一的前映像,我们假设存在一个冲突。这意味着有两个哈希值相似,H(H(x)) 不会使其不同。
      2. 对于散列函数 H(x),对于每个 N 个唯一的前映像,我们假设存在一个冲突。这对于 H(H(x)) 也是如此,因为 H(H(x)) 只不过是 H(固定长度的字符串)。这增加了碰撞的机会。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多