Aes

Encrypt-then-MAC:完全隨機密鑰或從主密鑰派生的密鑰?

  • June 25, 2014

我有這種情況,我使用 Encrypt-then-MAC(AES256-CBC 和 HMAC-SHA256)和由 CSPRNG(特別是 Java 中的 SecureRandom)生成的密鑰。我想知道哪個更好:

  • 使用 CSPRNG 生成兩個不同的密鑰,每個密鑰為 32 字節

或者

  • 使用 CSPRNG 生成 32 字節的主密鑰,然後使用 HKDF 導出加密和認證密鑰

我想補充一點,不涉及人工互動:這些密鑰儲存在數據庫中,僅供機器使用。

非常感謝你!

如果您關心數據庫大小,使用 HKDF 時只需要儲存主密鑰。將其發送到另一台電腦時同上。否則,兩個獨立的隨機密鑰顯然是安全的並且更易於實現,因此您應該這樣做。

如果您確定 SecureRandom 是受信任的、經過驗證的 CSPRNG,您可以在沒有 HKDF 的情況下使用它而不會出現問題。

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