Aes
如何保護 AES 免受選擇明文攻擊?
我有一台使用相同 AES 密鑰加密文件的伺服器。使用者可以上傳文件並下載其加密版本。使用者可以上傳任意數量的文件。使用者可以在 D 日期之後通過伺服器解密文件。一個使用者可能會看到另一個使用者的加密文件,但如果他能在 D 日期之前解密它,那將是一場災難!
我在其他堆棧溢出文章中讀到,使用相同的初始化向量可以使選擇明文攻擊變得容易。所以我想為每個上傳的文件生成一個不同的初始化向量。將此IV添加到加密文件中是否是一種標準的安全方式?
我的第一個想法是我使用不同的 AES 密鑰對其進行加密,然後將其簡單地連接到加密的字節數組。但我寧願使用更標準的解決方案來解決這個問題。
TL;DR:AES 可以安全地抵禦純文字攻擊。
如果 :
- 您不重複使用您的 IV
- 你的靜脈注射是隨機的
- 您使用正確的操作模式(不是 ECB …)
那麼您就可以安全地抵禦此類攻擊(您至少需要滿足這 3 個條件)。
附帶說明一下,IV 可以公開,這不是問題。
值得閱讀: