Keys
密鑰派生函式 (KDF):什麼是?主要用途?如何使用它們?
什麼是 KDF?他們的主要目的是什麼?如何使用它們,換句話說,它們在密碼學方案中的練習是什麼?
HKDF論文提供了一個很好的總結:
**密鑰派生函式 (KDF)**是密碼系統的基本和必不可少的組成部分:它的目標是獲取初始密鑰材料的來源,通常包含一定數量的隨機性,但不是均勻分佈的,或者攻擊者對這些材料有一些部分了解,並從中派生出一個或多個密碼學上的強密鑰。
在這裡,重要的是您要了解“隨機”一詞在機率論中的使用方式與電腦人員(ab)如何使用。非常不正式:
- 當我們電腦人員說“隨機”時,我們通常不是隱含地假設我們在談論離散的、有限的、統一的和獨立的隨機變數——一個從有限集合中提取的任何值的機率與所有其他變數相同,並且較早的結果不會影響以後的結果,即擲硬幣或擲骰子的行為方式。
- 當統計學家說隨機時,他們並沒有假設那麼多。例如,對於統計學家來說,典型的隨機變數具有正態分佈(“鐘形曲線”),其中值圍繞平均值聚集並根據標準偏差分散——例如,不精確的物理測量具有隨機誤差的方式圍繞真值聚集。
因此,考慮到這一點,閱讀引用時,KDF 是一個密碼學上的強函式,它接受統計學家意義上的隨機輸入,並產生密碼學家(首選)意義上的偽隨機輸出。這在各種情況下都很有用:
- 與隨機選擇的密鑰進行 Diffie-Hellman 密鑰交換會產生一個共享秘密,在統計學家的意義上它是隨機的,但其輸出不是均勻分佈的。因此,要將這個秘密用作對稱密鑰,您需要通過一些 KDF 傳遞它。
- 加密隨機數生成器通過測量隨機事件(如網路數據包時間、滑鼠移動或按鍵)獲得的值定期刷新自身。這些也不是統一的,因此可以使用 KDF 來解決這個問題。
- 密碼也不統一,因此我們使用 KDF 將密碼轉換為密鑰。但在這種情況下,我們使用專門的基於密碼的KDF,它還添加了一個工作因素來減緩暴力猜測。