Key-Derivation
SHA256 是否足以縮小密鑰?
我有一個密鑰,它是由 PBKDF2 生成的兩個較短密鑰的組合,它們的長度或多或少為 64 個字節。現在我需要將它縮小到 32 個字節,我不知道用什麼來做。我在想SHA256。我知道 SHA256 自己生成密鑰並不安全,但是由於我擁有的是兩個正確生成的密鑰的組合,所以 SHA256 就可以了。我是對的還是我應該使用其他東西來實現這個目標?
我同意 SHA-256 在這裡應該沒問題的評論。
但是,如果您已經將 HMAC-SHA-256 用於 PBKDF2,則可以使用HKDF Expand,儘管它的名稱是定義的,即使輸出長度比輸入短。在您的情況下,輸出將很簡單:
$$ \operatorname{HMAC-SHA-256}(\text{key}, \text{info} || \text{0x01}), $$
其中 ‘info’ 是一個可選的任意字元串,用於指定此特定密鑰,以防您需要從同一材料派生另一個密鑰,而 ‘0x01’ 是值為 1 的字節。