2023年7月31日发(作者:)

第29卷第10期 计算机应用与软件 Vo1.29 No.10 2012年1O月 Computer Applications and Software 0ct.2012 基于彩虹表的PDF文档口令破解研究 李 超 陈丹伟 (南京邮电大学计算机学院江苏南京210046) 摘 要 彩虹表算法实现简单,被广泛应用于口令破解问题。对pdf文档口令生成算法进行研究,并结合彩虹表算法,设计合适 的单向破解函数,提出基于彩虹表的pdf文档口令破解方案。实验结果表明该方案相较于传统方案,破解时间最短97.48秒,最长 372.12秒,平均时间为121.46秒,均优于现有软件方案。 关键词 彩虹表 时空折中pdf文档 密钥搜索 中图分类号TP309 文献标识码A DOI:10.3969/j.issn.1000—386x.2012.10.036 oN PDF DoCUMENT PASSWoRD CRACKING BASED oN RAINBoW TABLES Li Chao Chen Danwei (College of Computer, ng University ofPosts and Telecommunications,Nanjing 210046,Jiangsu,China) Abstract The implementation of rainbow tables is simple SO they are widely used in password cracking field.In this paper,we first study the password generation algorithm of PDF documents,then we design a proper one—way cracking function in combination with rainbow table algorithm,and propose a password cracking scheme for PDF document based on the rainbow tables.Experimental results show that compared with traditional schemes,this scheme outperforms them in cracking times with the shortest 97.48 second,the longest 372.12 second and the average 121.46 second. Keywords Rainbow table Time memo ̄trade—off PDF document Cipher key search 机制进行研究,并结合彩虹表算法,设计合适可行的从密钥空间 0 引 言 A映射到伪随机流空间B的单向函数w及逆函数R,提出基于 彩虹表算法的pdf文档口令破解方案。最后在文章末尾对破解 随着信息技术的发展,密码分析得到广泛应用。从理论上 方案进行实验验证,实验结果表明该方案具有较好的性能,能够 来说,可以采用穷举搜索方法…或字典攻击方法 J,但是前者 在平均121.46秒时间内破解pdf文档口令密码,且成功率高于 需要天文数字级别的计算时间,后者需要海量的预存储空间,因 95%。 此在实际使用中都不可行。1980年,Hellman基于这两种方法 提出时间和空间折中算法 ,简称为时空折中算法(TMTO),并 1 相关工作 将之用于DES攻击上。假设有t张m xt张Hellman表,密钥空 间为Ⅳ,则其需要的存储空间为M=mt ,其计算时间T=t2,T= 1.1彩虹表算法 ' =^厂},因此密钥攻击者能够以选择明文攻击的方式获得比穷 彩虹表主要用于分析对称密码算法的口令破解和攻击,假 , 举方法快J7、厂『的代价,成功破译密钥最主要的限制为表的大小, 设存在密码系统S :s — s ,并已知明密文对( ,Co),要求 当表增大以获得高成功率时,表中节点碰撞并导致链重合概率 出对应的密钥 。为了应用彩虹表算法来解决此问题,主要完 大增。为此,基于TMTO,多种方法被提出 J。Oechslin在 成两个阶段工作:①预计算阶段一创建彩虹表;②在线分析阶 2003年结合Hellman表和DP技术,提出彩虹表算法 ,该算法 段一利用彩虹表进行在线分析。 和TMTO最大的不同是每列使用不同的R函数,这样只有当彩 (1)预计算阶段 虹表中两个节点在同一列发生碰撞时,才会导致链合并。彩虹 从密钥空间Ⅳ中随机选择m个初始节点sP (1≤ ≤m),分 表算法具有实现简单,攻击效率高特点,被广泛应用于密码分析 收稿日期:2012—08—06。2012中国计算机大会论文。教育部英特 问题 t 。 尔精品课程建设项目(4700410G01);江苏高校优势学科建设工程资助 目前pdf文档广泛存在于各行各业,对其密码生成及破解 项目(YX002001)。李超,讲师,主研I颔域:信息安全,嵌入式系统。陈丹 技术进行研究具有重要的用途。本文首先对pdf文档口令加密 伟,教授。 138 别代入式(1)进行计算: l厂( )=R (S (P))1≤i≤t 计算机应用与软件 2012血 字节数据进行MD5加密,然后将加密字典0条目输入到MD5 (1) 函数,紧接将P条目输人到MD5函数,最后将该PDF文档的ID 标识数组的第一个元素输入到MD5函数,得到全局密钥。基于 其中S为加密算法,P为明文, 为密钥,R密文空间到密钥空间 的映射函数。则对于每个初始节点 次,得到t个密钥,如式(2)所示: : , .应用式(1)重复计算t 全局密钥计算出对象加密密钥,其产生过程为:将对象号和产生 号作2进制整数对待,将原始的Ⅳ字节长的全局密匙扩展到n +5字节,即将对象号的低3个字节和产生号的低2个字节依 次接在前面Ⅳ字节长的加密 密钥上,初始化MD5哈希函数, : … (2) 将m个<sP EP,>对保存在一个表中,中间密钥则略去不 保存,这样得到的表被称为彩虹表。由于彩虹表中间密钥被略 去不保存,相对于字典攻击来说,这样便省去大量存储空间。在 然后将产生的字符串输入到MD5中产生hash值,即为对象密 钥。对象密钥可作为RC4和AES对称加密算法的密匙来对流 对象进行加密。 线分析时,中间密钥可以按照式(2)进行恢复,当然彩虹攻击需 要比字典攻击更多的时间。 由于彩虹表所包含的密钥空间通常小于总密钥空间N,所 以彩虹攻击并不能保证一定能够成功。对于单个彩虹表来说, 其最大破解概率满足式(3)。所以要想提高成功概率,需采用 多个彩虹表来达到。 P (t)≈l一(1一 ) 1一e ≈1 ≈86%(3) (2)在线分析阶段 给定密文cn,首先使用R 得到Y。,Y,:R (Co),如果等 于彩虹表中某一链尾 ,,则从链首按照公式(2)重构这个链; 如果不等,则按照C。 _三y2 Y1,然后将Y 与彩虹表 链尾元素进行匹配,依次类推 因此对于单个彩虹表来说,最坏 情况下需要迭代计算 次/函数,这比使用Hellm 表 节省一半的计算量。 文献[5]表明,密钥空间Ⅳ、在线分析时间 、彩虹表存储容 量 以及成功概率P之间满足式(4): ^ 71= (P ) (4) 由此可见如果想要缩短在线分析时间,应该提高彩虹表存 储容量,即增加表中链数目,减少单链的链长。当 (P )=1 时,式(4)可以推导出T=M:NS-,这表明彩虹表具有传统Hell— mall表的特性。 1.2 pdf文档加密原理 按照pdf标准规范 ],其文档加密主要全局密钥生成及 加密等步骤,具体流程如图1所示。 图1 pdf文档加密流程 pdf文档口令长度最长为 字节,如果不足则以固定数据 填充为32字节,如果超过32字节则超过部分会被丢弃。对32 2 基于彩虹表PDF文档口令破解方案设计 2.1彩虹表创建 要得到高效的彩虹攻击效果,必须首先创建高效的彩虹表, 即减少重复数据存储,同时为了便于表的存储及提高执行效率, 可以包含价表( >=1),每个表中包含m条链,每条链包含t 个密钥节点。每个表随机选出m个密钥作为初始节点 (1≤ ≤m),按照式(2)迭代t次,生成表结构如下: sP : . … x : . ,sP : I厂 … 三-+ :EP: . .:l. ; ; 5 : . … : .将表中每条链的链首和链尾元素存储,得到1个彩虹表 {(SP ,EP )}羔 ,其它 1个彩虹表按照类似方式产生。 文献[14]指出,单个完美彩虹表最大链数为m…(t)一 ,最大成功概率P…=(1一 ) 一l—e_ 一86%, 所以为了得到较高成功率,必须增加彩虹表的数目。假设在给 定存储空间M=2GB,密钥空间N=2 以及期望的成功率P =99.9%,在分析时问最短的目标下可以计算出彩虹表数 每 个彩虹表链的数目m,以及每条链长度 。 ,_r二 二 j—d 一。 2 一。 m=M/f=5368709l l 35368 (fln( 一 )) 因为pdf文档的初始口令长度固定为32字节,一般情况下 用户不会设置长度为32字节的13令,一般13令长度为l0字节 左右。按照pdf文档规范,不足32字节部分用固定密码内容来填 充。假设口令长度不大于24字节,则最后8个字节口令明文Pn 固定为:Ox2f,0x0c,Oxa9,Oxfe,0x64,0x53,0x69,0x7a,其对应 密文cn则可以从加密后的pdf文档中提取,所以流密钥 :Co 0 Pn记为B,把决定RC4初始化向量的4O bit密钥记作 ,则建 立单向函数 —一B,即40bit密钥A映射到64bit伪随机流B,其 反向函数R 可以简单设计为截短函数加上循环变量i即可。 2.2在线分析 按照彩虹表的定义,pdf文档口令破解在线分析基本算法流 程如下: 第10期 李超等:基于彩虹表的PDF文档口令破解研究 139 步骤1应用函数R ,计算密文C所对应的密钥K; 步骤2应用W,R 函数,迭代生成以密钥 开始的密钥 链,链尾元素为EP ; 步骤3检验EP 是否匹配彩虹表某链尾元素 [1,m]; 步骤4如果EP 和某链尾元素EP 相等,则重新生成以 EP 为首的链,检验是否确实为密钥,如果是,则算法结束,否则 Vj∈ ( 一 ( 其中: + )z 出现假警,转到步骤1继续运算。 步骤5如果遍历到彩虹表中首节点时,还没有匹配成功 则整个算法结束,搜索失败。 一般情况下,单表成功概率最大为86%,如果想要提高成 功概率,可以增加多个表的方式来完成。另外在线分析时间也 是一个非常关键的要素,缩短链长和增加链数都可以降低在线 分析时间。 在线分析性能好坏取决于多方面的因素,其中假警率是关 键要素之一。当为单张彩虹表时,k次搜索得到的假警总期望 最大不超过 生 二 。 证明: m k—i  ..t一1 E(F )≤ +÷ : f二 + 2 N- 2 一 — i =1 2± I 二 2 2Ⅳ 其中m为单表中链数目,Ⅳ为密钥空间,t为链长度。 3实验及结果分析 为验证算法性能,依据已生成彩虹表(参数见表1)本文在 PC(CPU:2.99GHz,内存:2GB,操作系统:Windows XP)环境下 对1000个样本pdf加密文档进行了测试,得出平均分析时间, 最长分析时问,一 成功概率等实验数据,见表1、表2、表3和表4。 表1彩虹表参数 表2在线分析时间 暴力破解 穷尽搜索 彩虹表 最少假警次数 平均假警次数 最多假警次数 49 128 517 表2给出了在线分析的理论时间和实际测试时间。理论时 间按照下列公式计算。 . m (i一1) q 一 一 号(1一号) 每个pdf文档口令破解时间平均在2分钟时间,而如果采 用暴力破解方法,则破解时间需要80天左右,破解速度可以提 高50000倍,效率非常高。当然相对于暴力破解来说,需要预先 花费大量的时间创建彩虹表,并且需要额外的2GB内存空间来 存放彩虹表。 文献[14]表明,在线分析时间rr正比于 ,反比于 ,和 成功率P 成正比。本文在不同成功率下测试这几个参数之间 的关系,如图2所示。 图2 TiM/NiP 关系图 4 结语 彩虹表算法在时间和空间上寻求最佳折中点,在口令破解 中具有非常重要的应用价值。本文针对pdf文档加密算法的特 点,构建相应彩虹表,表的参数:表数目/-4,每表链数目m= 53687091,链长度 =35368,存储空问 =2GB。使用该彩虹表 用于pdf类型的文档口令破解并进行实验验证,实验结果表明 该方案破解口令时间快于暴力破解方法50000倍,具有较好效 果。 参考文献 [1]Kedem,lshihara.Brute force attack on UNIX passwords with S1MD computer[C]//Proceedings of The 8th USENIX Security Symposium, 1999,8:8—8. [2]Dandass Y S.Using fpgas to paralletize dictionary attacks for password cracking[C]//Computer Science and Engineering,Mississippi State USA,2008. [3 j Hellman M E.A Cryptanalytic Time—memory Trade off[J].IEEETrans— actions On Information Theory,1980,IT一26:401—406. [4]Jin Hong,Kyung Chul Jeong,Eun Young Kwon,et a1.Variants of the Distinguished Point Method mr Cryptanalytie Time Memory Trade—offs [C]//Department of Mathematica1.SciencesandI Sa C—RIM.Seoul: 140 SeoulNational University,2008:151—747. 计算机应用与软件 2012血 其进行归一化处理,使其欧氏范数为1;随后使用K均值算法产 at A,Naor M.Rigorous time/space tradeoffs for inverting functions [5] Ficoll ∈|o[C]//Proc.of the 23rd Annual ACM Symposium on Theory of Com— puting,l991:534—541. [6] Denning D E.Cryptography and Data Security[M].Addison—Wesley, l982. [7] Oechslin P.Making a Faster CD'ptanalytic Time—memo ̄Trade-off [C]//Dan Boneh.Advances in Cryptology—CRYPTO 03.California, USA:Springer—Verlag,2003:617—630. [8] Mentens N,Batina L,Preneel B,et a1.Cracking Unix passwords Using FPGA platforms[C]//Proceedings of the Workshop on Special Purpose Hardware for Attacking C17ptographic Systems 2005,SHARCS’05. [9] Theoharoulis K,Papaefstathiou I,Manifavas C.Implementing Rain— bow Tables in Higb--end FPGAs for Super--fast Password Cracking [C]//2010 International Conference Field Programmable Logic and Applications. [10] Carson T,Baker D.Adobe Acrobat and PDF for Architecture,Engineer— ing,and Construction[M].London:Springer—Verlag,2006:207. Warnock,John.The Camelot Project[OL].1991.http://www.planet— pdf.conu'mainpage.asp webpageid=1 85 1 [12] Adobe System Incoq ̄orated.Adobe Portable Document Format Re ̄r- enee Manual[M].Version 1.7,2006. [13] Adobe Systems Incorporated.PDF Reference,Third Edition,Adobe Potable Document Format Version 1.4[M].American:Addison-Wesley,2001. [14] Avoine G,Junod P,Oechslin P.Characterization and improvement of time-memory trade—off based on perfect tables[J].ACM Trans.In— ofmr.Syst.Secur.,2008,11(4). (上接第70页) 因此成为近年来机器学习领域非常流行的评价指标之一。当两 个类别标签一一对应时,NMI值达到最大值1。 将本文的算法(简记为KL)与以下9个算法相比较,它们 是:文献[2]提出的基于图划分算法的CSPA、HGPA、MCLA;文 献[3]提出的SMSA和SGTA;文献[4]提出的4个基于单连接、 全连接、组平均和Ward的证据累积算法,为方便起见,分别简 记为EASI EACL、EAAL和EAWL。 03 它 盅 面02 量 Z O1 o.0 哺bedh revi ̄ Ia12 打31 b'41 D毒£asel 图2聚类集成算法所获得的NMI值 将1O个聚类集成算法分别在不同数据集上进行聚类,获得 的NMI值如上图2所示。对于每个数据集,首先将每个文本根 据TF—IDF(term frequency—inverse document rfequency)加权,并对 生15个聚类成员,K均值算法每次随机选取初值,并且采用余 弦函数计算文本之间的相似度。因为算法HGPA调用了HME— ¨ TIS算法,而HMETIS得到局部最优解,所以HGPA算法获得的 聚类结果不稳定,我们运行10次取平均值;调用图划分算法 METIS的CSPA和MCLA获得的结果稳定;层次聚类算法,谱聚 类算法和本文设计的算法都获得了稳定的结果。 我们可以根据图2作出以下几个比较: (1)比较CSPA、HGPA和MCLA,CSPA都获得了最好的结 果,这与文献[2]的结论相符。(2)比较EASL、EACL、EAAL和 EAWL,EAAL和EAWL的聚类效果明显优于EASL和EACL,这 与文献[4]中的结论相符。(3)比较SMSA和SGTA,两个算法 在6组数据集上的NMI值互有高低,这与文献[3]中的结论相 符。(4)与其他9个算法相比,除了在数据集la12上获得了比 EAWL略低的NMI值,KL都获得了最高的NMI值。 4 结语 本文结合K均值与谱聚类设计了一种聚类集成算法,它充 分利用了聚类成员提供的属性信息与关系信息。为了有效降低 该算法的计算复杂度,本文通过代数变换方法有效避免了大规 模矩阵的特征值分解问题。在多组真实数据集上的实验结果表 明,本文的算法优于其他聚类集成算法。本文的方法为解决聚 类集成问题提供了一种新思路。 参考文 献 Tan P N,Steinbach M,Kumar V.Introduction to data mining[M]. MA,USA:Addison—Wesley Longman Publishing Co.,Inc.Boston, 2010. [2] Strehl A.Ghosh J.Cluster ensembles-a knowledge reuse framework for combining partitionings[J].The Journal of Machine Learning Re— search,2002,3:583—617. [3] 徐森,卢志茂,顾国昌.使用谱算法解决文本聚类集成问题[J]. 通信学报,2010 31(6):58~66. [4] Fred A,Lourengo A.Cluster ensemble methods:from single cluster- ings to combined solutions[M].Supervised and Unsupervised Ensem— ble Methods and their Applications.Berlin:Springer,2008:3—30. [5] Fern X Z,BrQdley C E.Solving cluster ensemble problems by bipartite graph patritioning[C]//Proceedings of 20th International Conference on Machine Learning Banff,Canada,2004. [6] 唐伟,周志华.基于Bagging的选择性聚类集成[J].软件学报, 2005,16(4):496—502. [7] Sevillano X,Alias F,Soeor6J C.BordaConsensus:a new consensus function for soft cluster ensembles[C]//Proceedings of the 30th anna— al international ACM SIGIR.New York:ACM.2007 743—744. [8] 王红军,李志蜀,成飚,等.基于隐含变量的聚类集成模型[J]. 软件学报,2009,20(4):825—833. [9] Wang F,Ding C,Li T.Integrated KL(K—means-Laplaeian)Cluste— irng:A New Clustering Approach by Combining Attirbute Data and Pairwise Relations[c]//Proceedings of 2009 SIAM International Con— ference on Data Mining.Sparks,United States.2009:38—48. 

