【问题标题】:How to generate AES-ECB encryption secret key given examples of plaintexts and hashes?给定明文和哈希示例,如何生成 AES-ECB 加密密钥?
【发布时间】:2016-11-21 05:42:55
【问题描述】:

我的问题是,假设您有一些 AES-ECB 加密哈希并且您想要对其进行解码。你还会得到一堆示例明文和哈希。例如:

我想要:散列的 unknown_plaintext given_hash 我有一堆 known_plaintexts 和 hashes 已经用相同的密钥加密。它们中没有一个(显然)与给定的哈希完全相同。

如果您能提供帮助,请告诉我。这不是出于恶意,只是为了了解密码学和 AES 系统的工作原理。

【问题讨论】:

  • 我有点不清楚你正在按照什么顺序执行哪些操作。这是正确的吗:您有一个带有相应加密哈希的明文列表。首先对明文进行哈希处理,然后使用 AES-ECB 对哈希进行加密。您想找到用于加密哈希的密钥。
  • @mschwaig 是的。这就是我想要的。
  • @DaTechnoGuru 对不起,开发加密的密码学家并不愚蠢,这是不可能的。
  • 如果你想知道加密是如何工作的,试试马里兰大学帕克分校的Software Security,它是免费的。
  • @zaph 你不是说斯坦福大学的 Crypto I 吗?这更有意义。

标签: encryption hash cryptography aes


【解决方案1】:

这在计算上是不可行的。也就是说,你不能这样做。

像 AES 这样的现代加密算法可以抵抗您所描述的known-plaintext attacks,

过去在称为 adaptive chosen plaintext attacks. 的类别中取得了一些成功,通常这些漏洞利用 "oracle." 在这种情况下,攻击者可以通过反复询问受害者是否可以成功解密由攻击者。通过聪明地选择连续猜测,攻击者可以用大约一百万次尝试来解密消息,这是一个相对较小的数字。但即使在这种情况下,攻击者也无法恢复密钥。

顺便说一句,密码不会生成哈希值。他们输出密文。散列函数(又名消息摘要)生成散列。

【讨论】:

    【解决方案2】:

    对于任何可敬的分组密码(并且 AES 是可敬的分组密码),解密密文块(不是“散列”)的唯一方法是知道密钥,并且从一堆密钥中找到密钥的唯一方法明文-密文对是通过猜测一个密钥并查看它是否将已知的明文映射到相应的密文上。如果您对如何选择密钥有一定的了解(例如,宠物名称的 SHA-256),这可能会起作用;但是,如果密钥是从所有可能的 AES 密钥集中随机选择的,那么产生显着成功概率所需的猜测次数会非常大,以至于您会陷入宇宙时代的手摇。

    【讨论】:

      【解决方案3】:

      如果您知道所有加密的哈希都使用相同的密钥加密,您可以首先尝试使用您的明文和加密哈希对找到该密钥。最明显的方法是只取一个明文,首先对其进行散列,然后尝试所有可能的密钥对其进行加密,直到它与您知道的加密散列匹配。如果您要查找的密钥只是众多可能的 AES 密钥之一这将设置为失败,因为尝试所有密钥需要很长时间

      假设您能够以某种方式恢复 AES 密钥,您可以解密您没有明文的那个哈希并开始寻找明文。 你对明文了解得越多,这种猜测就越容易。你可以把解密的哈希扔进谷歌,看看它吐出什么,查询已知哈希的数据库或以最受过教育的方式进行猜测。 如果哈希足够强并且明文足够随机,这一步将再次失败。

      【讨论】:

        【解决方案4】:

        正如其他人所指出的,现代加密算法是专门为抵御这种攻击而设计的。即使是像 Tiny Encryption Algorithm 这样相当弱的加密算法,也需要超过 8 00 万 个选择的明文来执行此类操作。像 AES、Blowfish 等更好的算法需要的远不止这些。

        截至目前,没有针对 AES 的实际攻击。

        如果您有兴趣学习密码学,那么旧的数据加密标准 (DES) 实际上可能是比 AES 更有趣的起点;有很多关于它的文献,但它已经被破坏了(这样做的代码仍然可以在线免费获得 - 研究它实际上非常有用)。

        【讨论】:

          猜你喜欢
          • 2016-05-26
          • 1970-01-01
          • 1970-01-01
          • 2013-10-21
          • 2020-06-24
          • 1970-01-01
          • 2015-06-28
          • 2013-06-22
          • 2020-02-24
          相关资源
          最近更新 更多