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

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

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

第三章 单向散列函数 散列: 将任意长度的消息M映射成一个固定长度m散列值h,h=H(M),H:单向散列函数 散列的特点: 单向性 散列的应用: 不安全系统中,用户口令的保存(单向,不可逆,防泄密) 必威体育官网网址数据的认证(防伪造、篡改) 数字签名( h=Hiv(M) ,iv=k|t ,防伪造、篡改、抵赖) 散列函数h=H(M)的单向性: 给定M,很容易计算h。 给定h,根据H(M)=h反推M很难。 给定M,要找到另一消息M并满足H(M)=H(M)很难。 抗碰撞(Collision) :要找到两个随机的消息M和M,使H(M)=H(M)满足很难。 单向散列函数是建立在压缩函数之上的(不保真压缩) 输入:消息分组和前一分组的输出(对第一个压缩函数,其输入为消息分组1和初始化向量IV) 输出:到该点的所有分组的散列,即分组M1 ~Mi的散列为 hi= H(Mi, hi?1) 该散列值和下一轮的消息分组一起作为压缩函数下一轮的输入 最后一压缩函数的输出就是整个消息的散列 3.1 MD5算法 3.1.1 算法 输入:任意长度消息 输出:128位散列值(或消息摘要) 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.2.1 算法 SHA (Secure Hash Algorithm) 安全散列算法,用于数字签名标准DSS(Digital Signature Standard) 修改版SHA–1产生消息摘要的过程类似MD5: 输入:长度小于264位的消息 输出:160位的消息摘要。 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) for t =16 to 79 do let Wt =(Wt?3 XOR Wt?8 XOR Wt?14 XOR Wt?16)1 //更新A~E (3) Let A =H0,B =H1,C =H2,D =H3,E =H4 (4) for t =0 to 79 do TEMP = (A5)+ft (B, C, D)+E +Wt +Kt ; E =D; D =C; C =(B30);

文档评论(0)

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

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

1亿VIP精品文档

相关文档