Key-Derivation
HKDF 的更快替代方案
HKDF 在我的一個項目中用於從通用主密鑰派生單獨的密鑰。但是分析表明它在某些情況下是性能瓶頸。有沒有更快的選擇?在Google搜尋“密鑰派生函式”後,我得到的唯一東西是 HKDF 和密碼拉伸算法,如 PBKDF2 或 scrypt。
如果您每次都使用完整的 HKDF,您可以通過僅使用一次提取部分和每個派生密鑰擴展一次來節省時間。如果您遇到最壞的情況,這甚至可以將總時間減半。
HKDF 中的另一個加速可能性是使用另一個雜湊。更快的雜湊值或更好地匹配所需密鑰長度的雜湊值。例如,如果您正在生成一個 256 位密鑰,您可能不想使用 SHA-1,即使它比 SHA-256 快,因為您需要兩次串列迭代。
根據案例,您可能還想考慮使用 KDF1 或 KDF2,它們是更快的基於散列的 KDF。它們在 ISO18033 中定義,但 KDF1 也在RFC 3447(附錄 B.2)中,名稱為 MGF1。
但是,正如HKDF 論文(pdf) 中所解釋的,擴展方案可以與任何 PRF 一起使用。這意味著為了獲得最佳性能,您可以通過將 HMAC 替換為您在硬體中擁有的分組密碼(例如,某些新 CPU 上的 AES-NI)來推出您自己的版本,因為安全分組密碼與 PRF 直到生日界限都無法區分。