2023年7月31日发(作者:)

第29卷第10期 计算机应用与软件 Vo1.29 No.10 2012年1O月 Computer Applications and Software 0ct.2012 基于彩虹表的PDF文档口令破解研究 李 超 陈丹伟 (南京邮电大学计算机学院江苏南京210046) 摘 要 彩虹表算法实现简单,被广泛应用于口令破解问题。对pdf文档口令生成算法进行研究,并结合彩虹表算法,设计合适 的单向破解函数,提出基于彩虹表的pdf文档口令破解方案。实验结果表明该方案相较于传统方案,破解时间最短97.48秒,最长 372.12秒,平均时间为121.46秒,均优于现有软件方案。 关键词 彩虹表 时空折中pdf文档 密钥搜索 中图分类号TP309 文献标识码A DOI:10.3969/j.issn.1000—386x.2012.10.036 oN PDF DoCUMENT PASSWoRD CRACKING BASED oN RAINBoW TABLES Li Chao Chen Danwei (College of Computer, ng University ofPosts and Telecommunications,Nanjing 210046,Jiangsu,China) Abstract The implementation of rainbow tables is simple SO they are widely used in password cracking field.In this paper,we first study the password generation algorithm of PDF documents,then we design a proper one—way cracking function in combination with rainbow table algorithm,and propose a password cracking scheme for PDF document based on the rainbow tables.Experimental results show that compared with traditional schemes,this scheme outperforms them in cracking times with the shortest 97.48 second,the longest 372.12 second and the average 121.46 second. Keywords Rainbow table Time memo ̄trade—off PDF document Cipher key search 机制进行研究,并结合彩虹表算法,设计合适可行的从密钥空间 0 引 言 A映射到伪随机流空间B的单向函数w及逆函数R,提出基于 彩虹表算法的pdf文档口令破解方案。最后在文章末尾对破解 随着信息技术的发展,密码分析得到广泛应用。从理论上 方案进行实验验证,实验结果表明该方案具有较好的性能,能够 来说,可以采用穷举搜索方法…或字典攻击方法 J,但是前者 在平均121.46秒时间内破解pdf文档口令密码,且成功率高于 需要天文数字级别的计算时间,后者需要海量的预存储空间,因 95%。 此在实际使用中都不可行。1980年,Hellman基于这两种方法 提出时间和空间折中算法 ,简称为时空折中算法(TMTO),并 1 相关工作 将之用于DES攻击上。假设有t张m xt张Hellman表,密钥空 间为Ⅳ,则其需要的存储空间为M=mt ,其计算时间T=t2,T= 1.1彩虹表算法 ' =^厂},因此密钥攻击者能够以选择明文攻击的方式获得比穷 彩虹表主要用于分析对称密码算法的口令破解和攻击,假 , 举方法快J7、厂『的代价,成功破译密钥最主要的限制为表的大小, 设存在密码系统S :s — s ,并已知明密文对( ,Co),要求 当表增大以获得高成功率时,表中节点碰撞并导致链重合概率 出对应的密钥 。为了应用彩虹表算法来解决此问题,主要完 大增。为此,基于TMTO,多种方法被提出 J。Oechslin在 成两个阶段工作:①预计算阶段一创建彩虹表;②在线分析阶 2003年结合Hellman表和DP技术,提出彩虹表算法 ,该算法 段一利用彩虹表进行在线分析。 和TMTO最大的不同是每列使用不同的R函数,这样只有当彩 (1)预计算阶段 虹表中两个节点在同一列发生碰撞时,才会导致链合并。彩虹 从密钥空间Ⅳ中随机选择m个初始节点sP (1≤ ≤m),分 表算法具有实现简单,攻击效率高特点,被广泛应用于密码分析 收稿日期:2012—08—06。2012中国计算机大会论文。教育部英特 问题 t 。 尔精品课程建设项目(4700410G01);江苏高校优势学科建设工程资助 目前pdf文档广泛存在于各行各业,对其密码生成及破解 项目(YX002001)。李超,讲师,主研I颔域:信息安全,嵌入式系统。陈丹 技术进行研究具有重要的用途。本文首先对pdf文档口令加密 伟,教授。 138 别代入式(1)进行计算: l厂( )=R (S (P))1≤i≤t 计算机应用与软件 2012血 字节数据进行MD5加密,然后将加密字典0条目输入到MD5 (1) 函数,紧接将P条目输人到MD5函数,最后将该PDF文档的ID 标识数组的第一个元素输入到MD5函数,得到全局密钥。基于 其中S为加密算法,P为明文, 为密钥,R密文空间到密钥空间 的映射函数。则对于每个初始节点 次,得到t个密钥,如式(2)所示: : , .应用式(1)重复计算t 全局密钥计算出对象加密密钥,其产生过程为:将对象号和产生 号作2进制整数对待,将原始的Ⅳ字节长的全局密匙扩展到n +5字节,即将对象号的低3个字节和产生号的低2个字节依 次接在前面Ⅳ字节长的加密 密钥上,初始化MD5哈希函数, : … (2) 将m个<sP EP,>对保存在一个表中,中间密钥则略去不 保存,这样得到的表被称为彩虹表。由于彩虹表中间密钥被略 去不保存,相对于字典攻击来说,这样便省去大量存储空间。在 然后将产生的字符串输入到MD5中产生hash值,即为对象密 钥。对象密钥可作为RC4和AES对称加密算法的密匙来对流 对象进行加密。 线分析时,中间密钥可以按照式(2)进行恢复,当然彩虹攻击需 要比字典攻击更多的时间。 由于彩虹表所包含的密钥空间通常小于总密钥空间N,所 以彩虹攻击并不能保证一定能够成功。对于单个彩虹表来说, 其最大破解概率满足式(3)。所以要想提高成功概率,需采用 多个彩虹表来达到。 P (t)≈l一(1一 ) 1一e ≈1 ≈86%(3) (2)在线分析阶段 给定密文cn,首先使用R 得到Y。,Y,:R (Co),如果等 于彩虹表中某一链尾 ,,则从链首按照公式(2)重构这个链; 如果不等,则按照C。 _三y2 Y1,然后将Y 与彩虹表 链尾元素进行匹配,依次类推 因此对于单个彩虹表来说,最坏 情况下需要迭代计算 次/函数,这比使用Hellm 表 节省一半的计算量。 文献[5]表明,密钥空间Ⅳ、在线分析时间 、彩虹表存储容 量 以及成功概率P之间满足式(4): ^ 71= (P ) (4) 由此可见如果想要缩短在线分析时间,应该提高彩虹表存 储容量,即增加表中链数目,减少单链的链长。当 (P )=1 时,式(4)可以推导出T=M:NS-,这表明彩虹表具有传统Hell— mall表的特性。 1.2 pdf文档加密原理 按照pdf标准规范 ],其文档加密主要全局密钥生成及 加密等步骤,具体流程如图1所示。 图1 pdf文档加密流程 pdf文档口令长度最长为 字节,如果不足则以固定数据 填充为32字节,如果超过32字节则超过部分会被丢弃。对32 2 基于彩虹表PDF文档口令破解方案设计 2.1彩虹表创建 要得到高效的彩虹攻击效果,必须首先创建高效的彩虹表, 即减少重复数据存储,同时为了便于表的存储及提高执行效率, 可以包含价表( >=1),每个表中包含m条链,每条链包含t 个密钥节点。每个表随机选出m个密钥作为初始节点 (1≤ ≤m),按照式(2)迭代t次,生成表结构如下: sP : . … x : . ,sP : I厂 … 三-+ :EP: . .:l. ; ; 5 : . … : .将表中每条链的链首和链尾元素存储,得到1个彩虹表 {(SP ,EP )}羔 ,其它 1个彩虹表按照类似方式产生。 文献[14]指出,单个完美彩虹表最大链数为m…(t)一 ,最大成功概率P…=(1一 ) 一l—e_ 一86%, 所以为了得到较高成功率,必须增加彩虹表的数目。假设在给 定存储空间M=2GB,密钥空间N=2 以及期望的成功率P =99.9%,在分析时问最短的目标下可以计算出彩虹表数 每 个彩虹表链的数目m,以及每条链长度 。 ,_r二 二 j—d 一。 2 一。 m=M/f=5368709l l 35368 (fln( 一 )) 因为pdf文档的初始口令长度固定为32字节,一般情况下 用户不会设置长度为32字节的13令,一般13令长度为l0字节 左右。按照pdf文档规范,不足32字节部分用固定密码内容来填 充。假设口令长度不大于24字节,则最后8个字节口令明文Pn 固定为:Ox2f,0x0c,Oxa9,Oxfe,0x64,0x53,0x69,0x7a,其对应 密文cn则可以从加密后的pdf文档中提取,所以流密钥 :Co 0 Pn记为B,把决定RC4初始化向量的4O bit密钥记作 ,则建 立单向函数 —一B,即40bit密钥A映射到64bit伪随机流B,其 反向函数R 可以简单设计为截短函数加上循环变量i即可。 2.2在线分析 按照彩虹表的定义,pdf文档口令破解在线分析基本算法流 程如下: 第10期 李超等:基于彩虹表的PDF文档口令破解研究 139 步骤1应用函数R ,计算密文C所对应的密钥K; 步骤2应用W,R 函数,迭代生成以密钥 开始的密钥 链,链尾元素为EP ; 步骤3检验EP 是否匹配彩虹表某链尾元素 [1,m]; 步骤4如果EP 和某链尾元素EP 相等,则重新生成以 EP 为首的链,检验是否确实为密钥,如果是,则算法结束,否则 Vj∈ ( 一 ( 其中: + )z 出现假警,转到步骤1继续运算。 步骤5如果遍历到彩虹表中首节点时,还没有匹配成功 则整个算法结束,搜索失败。 一般情况下,单表成功概率最大为86%,如果想要提高成 功概率,可以增加多个表的方式来完成。另外在线分析时间也 是一个非常关键的要素,缩短链长和增加链数都可以降低在线 分析时间。 在线分析性能好坏取决于多方面的因素,其中假警率是关 键要素之一。当为单张彩虹表时,k次搜索得到的假警总期望 最大不超过 生 二 。 证明: m k—i  ..t一1 E(F )≤ +÷ : f二 + 2 N- 2 一 — i =1 2± I 二 2 2Ⅳ 其中m为单表中链数目,Ⅳ为密钥空间,t为链长度。 3实验及结果分析 为验证算法性能,依据已生成彩虹表(参数见表1)本文在 PC(CPU:2.99GHz,内存:2GB,操作系统:Windows XP)环境下 对1000个样本pdf加密文档进行了测试,得出平均分析时间, 最长分析时问,一 成功概率等实验数据,见表1、表2、表3和表4。 表1彩虹表参数 表2在线分析时间 暴力破解 穷尽搜索 彩虹表 最少假警次数 平均假警次数 最多假警次数 49 128 517 表2给出了在线分析的理论时间和实际测试时间。理论时 间按照下列公式计算。 . m (i一1) q 一 一 号(1一号) 每个pdf文档口令破解时间平均在2分钟时间,而如果采 用暴力破解方法,则破解时间需要80天左右,破解速度可以提 高50000倍,效率非常高。当然相对于暴力破解来说,需要预先 花费大量的时间创建彩虹表,并且需要额外的2GB内存空间来 存放彩虹表。 文献[14]表明,在线分析时间rr正比于 ,反比于 ,和 成功率P 成正比。本文在不同成功率下测试这几个参数之间 的关系,如图2所示。 图2 TiM/NiP 关系图 4 结语 彩虹表算法在时间和空间上寻求最佳折中点,在口令破解 中具有非常重要的应用价值。本文针对pdf文档加密算法的特 点,构建相应彩虹表,表的参数:表数目/-4,每表链数目m= 53687091,链长度 =35368,存储空问 =2GB。使用该彩虹表 用于pdf类型的文档口令破解并进行实验验证,实验结果表明 该方案破解口令时间快于暴力破解方法50000倍,具有较好效 果。 参考文献 [1]Kedem,lshihara.Brute force attack on UNIX passwords with S1MD computer[C]//Proceedings of The 8th USENIX Security Symposium, 1999,8:8—8. [2]Dandass Y S.Using fpgas to paralletize dictionary attacks for password cracking[C]//Computer Science and Engineering,Mississippi State USA,2008. [3 j Hellman M E.A Cryptanalytic Time—memory Trade off[J].IEEETrans— actions On Information Theory,1980,IT一26:401—406. [4]Jin Hong,Kyung Chul Jeong,Eun Young Kwon,et a1.Variants of the Distinguished Point Method mr Cryptanalytie Time Memory Trade—offs [C]//Department of Mathematica1.SciencesandI Sa C—RIM.Seoul: 140 SeoulNational University,2008:151—747. 计算机应用与软件 2012血 其进行归一化处理,使其欧氏范数为1;随后使用K均值算法产 at A,Naor M.Rigorous time/space tradeoffs for inverting functions [5] Ficoll ∈|o[C]//Proc.of the 23rd Annual ACM Symposium on Theory of Com— puting,l991:534—541. [6] Denning D E.Cryptography and Data Security[M].Addison—Wesley, l982. [7] Oechslin P.Making a Faster CD'ptanalytic Time—memo ̄Trade-off [C]//Dan Boneh.Advances in Cryptology—CRYPTO 03.California, USA:Springer—Verlag,2003:617—630. [8] Mentens N,Batina L,Preneel B,et a1.Cracking Unix passwords Using FPGA platforms[C]//Proceedings of the Workshop on Special Purpose Hardware for Attacking C17ptographic Systems 2005,SHARCS’05. [9] Theoharoulis K,Papaefstathiou I,Manifavas C.Implementing Rain— bow Tables in Higb--end FPGAs for Super--fast Password Cracking [C]//2010 International Conference Field Programmable Logic and Applications. [10] Carson T,Baker D.Adobe Acrobat and PDF for Architecture,Engineer— ing,and Construction[M].London:Springer—Verlag,2006:207. Warnock,John.The Camelot Project[OL].1991.http://www.planet— pdf.conu'mainpage.asp webpageid=1 85 1 [12] Adobe System Incoq ̄orated.Adobe Portable Document Format Re ̄r- enee Manual[M].Version 1.7,2006. [13] Adobe Systems Incorporated.PDF Reference,Third Edition,Adobe Potable Document Format Version 1.4[M].American:Addison-Wesley,2001. [14] Avoine G,Junod P,Oechslin P.Characterization and improvement of time-memory trade—off based on perfect tables[J].ACM Trans.In— ofmr.Syst.Secur.,2008,11(4). (上接第70页) 因此成为近年来机器学习领域非常流行的评价指标之一。当两 个类别标签一一对应时,NMI值达到最大值1。 将本文的算法(简记为KL)与以下9个算法相比较,它们 是:文献[2]提出的基于图划分算法的CSPA、HGPA、MCLA;文 献[3]提出的SMSA和SGTA;文献[4]提出的4个基于单连接、 全连接、组平均和Ward的证据累积算法,为方便起见,分别简 记为EASI EACL、EAAL和EAWL。 03 它 盅 面02 量 Z O1 o.0 哺bedh revi ̄ Ia12 打31 b'41 D毒£asel 图2聚类集成算法所获得的NMI值 将1O个聚类集成算法分别在不同数据集上进行聚类,获得 的NMI值如上图2所示。对于每个数据集,首先将每个文本根 据TF—IDF(term frequency—inverse document rfequency)加权,并对 生15个聚类成员,K均值算法每次随机选取初值,并且采用余 弦函数计算文本之间的相似度。因为算法HGPA调用了HME— ¨ TIS算法,而HMETIS得到局部最优解,所以HGPA算法获得的 聚类结果不稳定,我们运行10次取平均值;调用图划分算法 METIS的CSPA和MCLA获得的结果稳定;层次聚类算法,谱聚 类算法和本文设计的算法都获得了稳定的结果。 我们可以根据图2作出以下几个比较: (1)比较CSPA、HGPA和MCLA,CSPA都获得了最好的结 果,这与文献[2]的结论相符。(2)比较EASL、EACL、EAAL和 EAWL,EAAL和EAWL的聚类效果明显优于EASL和EACL,这 与文献[4]中的结论相符。(3)比较SMSA和SGTA,两个算法 在6组数据集上的NMI值互有高低,这与文献[3]中的结论相 符。(4)与其他9个算法相比,除了在数据集la12上获得了比 EAWL略低的NMI值,KL都获得了最高的NMI值。 4 结语 本文结合K均值与谱聚类设计了一种聚类集成算法,它充 分利用了聚类成员提供的属性信息与关系信息。为了有效降低 该算法的计算复杂度,本文通过代数变换方法有效避免了大规 模矩阵的特征值分解问题。在多组真实数据集上的实验结果表 明,本文的算法优于其他聚类集成算法。本文的方法为解决聚 类集成问题提供了一种新思路。 参考文 献 Tan P N,Steinbach M,Kumar V.Introduction to data mining[M]. MA,USA:Addison—Wesley Longman Publishing Co.,Inc.Boston, 2010. [2] Strehl A.Ghosh J.Cluster ensembles-a knowledge reuse framework for combining partitionings[J].The Journal of Machine Learning Re— search,2002,3:583—617. [3] 徐森,卢志茂,顾国昌.使用谱算法解决文本聚类集成问题[J]. 通信学报,2010 31(6):58~66. [4] Fred A,Lourengo A.Cluster ensemble methods:from single cluster- ings to combined solutions[M].Supervised and Unsupervised Ensem— ble Methods and their Applications.Berlin:Springer,2008:3—30. [5] Fern X Z,BrQdley C E.Solving cluster ensemble problems by bipartite graph patritioning[C]//Proceedings of 20th International Conference on Machine Learning Banff,Canada,2004. [6] 唐伟,周志华.基于Bagging的选择性聚类集成[J].软件学报, 2005,16(4):496—502. [7] Sevillano X,Alias F,Soeor6J C.BordaConsensus:a new consensus function for soft cluster ensembles[C]//Proceedings of the 30th anna— al international ACM SIGIR.New York:ACM.2007 743—744. [8] 王红军,李志蜀,成飚,等.基于隐含变量的聚类集成模型[J]. 软件学报,2009,20(4):825—833. [9] Wang F,Ding C,Li T.Integrated KL(K—means-Laplaeian)Cluste— irng:A New Clustering Approach by Combining Attirbute Data and Pairwise Relations[c]//Proceedings of 2009 SIAM International Con— ference on Data Mining.Sparks,United States.2009:38—48.