如果我在AES-CBC模式下解密密文并且第一个块的解密明文与原始已知明文不匹配,则很明显用于解密的IV与加密期间使用的IV不匹配。
用于加密或解密的IV都不为人所知。
如果我知道密文,我可以执行以下操作来查找加密期间使用的IV(尝试过并且有效):
有没有办法恢复加密中使用的IV,因为我知道原始明文(加密前),解密后的错误明文和密钥?
答案 0 :(得分:0)
假设我理解了这个问题:这绝对是可能的,而且完全偏离主题。请注意,您不应该在程序员论坛上询问加密问题,否则您将得到各种错误答案。
让D
成为您的密码解密函数。如果您拥有已知的明文PT
,密钥K
和来自CBC模式CT
的密文,那么您可以通过以下方式恢复用于加密的第一个IV
:
IV0 = D(CT0) ^ PT0
在我的步骤中,我假设decrypt
你的意思是CBC模式。这适用于单个块CBC_Decrypt(K,IV=0,CT) == D(K,CT)
。