广州大学学生实验报告开课学院及实验室:计机楼617A室2016年3月29日学院数学与信息科学年级、专业、班信安131姓名张贺威学号1315300034实验课程名称信息安全技术实验成绩实验项目名称Hash算法实验指导老师唐屹一、实验目的掌握hash函数的工作原理和方式三、实验过程假定有一本纯数字4位口令字典pwddict-4.txt,现获得MD5处理过的口令文件MD5-pwd.txt。编写一个攻击程序,推测口令明文。1.实验结果1.1需要破解的密文是:67cc42acc8ce334185e0193753adb6cb7768cd0f74b5955dc87fd0605745c4b49ee81.2实验截图:2.Hash函数工作原理和方式2.1Hash工作原理:就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说hash就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。2.2方式:2.2.1MD4MD4(RFC1320)是MIT的RonaldL.Rivest在1990年设计的,MD是MessageDigest的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于32位操作数的位操作来实现的。2.2.2MD5MD5(RFC1321)是Rivest于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好2.2.3SHA1SHA1是由NISTNSA设计为同DSA一起使用的,它对长度小于2^64位的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。3.算法用途主要体现在三个方面:3.1文件校验:我们比较熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏,MD5Hash算法的数字指纹特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5checksum的命令。3.2数字签名:Hash算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。对Hash值,又称数字摘要进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。3.3鉴权协议:鉴权协议又被称作挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。