一、HMAC
基于单向散列函数的消息验证码(Hash-based Message Authentication Code)
二、HMAC 安全强度
HMAC 算法与对称密钥和单向散列函数息息相关,所以,对称密钥的安全强度和单向散列函数的安全强度,都会影响 HMAC 算法的安全强度,那又该如何计算 HMAC 算法的安全强度呢?
严格讲,HMAC 算法的安全强度,是由对称密钥的安全强度和两倍的散列值长度之间较小的那个决定的,比如,我们选择 256 位的对称密钥,以及散列值长度是 160 位的 SHA-1,那么,这个 HMAC 算法的安全强度就是 256 位
三、可用的 HAMC-HmacSHA256/HmacSHA384
单向散列函数 | 现在能否使用 | 发布日期 | 散列值长度(位) | 处理能力(位) |
---|---|---|---|---|
HmacMD5 | 退役 | 1992.04 | 128 | 2^64 |
HmacSHA-1 | 遗留 | 1995.04 | 160 | 2^64 |
HmacSHA-224 | 现行 | 2004.02 | 224 | 2^64 |
HmacSHA-256 | 现行 | 2002.08 | 256 | 2^64 |
HmacSHA-384 | 现行 | 2002.08 | 384 | 2^128 |
HmacSHA-512 | 现行 | 2002.08 | 512 | 2^128 |
HmacSHA-512/224 | 现行 | 2012.03 | 224 | 2^128 |
HmacSHA-512/256 | 现行 | 2012.03 | 256 | 2^128 |
HmacSHA3-224 | 现行 | 2015.08 | 224 | - |
HmacSHA 3-256 | 现行 | 2015.08 | 256 | - |
HmacSHA3-384 | 现行 | 2015.08 | 384 | - |
HmacSHA3-512 | 现行 | 2015.08 | 512 | - |
其中,HmacSHA-256 和 HmacSHA-384 是目前最流行的两个 HMAC 算法