明文攻击

条件成立前提:已知明文x和对应的密文y

已知明文攻击的概念和原理

zip压缩文件所设定的密码,首先被转换成3个32bit的key,所以可能的key的组合是2^96,这是个天文数字,如果用暴力穷举的方式是不太可能的,除非密码比较短或者有个厉害的字典。

压缩软件用这3个key加密所有包中的文件,也就是说,所有文件的key是一样的,如果我们能够找到这个key,就能解开所有的文件。

如果找到【加密压缩包中的任意一个文件】,这个文件和压缩包里的文件是一样的,我们把这个文件用同样的压缩软件同样的压缩方式进行【无密码的压缩】,得到的文件就是的Known plaintext(已知明文)。 用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同的那个文件,抽取出【两个文件的不同点】,就是那3个key了,如此就能得到key。

两个相同文件在压缩包中的字节数应该相差12个byte,就是那3个key了。

虽然还是无法通过这个key还原出密码,但是已经可以用这个key解开所有的文件,所以已经满足的要求了,可以得到解压后的文件了(但是没有得到密码本身)。

工具

ARCHPR(压缩包密码破解工具)

题目

题目特征

  1. ZIP压缩包(zip)
  2. 相同的文件名(也有可能不一样)
  3. CRC32的值一致

*满足3可以忽略2,2仅是一个比较明显的题目暗示,也可以不暗示
image.png

解题

ARCHPR-明文

image.png

需要密码

简单密码的妙解:
image.png

仅解密压缩包

密码太长的话明文攻击需要很长时间:
image.png
如果不需要密码,只需要把加密压缩文件变成普通压缩文件的情况。在密钥确认之后(提示的状态进度字符串出现“明文攻击正在进行”时):
image.png
就可以停止明文攻击:
image.png
提示加密密钥已恢复(此过程一般不需要半分钟):
image.png
确认即可保存无加密的压缩文件:
image.png
image.png

题外话

仅压缩

压缩模式选择直接压缩(即,不加密)时,压缩包中文件如下显示:
image.png

加密压缩

加密压缩时,文件名后带有星号*
image.png

加密并加密文件名

加密文件名后无法从压缩包软件查看文件名,需要输入密码
image.png

明文攻击不适合于这个文件

image.png
压缩加密时,勾选“ZIP传统加密”
image.png