跳到主要内容

3. 密钥 (Keys)

HMAC 的密钥可以是任意长度 (长于 B 字节的密钥首先使用 H 进行散列)。但是, 强烈不建议使用少于 L 字节的密钥, 因为这会降低函数的安全强度。长于 L 字节的密钥是可以接受的, 但额外的长度不会显著增加函数强度。(如果认为密钥的随机性较弱, 则可能建议使用更长的密钥。)

密钥需要随机选择 (或使用以随机种子播种的密码学强伪随机生成器), 并定期刷新。(当前攻击没有指出密钥更改的具体推荐频率, 因为这些攻击在实践中是不可行的。但是, 定期密钥刷新是一种基本的安全实践, 有助于防范函数和密钥的潜在弱点, 并限制暴露密钥的损害。)