Aes
使用 AES CBC 將 IV 重複用於單個密鑰 100 次是否安全?
我有一個唯一的 6 位數字,我正在從中生成 IV。我試圖讓它盡可能獨特。從我的程式中,我可以將其歸結為每個唯一的 6 位數字只有 100 個重複的 IV。
現在我讀到重複使用 IV 是一個很大的禁忌,因為它會洩露資訊。我現在的問題是,假設我只使用 1 個密鑰,如果有人訪問了我的 10 億條記錄的數據庫並擁有加密字元串和 IV。如果每個 IV 只重複使用 100 次,他們是否能夠僅根據該資訊解密加密字元串?
如果是這樣,他們怎麼能做到?
給定足夠的資源——也許吧。如果攻擊者知道已加密的文本並且可以將該明文與加密字元串相關聯,那麼他們可能會努力找出使用相同 IV 加密的其他字元串是什麼。他們可以使用一些公式簡單地推導出明文嗎?不。如果您要加密文本數據,它比二進制數據更容易確定。
您還有另一個問題,通常建議限制使用單個密鑰加密的數據總量(無論使用了多少 IV)。在 Cryptography Engineering Ferguson 和 Schneier 書中,建議 CBC 模式的限制約為 64 GB(假設您使用的是 AES)。因此,如果您的十億條記錄每條超過 64 字節,您就會開始遇到這種情況。這是基於他們認為可接受的數據洩露風險的建議。您可能會加密 128 GB 或 256 GB 並且沒問題。或者,如果您希望數據在未來幾年內保持安全,而不必重新加密數據,您可能希望將其降低到每個密鑰 8 GB 甚至 4 GB。這僅取決於您願意承擔的風險水平。