哈希函数中的多重冲突与第一或第二原像之间有什么区别。
第一次原像攻击:给定一个哈希 h,找到一条消息 m 使得
哈希(m)= h。
第二原像攻击:给定一个固定的消息 m1,找到一个不同的消息 m2 使得
哈希(m2)=哈希(m1)。
多重碰撞攻击:生成一系列消息 m1, m2, ... mN,这样
哈希(m1) = 哈希(m2) = ... = 哈希(mN)。
维基百科告诉我们,原像攻击与碰撞攻击的不同之处在于,有一个固定的哈希或消息被攻击。
我对发表以下声明的论文感到困惑:
该技术不仅可以有效地搜索碰撞,而且还适用于探索 MD4 的第二原像。关于第二原像攻击,他们表明随机消息是概率为 2^–122 的弱消息,只需一次 MD4 计算即可找到与弱消息对应的第二原像。
如果我理解作者似乎在说什么,他们开发了一种多重冲突攻击,其中包含足够大的消息集,给定一条随机消息,它与他们的多重冲突中的一个重叠的可能性很大,尽管非常小。碰撞。
我在许多论文中看到了类似的论点。我的问题什么时候攻击不再是多重碰撞攻击并成为第二次原像攻击..
如果多重冲突与 2^300 条其他消息发生冲突,这是否算作第二个原像,因为多重冲突可用于计算与之冲突的其中一条消息的“原像”?分界线在哪里,2^60、2^100、2^1000?
如果您可以生成所有以 23 开头的哈希摘要的原像,会怎样?当然它不符合原像的严格定义,但它也非常肯定是密码散列函数中的一个严重缺陷。
如果某人有一个大的多重冲突,那么他们总是可以恢复任何哈希与多重冲突冲突的消息的图像。例如,
散列(m1) = 散列(m2) = 散列(m3) = h
有人请求 h 的原像,他们以 m2 响应。这什么时候不再愚蠢而成为真正的攻击?
经验法则?知道评估哈希函数攻击的任何好的资源吗?
相关链接: