Aes

洩露一些關於 scrypt 結果的資訊是否安全?

  • May 3, 2018

我正在通過 AES-CBC 加密文件,並使用 scrypt 從使用者提供的密碼中提取密鑰。IV 是公開的,並與加密文件一起儲存。

使用 scrypt 一起生成我的 IV(公共)和密鑰(私有)是否安全(例如,設置 dklen=64 然後使用 scrypt

$$ 0…31 $$用於密鑰和 scrypt$$ 32…63 $$對於IV),還是我會洩露某種狀態資訊?

這應該沒問題,只要您從不將它用於任何其他目的。(例如,如果你想用相同的密碼加密另一個文件,生成一個新的鹽。)

但是有一個更簡單的方法:使用帶有 nonce 0 的 AES256-CTR,完全忘記 AES256-CBC。不再擔心未對齊的消息長度或填充、如何選擇初始化向量等。

我鼓勵您也考慮身份驗證。例如,您可以在 encrypt-then-MAC 組合中使用 AES256-GCM 或 AES256-CTR 和 HMAC-SHA256,而不是未經身份驗證的 AES256-CBC。事實上,也許你最好只使用scrypt(1) 實用程序,它有一個簡單的格式

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