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

时间:2011-11-02 15:54:25

标签: c# encryption aes initialization-vector

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

我知道什么是初始化矢量。我已阅读SO上的帖子(例如Should I use an initialization vector (IV) along with my encryption?)和wikipedia上的文章。

但是,有一点我没有得到:因为你需要在解密过程中使用与加密过程中使用的相同的IV,你必须用加密文本存储IV。对每种加密使用独特的IV有什么好处?如果攻击者获得加密文本,他也将获得IV。

1 个答案:

答案 0 :(得分:7)

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

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