第3章信息认证技术.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 信息认证技术 3.1 概述 3.2 哈希函数 3.3 消息认证技术 3.4 数字签名 3.5 身份认证 3.1 概述 在网络通信和电子商务中很容易发生如下问题。 1.否认,发送信息的一方不承认自己发送过某一信息。 2.伪造,接收方伪造一份文件,并声称它来自某发送方的。 3.冒充,网络上的某个用户冒充另一个用户接收或发送信息。 4.篡改,信息在网络传输过程中已被篡改,或接收方对收到的信息进行篡改。 3.1 概述 一个安全的认证系统应满足以下条件: (1)合法的接收者能够检验所接收消息的合法性和真实性。 (2)合法的发送方对所发送的消息无法进行否认。 (3)除了合法的发送方之外,任何人都无法伪造、篡改消息。 3.2 哈希函数 哈希函数,单向散列函数 基本思想 输入任意长度的消息M,产生固定长度的数据输出。 向hash函数输入一任意长度的信息M时,hash函数将输出一固定长度为m的散列值h。即: h = H(M) 3.2 哈希函数 性质: 固定长度输出散列值h。 给定M,很容易计算h。 给定h,根据H(M)=h计算M很难。 给定M,找到另一消息M’,满足H(M)=H(M’),在计算上是不可行的---弱抗碰撞性。 对于任意两个不同的消息 M ≠M’,它们的散列值不可能相同---强抗碰撞性。 注:碰撞性是指对于两个不同的消息M和M’ ,如果它们的摘要值相同,则发生了碰撞。 3.2 哈希函数 常用的哈希函数 MD5 SHA-1 RIPEMD-160 等等 3.2.2 MD5算法 麻省理工学院Ron Rivest提出,可将任意长度的消息经过变换得到一个128位的散列值。 MD5算法: MD5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后生成128位散列值。 3.2.2 MD5算法 3.2.2 MD5算法 MD5算法步骤 1.数据填充与分组 (1)将输入信息M按顺序每512位一组进行分组: M = M1,M2,…,Mn-1,Mn (2)将信息M的Mn长度填充为448位。 当Mn长度L(bit为单位) 448时,在信息Mn后加一个“1”,然后再填充447-L个“0”,使最后的信息Mn长度为448位。 当Mn长度L 448时,在信息Mn后加一个“1”,然后再填充512-L+447个“0”,使最后的信息Mn长度为512位,Mn+1长度为448位 3.2.2 MD5算法 2.初始化散列值 在MD5算法中要用到4个32位变量,分别为A、B、C、D: A = 0 B = 0x89abcdef C = 0xfedcba98 D = 0 在MD5算法过程中,这四个32位变量被称为链接变量,它们始终参与运算并形成最终的散列值。 3.2.2 MD5算法 3.计算散列值 (1)将填充后的信息按每512位分为一块(Block),每块按32位为一组划分成16个分组,即 Mi = Mi0,Mi2,…,Mi15,i = 1 ~ n。 (2)分别对每一块信息进行4轮计算(即主循环)。每轮定义一个非线性函数: (3)将A、B、C、D这四个变量分别复制到变量a、b、c、d中。 3.2.2 MD5算法 (4)每一轮进行16次操作,每次操作对a、b、c、d中的三个变量作一次非线性函数运算,然后将所得的结果与第四个变量、信息的一个分组Mj和一个常数ti相加。再将所得的结果循环左移一个不定数s,并加上a、b、c、d中的一个变量。 FF(a,b,c,d, Mj ,s, ti ) 表示 a = b +((a + F(b,c,d)+ Mj + ti )s) GG(a,b,c,d, Mj ,s, ti )表示 a = b +((a + G(b,c,d)+ Mj + ti )s) HH(a,b,c,d, Mj ,s, ti )表示 a = b +((a + H(b,c,d)+ Mj + ti )s) I I(a,b,c,d, Mj ,s, ti ) 表示 a = b +((a + I(b,c,d)+ Mj + ti )s) 在第i步中,常数ti 取值为232×abs(sin(i))的整数部分。 这样就可以得到4轮共64步操作。

文档评论(0)

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

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

1亿VIP精品文档

相关文档