我不想对弱哈希函数(如MD5或SHA-1 )进行一般的碰撞攻击。我想知道基于弱哈希函数的HMAC的安全性
如果有键k,则消息m
Hmac(k,m) = hash(k`xor opad) || hash( (k` xor ipad) || m ) )第一个问题,Hmac是安全的是什么意思?
Hmac(k',m') = Hmac(k,m) such k',m'的冲突k还有第二个问题。
我在读关于纸质文字记录碰撞的文章
中的破坏身份验证
本文介绍了文本碰撞攻击者对m1和m2的认识。并能找到满足hash(m1 || m2' ) == hash(m1' || m2 ) such m1' and m2'的碰撞
如果对手在弱哈希函数中使用这种记录冲突攻击,那么他还能找到满足Hmac(k',m') = Hmac(k,m) such k',m'的冲突吗??
发布于 2016-09-09 12:16:39
有一些研究严格地定义和证明了HMAC是如何安全的:
HMAC是一种消息认证机制。这意味着,如果攻击者更改了消息,就可以检测到它,因为HMAC不再匹配。这基本上意味着没有消息m',所以HMAC(k, m') == HMAC(k, m)。请注意,这里的k是相同的。如果攻击者发现与另一个密钥发生冲突,从而使HMAC(k', m') == HMAC(k, m)无法用于欺骗消息。
发布于 2016-09-09 18:06:19
密码学家对MAC安全有一个普遍接受的定义:在自适应选择消息攻击下,对生存伪造的抵抗。大多数密码学教科书都涵盖了这一定义--例如,应用密码学手册就是一个很好的来源。HAC可在线使用,因此您可能需要浏览第九章。它在算法方面有点过时,但定义仍然适用。
但是要粗略地扩展这一点,MACs的安全目标是这样的。假设:
如果有效的攻击者能够为他们没有作为#2的一部分查询的消息伪造任何有效的(消息、标记)对,那么MAC就会崩溃。(请注意,这个定义的适当公式附带了一些数学,量化了攻击者在攻击中付出的努力,以及成功的概率是不可接受的。)
如果密钥是秘密的,则此定义意味着您列出的安全目标(更多细节请参见HAC ):
HMAC旨在满足至少MAC安全,但也有证据表明,HMAC支持另一个更强的目标,称为PRF安全("PRF“= 伪随机函数),它说,一个高效的攻击者无法区分的功能,除了随机选择的函数相同的领域和范围。
https://security.stackexchange.com/questions/136331
复制相似问题