ch5(2)-数字签名与认证-散列算法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章数字签名与认证-1-第八讲思考题1P141(7)安全的散列函数有哪些特征?第八讲教学要求:(1)掌握单向散列函数概念;(2)了解MD5算法程;(3)了解SHA安全散列算法;第5章数字签名与认证-2-3.2单向散列函数单向散列函数,也称hash函数,它可以提供判断电子信息完整性的依据,是防止信息被篡改的一种有效方法。单向散列函数在数据加密、数据签名和软件保护等领域中有着广泛的应用。3.2.1单向散列函数特点hash函数的作用是当向hash函数输入一任意长度的的信息M时,hash函数将输出一固定长度为m的散列值h。即:h=h(M)第5章数字签名与认证-3-思考题1:安全的hash函数的特点是:1.hash函数能从任意长度的M中产生固定长度的散列值h。2.已知M时,利用h(M)很容易计算出h。3.已知h时,要想从h(M)中计算出M是很困难的。4.已知M时,要找出另一信息M‘,使h(M)=h(M’)是很困难的。最常用的hash算法有MD5、SHA算法等。第5章数字签名与认证-4-MD5MD5(Message-DigestAlgorithm5)是由RonaldL.Rivest(RSA算法中的“R”)这90年代初开发出来的,经MD2、MD3和MD4发展而来。它比MD4复杂,但设计思想类似,同样生成一个128位的信息散列值。其中,MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的计算机。2004年8月,在美国召开的国际密码学会议(Crypto’2004)上,王小云教授给出破解MD5、HAVAL-128、MD4和RIPEMD算法的报告。给出了一个非常高效的寻找碰撞的方法,可以在数个小时内找到MD5的碰撞。第5章数字签名与认证-5-MD5算法步骤1)填充消息:任意长度的消息首先需要进行填充处理,使得填充后的消息总长度与448模512同余(即填充后的消息长度448mod512)。填充的方法是在消息后面添加一位“1”,后续都是“0”。2)添加原始消息长度:在填充后的消息后面再添加一个64位的二进制整数表示填充前原始消息的长度。这时经过处理后的消息长度正好是512位的倍数。3)初始值(IV)的初始化:MD5中有四个32位缓冲区,用(A,B,C,D)表示,用来存储散列计算的中间结果和最终结果,缓冲区中的值被称为链接变量。首先将其分别初始化为为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。第5章数字签名与认证-6-3.2.2MD5算法4)以512位的分组为单位对消息进行循环散列计算:经过处理的消息,以512位为单位,分成N个分组,用M0,M1,...,MN-1。MD5对每个分组进行散列处理。每一轮的处理会对(A,B,C,D)进行更新。5)输出散列值:所有的N个分组消息都处理完后,最后一轮得到的四个缓冲区的值即为整个消息的散列值。第5章数字签名与认证-7-消息100...00LM0M11MiMN-1-512位512位512位512位……HMD5512128IVHMD5512128…HMD5512128…HMD5512128CV1CViCVN-1128位的散列值L位原始消息长度(64位)填充位N´512位MD5算法步骤-续第5章数字签名与认证-8-最后的输出就是A、B、C、D的级联,即A作为低位,D作为高位,共128位输出。MD5被广泛用于加密和解密技术中,可以用来保护密码、生成软件注册码等。MD5典型应用:在很多操作系统中,用户的密码是以MD5值的方式保存的.第5章数字签名与认证-9-3.2.3SHA算法SHA-1散列算法过程如下:1.SHA-1对输入明文的预处理过程和MD5相同,但SHA输出为160位,并分别存储于五个32位变量中,这五个变量初始值为:A=0x67452301B=0xefedab89C=0x98badefeD=0x10325476E=0xc3d2elf0和MD5算法一样,SHA-1一次处理512位信息,主循环的次数就是信息中512位分组的数目。第5章数字签名与认证-10-3.2.4SHA-1与MD5比较1安全性SHA-1摘要比MD5摘要长32比特,强行攻击及伪造签名更难2速度SHA-1比MD5的运行步骤多16个,占用的缓存多了32位,所以速度慢25%3简单性总体上SHA-1对每一步的操作描述比MD5简单第5章数字签名与认证-11-数字签名数字签名也是一种认证机制,它是公钥密码学发展过程中的一个重要组成部分,是公钥密码算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的信息进行处理,完成对数据的合法“签名”,数据接收方则利用发送方的公钥来验证收到的消息上的“数字签名”,以确认签名的合法性。第5章数字签名与认证-12-数字签名数字签名需要满足以下条件:–签名的结果必须是与被签名的消息相关的二进制位串;–签名必须使用发送方某些独有的信息(发送者的私钥),以防伪造和否认;–产生数字签名比较容易;–识别和验证签名比较容易;–给定数字签名和被签名的消息,伪造数字签名在计算上是不可行的。–保存数字签名的拷贝,并由第三方进行仲裁是可行的。第5章数字签名与认证-13-数字签名(1)消息发送方式与散列函数对消息进行计算,得到消息的散列值。(2)发送方使用自己的私钥对消息散列值进行计算,得到一个较短的数字签名串。(3)这个数字签名将和消息一起发送给接收方。(4)接收方首先从接收到的消息中用同样的散列函数计算出一个消息摘要,然后使用这个消息摘要、发送者的公钥以及收到的数字签名,进行数字签名合法性的验证。第5章数字签名与认证-14-盲签名盲签名是Chaum在1982年首次提出的,并利用盲签名技术提出了第一个电子现金方案。盲签名因为具有盲性这一特点,可以有效的保护所签名的消息的具体内容,所以在电子商务等领域有着广泛的应用。盲签名允许消息发送者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签名除去盲因子,得到签名者关于原消息的签名。第5章数字签名与认证-15-盲签名的性质它除了满足一般的数字签名条件外,还必须满足下面的两条性质:–1.签名者不知道其所签名的消息的具体内容。–2.签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。第5章数字签名与认证-16-盲签名的步骤A期望获得对消息m的签名,B对消息m的盲签名的实现描述如下:–盲化:A对于消息进行处理,使用盲因子合成新的消息M并发生给B;–签名:B对消息M签名后,将签名(M,sign(M))返回给给A;–去盲:A去掉盲因子,从对M的签名中得到B对m的签名。第5章数字签名与认证-17-好的盲签名的性质不可伪造性:除了签名者本人外,任何人都不能以他的名义生成有效的盲签名。不可抵赖性:签名者一旦签署了某个消息,他无法否认自己对消息的签名。盲性:签名者虽然对某个消息进行了签名,但他不可能得到消息的具体内容。不可跟踪性:一旦消息的签名公开后,签名者不能确定自己何时签署的这条消息。第5章数字签名与认证-18-盲签名机制当用户从银行提款时,他先为硬币随机生成一个很大的编码,然后利用盲签名机制,银行可用代表不同面值的密钥对这枚硬币签名,从而标定硬币的币值。由于编码很大(大于200位数字),重复的概率可以忽略不计,再加上盲签名让银行无法知道硬币编号,从而不能将其记录下来。为了防止电子现金的复制,Chaum引入一种盲记录机制,第一次使用电子硬币时无法进行跟踪,而如果重复使用,就有足够多的信息能查出使用者的帐户信息,从而采取相应的处罚措施。对电子硬币的检验同普通的签名检验一样,商家收到用户支付的电子硬币时,可以检验该硬币的真实性,之后再将其发给银行去核实其唯一性。当一个消费者想从金融机构提取一笔电子现金时,金融机构产生电子货币的数据,包含随机的货币序号,同时任取一个随机数,也称盲因子,对电子现金进行盲变换。金融机构将这些数据送给消费者,消费者去掉盲因子后,就可以使用经过金融机构验证有效的电子货币。但金融机构以后并不能得到这笔钱被如何使用的记录。

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功