Hash

HMAC和HKDF在特定情況下的區別

  • February 17, 2021

我想使用密鑰派生函式從另一個密鑰派生密鑰。

我認為 HKDF 在我的情況下是最簡單的解決方案。

這個解釋對HKDF給出了明確的定義。

如果從 KDF 請求的密鑰位數等於雜湊輸出長度(即L = k在定義中),我是否必須計算 2 個 HMAC:

PRK = HMAC(XTS, SKM)K(1) = HMAC(PRK, CTXinfo)

或者我可以直接計算:

K(1) = HMAC(SKM, CTXinfo)?

當 SKM 值是使用某種確定性方法(例如密鑰交換)或從可能不完全受信任的來源導出時,HKDF 階段 1 很有用。SKM 可能比您想要的密鑰大得多,但熵可能不均勻分佈。階段 1 將熵壓縮並分配到一個大小適合於階段 2 中的散列函式的密鑰中。

如果你有一個真正的隨機數生成器的源密鑰,或者已經通過了強 KDF,你可以用 SKM 替換 PRK,並跳過第一個 HMAC 操作。

引用自:https://crypto.stackexchange.com/questions/25988