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

使用

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

参考文献

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.