HMAC是IP安全里必须实现的MAC方案,并且其他Internet协议中(如SSL)也使用了HMAC。HMAC已作为NIST标准发布。
HMAC的设计目标
1、可以直接使用现成的Hash函数
2、很容易用更好地Hash函数替代原来嵌入的Hash函数
3、能够保持Hash函数的原有性能,不能过分降低其性能
4、对密钥的使用和处理应较简单
5、如果已知嵌入的Hash函数的强度,完全可以知道认证机制抗密码分析的强度
正是HMAC的这些设计目标保证了HMAC的灵活性、可用性和扩展性,从而得到了广泛的支持。
HMAC算法
HMAC描述如下:
HMAC(K , M) = H[(K+⊕opad) || H[(K+⊕ipad) || M]]
这种结构对于长消息,其执行时间与嵌入的Hash函数差不多,但不适合消息大多较短的情况。这种情况下则会使用如下结构进行优化。
其中f(IV,S)是Hash函数的压缩函数,其输入是n位的初始变量和b位的分组,输出是n位的链接变量。
HMAC的安全性
已证明,对Hash函数有效的生日攻击并不同样对HMAC有效,原因在于Hash函数的输入(IP和M)都完全已知,而HMAC的输入受K的影响并不完全可知,因此可以抵抗生日攻击。
HMAC对于穷举攻击等其他攻击也保持了Hash函数的安全强度。
时间: 2024-10-15 11:51:38