Key-Derivation
什麼是密鑰派生函式?
來自維基百科:
在密碼學中,密鑰導出函式(或 KDF)使用偽隨機函式從諸如主密鑰或其他已知資訊(如密碼或密碼片語)的秘密值導出一個或多個秘密密鑰。
對於它們是什麼以及它們試圖保證的屬性是否有更正式的安全定義,例如加密方案的 ind-cpa 安全性或雜湊函式的抗碰撞性?
這是來自 user4982 評論的Cryptographic Extraction and Key Derivation: The HKDF Scheme的指定部分的摘要。
因為這是在描述基於 HMAC 的 KDF 的學術論文的上下文中,所以術語可能有點過分。我試圖在本摘要中對其進行精簡。
KDF的定義:
KDF 有四個輸入:一個鍵源值、一個輸出長度、一個鹽和一個上下文變數。最後兩個是可選的。KDF 的安全性和質量取決於密鑰源值的屬性。
關鍵來源的定義:
一個源包含兩個值,即關鍵源材料和關於它的輔助知識,它們是使用具有足夠統計熵的算法創建的,可以認為是隨機的。(輔助知識可以是來自統計熵源的分佈,也可以是 DH 密鑰交換的非秘密值,或任何其他相關但不是關於密鑰源材料的秘密數據)
KDF 的安全性定義:
如果知道輔助數據和鹽值的攻擊者幾乎沒有機會通過重複嘗試將 KDF 與輔助數據、鹽和隨機密鑰源材料和上下文變數(又名暴力破解KDF)。
可能他們唯一需要實現的是Pseudo-Randomness,在 [ GGM1986 , §3.1] 中定義。
KDF 不會產生比你給它更多的熵,但它可以避免你的密碼系統由於模式而導致的弱點,如果在幾輪中重複使用相同的密鑰。