7. HKDF- and SHA-Based HMACs (基于HKDF和SHA的HMAC)
以下是对(1)基于SHA的HMAC和(2)基于HMAC的提取-扩展密钥派生函数的简要描述和指向更完整描述及代码的指针. HKDF和HMAC均由Hugo Krawczyk设计.
7.1. SHA-Based HMACs (基于SHA的HMAC)
HMAC是一种使用哈希函数计算密钥MAC(消息认证码 Message Authentication Code)的方法,如[RFC2104]中所述. 它使用密钥与输入文本混合以产生最终哈希.
示例代码也在下面的第8.3节中提供,用于基于本文所述的任何SHA算法执行HMAC. [RFC2104]中的示例代码是针对指定的文本大小编写的. 由于SHA是根据任意数量的位定义的,因此示例HMAC代码已编写为允许HMAC的文本输入具有任意数量的八位字节和位. 还提供了固定长度接口.
7.2. HKDF
HKDF是一种特定的密钥派生函数(Key Derivation Function, KDF),即从初始密钥材料派生一个或多个密码学上强的秘密密钥的函数. HKDF在[RFC5869]中描述,基于HMAC.
HKDF的示例代码在下面的第8.4节中提供.