Key-Derivation
ChaCha20-Poly1305:我的 KDF 鹽/通行證也可以是隨機數嗎?
我有一個PSK。我不想直接使用它。我想將“鹽”/密碼傳遞給 KDF 並獲得一個新密鑰,用於使用 ChaCha20-Poly1305 進行身份驗證加密。
我需要給對方使用的隨機數。
我沒有足夠的空間將所有這些都放在一個數據包中。
我的計劃是生成一個隨機數。但後來想…
也使用我的 pass/salt(16 個字節)作為 nonce(12 個字節)是否不好?我可以通過從鹽中刪除 4 個字節來節省發送隨機數的空間。
我知道所有關於重用 nonce 的危險。但是我不確定它是否適用於這裡,因為我的“舊 PSK”與鹽/通行證一起被扔進了 KDF,所以這是否也構成了 nonce 是否重要?
如果您有 PSK,則不需要密碼。您可以只從 PSK 派生新的會話密鑰,例如在 HKDF 中使用鹽。如果您已經在使用鹽,也可以派生密鑰*和 IV 。*您也可以使用從零開始的計數器作為 nonce / IV,因為生成的密鑰被認為是“新鮮的”。
通常,對於流密碼的任何加密操作,您只需要一個*唯一的密鑰隨機數組合。*如果您始終應用隨機鹽來派生兩者,則滿足該要求,因為密鑰始終是新鮮的。然而,重用鹽對安全性來說是致命的,因此鹽應該由安全隨機數生成器生成的 12 個字節/96 位或更多組成。
也可以將隨機鹽與 PBKDF 一起使用,但如前所述,我不確定您是否需要密碼以及密碼擴展功能,例如密碼雜湊/PBKDF。