摘自Wikipedia:


第二个像前电阻

给定输入$ m_1 $,应该很难找到另一个输入$ m_2 $这样的
$ m_1 $≠$ m_2 $和$ \ operatorname {hash}(m_1)= \ operatorname {hash}(m_2)$。缺少此属性的功能很容易受到二次图像攻击。

抗碰撞性

很难找到两条不同的消息$ m_1 $和$ m_2 $这样的
表示$ \ operatorname {hash}(m_1)= \ operatorname {hash}(m_2)$。这样的对称为加密哈希冲突。


请问有人能解释这两者之间的区别吗?它们似乎与我完全相同,因为在两个定义$ m_1 \ neq m_2 $和$ \ operatorname {hash}(m_1)= \ operatorname {hash}(m_2)$中。

评论

进一步阅读:stackoverflow.com/questions/28378326/…

#1 楼

区别在于选择$ m_1 $。


在第一种情况下(第二原像抵抗),攻击者将获得固定的$ m_1 $,他必须找到一个不同的$ m_1 $ $ m_2 $,且哈希值相等。特别是,他不能选择$ m_1 $。
在第二种情况下(冲突抵抗),攻击者可以自由选择消息$ m_1 $和$ m_2 $,并且唯一的要求是它们不同(并且散列为相同的值)。

(由此也很明显,碰撞抵抗意味着第二原像抵抗:攻击者可以选择任意$ m_1 $并计算第二原像$ m_2 $到获得碰撞。)