基于FPGA硬件的word2003文档破解的系统及方法
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于FPGA硬件的word2003文档破解系统及方法。
背景技术
MD5(Message-Digest Algorithm 5)是目前广泛应用的Hash函数之一。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这就像不存在反函数的数学函数。
MD5主要用途包括如下三个方面:
1、防止被篡改方面的应用:比如发送一个电子文档,发送前,我先得到MD5的输出结果a,然后在对方收到电子文档后,对方也得到一个MD5的输出结果b,如果a与b一样就代表中途未被篡改。
2、防止直接看到明文方面的应用:现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值,这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码;用户的密码就是以MD5(或其它类似的算法如SHA1)经加密后存储在文件系统中,当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性,这样不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。
3、防止抵赖(数字签名)方面的应用:这需要一个第三方认证机构。例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录;若以后A说这文件不是他写的,认证机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是A写的了,这就是所谓的“数字签名”。
彩虹表(Rainbow Table)是一个用于加密散列函数逆运算的预先计算好的表,是一种破解哈希算法的技术,是一款跨平台密码破解器,主要可以破解MD5、SHA1等多种密码。
在以前,国外的黑客们就发现单纯地通过导入字典,采用和目标同等算法破解,其速度其实是非常缓慢的,就效率而言根本不能满足实战需要。之后通过大量的尝试和总结,黑客们发现如果能够实现直接建立出一个数据文件,里面事先记录了采用和目标采用同样算法计算后生成的Hash散列数值,在需要破解的时候直接调用这样的文件进行比对,破解效率就可以大幅度地,甚至成百近千或近万倍地提高破解效率,这种事先构造的Hash散列数据文件在安全界被称之为Table表(文件)。
对现有技术的专利检索发现,专利号201110099441的“基于FPGA实现的超高吞吐量md5暴力破解装置”提供了一种基于FPGA硬件暴力破解MD5算法的设计方法,该专利缺陷在于:暴力破解性能远不如彩虹表破解技术,而且只有MD5单一算法,对于文档破解无能为力。专利号2/277,039的“Hardware-implemented MD5 function”提出了基于FPGA的设计方法,但是不涉及彩虹表的破解。专利号3/440,264的“Efficient Implementation of HashAlgorithm on a Processor”提出基于ARM处理器实现MD5算法的方案,该专利缺陷在于:ARM处理器速度和效率不如FPGA,而且该方案也不涉及基于彩虹表的破解。专利号200510025068的“文件口令的破解方法”提出基于PC机的穷举法破解方案,没有涉及彩虹表破解,设计缺陷是破解太耗时间。
综上所述,现有技术中并未涉及基于FPGA硬件技术,并利用时空折中算法的进行word2003文档破解,因此如何提高word2003文档破解效率,如何平衡破解时间和资源消耗之间的矛盾,如何权衡破解时间和彩虹表大小存储之间的矛盾,如何提高数据处理速率和数据吞吐量,则是现有技术中有待解决的问题。
发明内容
为了克服现有技术存在的缺点与不足,本发明提供一种基于FPGA硬件的word2003文档破解系统及方法,能够快速、高效地进行文档破解。
为解决上述技术问题,本发明提供如下技术方案:一种基于FPGA硬件的word2003文档破解系统,运用于PC设备之中,该PC设备设有输入接口模块和输出接口模块,所述输入接口模块和输出接口模块之间设有多个并行设置的破解模块,所述破解模块包括依次相连的子密钥生成模块、彩虹表匹配模块和密钥破解模块;其中
所述子密钥生成模块用于生成子密钥且实现子密钥的MD5运算以及RC4运算;
所述彩虹表匹配模块用于生成彩虹表且对所述子密钥进行彩虹表的匹配;
所述密钥破解模块用于将匹配后的子密钥进一步实现MD5运算以及RC4运算。
进一步地,所述子密钥生成模块包括依次相连的子密钥轮循控制器、MD5算法模块以及RC4算法模块,其中
所述子密钥轮循控制器用于读取密文且控制MD5算法、RC4算法的运算次数;
所述MD5算法模块用于实现MD5算法运算;
所述RC4算法模块用于实现RC4算法运算。
进一步地,所述彩虹表匹配模块包括依次相连的彩虹表控制器、读取彩虹表控制器、彩虹表匹配器以及存储器,所述存储器均与所述彩虹表控制器、读取彩虹表控制器相连,所述存储器为DDR3存储器,其中
所述彩虹表控制器接收所述子密钥生成模块运算产生的子密钥、读取彩虹表控制器读取子密钥、彩虹表匹配器对子密钥进行彩虹表的对比匹配,所述彩虹表存储在所述DDR3存储器,若子密钥与彩虹表匹配成功,则子密钥进入密钥破解模块;若否,则将匹配不成功的子密钥做丢弃处理。
进一步地,所述密钥破解模块包括算法轮循控制器、MD5算法模块以及RC4算法模块,其中
所述算法轮循控制器用于控制MD5算法、RC4算法的运算次数;
所述MD5算法模块用于实现MD5算法运算;
所述RC4算法模块用于实现RC4算法运算。
进一步地,所述MD5算法模块、RC4算法模块均包括FPGA硬件以及FIFO存储器,所述FPGA硬件实现MD5算法运算或RC4算法运算,其中
所述MD5算法进行64次运算,且对整个MD5算法做N级流水线处理,每级流水线使用所述FIFO存储器进行隔离和数据缓存,1≤N≤64;
所述RC4算法实施N轮流水线设计,前N-1轮完成密钥调度算法,第N轮完成伪随机数生成,每轮流水线之间使用FIFO存储计算的中间变量,1≤N≤17。
进一步地,所述输出接口模块根据所述破解模块的破解结果进行报文分析组帧,且将破解结果报送所述PC设备进行验证,若检验通过,则说明破解成功,完成整个Word2003文档破解任务;若检验没有通过,则破解失败,结束整个文档破解任务。
本发明另一目的是提供一种基于FPGA硬件的word2003文档破解系统的破解方法,包括下述步骤:
S1、PC设备接收word2003文档密文并且进行分析处理,然后产生密钥和控制信息;
S2、PC设备将密钥和控制信息发送给输入接口模块,输入接口模块接收密钥和控制信息传输给破解模块;
S3、破解模块对密钥和控制信息进行一系列破解处理过程后,把破解结果传输给输出接口模块;
S4、输出接口模块根据所述破解模块结果进行报文分析组帧,且将破解结果报送所述PC设备进行验证,若检验通过,则说明破解成功,完成整个Word2003文档破解任务;若检验没有通过,则破解失败,结束整个文档破解任务。
进一步地,步骤S3中,破解模块对密钥和控制信息进行破解处理的具体方法为:
S31、密钥以及控制信息均经过子密钥和彩虹表匹配,匹配成功,则子密钥的高24bit和彩虹表链首保存,进入破解模块进行破解运算,进入破解模块的信号包括子密钥的高24bit和彩虹表链首以及控制信号;
S32、根据MD5算法和RC4算法的特点,对于子密钥生成模块的算法MD5和RC4算法、密钥破解模块的MD5算法和RC4算法,它们所实现的功能不一样,但是算法实现一样,即具体的算法是一样的;其中,控制信息不参与算法运算;
S33、破解模块对输入的密钥进行运算,若运算结果满足一定条件的,则将破解结果和附加信息一起上报PC;若运算结果不满足一定条件,则丢弃;
S34、若破解模块上报PC的破解结果和附加信息通过验证,则PC会下发停止破解指令,此时word2003破解系统停止破解运算;若没有通过验证,则破解模块运算完成所有待破解信息,上报PC,告知破解结束。
采用上述技术方案后,本发明至少具有如下有益效果:本发明利用彩虹表时空折中算法破解,而彩虹表相对于暴力破解和穷举破解等提高了破解效率,减少破解时间;在综合考虑彩虹表和FPGA的技术特点的基础上,采用适当的彩虹表进行破解,很好的解决了破解时间和资源消耗矛盾之间的问题。
附图说明
图1是本发明基于FPGA硬件的word2003文档破解系统的整体设计框图;
图2是本发明基于FPGA硬件的word2003文档破解系统的破解模块设计框图;
图3是本发明基于FPGA硬件的word2003文档破解系统的MD5算法模块设计框图;
图4是本发明基于FPGA硬件的word2003文档破解系统的MD5算法第二轮设计流程图;
图5是本发明基于FPGA硬件的word2003文档破解系统的RC4算法模块设计框图;
图6是本发明基于FPGA硬件的word2003文档破解系统的RC4算法第一轮设计流程图;
图7是本发明基于FPGA硬件的word2003文档破解系统的破解方法步骤流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
如图1所示,本发明提供一种基于FPGA硬件的word2003文档破解系统,运用于PC设备之中,该PC设备设有输入接口模块和输出接口模块,所述输入接口模块和输出接口模块之间设有多个并行设置的破解模块,所述破解模块包括依次相连的子密钥生成模块、彩虹表匹配模块和密钥破解模块;其中,所述PC设备接收word2003文档密文并且进行分析处理,然后产生密钥和控制信息,进一步PC设备将密钥和控制信息发送给输入接口模块,输入接口模块接收密钥和控制信息传输给破解模块,破解模块对密钥和控制信息进行一系列破解处理过程后,把破解结果传输给输出接口模块,输出接口模块根据所述破解模块结果进行报文分析组帧,且将破解结果报送所述PC设备进行验证,若检验通过,则说明破解成功,完成整个Word2003文档破解任务;若检验没有通过,则破解失败,结束整个文档破解任务。
如图2所示,本发明包括一系列的破解模块,每个破解模块的组成和破解原来是相同的,多个破解模块组合在一起,能够快速对多个密文同时进行处理,加快处理速度。其中,破解模块包括依次相连的子密钥生成模块、彩虹表匹配模块、密钥破解模块,子密钥生成模块用于生成子密钥且实现子密钥的MD5运算以及RC4运算,彩虹表匹配模块用于生成彩虹表且对所述子密钥进行彩虹表的匹配,密钥破解模块用于将匹配后的子密钥进一步实现MD5运算以及RC4运算。
进一步地,子密钥生成模块包括依次相连的子密钥轮循控制器、MD5算法模块以及RC4算法模块,其中,子密钥轮循控制器用于读取密文且控制MD5算法、RC4算法的运算次数,MD5算法模块用于实现MD5算法运算,RC4算法模块用于实现RC4算法运算。
彩虹表匹配模块包括依次相连的彩虹表控制器、读取彩虹表控制器、彩虹表匹配器,以及均与所述彩虹表控制器、读取彩虹表控制器相连的DDR3存储器,其中,彩虹表控制器接收子密钥生成模块运算产生的子密钥、读取彩虹表控制器读取子密钥、彩虹表匹配器对子密钥进行彩虹表的对比匹配,并且彩虹表是在破解文档前就已经存储在DDR3存储器中,若子密钥与彩虹表匹配成功,则子密钥进入密钥破解模块;若否,则将匹配不成功的子密钥做丢弃处理。
密钥破解模块包括算法轮循控制器、MD5算法模块以及RC4算法模块,算法轮循控制器用于控制MD5算法、RC4算法的运算次数,MD5算法模块用于实现MD5算法运算,RC4算法模块用于实现RC4算法运算。
上述所述的子密钥生成模块或密钥破解模块的MD5算法模块以及RC4算法模块,它们均实现MD5算法、RC4算法,原理是一样的。
子密钥轮循控制器控制MD5算法的运行次数,MD5算法经过一系列运行发给RC4算法模块,RC4算法模块根据次数要求再将运算结果返回到MD5算法初始运算,按此步骤循环,直至MD5算法的第64次算法结束。
如图3所示,MD5算法包括FF、GG、HH、II共计4大轮运算,每轮16次运算,原理相同,子密钥轮循控制器控制对整个轮询次数进行运算,控制MD5算法和RC4算法的运行次数;MD5算法经过4轮64次运算,其结果发给RC4算法模块,RC4算法模块根据次数要求再将运算结果返回到MD5算法中进行下次轮询运算,按此步骤循环,直至完成D5算法和RC4算法轮询次数结束。
如图4所示,MD5的第一轮FF运算结果缓存FIFO中,第二轮GG运算启动,读取第一轮FIFO中数据,GG进行16次运算,结果缓存本轮的FIFO中,用于第三轮HH运算。
如图5所示,读取MD5的运算结果,进行RC4算法运算,前16轮完成密钥调度算法,原理一样,第17轮完成伪随机数生成,第17轮运算结束时,对轮询次数进行判决,完成轮询次数,则结果用于下级模块的彩虹表匹配,否则送入MD5进行下次轮询运算。
如图6所示,第一轮运算主要是将长度为256的S-box中数据顺序搅乱,达到随机排序的效果;先读取MD5的运算结果,同时进行RC4算法中的初始化,S-box的256个初始状态缓存RAM中,完成运算16次初始化算法运算后,临时结果缓存FIFO中,RAM中缓存的S-box数据被搅乱,双通道的数据用于RC4第二轮的运算,运算原理同第一轮相同。
如图7所示,本发明提供基于FPGA硬件的word2003文档破解系统的破解方法,包括下述步骤:
S1、PC设备接收word2003文档密文并且进行分析处理,然后产生密钥和控制信息;
S2、PC设备将密钥和控制信息发送给输入接口模块,输入接口模块接收密钥和控制信息传输给破解模块;
S3、破解模块对密钥和控制信息进行一系列破解处理过程后,把破解结果传输给输出接口模块;其中
S31、密钥以及控制信息均经过子密钥和彩虹表匹配,匹配成功,则子密钥的高24bit和彩虹表链首保存,进入破解模块进行破解运算,进入破解模块的信号包括子密钥的高24bit和彩虹表链首以及控制信号;
S32、根据MD5算法和RC4算法的特点,对于子密钥生成模块的算法MD5 和RC4算法、密钥破解模块的MD5算法和RC4算法,它们所实现的功能不一样,但是算法实现一样,即具体的算法是一样的;其中,控制信息不参与算法运算;
S33、破解模块对输入的密钥进行运算,若运算结果满足一定条件的,则将破解结果和附加信息一起上报PC;若运算结果不满足一定条件,则丢弃;
S34、若破解模块上报PC的破解结果和附加信息通过验证,则PC会下发停止破解指令,此时word2003破解系统停止破解运算;若没有通过验证,则破解模块运算完成所有待破解信息,上报PC,告知破解结束。
S4、输出接口模块根据所述破解模块结果进行报文分析组帧,且将破解结果报送所述PC设备进行验证,若检验通过,则说明破解成功,完成整个Word2003文档破解任务;若检验没有通过,则破解失败,结束整个文档破解任务。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。