已知明文破解密码
2015-09-11 20:11
260 查看
Known plaintext attack
操作方法就是找到加密压缩包中的任意一个文件,用同样的压缩软件同样的压缩方式压缩成一个不加密的包,然后把这两个压缩包进行比较,这样就能把
整个加密的压缩包全部还原成未加密的形式。
原理是这样的:你输入的密码,首先被转换成3个32bit的key,所以可能的key的组合是2^96,这是个天文数字,如果用暴力
穷举的方式是不太可能的,除非你的密码比较短或者有个厉害的字典。压缩软件用这3个key加密所有包中的文件,这也就是
说,所有文件的key是一样的,如果我们能够找到这个key,就能解开所有的文件。如果我们找到加密压缩包中的任意一个文
件,这个文件和压缩包里的文件是一样的,我们把这个文件用同样的压缩软件同样的压缩方式进行无密码的压缩,得到的文
件就是我们的Known plaintext。用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同的那个文件,抽取
出两个文件的不同点,就是那3个key了,如此就能得到key。两个相同文件在压缩包中的字节数应该相差12个byte,就是那3
个key了。虽然我们还是无法通过这个key还原出密码,但是我们已经可以用这个key解开所有的文件,所以已经满足我的要
求了,而且要以前的密码也没什么用呀,我只要文件。
操作方法就是找到加密压缩包中的任意一个文件,用同样的压缩软件同样的压缩方式压缩成一个不加密的包,然后把这两个压缩包进行比较,这样就能把
整个加密的压缩包全部还原成未加密的形式。
原理是这样的:你输入的密码,首先被转换成3个32bit的key,所以可能的key的组合是2^96,这是个天文数字,如果用暴力
穷举的方式是不太可能的,除非你的密码比较短或者有个厉害的字典。压缩软件用这3个key加密所有包中的文件,这也就是
说,所有文件的key是一样的,如果我们能够找到这个key,就能解开所有的文件。如果我们找到加密压缩包中的任意一个文
件,这个文件和压缩包里的文件是一样的,我们把这个文件用同样的压缩软件同样的压缩方式进行无密码的压缩,得到的文
件就是我们的Known plaintext。用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同的那个文件,抽取
出两个文件的不同点,就是那3个key了,如此就能得到key。两个相同文件在压缩包中的字节数应该相差12个byte,就是那3
个key了。虽然我们还是无法通过这个key还原出密码,但是我们已经可以用这个key解开所有的文件,所以已经满足我的要
求了,而且要以前的密码也没什么用呀,我只要文件。
相关文章推荐
- 技巧:Linux 动态库与静态库制作及使用详解
- 调研某一移动应用/平台的开发环境的发展演变
- 安装NAGIOS
- poj1113Wall凸包入门题 模板
- Effective C++ 条款45 运用成员函数模板接受所有兼容类型
- 安卓基本控件之Switch
- 数据结构与算法(C#版)第二章 C#语言与面向对象技术(中)V1.0
- 第八篇:编译器特性:关键字property与synthesize用法
- 《剑指offer》二叉搜索树与双向链表
- Javascript数据类型
- 画图-CCF测试往届题
- JBOSS简易安装部署文档
- .onion 被批准为专用域名
- Apache POI组件操作Excel,制作报表(一)
- 为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?
- echarts初探:了解模块化
- Wireshark非标准分析port无流量
- Xdebug+phpstorm配置
- nyoj-22 素数求和问题【水】
- Linux学习笔记<基础概念>