CyberGlossary

密码学

密钥派生函数(KDF)

别称: KDF, 密钥派生

定义

从口令、共享密钥或主密钥等秘密素材派生出一个或多个强加密密钥的密码学函数。

密钥派生函数(Key Derivation Function,KDF)从某种秘密素材出发——可以是口令、Diffie-Hellman 共享密钥或已有的主密钥——派生出一个或多个具有固定长度的强加密密钥。KDF 大致分为两类:面向口令的 KDF,设计为缓慢且内存密集(Argon2id、scrypt、bcrypt、PBKDF2);以及面向高熵输入的 extract-and-expand 类 KDF(HKDF,定义于 RFC 5869)。HKDF 被广泛用于 TLS 1.3、Signal、WireGuard 和 Noise,通过 HMAC 从单个共享密钥派生出多个会话密钥。优秀的 KDF 支持盐和可选的 info/上下文字符串,实现派生密钥的域分离,确保不同上下文下的派生密钥彼此独立、不可关联。

示例

  • TLS 1.3 使用 HKDF-Extract+Expand 派生握手与流量密钥。
  • Argon2id 从用户的口令短语派生 32 字节 AES 密钥,用于解锁加密保险库。

相关术语