我正在寻找一种从这组信息中获取密钥的方法,我知道我们正在使用 CBC 的 16 字节块,并且我有前 16 字节的明文和密码,以及使用的 IV。
目前,我可以通过比较输出来测试密钥是否正确,但由于显而易见的原因,我无法强制使用 16 个字符的密钥,阅读其他帖子我的理解是,拥有我拥有的数据可能会获得密钥。
有什么提示吗?
我正在寻找一种从这组信息中获取密钥的方法,我知道我们正在使用 CBC 的 16 字节块,并且我有前 16 字节的明文和密码,以及使用的 IV。
目前,我可以通过比较输出来测试密钥是否正确,但由于显而易见的原因,我无法强制使用 16 个字符的密钥,阅读其他帖子我的理解是,拥有我拥有的数据可能会获得密钥。
有什么提示吗?
您正在尝试做的事情称为“已知的明文攻击”,您拥有密文和明文,所缺少的只是使用的密钥。不幸的是,所有现代密码都旨在抵抗此类攻击。除非您具有极其复杂的数学技能,否则您将无法通过这种方式找到钥匙。AES 可以抵抗已知的明文攻击。
您将不得不尝试其他确定密钥的方法。钥匙的主人有没有把它写在纸上的某个地方?
请注意,如果已按应有的方式应用了 AES,那么您将找不到密钥。但是,根据 stackoverflow 上错误实现的数量来判断,密钥也可能是密码或字符串的简单 SHA-256。如果您可以获得有关如何生成/应用或存储密钥的信息,您甚至可以绕过 AES-256。
否则,您唯一的攻击向量是破坏 AES 或暴力破解密钥。在这种情况下,我祝你好运,因为暴力破解 256 位密钥是完全不可能的,即使使用量子计算机也是如此。当然,除非发现漏洞,否则 AES终究无法证明是安全的。可能存在漏洞。