密鑰派生函數

本页使用了标题或全文手工转换,现处于繁体转换模式
出自求聞百科

密碼學中,密鑰派生函數(英語: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].