Keys

為什麼從主密鑰派生密鑰而不是生成隨機密鑰?

  • March 22, 2019

我注意到 AWS KMS 使用密鑰派生函式 (HKDF) 基於主密鑰生成加密密鑰。

基於主密鑰派生密鑰的實際優勢是什麼?僅使用 CSPRNG 生成隨機密鑰不是更簡單且通常更安全嗎?

儲存的鑰匙更少?

編輯:為了向 AWS KMS 添加上下文,它使用了一個硬體安全模組,這似乎添加了一個儲存約束。但是,鑑於 KMS 基本上只是生成新的數據加密密鑰 (DEK) 並用主密鑰包裝(信封加密)它們以供使用者儲存在其他地方,它似乎並沒有改變儲存要求。所以它引出了一個問題,為什麼從主密鑰中派生 DEK?

這裡有各種優點。也許它們並不都適用於這種情況——我不知道,但在現實世界中確實存在適用的情況。

  • 測試向量。 您可以為整個密碼系統編寫端到端的已知答案測試。您可以在開機自檢中驗證這些測試向量,以低成本檢測災難性故障。您可以在開發過程中輕鬆使用這些測試向量來調試可互操作的替代實現。
  • 可重現的子計算。 如果您需要將分支添加到具有獨立鍵的子計算樹中,您只需為 HKDF 資訊參數使用不同的標籤,所有其他計算將保持不變。這樣,例如,您不必更新測試向量,而如果您從順序 PRNG 中提取鍵,則必須更新。
  • 減少儲存。 您只需要儲存與系統中獨立權限域一樣多的密鑰。您可以簡單地在特權域中為不同目的重新派生任何子密鑰,而不必單獨儲存它們。
  • 減少對熵源的依賴。 您可以將密鑰快閃記憶體到嵌入式微控制器上,並使用它為各種目的派生子密鑰,甚至輪換密鑰並擦除舊密鑰,而無需依賴微控制器本身的熵源。

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