如何解决对于不同的密钥和消息对,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 举报,一经查实,本站将立刻删除。