Aes
使用加密雜湊匹配 AES 密鑰大小
我正在為自己製作一個工具,我打算在其中儲存密文。我希望將 AES 與任意大小的密鑰一起使用來創建這些密文字元串。這個想法是使用像 SHA256 這樣的加密雜湊來補償密鑰長度問題。
這是一種合理的做事方式嗎?
此外,由於 SHA256 的輸出域比“普通”人可以記住的任何密鑰大得多,如果攻擊者從例如電腦獲取密碼摘要,這是否會增加安全性?
這是一種合理的做事方式嗎?
依靠。鑰匙從哪裡來?如果它們來自使用者的記憶(例如,密碼),那麼不會。原因是簡單的雜湊計算速度相當快。通常,我們建議人們在執行數千次迭代時使用 PBKDF2 或scrypt之類的東西。這樣做的效果是,計算這個函式一次仍然相當快,使用者不會注意到延遲。然而,試圖暴力破解它涉及多次計算該函式。這大大減慢了蠻力攻擊者的速度。此外,特別是 scrypt 被設計為在硬體上執行緩慢。這意味著攻擊者無法將 GPU 或其他硬體設備用於解決問題以加快速度。
此外,由於 sha256 的輸出域比“普通”人可以記住的任何密鑰大得多,如果攻擊者從例如電腦獲取密碼摘要,這是否會增加安全性?
不,我們經常用比特來衡量安全性。特別是熵位。確定性函式(如 sha256)不能產生熵。