2011-09-03 79 views
3

我在Rijndael加密IV的問題。對於許多文件,Rijndael加密可以使用靜態IV值嗎?

我目前使用Rijndael算法的方法是使用一對靜態KeyIv所有加密操作(我的意思是我用這對密鑰和IV的所有受保護的文件在我的電腦)。

聽說IV必須unique每個Rijndael加密。真的嗎?我目前使用single static Key and Iv pair的方法有什麼問題(如果有的話)?

+0

有點相關:http://en.wikipedia.org/wiki/Related-key_attack –

回答

2

的初始化向量將AES引擎初始化爲特定狀態。 使用動態IV的主要目標是相同文件的兩個連續加密不會導致相同的加密值。 要解密文件,您還需要使用相同的IV初始化AES引擎。因此,IV必須與您的加密文件一起存儲。

我不認爲初始化向量會在你的使用情況提供多少額外的安全性。在加密可能受到短語攻擊的數據時(線路上的密碼,卡號,PIN碼),很高興收到它。對於文件,幾乎是不可能的。

+0

很好的解釋,基本上它和散列中的鹽一樣。 –

4

如果兩次加密相同的消息,你會得到相同的結果 - 通過改變要麼關鍵的IV,這將不會是這樣。 (改變IV是簡單的,因爲你可以用純文本傳輸;它不涉及任何形式的祕密交換。)

這意味着如果你重複使用相同的IV,可以給攻擊者提供信息:如果他們知道一條消息的內容,並且他們再次看到相同的加密數據,他們會知道這是相同的消息。

所以,是的,我會每次都改變IV。 (儘量避免使用相同的密鑰無處不在,理想......這就像使用多個網站使用相同的密碼:這意味着,如果你在一個地方妥協,你已經失去了無處不在的安全。)

+0

但是,如果* static *鍵被泄露(並且動態IV在純文本文本)數據可以被解密,對吧?如果是這樣的話,IV是否靜止似乎並不重要。 –

+1

@AlixAxel:在這種情況下沒有幫助,但這不是唯一重要的攻擊。如果密鑰本身*沒有被破壞,但是有一條*明文*信息,你是不是喜歡攻擊者不能確定是否能夠在以後再次發送相同的明文消息? –

+0

是的,這是有道理的。 –

相關問題