欢迎来到天天文库
浏览记录
ID:25003461
大小:55.00 KB
页数:6页
时间:2018-11-17
《字节型散列函数的加速技术研究与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、字节型散列函数的加速技术研究与实现第一章绪论1.1研究背景及目的人类对计算能力的需求永无止境,21世纪随着信息化社会的飞速发展,高性能计算(HighPerformanceputing,HPC)已经成为一个国家综合国力的重要标志,也是促进经济、科技以及社会进步和发展的重要工具,具有重要的国家战略影响。在大规模集成电路技术不断发展和进步过程中,高性能计算机的发展也有了新的发展方向,多核CPU的发展已经成为一种趋势,高性能计算机的性能也有了飞速的增长,高端的高性能并行计算机系统正向百万亿次、千万亿次计算迈进,人们可
2、以利用HPC完成很多普通计算机不能完成的计算任务,这样既节省了大量的现实实验费用,又不会对环境有坏的影响[1]。目前,HPC已经广泛应用于航空航天、汽车、核模拟、天气预报等领域。散列函数的的定义描述一般是:C=Hash(P)。其中输入值是P,Hash是某一特定的散列函数(例如RC4、Ntlm等),输出是经过散列函数计算得到的散列值C。散列函数就是把任意长度的输入,通过散列算法计算变换并输出得到长度固定的散列值,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。21世纪更是高性能计算飞速发展的
3、时代,多核、众核的时代已经来临,2012年底,Intel公司推出了基于MIC(ManyIntegratedCore)架构的至强融核(IntelXeonPhi)系列产品,用于解决高度并行计算问题。这个产品具有60个左右的基于x86架构的核心,每颗核心的主频可高达1.2GHz,并集成于一块PIC-E接口的卡中。它的双精度性能达到每秒一万亿次以上,支持OpenMP、pThread、MPI等多种并行编程模型,MIC的每个核心之间相互独立,可以单独运行线程甚至进程,互不影响[2]。每个核心还可以利用超线程技术开启最多4
4、个硬件线程。本文正是在深入研究各散列算法的基础上,针对传统CPU算法耗费时间长的现实要求,利用MIC加速部件强大的计算能力,实现对散列函数的并行加速技术研究与实现。.......1.2研究现状目前,市面上已经有一些口令破解软件使用,例如JohnRipper,EDPR,Hashcat等等,下面对它们做简单介绍:JohntheRipper,直译其名字的话就是:JOHN的撕裂者(工具),是免费的开源软件,实际上它是一个快速的密码破解工具软件,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算
5、法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、P不仅可以以较小的并行化代价在SMP集群系统的单个节点上高效运行,还可以和其它并行程序模型一起完成更大规模的计算[10]。当前,支持OpenMP的语言主要有Fortan,C/C++。OpenMP是基于线程的并行编程模型,使用Fork-Join并行执行模型,如图2-4所示。一个OpenMP程序从单个线程开始执行,在程序的某些点需要并行执行时,程序派生出额外的线程,组成一个线程组[11]。这些线程在一个称为并行区域的代码区中并
6、行执行。线程到达并行区域的末尾时等待,直到整个线程组都到达,然后它们连接在一起,只有初始或者主线程继续执行,直到下一个并行区域(或者程序结束)。.......第三章四种字节型散列算法原理分析.........173.1RC4算法........173.2Domino算法........183.2.1Dmonio中主要函数的说明.....203.3UNIX_DES算法....243.3.1UNIX_DES中主要函数的说明.........273.4Oracle7_10算法.........373.4.1Orac
7、le7_10中主要函数的说明......393.5总结与分析.........46第四章MIC加速部件上字节型散列算法的设计与实现..........474.1MIC加速部件上的并行化方法......474.2三种不同数据组织方式的比较.....514.3针对特定算法的优化实现......604.4总结.......67第五章测试....685.1测试方法......685.2测试结果......69第五章测试5.1测试方法根据项目需求,对于MIC加速部件上实现后散列算法的的测试分为正确性测试和性能测试两部分
8、。在特定算法合并进系统前,需要先在测试平台上进行独立测试,同样的算法在测试平台和系统中的并行加速执行部分(设备端代码)是一样的,因此正确性测试和性能测试的结果与系统中保持一致。这样,还可以保证每个算法独立开发及其正确性。对于测试平台上的正确性测试,首先利用散列算法的串行代码产生配对的明文和散列值,作为测试平台的输入:inputs.txt和ALG_hashValues.txt。其中inputs.txt
此文档下载收益归作者所有