我有一个不可能的任务,需要解密从客户端发送的AES/CBC加密数据包。我已经做了大量的研究,得出结论,如果IV是静态的,则加密是不安全的。对于这个任务,IV总是静态设置为0。是否有任何方法可以完成这个任务?
编辑:明文是哈姆雷特剧本的片段。客户端以随机块发送它们,因此长度不一致。数据包可能最终会重复,但我不确定。
编辑:明文是哈姆雷特剧本的片段。客户端以随机块发送它们,因此长度不一致。数据包可能最终会重复,但我不确定。
没有密钥就不行。
具体而言,假设没有填充,每次使用相同的IV会导致漏洞。如果您开始加密与上次加密的数据相同的数据,则两次都会得到相同的加密字符串。这使攻击者可以推断出有关消息内容的一些信息,但无法帮助他们解密它。
我会用几个其他著名短语做同样的事情。这是一项我可以在捕获你的文件并将其缓存到数据库之前大规模并行处理的操作。这种方法的通用术语是彩虹表。
如果我碰巧知道你的消息的前16个字节(例如,如果它们是发送给已知人员的电子邮件消息,或具有已知标头的HTTP请求等),我的工作将变得更加容易。
如果您使用随机密钥(或像PBKDF2这样的适当KDF),那该怎么办呢?假设我有您的一些消息,至少其中一些具有相同的前16个字节(协议中的标头再次帮助我很多)。第一步是我知道这些消息具有相同的前16个字节。这是非常有用的信息。现在我有了一个攻击您消息的crib。Zero IV 可以泄露一些关于数据的前几个字节的信息,但如果它们不同,这应该不是一个问题(但并不建议使用)。 例如,OpenPGP 在某些情况下使用零 IV。