MD5算法的设计与实现
更新时间:2023-11-02 10:29:02 阅读量: 综合文库 文档下载
- MD5算法实现推荐度:
- 相关推荐
实验三 MD5一、实验目的:
设计并实现MD5算法,从而进一步加深对数据完整性保证和散列函数的理解。 二、实验要求:
1、产生任意电子文档(包括文本和二进制)的128位信息摘要。 2、根据信息摘要验证该电子文档是否被更改过。 三、实验内容: 1、 MD5算法简介:
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了\安全-带子\(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
算法的设计与实现
2. MD5算法逻辑处理操作包括以下几步:
步骤一:附加填充比特。对报文填充使报文的长度(比特数)与448模512同余。即填充比特使长度为512的整数倍减去64。例如,如果报文是448比特长,那么将填充512比特形成960比特的报文。填充比特串的最高位为1,其余各位均为0。
步骤二:附加长度值。将用64比特表示的初始报文(填充前)的位长度附加在步骤一的结果后(低位字节优先)。如果初始长度大于264,仅使用该长度的低64比特。这样,该域所包含的长度值为初始报文长度模264的值。 这两步的结果将产生一个长度为512整数倍比特的报文。经扩展的报文表示成512比特的分组序列列Y1、Y2、Y3??Y(n-1),因此扩展的报文长度等于L乘512比特。与之等价的是,该结果也等于字长为16比特或32比特的整数倍,如果让[]10?NML表示扩展报文包含的字数,其中N是16的倍数,则N等于L 乘512。下图为使用MD5产生报文摘要的过程:
步骤三:初始化MD缓存。使用一个128比特的缓存来存放该散列函数的中间值及最终结果。该缓存可表示为4个32比特的寄存器(ABCD)。A=67452301,B=EFCDAB89,C=98BADCFE,D=10325476,这些值以低位字节放在在前的格式存储: A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210
步骤四:处理512比特报文分组序列。算法的核心是一个包含四个“循环”的压缩函数,下图为单个512比特分组MD5处理过程:
四个循环有相似的结构,但每次循环使用不同的原始逻辑函数,说明中表示为FGHI。每一循环都以当前的正在处理的512比特分组(Yq)和128比特的缓存值ABCD为输入,然后更新缓存的内容。每一循环使用一个64元素表T[0?64]的四分之一,该表通过正弦函数构建。T的第i个元素(表示为[Ti])的值等于分值其中i的单位是弧度。因为
的整数部
是0到1之间的数,每个T
的值均能用32比特表示集,它将消除输入数据的任何规律性。
第四次循环的输出加到第一次循环的输入(CVq)上产生(CV q+1),相加是缓存四个字与(CVq)中对应四个字以模
相加。
步骤五:输出。所有L个512比特的分组处理完成后,第L阶段
产生的输出便是128比特的报文摘要。总结MD5的操作如下:
其中: IV=缓存ABCD的初值,在步骤三定义
Yq=第q个长度为512比特的报文分组 L=报文(包括填充字段和长度字段)的分组数 CVq=处理第q个报文分组时的连接变量 RFx=使用原始逻辑函数x的循环函数 MD=最终的报文摘要
SUM32=对输入对中的每个字分别执行模
3、MD5的安全性:
md5相对md4所作的改进: a. 增加了第四轮;
b. 每一步均有唯一的加法常数;
c. 为减弱第二轮中函数g的对称性从(x&y)|(x&z)|(y&z)变为(x&z)|(y&(~z));
d. 第一步加上了上一步的结果,这将引起更快的雪崩效应; e. 改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;
f. 近似优化了每一轮中的循环左移位移量以实现更快的雪崩
相加
正在阅读:
MD5算法的设计与实现11-02
禾加小学关爱留守儿童活动记录06-03
水泥砼路面配合比设计样本05-28
县国家税务局年度工作总结及下一年工作思路08-04
常州市语文二年级下册第一单元《识字3》同步练习B卷04-26
向女生表白的话,男生对女生表白的话04-15
高塘岭片区征地拆迁安置工作动员大会主持词06-02
冬天的使者作文600字07-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 实现
- 设计
- MD5
- 子公司财务管理制度
- 2018年中国学前教育现状调研及市场前景预测(目录) - 图文
- 06.13留守儿童调查报告
- 导学案选修2-1第三单元3.1.1--1.2
- 人教版小学语文六年级下册第一单元课堂作业本答案(更新)
- 《健美操》试题库
- 15年度“云南省优秀工程勘察设计奖”获奖项目名单
- 桔水食用酒精市场现状调研及发展前景分析报告(目录)
- 《桃花源记》中考试题集锦 完整版
- 九江学院2014大学语文专升本考试大纲
- 中南大学《数据结构》课程作业(在线作业)一及参考答案
- 八年级下册历史综合试题及答案(人教版)- 副本
- 1在温病学发展过程中doc
- 金税三期操作手册-征收 - 图文
- 运动生理学习题12
- 第四批高级专业技术职务任职资格人员名单
- PKP操作技巧及麻醉体位选择进针角度问题
- 索芙特公司营销全套资料
- 关于公布2010年南安市中学生优秀历史小论文评选结果
- NSN - NODE - B常见告警分析