金鑰衍生函式查看源代码讨论查看历史
在密码学中,密钥派生函数(Key derivation function,简称:KDF)使用伪随机函数|Pseudorandom function family从诸如主密钥或密码的秘密值中派生出一个或多个密钥。KDF可用于将密钥扩展为更长的密钥或获取所需格式的密钥,例如将作为迪菲-赫尔曼密钥交换结果的组元素转换为用于高级加密标准[1] (AES)的对称密钥。用于密钥派生的伪随机函数最常见的示例是密码散列函数。
用途
- 结合非秘密参数从公共秘密值(有时也称为“密钥多样化”)派生出一个或多个密钥。这种使用可以防止获得派生密钥的攻击者知道关于输入秘密值或任何其他派生密钥的有用信息。KDF还可用于确保派生密钥具有其他属性,例如避免某些特定加密系统中的“弱密钥”。
- KDF最常用于密码验证的密码哈希处理,例如用于passwd文件或影子密码|passwd文件。KDF恰巧具有密码散列函数所需的特性,即使它们最初并非为此目的而设计。在这种情况下,非秘密参数被称为盐。
- 2013年,密码哈希竞赛|Password Hashing Competition宣布为密码哈希选择一种新的标准算法。2015年7月20日比赛结束,Argon2|Argon2宣布为最终获胜者。其他四种算法获得特别认可:Catena,Lyra2,Makwa和yescrypt。
- 作为多方密钥协商协议|Key-agreement protocol的组成部分。这样的密钥派生函数的例子包括KDF1,IEEE Std 1363-2000|IEEE P1363,ANSI X9.42。
- 从密码中派生出密钥。
- 从所提供的密钥派生出不同长度的密钥:例如HKDF|HKDF
- 密钥拉伸和密钥强化。