网络安全单向散列函数

网络安全单向散列函数

ID:43243166

大小:326.00 KB

页数:22页

时间:2019-10-07

网络安全单向散列函数_第1页
网络安全单向散列函数_第2页
网络安全单向散列函数_第3页
网络安全单向散列函数_第4页
网络安全单向散列函数_第5页
资源描述:

《网络安全单向散列函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章单向散列函数散列:将任意长度的消息M映射成一个固定长度m散列值h,h=H(M),H:单向散列函数散列的特点:单向性散列的应用:不安全系统中,用户口令的保存(单向,不可逆,防泄密)保密数据的认证(防伪造、篡改)数字签名(h=Hiv(M),iv=k

2、t,防伪造、篡改、抵赖)散列函数h=H(M)的单向性:给定M,很容易计算h。给定h,根据H(M)=h反推M很难。给定M,要找到另一消息M'并满足H(M)=H(M')很难。抗碰撞(Collision):要找到两个随机的消息M和M',使H(M)=H(M')满足很难。图3-1单向散列函数工作模式单向散列函数是建

3、立在压缩函数之上的(不保真压缩)输入:消息分组和前一分组的输出(对第一个压缩函数,其输入为消息分组1和初始化向量IV)输出:到该点的所有分组的散列,即分组M1~Mi的散列为hi=H(Mi,hi−1)该散列值和下一轮的消息分组一起作为压缩函数下一轮的输入最后一压缩函数的输出就是整个消息的散列3.1MD5算法3.1.1算法输入:任意长度消息输出:128位散列值(或消息摘要)图3-2MD5算法MD5算法包括以下五个步骤:1)附加填充位填充消息,使其长度为一个比512的倍数小64位的数(消息长度用64位表示)。填充方法:在消息后面填充一位1,然后填充所需数量的

4、0。2)附加长度将原消息长度的64位表示附加在填充后的消息后面。3)初始化MD缓冲区初始化用于计算消息摘要的128位缓冲区。这个缓冲区由四个32位寄存器A、B、C、D表示。4)按512位的分组处理输入消息进行四轮处理,每轮都以当前的正在处理的512比特分组Yq和128比特缓冲值ABCD为输入,并更新缓冲内容CV。四轮处理,每一轮进行16次如下操作。四轮处理所使用的非线性函数(逻辑函数,使用与、或、反、异或运算)不同。表T[1..64],T[i]=232×abs(sin(i)),i的单位为弧度;s固定给出Mj:32位(a、b、c、d均32位),M1…M1

5、6=Yq(512位的输入消息)5)输出由A、B、C、D四个寄存器的输出128位的消息摘要。总体思想:基于输入Yq,不断更新缓冲区,且更新过程的运算足够复杂。MD5算法的运算均为基本运算,比较容易实现且速度很快。代码和举例略。3.2安全散列函数(SHA)3.2.1算法SHA(SecureHashAlgorithm)安全散列算法,用于数字签名标准DSS(DigitalSignatureStandard)修改版SHA–1产生消息摘要的过程类似MD5:输入:长度小于264位的消息输出:160位的消息摘要。图3-5SHA–1算法SHA–1的具体过程如下:1)填充

6、消息首先将消息填充为512位的整数倍,填充方法和MD5完全相同。2)初始化缓冲区第一个缓冲区,五个32位的寄存器,标记为A、B、C、D、E;第二个缓冲区,五个32位的寄存器,标记为H0、H1、H2、H3、H4。(在运算之前,初始化{Hj}(IV)。)此外:标记为W0、W1、…、W79的80个32位缓冲区单字的缓冲区TEMP。3)按512位的分组处理输入消息主循环与MD5类似,包括四轮处理,每轮进行20次操作,每次操作分别使用逻辑函数f0、f1、…、f79(fi的输入为三个32位字,输出为一个32位字)和常数序列K0、K1、…、K79。Kt=0x5A82

7、7999(0≤t≤19)Kt=0x6ED9EBA1(20≤t≤39)Kt=0x8F1BBCDC(40≤t≤59)Kt=0xCA62C1D6(60≤t≤79)每次操作按如下步骤处理每个字块Mi://更新W0~79(1)把Mi分为16个字W0、W1、…、W15。(2)fort=16to79doletWt=(Wt−3XORWt−8XORWt−14XORWt−16)<<<1//更新A~E(3)LetA=H0,B=H1,C=H2,D=H3,E=H4(4)fort=0to79doTEMP=(A<<<5)+ft(B,C,D)+E+Wt+Kt;E=D;D=C;C=(B

8、<<<30);B=A;A=TEMP;//更新H0~4(5)LetH0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E4)输出在处理完Mn后,输出H0、H1、H2、H3、H4级联为160位的消息摘要。3.2.3SHA–1与MD5的比较SHA-1MD5Hash值长度160bit128bit分组处理长512bit512bit步数80(4×20)64(4×16)最大消息长≤264bit不限非线性函数3(第2、4轮相同)4常数个数464常数个数:SHA-1指K,H作为IV可以是用户设置的密钥;MD5指T[1..64],ABCD作为IV可

9、以是用户设置的密钥。3.3消息认证码(MAC)MAC(消息认证码):同时基于密钥与消息的散列M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。