多重冲突与散列函数的第一次或第二次前映像攻击有什么区别?

Eth*_*man 7 cryptography hash-collision cryptanalysis cryptographic-hash-function

散列函数中的多重碰撞与第一或第二前映像之间的区别是什么.

  • 第一个preimage攻击:给定一个哈希h,找到一个这样的消息

    hash(m)= h.

  • 第二个preimage攻击:给定一个固定的消息m1,找到一个不同的消息m2

    hash(m2)= hash(m1).

  • 多冲突攻击:生成一系列消息m1,m2,... mN,这样

    hash(m1)= hash(m2)= ... = hash(mN).

维基百科告诉我们,preimage攻击与碰撞攻击的不同之处在于存在被攻击的固定哈希或消息.

令我感到困惑的是那些make语句如下:

这些技术不仅有效地搜索碰撞,而且还适用于探索MD4的第二原像.关于第二个原像攻击,他们发现随机消息是一个概率为2 ^ -122的弱消息,它只需要一次性的MD4计算来找到对应于弱消息的第二个原像.

对MD4的第二次原像攻击

如果我理解作者似乎在说的是他们已经开发了一个多冲突攻击,其中包含一组足够大的消息,这些消息给出了随机消息,那么它与其中一个消息重叠的可能性非常小.碰撞.

我在许多论文中看到了类似的论点.我的问题是什么时候攻击不再是多次碰撞攻击并成为第二次原像攻击

  • 如果多次碰撞与2 ^ 300其他消息发生碰撞,那么它会被计为第二个原像,因为多次碰撞可以用来计算它碰撞的其中一个消息的"前映像"吗?分界线在哪里,2 ^ 60,2 ^ 100,2 ^ 1000?

  • 如果您可以生成以23开头的所有哈希摘要的原像,该怎么办?当然它不符合preimage的严格定义,但它也是加密哈希函数中的一个严重缺陷.

  • 如果某人有大的多次碰撞,那么他们总能恢复与多次碰撞相冲突的任何消息的图像.例如,

    hash(m1)= hash(m2)= hash(m3)= h

    有人请求h的原像,他们用m2回复.什么时候停止愚蠢并成为真正的攻击?

经验法则?知道有关评估哈希函数攻击的任何好资源吗?

相关链接:

zac*_*usz 2

这是关于攻击场景的。区别在于输入的选择。在多重碰撞中,可以自由选择两个输入第二原像是关于 \xef\xac\x81 找到与任何指定 \xef\xac\x81ed 输入具有相同输出的任何第二个输入。
\n当函数不具有多重碰撞抵抗力时,可能会发现某些类型消息的碰撞 - 并非全部消息。所以这并不意味着第二原像弱点。

\n