基于MPI的并行计算密码解密算法论文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

并行计算实验报告——密码猜解专业班级学生指导教师一实验题目利用MPI并行猜解密码二实验目的随机输入一个六位数的密码,通过MD5哈希算法首先计算出加密后的密码,然后再次利用MD5哈希算法比对加密数据库,猜解出之前输入的密码。三实验环境MPI、VS2010(1)MPIMPI是指MessagePassingInterface,是一种消息传递函数库的标准规范,由MPI论坛开发。是一种新的库描述,不是一种语言。共有上百个函数调用接口,在C语言中可直接对这些函数调用。MPI是一种标准或规范的代表,而不是特指某一个对他的具体实现,是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准。MPI具有高移植性,MPI已在IBMPC机上,MSWindows上,所有主要的Unix工作站和所有主流的并行机上得到实现。下面是MPI的主要编程接口:(2)VS2010VS是MicrosoftVisualStudio的缩写,是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。我们这里是用VS中支持C的特性来进行编程。四实验原理在针对某个问题设计算法时,我们通常都会提到串行算法和并行算法。串行计算主要是指设计的算法串行执行,即可以理解为只有一个处理器,所有的任务都是一个一个完成的;而并行计算就是在并行计算机或者分布式计算机等高性能计算系统上所做的超级计算,它的物质基础是高性能并行计算机。这里也要指出的问题是,针对同一个问题,它的并行设计和串行设计的执行时间在很大程度上是有区别的,通常情况下,并行的时间往往少于串行执行时间,也就是说并行的执行效率比较高。但是,也会出现相反的情况,并行没有达到我们的期望,这种情况可能与数据量、执行环境以及并行的程度都有关系,这个问题我们随着本实验的实际情况做个实际讨论。五实验内容(1)实验问题描述:密码由6位数字组成,通过用户输入,然后使用MD5加密后保存,(MD5加密一次或多次)。用穷举法猜解所有密码,由于密码通过MD5计算,猜解成功的密码可能不止一个,因为有可能加密了多次。然后根据与MD5数据库比对得出所输入的密码。可以用串行方法或者用并行计算方法,但是并行计算方法会比串行计算方法速度更加快速。(2)实验串并行解决方案1)串行解决方案本实验在串行解决方案中,即是用一个线程来执行与数据库的比对,MD5密码本身的数据库资源是非常多的,所以比对起来,时间复杂度是很大的,时间消耗的相对较长。2)并行解决方案本实验在并行算法中,利用多个线程比对数据库,那么时间会大大缩短。例如一个线程和两个线程所用的时间差别是很大的。并行对比找出公共元素的关键代码如下:初始化的部分代码如下:核心代码如下:获取其他进程的实验结果:显示结果的部分代码如下所示:六实验结果对于实验结果,我主要通过将实验执行的结果截图并简单介绍来呈现,这一部分不做详细分析,将在实验结果分析部分做详细讨论。结果如下:为了方便调试,这次实验使用的是6位阿拉伯数字,而且只计算一次MD5值。实际使用中密码为N位数字字符符号混合字符串,并且可能使用多次MD5加密。运行进程数是1个时结果如下图:运行进程数是2个时结果如下图:运行进程数是3个时结果如下图:运行进程数是4个时结果如下图:运行进程数是8个时结果如下图:运行进程数是16个时结果如下图:实验结果分析和对比1进程-------------------5.539518s2进程-------------------2.875978s3进程-------------------3.830775s4进程-------------------4.265582s8进程-------------------5.014586s16进程------------------5.390787s通过实验结果我们发现,当进程数由一个变为两个时,时间会大大减少,甚至达到一半,而随着实验进程数的逐渐增多,时间不仅没有减少,时间反而变长,分析了可能的原因:一是由于进程数增多,进程之间要相互通信,所以时间变长。二是由于此次实验用的计算机是双核的,即两个处理器,而这两个处理器之间也要通信,并且分配进程处理实验,所以时间会变长。七实验总结本次实验主要是在MD5哈希函数的基础上,利用串行和并行两种方式实现多线程猜解密码。实验结果上总体上是按照并行时间比串行时间时间少,效率好,但也有出现个别的不符合情况的几点,针对这几点,我看了相关的资料之后,分析出了以上的几种原因,但并不一定是完全有效的。这个需要之后更多数据和更好的配置来完成这个实验。通过这个实验,我学到了很多,并且了解了MPI并行计算可以提高效率这一经过实践证明的理论。希望自己以后在并行计算方面有更好的进步。

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功