计算机 密码学 实验六_Hash算法实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六:Hash算法实验安全0901 王宇航 09283020
实验报告
1.实验目的:
(1)通过实际编程,了解MD5算法的压缩过程,加深对Hash算法的认识;
(2)了解MD5中数据填充的方式;
(3)了解Hash算法中碰撞的研究方法和进展;
(4)了解其他Hash算法;
(5)了解HMAC算法
2.实验内容:
(1)熟悉Hash算法:
通西普平台的散列函数实验以及MD5值比对实验,简单了解HAsh算法;
思考以下问题:
1.比较三种算法的不同,如:三种散列函数的输入输出等;
由上图可以看出,MD5、SHA1、SHA256等的输出长度不同,MD5:256bits、SHA1:320bit、SHA256:512bit
2.通过实验,看一下两个相似的字符串经过MD5运算后,得到的结果差
异有多大?
第一组报文:123456789123 第二组报文:123456789120 差异只在最后一位数。
由图可以看出,输入只差一个数字,而结果总共有128位却有67位不同。差异很大。
(2)熟悉Hash算法的过程,了解填充方式:
通过SimpleISES平台(SHA-1)或者给出的页面(MD5, SHA1,Padding),真正理解Hash算法的过程,了解填充方式:
先输入测试向量123456789123
我们可以看到状态表,如下图:
然后是,4个轮函数,以第一个轮函数为例,如下图:
最终得到Hash值,如下图:
1)给出几种Hash算法的数据填充方式;
SHA1的填充方式:明文填充一位1,再填充若干个0把明文补至448位,再填充64位(原始明文长度的64位表示)把明文补至512位。
MD5的填充方式与SHA1相同。
(3)利用程序分别计算文件hello.exe 和erase.exe的md5值:
先输入测试向量123456789123
源代码及程序运行结果及截图: