【发布时间】:2015-05-07 00:31:35
【问题描述】:
如果我在AES-CBC模式下解密一个密文,并且第一个块的解密明文与原始已知明文不匹配,很明显用于解密的IV与加密时使用的IV不匹配。
用于加密或解密的 IV 都不为人所知。
如果我知道密文,我可以执行以下操作来查找加密期间使用的 IV(尝试过并且有效):
- 设置 IV=0
- x = 解密(密文,IV)
- originalIV = x xor originalPlaintext
如果我知道原始明文(加密前)、解密后的错误明文和密钥,是否有办法恢复加密中使用的 IV?
【问题讨论】:
-
我投票结束这个问题,因为它是关于密码学而不是编程的。正确的论坛是 crypto.stackexchange.com,这将是一个很好的问题。
-
@ArtjomB。他的问题是如何在没有密文的情况下做到这一点。波奇:这不可能。 IV 与纯文本和密钥无关,它可以是任何可能的值。
-
感谢@deviantfan,这似乎是正确的。我可以验证它,因为我最终在 1 个方程中得到了 2 个未知数。所以它无法解决。
-
您可以只执行第 3 步,不是吗?你甚至不需要钥匙。
-
@MaartenBodewes 不,第 3 步需要从第 2 步获得的 x,而第 2 步又需要密钥和密文。但密文未知。
标签: encryption cryptography aes