对于不同的密钥和消息对,HMAC 输出是否相同?
Could HMAC output be the same for different key and message pairs
如果我使用不同的密钥和消息,HMAC 的输出是否相同?
示例:
Out1 = HMAC(key1, msg1)
Out2 = HMAC(key2, msg2)
在任何情况下Out1=Out2都可以吗?
简而言之,当搜索受计算限制时,您找不到比可忽略概率更好的此类对。
HMAC 是一个伪随机函数 (PRF),假设使用的哈希函数是 PRF。
您正在寻找 HMAC 的冲突。理论上是有可能找到这样的对撞的。
如果使用n
位输出,则固定密钥的两对碰撞概率为1/2^n
。如果 HMAC 是用 SHA256 发起的,那么两个随机对的碰撞将是 1/2^256
。根据生日悖论,您需要大约 2^128
对才能在同一键下找到 50% 的碰撞。
也可以使用随机密钥执行类似的计算。
如果我使用不同的密钥和消息,HMAC 的输出是否相同?
示例:
Out1 = HMAC(key1, msg1)
Out2 = HMAC(key2, msg2)
在任何情况下Out1=Out2都可以吗?
简而言之,当搜索受计算限制时,您找不到比可忽略概率更好的此类对。
HMAC 是一个伪随机函数 (PRF),假设使用的哈希函数是 PRF。
您正在寻找 HMAC 的冲突。理论上是有可能找到这样的对撞的。
如果使用n
位输出,则固定密钥的两对碰撞概率为1/2^n
。如果 HMAC 是用 SHA256 发起的,那么两个随机对的碰撞将是 1/2^256
。根据生日悖论,您需要大约 2^128
对才能在同一键下找到 50% 的碰撞。
也可以使用随机密钥执行类似的计算。