密钥派生函数

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻

密码学中,密钥派生函数(英语:Key derivation function,简称:KDF)使用伪随机函数从诸如主密钥或密码的秘密值中派生出一个或多个密钥。KDF可用于将密钥扩展为更长的密钥或获取所需格式的密钥,例如将作为迪菲-赫尔曼密钥交换结果的组元素转换为用于高级加密标准(AES)的对称密钥。用于密钥派生的伪随机函数最常见的示例是密码散列函数[1]

使用

  • 结合非秘密参数从公共秘密值(有时也称为“密钥多样化”)派生出一个或多个密钥。这种使用可以防止获得派生密钥的攻击者知道关于输入秘密值或任何其他派生密钥的有用信息。KDF还可用于确保派生密钥具有其他属性,例如避免某些特定加密系统中的“弱密钥”。
  • KDF最常用于密码验证的密码哈希处理,例如用于passwd文件或影子密码文件。KDF恰巧具有密码散列函数所需的特性,即使它们最初并非为此目的而设计。在这种情况下,非秘密参数被称为
2013年,密码哈希竞赛宣布为密码哈希选择一种新的标准算法。2015年7月20日比赛结束,Argon2宣布为最终获胜者。其他四种算法获得特别认可:Catena,Lyra2,Makwa和yescrypt。[2]
  • 作为多方密钥协商协议的组成部分。这样的密钥派生函数的例子包括KDF1,IEEE Std 1363-2000,ANSI X9.42。
  • 从密码中派生出密钥。
  • 从所提供的密钥派生出不同长度的密钥:例如HKDF
  • 密钥拉伸和密钥强化。

参考文献

  1. Zdziarski, Jonathan. Hacking and Securing IOS Applications: Stealing Data, Hijacking Software, and How to Prevent It. O'Reilly Media. 2012: 252–253. ISBN 9781449318741. 
  2. Password Hashing Competition. [2019-09-17].