代码之家  ›  专栏  ›  技术社区  ›  Arkaitz Jimenez

当我有IV、纯文本和加密文本时,获得AES CBC密钥

  •  3
  • Arkaitz Jimenez  · 技术社区  · 14 年前

    我正在寻找一种从这组信息中获得密钥的方法,我知道我们正在使用CBC的16字节块,我有第一个16字节的明文和密码,以及使用的IV。

    目前,我可以通过比较输出来测试密钥是否正确,但由于明显的原因,我不能使用16个字符的密钥,阅读其他帖子,我的理解是,有了我所掌握的数据,可能会得到密钥。

    有什么提示吗?

    2 回复  |  直到 14 年前
        1
  •  7
  •   rossum    14 年前

    你试图做的被称为“已知明文数据包”,你既有密文也有明文,你所缺少的只是使用的密钥。不幸的是,所有现代密码都是为了抵御这种攻击而设计的。除非你有极其复杂的数学技能,否则你无法通过这种方式找到钥匙。AES可以抵抗已知的明文攻击。

    您将不得不尝试其他方法来确定密钥。钥匙的主人把它写在纸上了吗?

        2
  •  1
  •   Maarten Bodewes    8 年前

    请注意,如果已按应有的方式应用AES,则无法找到密钥。然而,根据stackerflow上错误实现的数量判断,密钥也可能是密码或字符串的简单SHA-256。如果你能获得关于密钥是如何生成/应用或存储的信息,你甚至可以绕过AES-256。

    否则,您唯一的攻击向量就是破坏AES或暴力强制密钥。在这种情况下,我祝你好运,因为即使使用量子计算机,强行使用256位密钥也是完全不可能的。当然,除非发现漏洞,否则AES是 毕竟可以证明是安全的。那里 也许 是一个漏洞。

    推荐文章