首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有实用的方法破解AES加密密码吗?

有实用的方法破解AES加密密码吗?
EN

Cryptography用户
提问于 2017-10-29 00:57:23
回答 5查看 48.6K关注 0票数 0

我听说破解AES-128加密或AES-256加密的最快方法是使用暴力,这可能需要数十亿年的时间。但我禁不住想一定有更快的办法。因为AES加密扰乱了zip文件中包含的数据,所以可以通过正确地对数据进行解密来找到密码。假设文件中的数据的一部分是已知的,例如文件末尾的字符串,或包含已知文件类型中的预期字节序列的头。然后,通过比较加扰字节和“预期”解码字节,可以很容易地通过计算转换这些字节的算法来确定密码,因为扰码字节和解密字节都是已知的。只有公式是未知的。但是,这种类型破解的条件是zip文件包含已知的文件类型,这些文件类型具有确定的数据格式,并将某些数据放置在文件中的某些位置。例如,一个3ds文件总是以一个包含字节"4D4D“的头开头。

因此,随着破解的进展,重新排列序列的可能密码列表开始缩小。那么这个方法可信吗?或者它有什么问题,比如压缩文件中字节的实际地址与解压缩文件中的地址不同。

EN

回答 5

Cryptography用户

发布于 2018-10-18 05:22:45

是的,在问题的情况下,密码恢复攻击是完全合理的。

该问题考虑一种(部分)已知的明文攻击,其中已知加密文件(S)的某些头文件是用AES加密的文件,其中密钥是根据用户提供的密码确定的。在这种情况下,考虑AES键的强制搜索(2^{127} for AES-128,2^{255} for AES-256)的预期AES操作数并不重要,因为这不是最好的攻击策略(也不是可信的攻击策略)。

合理的攻击策略是密码破解:尝试密码,大约从大多数到最不可能被选择,每次尝试解密到达到已知明文的程度,如果测试失败,继续使用下一个密码。攻击费用将取决于:

  1. 密码是如何选择的。用户在这方面差异很大,123456MdSm2aZ!t&5u*Z5更容易找到。这很大程度上取决于用户的背景和动机。见强制性XKCD
  2. 如何将密码转换为AES密钥。这里应该使用一个基于密码的密钥派生函数,参数化,这样会增加相当大的成本。

攻击的成本大约是2^E成本的两倍(假设这是测试密码的成本的主要因素),其中E是密码熵(以位为单位)。例如,如果密码为6位随机十进制数字(E=\log_2(10^6)\approx19.9\,\text{bit}),而PBKDF +明文测试使用的是0.1秒的CPU时间(300000 CPU周期@3 3GHz),那么合格的攻击者将使用平均CPU时间的10^6\times10^{-1}/2=50000\,\text{s}<14\,\text{h}来查找密码,即单个8核PC不到2小时的墙时钟时间,对于强大的对手来说是分钟。

票数 4
EN

Cryptography用户

发布于 2017-10-29 01:49:42

No.

AES不知道在大量的明文密文对中失败。即使你能够加密任何你喜欢的东西并得到结果,你也无法学习密钥(在可行的时间内)。

从根本上说,这些公式在现代计算机上是如此复杂,以至于它变得足够复杂,所以最好的方法就是尝试每一种可能性。

因此,随着破解的进展,重新排列序列的可能密码列表开始缩小。

更改一个变量会改变结果中的所有内容。您甚至没有足够的存储空间来存储1%的结果可能性。最好的办法还是试每一把钥匙。

尽管如此,通常的实现可能有一些缺点。通常,密码本身是最弱的一点(如果有密码的话),而不是其他任何东西。因此,如果它是使用密码加密的,最好的选择是希望密码是弱的。

票数 2
EN

Cryptography用户

发布于 2020-04-14 02:03:04

如果知道密码生成的方式,而填充方法是已知的,那么就可以破解密码,甚至不知道任何关于明文的信息。有关基于AES-256-CBC的工作示例,请参见如何以编程方式检测失败的AES-256解密?

票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/52633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档