明文攻击
已知明文攻击的概念和原理
zip压缩文件所设定的密码,首先被转换成3个32bit的key,所以可能的key的组合是2^96,这是个天文数字,如果用暴力穷举的方式是不太可能的,除非密码比较短或者有个厉害的字典。
压缩软件用这3个key加密所有包中的文件,也就是说,所有文件的key是一样的,如果我们能够找到这个key,就能解开所有的文件。
如果找到【加密压缩包中的任意一个文件】,这个文件和压缩包里的文件是一样的,我们把这个文件用同样的压缩软件同样的压缩方式进行【无密码的压缩】,得到的文件就是的Known plaintext(已知明文)。 用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同的那个文件,抽取出【两个文件的不同点】,就是那3个key了,如此就能得到key。
两个相同文件在压缩包中的字节数应该相差12个byte,就是那3个key了。
虽然还是无法通过这个key还原出密码,但是已经可以用这个key解开所有的文件,所以已经满足的要求了,可以得到解压后的文件了(但是没有得到密码本身)。
工具
ARCHPR(压缩包密码破解工具)
题目
题目特征
- ZIP压缩包(zip)
- 相同的文件名(也有可能不一样)
- CRC32的值一致
*满足3可以忽略2,2仅是一个比较明显的题目暗示,也可以不暗示
解题
ARCHPR-明文
需要密码
仅解密压缩包
密码太长的话明文攻击需要很长时间:
如果不需要密码,只需要把加密压缩文件变成普通压缩文件的情况。在密钥确认之后(提示的状态进度字符串出现“明文攻击正在进行”时):
就可以停止明文攻击:
提示加密密钥已恢复(此过程一般不需要半分钟):
确认即可保存无加密的压缩文件:
题外话
仅压缩
压缩模式选择直接压缩(即,不加密)时,压缩包中文件如下显示:
加密压缩
加密并加密文件名
明文攻击不适合于这个文件
压缩加密时,勾选“ZIP传统加密”