当前对于各种加密算法.除了有针对性的破解算法,最基本的思想就是穷举密钥进行匹配,通常称为暴力破解算法。由于暴力破解算法包含密钥个数较多,遍历的时间超过实际可接受的范围。如果计算速度提高到足够快。这种遍历的算法因结构设计简便而具有实际应用的前景。 PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在普通PC机和工控机上有着广泛的应用。PCI总线为满足在插卡和系统存储器中高速传输数据的要求提供了很好的途径。
PCI总线是一种独立于处理器的局部总线,因此通过PCI总线插入扩展板,利用并提升普通PC机和工控机对大规模数字信号处理的运算能力和速度是一项非常具有实用意义的工作。
2019-6-25 08:50:07
2 MD5算法简介
MD5(Message Digest 5)报文摘要算法是一种应用广泛的提取数字指纹的算法标准,它由MIT的密码学专家、RSA算法的发明人之一Rivest设计发明。MD5算法结构如图5所示。
对任意长度的信息输入,MD5都将产生一个长度为128bit的输出,这一输出可以被看作是原输入报文的“报文摘要值(Message Digest)”。
MD5的特点:
(1)两条不同的报文具有相同的报文摘要值的可能性极小。
(2)对于预先给定的报文摘要值,要想寻找到一条报文,使得其报文摘要值与某个给定的报文摘要值相等,在计算上是不可能的。
(3)根据报文的摘要值,要想推测出原来的报文是极端困难的。
MD5算法被广泛地应用于网络数据完整性检查以及各种数据加密技术中。
Yahoo邮箱密码算法是基于两次MD5算法。共算法步骤如下:
stepl:对一个密码字段(例如:dfeag~hyt),用MD5算法加密:h=md5 (dfertgrhyt)。
step2:将step1所得结果转换为32Bytes的hex值:hex(h)。
step3:将step2所得结果与一个yahoo提供的chanllenge值简单级联:string=hex(h)+chanUenge
step4:将step3所得结果再进行一次MD5运算:hash=md5(strmg)。
由于未得到实际Yaheo邮箱密码生成参数(例如challenge码),本文构造了相近算法以测试本系统性能。
测试方案如下:
提供一个已知的challenge值与相应的Hash值,从提供的字典中提取合适密码,由生成算法计算出对应的Hash值与提供的Hash值匹配来校验匹配的密码。密钥字典的产生有两种方式:人为构造字典及系统自加、穷举产生密钥。
3 实测性能分析
实际系统中算法CORE运算时钟为20MHz,64bit数据宽度输入;采用多级流水线设计及运算速度就是系统运行时钟的速度。除运算初期流水线建立过程和运算结束时流水线完成过程,运算速度均可视为20MHz;实际制成的系统为四片算法FPGA并行运算,实际吞吐量为4×20M×16bit=1.28Gb;经Ahem Quartus 4.1综合,实际仲裁逻辑占用3725个逻辑单元。综合频率最高为156.2MHz,单算法逻辑占用7718个逻辑单元,综合频率最高为37.10MHz。
典型的普通PC机定点运算需要多个指令周期,包括取指令、取数据、计算、保存数据等指令周期,而一个x86指令周期又由多个CPU时钟周期组成,大大降低了实际运算速度。由于单个CORE以20MHz时钟流水线运算,相当于一台普通PC机的运算速度,因此多个CORE并行运算即可达到多台PC机并行运算的效率。
采取密钥字典自FPGA穷举产生方式,可发挥算法CORE的最大效能。若采取密钥字典自PC机下载方式,则实际速率由PCI总线最高速率决定。但由于字典可以人为选取,大大降低了密钥选取的盲目性。本系统接入普通PC机上32bit、32MHz的PCI总线,单算法CORE连续运算(64bit×20MHz)即可满足PCI总线全速下载。若使用64bit、66MHz的PCI总线或PCI EXPRESS,将进一步提高系统的实际吞吐量。
2 MD5算法简介
MD5(Message Digest 5)报文摘要算法是一种应用广泛的提取数字指纹的算法标准,它由MIT的密码学专家、RSA算法的发明人之一Rivest设计发明。MD5算法结构如图5所示。
对任意长度的信息输入,MD5都将产生一个长度为128bit的输出,这一输出可以被看作是原输入报文的“报文摘要值(Message Digest)”。
MD5的特点:
(1)两条不同的报文具有相同的报文摘要值的可能性极小。
(2)对于预先给定的报文摘要值,要想寻找到一条报文,使得其报文摘要值与某个给定的报文摘要值相等,在计算上是不可能的。
(3)根据报文的摘要值,要想推测出原来的报文是极端困难的。
MD5算法被广泛地应用于网络数据完整性检查以及各种数据加密技术中。
Yahoo邮箱密码算法是基于两次MD5算法。共算法步骤如下:
stepl:对一个密码字段(例如:dfeag~hyt),用MD5算法加密:h=md5 (dfertgrhyt)。
step2:将step1所得结果转换为32Bytes的hex值:hex(h)。
step3:将step2所得结果与一个yahoo提供的chanllenge值简单级联:string=hex(h)+chanUenge
step4:将step3所得结果再进行一次MD5运算:hash=md5(strmg)。
由于未得到实际Yaheo邮箱密码生成参数(例如challenge码),本文构造了相近算法以测试本系统性能。
测试方案如下:
提供一个已知的challenge值与相应的Hash值,从提供的字典中提取合适密码,由生成算法计算出对应的Hash值与提供的Hash值匹配来校验匹配的密码。密钥字典的产生有两种方式:人为构造字典及系统自加、穷举产生密钥。
3 实测性能分析
实际系统中算法CORE运算时钟为20MHz,64bit数据宽度输入;采用多级流水线设计及运算速度就是系统运行时钟的速度。除运算初期流水线建立过程和运算结束时流水线完成过程,运算速度均可视为20MHz;实际制成的系统为四片算法FPGA并行运算,实际吞吐量为4×20M×16bit=1.28Gb;经Ahem Quartus 4.1综合,实际仲裁逻辑占用3725个逻辑单元。综合频率最高为156.2MHz,单算法逻辑占用7718个逻辑单元,综合频率最高为37.10MHz。
典型的普通PC机定点运算需要多个指令周期,包括取指令、取数据、计算、保存数据等指令周期,而一个x86指令周期又由多个CPU时钟周期组成,大大降低了实际运算速度。由于单个CORE以20MHz时钟流水线运算,相当于一台普通PC机的运算速度,因此多个CORE并行运算即可达到多台PC机并行运算的效率。
采取密钥字典自FPGA穷举产生方式,可发挥算法CORE的最大效能。若采取密钥字典自PC机下载方式,则实际速率由PCI总线最高速率决定。但由于字典可以人为选取,大大降低了密钥选取的盲目性。本系统接入普通PC机上32bit、32MHz的PCI总线,单算法CORE连续运算(64bit×20MHz)即可满足PCI总线全速下载。若使用64bit、66MHz的PCI总线或PCI EXPRESS,将进一步提高系统的实际吞吐量。
举报
2019-6-25 08:50:12
本文提出了一种基于FPGA的适合大规模数字信号处理的并行处理结构,利用CORE的可置换性,可以针对不同应用的数字运算设计不同的CORE,系统通用性的特点非常显著。一台普通PC机中可以同时插入数块PCI卡。每块卡上的任意一块算法FPGA都可提供相当或超过一台普通PC机的运算速度。而每增加一块算法FPGA,在效率提高一倍的前提下,功耗增加不超过10W,而体积几乎不变,成本也只是比普通PC机增加了五分之一。因此.本文提出的并行结构具有极高的性价比。
如果将PCI总线接口模块集成到FPGA中以取代PCI9054芯片,将进一步降低硬件成本,减少硬件设计的复杂度;因实际运算速度与算法的并行度和优化有密切的关系,因此,设计不同应用的CORE以及相关算法的优化是下一步要进行的重要工作。
本文提出了一种基于FPGA的适合大规模数字信号处理的并行处理结构,利用CORE的可置换性,可以针对不同应用的数字运算设计不同的CORE,系统通用性的特点非常显著。一台普通PC机中可以同时插入数块PCI卡。每块卡上的任意一块算法FPGA都可提供相当或超过一台普通PC机的运算速度。而每增加一块算法FPGA,在效率提高一倍的前提下,功耗增加不超过10W,而体积几乎不变,成本也只是比普通PC机增加了五分之一。因此.本文提出的并行结构具有极高的性价比。
如果将PCI总线接口模块集成到FPGA中以取代PCI9054芯片,将进一步降低硬件成本,减少硬件设计的复杂度;因实际运算速度与算法的并行度和优化有密切的关系,因此,设计不同应用的CORE以及相关算法的优化是下一步要进行的重要工作。
举报