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