1 / 88
文档名称:

MD5消息摘要算法.doc

格式:doc   大小:321KB   页数:88页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MD5消息摘要算法.doc

上传人:zhufutaobao 2019/12/15 文件大小:321 KB

下载得到文件列表

MD5消息摘要算法.doc

文档介绍

文档介绍::•Merkle于1989年提出hashfunction模型•RonRivest于1990年提出MD4•1992年,由麻省理工学院的RonRivestat提出MD5(MessageDigest)[RFC1321]•别名:压缩函数、杂凑函数、散列函数、报文摘要•结构:MD5遵循安全hash码的一般结构•输入:任意长的消息•MD5把数据分成512-bit块•MD5的Hash值是128-bit•在最近数年之前,MD5是最主要的Hash算法•现行美国标准SHA-(一)算法结构,遵循一般结构,(二)算法框架(1)附加填充比特:对报文进行填充,使其长度(比特数)与448模512同余,即长度?448mod512即填充长度为512的整数倍减去64。例如,报文是448bit长,那么将填充512bit形成960bit的报文。(2)附加长度值:用64bit表示的初始报文(填充前)的位长度附64加在步骤1的结果后(低位字节优先)。若初始长度大于2,仅使用该长度的低64bit。(3)初始化MD缓存:该缓存记为A、B、C、D各32bit。其中A,(01234567)B,(89ABCDEF)1616C,(FEDCBA98)D,(76543210)1616A、B、C、D称为链接变量,令初始值IV,(A,B,C,D)16(4)主循环,共循环L次。每个循环有4轮迭代,每轮16步操作运算。每轮均以当前报文组和缓存ABCD为输入,然后更Yq新缓存内容。(5)输出:所有L个512bit的分组处理完成后,第L阶段产生的输出便是128bit的报文摘要MD。(三)数学描述,CVIV,0,CVH,,CV,Y,,q,1MD5qq,MDCV,,L或CV,IV0CV,SUM(CV,RF[Y,RF[Y,RF[Y,RF[Y,CV]]]]),q132qIqHqGqFqqMD,CVL其中,IV,缓存A、B、C、D的初值,在步骤(3)定义,Yq,第q个长度为512bit的报文分组,L,报文的分组数(包括填充字段和长度字段),CV,处理第q个报文分组时的连接变量q,RF,使用原始逻辑函数x的循环函数x,MD,最终的报文摘要32,SUM,对输入对中的每个字分别执行模2相加32(四)单个循环•步骤4:CV0,IV,CVq,HMD5(CVq-,Yq)1–(A0,B0,C0,D0)?(A,B,C,D)–第1轮(A,B,C,D,T[1…16],X[0…15])–第2轮(A,B,C,D,T[17…32],X[0…15])–第3轮(A,B,C,D,T[33…48],X[0…15])–第4轮(A,B,C,D,T[49…64],X[0…15])–(A,B,C,D)?(A+A0,B+B0,C+C0,D+D0)•512-bit块(X[…]为32-bit表示)在四轮中使用•每个轮包含16步,每步处理一个32-bit32•T[j],[sin(j)×2]的整数部分,1?j?(一)单步操作每一轮包含对缓冲区ABCD的16步操作所组成的一个序列。a?A,b?B,c?C,d?Da?b+((a+g(b,c,d)+X[k]+T[i])<<<s)A?d,B?a,C?b,D?c其中:a,b,c,d,缓冲区的四个字,以一个给定的次序排列;g,基本逻辑函数F,G,H,I之一;<<<s,对32位字循环左移s位X[k],M[q×16+k],在第q个512位数据块中的第k个32位字T[i],表T中的第i个32位字;32+,模2的加;(二),轮,函数g第1轮、F(b,c,d),(b?c)?(?d)b第2轮、G(b,c,d),(b?d)?(c?)d第3轮、H(b,c,d),b?c?d第4轮、I(b,c,d),c?(b?)d(三)X[k]imod16,round1,,1,5imod16round2,,(,0,1,…,15)ik,5,3imod16round3,,7imod16round4,(四)T[i]32,,2siniT[],,1??64ii,,其中:为弧度;sin(i)为正弦函数;为下整数函数(即不大于xix,,的最大的整数。(五)循环移位位数s第第第第第第第第第第第第第第第轮第234567891011**********步步步步步步步步步步步步步步步步数17122217712221771222177122217259142059142059142059142034111623411162341116234111623461015216101521610**********(六)详细操作•For(k,0;k<16;++k){(B,C,D)+X[ρ(k)]+T[16×0+k+