微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于不同的密钥和消息对,HMAC 输出是否相同

如何解决对于不同的密钥和消息对,HMAC 输出是否相同

如果我使用不同的密钥和消息,HMAC 的输出是否会相同?

示例:

Out1 = HMAC(key1,msg1)
Out2 = HMAC(key2,msg2)

可以在任何情况下 Out1=Out2 吗?

解决方法

简而言之,当搜索在计算上有界时,您找不到比可忽略的概率更好的对。


假设使用的哈希函数是 PRF,HMAC 是一个伪随机函数 (PRF)。

您正在寻找的 HMAC 碰撞。理论上,可以找到这样的对,它们会发生碰撞。

如果您使用 n 位输出,则固定密钥的两对碰撞概率为 1/2^n。如果 HMAC 是用 SHA256 发起的,那么两个随机对的碰撞将是 1/2^256。根据生日悖论,您需要大约 2^128 对才能在同一键下找到 50% 的碰撞。

也可以使用随机密钥执行类似的计算。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。