独特的初始化向量有什么好处?

Oti*_*iel 2 c# encryption aes initialization-vector

我使用带有Rijndael类的AES加密来加密密码,然后将其存储在配置文件中.

我知道什么是初始化矢量.我在SO上读过线程(例如我应该使用初始化向量(IV)和我的加密吗?)和维基百科上的文章.

但是,有一点我不明白:因为您需要在解密过程中使用与加密期间使用的相同的IV,您将被迫使用加密文本存储IV.对每种加密使用独特的IV有什么好处?如果攻击者获得加密文本,他也将获得IV.

Jon*_*eet 7

假设您在两个地方都有相同的消息,两个地方都使用相同的密钥加密.

攻击者(以某种方式)发现其中一条消息的明文是什么.如果你在两种情况下都使用相同的IV,攻击者也会知道另一条消息的明文,因为密文将是相同的.如果你使用了不同的IV(并且攻击者没有密钥)那么第二条消息的内容仍然是安全的.