|
excel 原理相同,
都是复合文档。
2003为127位RC4
2007可为256位。
BTW:
散列表是可以重复的,
所以口令也是可以重复的,
为什么03和07下都是963/123还没有想明白。
难道128位与256位强度得到的结果是一样的。
原理如下:(下载文档中讲的很清楚了)
---------
口令字的有关问题:
---------
对于给定的一个 文档可以有多个口令字(其中有一个是用户的原始口令)可以正确的解密整个 文档!
听上去有点不可思议对吗?但事实确实如此!
证明如下:
对于给定的文档,
对于每个口令会有一个且仅有一个决定RC4 初始化向量的40 位的数与之对应,
这个 40 位数正确与否先不去管他,
但是反过来,每个决定RC4 初始化向量的 40 位的数只对应一个口令吗?显然不是。
因为口令的空间是无限大的(设口令长度不限),但是 40 位数的空间却只有 2^40个,
根据鸽笼原理,每个决定RC4 初始化向量的 40 位的数就会对应多个口令。
而由于MD5 hash将每个口令字都均匀的映射到 40 位数的空间上,
所以我们平均在任意的 240个口令字中(原始口令是否在其中无关),
就可以找到一个口令对应于正确的那个 40位数!
即,这个口令字可以正确的解密整个文档。
也就是说:
对于一个以强口令保护的文档是不能保证恢复原始口令的!
你最多只能得到一个可能是部分 Hash 冲突的解!
之所以称之为部分 hash 冲突的解是因为它只需要在 128 位的 MD5 hash 结果中前 40 位冲突就可以了
---------------------------------
Office加密方式及算法原理
---------------------------------
Word、Excel 和 PowerPo 为文档提供了 3种级别密码保护方式
第1级是可以设置密码来决定用户是否有打开文档权限;
第2级是可以设置密码来决定用户是否有编辑文档权限;
第3级是可以对打开Word文档启动强制保护这样将以只读方式打开。
Word、Excel 和 PowerPo 都使用 RC4 对称加密法对受密码保护文档进行加密
RC4是种流密码算法它对数据每个字节进行操作
和RC2算法样它支持长度为40位、64位以及128位密钥
它都是由RSA Data Security Inc制定在给文档加密时我们可以选择指定密钥位
-----------
加密过程
-----------
(1)将最多15字节的口令->Unicode->md5
(2)取前5字节+16字节随机数a1=21字节,反复16次得336字节->md5
(3)取前5字节(s[5])+4字节计数器(初始0)共9字节->md5后作为RC4的密钥对文档进行加密.每加密512字节计数器+1后重复(3),即第6字节顺序变化
(4)另取随机数a2->md5得b,a2和b用RC4的第一次密钥加密后的32字节AB存放文档特定位置:i=(*((int *)(data+0x240))+0x200);i-=i%512
从i处开始每512字节找01 00 01 00,其后的48字节就是a1和AB
--------------
破解方法1:
--------------
穷尽5字节s,
(4)中的AB可用于验证,
只要知道这5字节即可解密文档。
关键点:
找到一段固定的5字节或全0处,
由5字节得到RC4的乱数后查表。
最后:
有关Excel和PowerPo加密过程和Word相似
Office其它版本操作和Office 2003操作也极为相似
这里有源代码,但是下载后打开是错误的。
http://empa7hy.wordpress.com/2008/08/31/1000-hacking-ebooks/
相关贴子:
http://bbs.pediy.com/showthread. ... ght=word#post369640
多谢,将附件合并上传 lfspecter
[ 本帖最后由 儒道佛 于 2009-4-20 12:22 编辑 ] |
|