我听说破解AES-128加密或AES-256加密的最快方法是使用暴力,这可能需要数十亿年的时间。但我禁不住想一定有更快的办法。因为AES加密扰乱了zip文件中包含的数据,所以可以通过正确地对数据进行解密来找到密码。假设文件中的数据的一部分是已知的,例如文件末尾的字符串,或包含已知文件类型中的预期字节序列的头。然后,通过比较加扰字节和“预期”解码字节,可以很容易地通过计算转换这些字节的算法来确定密码,因为扰码字节和解密字节都是已知的。只有公式是未知的。但是,这种类型破解的条件是zip文件包含已知的文件类型,这些文件类型具有确定的数据格式,并将某些数据放置在文件中的某些位置。例如,一个3ds文件总是以一个包含字节"4D4D“的头开头。
因此,随着破解的进展,重新排列序列的可能密码列表开始缩小。那么这个方法可信吗?或者它有什么问题,比如压缩文件中字节的实际地址与解压缩文件中的地址不同。
发布于 2018-10-18 05:22:45
是的,在问题的情况下,密码恢复攻击是完全合理的。
该问题考虑一种(部分)已知的明文攻击,其中已知加密文件(S)的某些头文件是用AES加密的文件,其中密钥是根据用户提供的密码确定的。在这种情况下,考虑AES键的强制搜索(2^{127} for AES-128,2^{255} for AES-256)的预期AES操作数并不重要,因为这不是最好的攻击策略(也不是可信的攻击策略)。
合理的攻击策略是密码破解:尝试密码,大约从大多数到最不可能被选择,每次尝试解密到达到已知明文的程度,如果测试失败,继续使用下一个密码。攻击费用将取决于:
123456比MdSm2aZ!t&5u*Z5更容易找到。这很大程度上取决于用户的背景和动机。见强制性XKCD。攻击的成本大约是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小时的墙时钟时间,对于强大的对手来说是分钟。
发布于 2017-10-29 01:49:42
AES不知道在大量的明文密文对中失败。即使你能够加密任何你喜欢的东西并得到结果,你也无法学习密钥(在可行的时间内)。
从根本上说,这些公式在现代计算机上是如此复杂,以至于它变得足够复杂,所以最好的方法就是尝试每一种可能性。
因此,随着破解的进展,重新排列序列的可能密码列表开始缩小。
更改一个变量会改变结果中的所有内容。您甚至没有足够的存储空间来存储1%的结果可能性。最好的办法还是试每一把钥匙。
尽管如此,通常的实现可能有一些缺点。通常,密码本身是最弱的一点(如果有密码的话),而不是其他任何东西。因此,如果它是使用密码加密的,最好的选择是希望密码是弱的。
发布于 2020-04-14 02:03:04
如果知道密码生成的方式,而填充方法是已知的,那么就可以破解密码,甚至不知道任何关于明文的信息。有关基于AES-256-CBC的工作示例,请参见如何以编程方式检测失败的AES-256解密?。
https://crypto.stackexchange.com/questions/52633
复制相似问题