网站大量收购独家精品文档,联系QQ:2885784924

网络安全单向散列函数.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第三章单向散列函数

;散列函数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单向散列函数工作模式;单向散列函数是建立在压缩函数之上的〔不保真压缩〕

输入:消息分组和前一分组的输出(对第一个压缩函数,其输入为消息分组1和初始化向量IV)

输出:到该点的所有分组的散列,即分组M1~Mi的散列为hi=H(Mi,hi?1)

该散列值和下一轮的消息分组一起作为压缩函数下一轮的输入

最后一压缩函数的输出就是整个消息的散列; 3.1MD5算法

3.1.1算法

输入:任意长度消息

输出:128位散列值(或消息摘要)

;图3-2MD5算法;MD5算法包括以下五个步骤:

1)附加填充位

填充消息,使其长度为一个比512的倍数小64位的数〔消息长度用64位表示〕。

填充方法:在消息后面填充一位1,然后填充所需数量的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…M16=Yq〔512位的输入消息〕;5)输出

由A、B、C、D四个存放器的输出128位的消息摘要。

总体思想:基于输入Yq,不断更新缓冲区,且更新过程的运算足够复杂。

MD5算法的运算均为根本运算,比较容易实现且速度很快。

代码和举例略。;3.2平安散列函数(SHA);图3-5SHA–1算法;SHA–1的具体过程如下:

1)填充消息

首先将消息填充为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=0x5A827999 (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=16to79do

letWt=(Wt?3XORWt?8XORWt?14XORWt?16)1

//更新A~E

(3)LetA=H0,B=H1,C=H2,D=H3,E=H4

(4)fort=0to79do

TEMP=(A5)+ft(B,C,D)+E+Wt+Kt;

E=D;D=C;C=(B30);B=A;A=TEMP;

//更新H0~4

(5)LetH0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E;

4)输出

在处理完Mn后,输出H0、H1、H2、H3、H4级联为160位的消息摘要。

;3.2.3SHA–1与MD5的比较;3.3消息认证码(MAC);HMAC〔Keyed-HashMessageAuthenticationCode〕:用一个秘密密钥来产生和验证某消息的MAC

MAC(text)t

=

您可能关注的文档

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档