- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3节信息认证技术
第三章 信息认证技术 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’ ,如果它们的摘要值相同,则发生了碰撞。 安全散列函数的一般结构 与分组对称密码的CBC模式非常相似。函数的输入M被分为b位的L个分组Y0,Y1,..YL-1,以及n位链接变量初值V0,通常bn。 反复调用压缩函数f: Vi=f(Yi-1,Vi-1) ,i=1,2,..L。f输出Vi仍然是n位。 M的散列值H(M, V0)=VL 算法的核心是压缩函数f 在对M的分组中,最后一组YL-1不足b位时填充0或者1将其补足。通常还将M的长度填充到最后一个分组中。 常用的哈希函数 MD5 SHA-1 RIPEMD-160 等等 MD5算法 麻省理工学院Ron Rivest提出,可将任意长度的消息经过变换得到一个128位的散列值。 MD5算法: MD5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后生成128位散列值。 MD5算法实现逻辑由4个步骤组成: S1:消息分组与填充。 (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位 最后一个分组的后64位为M的位长度(低字节优先)。 S2:缓冲区初始化。 MD5算法使用128位缓冲区存放处理过程的中间结果和最后的消息摘要值。这128位缓冲分为4个32位逻辑寄存器A、B、C、D。每个寄存器以Little-Endian存放数据,其初始值为: A=0x1234567,B=0x89abcdef,C=0xfedcba98,D=0x7543210 这四个32位变量被称为链接变量,它们始终参与运算并形成最终的散列值。 S3:对每个分组Mi进行压缩处理HMD5。 HMD5是算法核心。HMD5内部有4轮处理过程。每轮处理结构一样,但使用的位逻辑函数不同,分别表示为F、G、H、I。每轮处理的输入是当前正在处理的512位分组、128位缓冲区(A、B、C、D)的当前值和常量表T中四分之一的常数,即分别为T[1..16]、T[17…32]、T[33…48]、T[49...64]。第4轮处理的输出再与第1轮的输入CVq按照4个32位字进行模232相加,结果即为压缩函数HMD5对当前512位分组的输出。 常量表T=T[1,…64]中各元素: T[i]=int(232×abs(sin(i))),为32位整型数。T作为予置的常数表,其作用是随机化32位整型量,消除输入数据的规律性。 压缩函数HMD5每轮处理细节由对128位缓冲区(A、B、C、D)的16步迭代构成,每一步运算如下: a←B+CLS(s,A+g(B,C,D)+X[k]+T[i])) 其中,+为模232加法,CLS(s,w)是对32位字w循环左移s位。位逻辑函数g分别取F、G、H、I之
文档评论(0)