Encryption
如何使用 Argon2id 從一個密碼中派生兩個密鑰
我想從使用者密碼派生兩個獨立的 256 位密鑰用於對稱加密。我使用 Argon2id 作為基於密碼的密鑰派生函式。我打算做以下事情:
- 生成 256 位隨機鹽。
- 使用使用者密碼和 salt 生成帶有 Argon2id 的 512 位標籤。
- 將 512 位標籤的前 256 位作為第一個密鑰,將後 256 位作為第二個密鑰。
這會產生兩個獨立的密鑰嗎?
注意:這個問題對 scrypt 的回答是肯定的。
Argon2 支持變長輸出,所有輸出表現為獨立的隨機位。您可以按照您想要的任何方式拆分輸出。請注意,總安全性不大於 512 位,但這不是問題,更大的輸出不會導致隨機性“拉伸”並變弱。
使用 Argon2 生成變長輸出,相當於生成單個輸出並將其輸入 HKDF 以生成多個密鑰,或者將其輸入 XOF 以將其擴展為更多字節。
見https://en.wikipedia.org/wiki/Argon2#Variable-length_hash_function