【问题标题】:Is that OK to use static IV value in Rijndael encryption for many files?可以在 Rijndael 加密中对许多文件使用静态 IV 值吗?
【发布时间】:2011-09-03 22:07:37
【问题描述】:

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

我目前使用 Rijndael 的方法是使用一对 static KeyIv 进行所有加密操作(我的意思是我将这对 Key 和 Iv 用于所有受保护的文件我的电脑)。

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

【问题讨论】:

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


【解决方案1】:

如果您将同一消息加密两次,您将获得相同的结果 - 通过改变 either 密钥 IV,情况并非如此。 (更改 IV 更简单,因为您可以以纯文本形式传输它;它不涉及任何类型的秘密交换。)

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

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

【讨论】:

  • 但是如果 static 密钥被泄露(并且动态 IV 以纯文本形式传输),无论如何都可以解密数据,对吧?如果是这样,IV 是否是静态的似乎并不重要。
  • @AlixAxel:在这种情况下它没有帮助,但这不是唯一重要的攻击。如果密钥本身没有被泄露,但有一个明文消息被泄露,您是否不希望攻击者无法判断是否发送了相同的明文消息稍后再来?
【解决方案2】:

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

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

【讨论】:

  • 很好的解释,基本上它的作用与哈希中的盐相同。
猜你喜欢
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
相关资源
最近更新 更多