AES 的衍生 IV

Cra*_*ger 1 encryption rsa aes

如果每次在各方之间进行交易时都会生成一个新的随机 AES 密钥。IV是否从密钥派生有关系吗?

例如:Bob 向 Alice 发送一条 AES-CBC 加密消息。Bob 为此创建了一个随机的 256 位密钥。现在假设 Bob 使用 sha256(key) 的前 128 位来获得用于加密的 IV。

Bob 使用 Alice 的公钥通过 RSA 加密来保护密钥。现在 Alice 使用她的 RSA 私钥解密密钥。然后 Alice 使用 sha256(key) 的前 128 位获得 IV 用于解密。

Alice 和 Bob 继续使用相同的程序交谈,但每次发送消息时都会生成一个新的随机密钥。

现在假设 Eve 可以读取 Bob 和 Alice 的 AES 和 RSA 密文。Eve 也知道 Bob 和 Alice 正在从密钥和使用的方法中推导出 IV。那仍然无助于 Eve 破解消息?

Maa*_*wes 5

如果每条消息的密钥都不同,那么您就不需要 IV(换句话说,您的 IV 可能由全零组成)。你真正应该不能做的是使用相同的密钥加密IV,或从派生密钥的IV

IV 用于允许密钥重用。如果您不重用密钥(即使及时),那么 IV 就没用了。因为 IV 是用于密钥重用的,所以仅从密钥中派生它显然不是要做的事情,如果您重用它,很容易破坏密钥。

  • 如果主密钥大于实际密钥,则从主密钥派生 IV 可能是一个好主意。例如,您可以从同一个 256 位主密钥派生一个 128 位 AES 密钥和一个 128 位 IV。我在我的一个项目中这样做。在这种情况下,IV 可以防止一些多目标攻击。 (3认同)
  • @ownlstead:确实,在攻击者可能强制重用密钥的选择纯文本攻击场景中,使用从主密钥派生的 cek 和 iv 至少不会比使用常量 iv 更糟。 (2认同)