我有一个学校项目,我必须使用暴力攻击来恢复加密的RAR文件的密码。很明显,在AES256加密系统上使用暴力不是很有用,但作业的目的是学习蛮力,因此开裂速度并不重要。教师不允许字典攻击和已知的纯文本攻击。我从我在本网站上看到的帖子中了解到,这些方法在解决AES方面也没有更好的破解密码。
通过研究各种RAR提取库,包括官方winRAR源代码(在rarlab.com中找到)和一个名为John the Ripper的populer密码破解软件的源代码,我意识到从RAR文件中找到哈希键是不可能的(此主题也在本网站的另一个问题中讨论过)。
因此,实际尝试对加密的RAR文件进行暴力攻击的唯一实际方法是使用猜测的密码提取存档并计算CRC32校验和以查看文件是否被正确提取。
从RAR-unlocker源代码中我发现了CRC32的多项式:
X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
源代码在这里:https://github.com/RaMMicHaeL/RAR-Unlocker/blob/master/crc32.cpp
现在我的问题是,即使我在开始时说开裂速度不是很重要,我也无法提取整个存档并为每次猜测计算CRC32。对于一个大文件,这可能意味着每次尝试都需要几分钟。
所以我想如果我只能用猜测的密钥提取存档的一小部分(比方说,几个字节)并计算CRC32校验和以查看文件是否被正确提取,我可以使用相同的提取整个文件的关键。
这就是我现在所处的位置。我非常对密码学不熟悉所以我不确定我上面提出的建议是否可行。如果是,我可以从存档中提取的可用于校验和的最小字节数是多少?如何从存档中提取所选的字节数?
感谢。