Aes

通過雜湊算法將密鑰變為 256 位

  • December 1, 2021

例如,如果我使用 Rijndael 進行加密,我必須指定一個特定長度的密鑰。為了方便使用者,我希望使用者能夠使用任意長度的密鑰。然後,為了獲得算法所需長度的密鑰,我建構了雜湊值,然後將其用於加密和解密。例如,如果我使用 SHA-256,密文的安全性是否仍然得到保證?我應該填充使用者鍵並縮短長鍵嗎?獲得 256 位密鑰長度的最佳方法是什麼?

SHA-256 不是密鑰派生函式 (KDF),不應用作其中之一。

SHA-256 可以是 KDF 的一部分,例如HKDF -SHA256 使用HMAC -SHA256 反過來使用 SHA256。HKDF 可能會被濫用,這可能會破壞其安全性,請確保您正確使用它(如果您使用它)。

HKDF僅適用於高熵輸入,如其他鍵或橢圓曲線 Diffie Hellman 交換的結果。如果您從密碼中派生密鑰,則需要一個基於密碼的密鑰派生函式,例如Argon2id

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