首页/安全/加密与证书速查/密钥派生函数(KDF)
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

密钥派生函数(KDF)

从口令、共享秘密或主密钥派生用途分离的子密钥:口令类用 PBKDF2/scrypt/Argon2,通用类用 HKDF 或 NIST SP 800-108 系 KDF。

加密与证书速查安全更新于 2026-10-12
目标避免密钥复用、实现用途分离、支持轮换
输入要素主密钥/共享秘密 + 盐 + 上下文标签
输出固定长度子密钥(按用途分别派生)
标准RFC 5869(HKDF)、NIST SP 800-108

OpenSSL 3 的 kdf 命令(HKDF 示例)

OpenSSL 3 的 kdf 命令(HKDF 示例)
openssl kdf -keylen 32 -kdfopt digest:SHA256 -kdfopt hexkey:00112233445566778899aabbccddeeff -kdfopt hexsalt:0102030405060708 -kdfopt info:enc-key HKDF
派生时带用途标签(如 enc / mac / iv),不同用途的密钥在数学上相互独立,某一处泄漏不会直接波及全部。

易错点

  • 用同一主密钥直接充当多种用途的密钥(加密也用、MAC 也用)会打破密钥分离
  • KDF 不提升熵:低熵口令先经过慢散列,再交给 HKDF

数据来源与参考

  • RFC 5869(HKDF)
  • NIST SP 800-108 Rev.1(基于 PRF 的 KDF)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