如果只知道密钥和明文,则恢复AES IV

时间:2015-05-07 00:31:36

标签: encryption cryptography aes

如果我在AES-CBC模式下解密密文并且第一个块的解密明文与原始已知明文不匹配,则很明显用于解密的IV与加密期间使用的IV不匹配。

用于加密或解密的IV都不为人所知。

如果我知道密文,我可以执行以下操作来查找加密期间使用的IV(尝试过并且有效):

  1. 设置IV = 0
  2. x = decrypt(ciphertext,IV)
  3. originalIV = x xor originalPlaintext
  4. 有没有办法恢复加密中使用的IV,因为我知道原始明文(加密前),解密后的错误明文和密钥?

1 个答案:

答案 0 :(得分:0)

假设我理解了这个问题:这绝对是可能的,而且完全偏离主题。请注意,您不应该在程序员论坛上询问加密问题,否则您将得到各种错误答案。

D成为您的密码解密函数。如果您拥有已知的明文PT,密钥K和来自CBC模式CT的密文,那么您可以通过以下方式恢复用于加密的第一个IV

IV0 = D(CT0) ^ PT0

在我的步骤中,我假设decrypt你的意思是CBC模式。这适用于单个块CBC_Decrypt(K,IV=0,CT) == D(K,CT)