密码学
HMAC
别称: 带密钥哈希 MAC, RFC 2104 HMAC
定义
基于密码学哈希函数的带密钥消息认证码结构,由 RFC 2104 与 FIPS 198-1 定义。
HMAC(Hash-based Message Authentication Code)是一种对称 MAC 构造,定义于 RFC 2104 与 FIPS 198-1,将秘密密钥 K 与哈希函数 H 结合生成 tag:HMAC(K,m) = H((K' XOR opad) || H((K' XOR ipad) || m))。这种嵌套结构使 HMAC 即使在与 Merkle-Damgård 类哈希(如 SHA-256)配合使用时,也能抵御长度扩展攻击;其安全性可归约为压缩函数的弱抗碰撞性与伪随机性。常见实例 HMAC-SHA-256 与 HMAC-SHA-512 被广泛用于 TLS 记录保护、JWT 签名、OAuth、IPsec,以及作为 PBKDF2 和 HKDF 的内部 PRF。HMAC 仍是对称消息认证的可靠默认选择。
示例
- 采用 HS256 算法的 JWT 令牌使用 HMAC-SHA-256 进行签名。
- AWS Signature Version 4 使用 HMAC-SHA-256 对 API 请求进行签名。
相关术语
消息认证码(MAC)
使用对称密钥计算的短标签,用于对消息进行认证并检测篡改,计算与验证使用同一个共享密钥。
密码学哈希函数
将任意长度输入映射为固定长度摘要的确定性单向函数,具备抗碰撞、抗原像和抗第二原像三大安全性质。
SHA-256
SHA-2 系列中的 256 位密码学哈希函数,广泛用于数字签名、TLS、区块链与完整性校验。
PBKDF2
由 PKCS #5 / RFC 8018 定义的基于口令的密钥派生函数,使用可配置迭代次数和盐反复调用一个伪随机函数。
数字签名
一种公钥密码学机制,用于证明消息或文档的真实性、完整性以及不可否认性。
TLS (Transport Layer Security)
TLS (Transport Layer Security) — definition coming soon.