在Rijndael加密中对许多文件使用静态IV值是否可以?

时间:2011-09-03 22:07:38

标签: .net vb.net encryption-symmetric rijndael

我对 Rijndael加密中的 IV 有疑问。

我目前使用Rijndael的方法是对所有加密操作使用一对静态 KeyIv(我的意思是我使用这对Key和Iv for我计算机中的所有受保护文件。)

我听说每个Rijndael加密的IV必须是unique。真的吗?我目前使用single static Key and Iv pair的方法有什么问题(如果有的话)?

2 个答案:

答案 0 :(得分:4)

如果您对同一邮件进行两次加密,则会得到相同的结果 - 通过改变 IV,情况并非如此。 (改变IV更简单,因为你可以用纯文本传输它;它不涉及任何形式的秘密交换。)

这意味着如果您重复使用相同的IV,它可以向攻击者提供信息:如果他们知道一条消息的内容,并且他们再次看到相同的加密数据,他们就会知道它是相同的消息。

所以是的,我每次都会改变IV。 (并尽量避免在任何地方使用相同的密钥,理想情况......就像在多个网站上使用相同的密码一样:这意味着如果您在一个地方受到损害,那么您到处都会失去安全性。)

答案 1 :(得分:2)

初始化向量将AES引擎初始化为特定状态。 使用动态IV的主要目标是对同一文件的两次连续加密不会产生相同的加密值。 要解密文件,您还需要使用相同的IV初始化AES引擎。因此,IV必须与加密文件一起存储。

我认为初始化向量不会在您的用例中提供更多额外的安全性。当您加密可能受到字典攻击的数据(线上的密码,卡号,PIN码)时,它很高兴。对于文件,几乎不可能..