《消息摘要和数字签名.ppt》由会员分享,可在线阅读,更多相关《消息摘要和数字签名.ppt(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、消息摘要和数字签名消息摘要和数字签名主讲人:裴士辉主讲人:裴士辉e_mail:shihui_电话:电话:13694302598消息摘要和消息摘要和hash 函数函数消息摘要消息摘要单向散列函数单向散列函数安全散列标准安全散列标准SHS其他的单向散列函数其他的单向散列函数消息摘要消息摘要对任意长度的明文对任意长度的明文m,经由哈希函数,经由哈希函数(杂凑函数杂凑函数)h产生固定长度的哈希值产生固定长度的哈希值h(m),用来对明文作鉴别,用来对明文作鉴别(authentication)或数字签名或数字签名(digitalsignature)。哈希函数值是对明文的一种哈希函数值是对明文的一种“指纹指
2、纹”(fingerprint)或是摘要或是摘要(digest)。对哈希函数值的数字签名,就是对此明文的数字签对哈希函数值的数字签名,就是对此明文的数字签名,可以用来提高数字签名的效率。名,可以用来提高数字签名的效率。单向散列函数单向散列函数 x=h(m)使用在数字签名上的哈希函数必须满足:使用在数字签名上的哈希函数必须满足:对任意长度的明文对任意长度的明文m,产生固定长度的哈希值,产生固定长度的哈希值h(m);对任意的明文对任意的明文m,哈希函数值,哈希函数值h(m)可由硬件或软件容易可由硬件或软件容易得到;得到;对任意哈希函数值对任意哈希函数值x,要找到一个明文,要找到一个明文m与之对应,与
3、之对应,即即x=h(m),在计算上不可行;,在计算上不可行;对一个明文对一个明文m1,要找到另一个不同的明文,要找到另一个不同的明文m2,使之具,使之具有相同的哈希值有相同的哈希值,即即h(m1)=h(m2),在计算上不可行;,在计算上不可行;要找到任意一对不同的明文要找到任意一对不同的明文(m1,m2),具有相同的哈希,具有相同的哈希值,即值,即h(m1)=h(m2),在计算上不可行。,在计算上不可行。安全散列标准安全散列标准SHS1995由美国由美国NIST提出,提出,SHS(SecureHashStandard),算法为,算法为SHA。要求输入小于要求输入小于264位,位,输出为输出为1
4、60位位(5个寄存器,个寄存器,A,B,C,D,E)。将明文分成若干将明文分成若干512位的定长块,每一块与当前的信位的定长块,每一块与当前的信息摘要值结合,产生信息摘要的下一个中间结果,直息摘要值结合,产生信息摘要的下一个中间结果,直到处理完毕。到处理完毕。SHA的运算过程的运算过程将消息填充为将消息填充为512位的整数倍位的整数倍5个个32位中间变量位中间变量abcde,起初值为常数起初值为常数对对5个个32位的寄存器位的寄存器A、B、C、D、E,进行运算进行运算ABCDE的初值为的初值为0对每一个对每一个512位的消息进行如下处理:位的消息进行如下处理:将中间变量将中间变量abcde赋给
5、赋给ABCDE;进行主循环进行主循环四轮,每轮四轮,每轮20次次a=a+A,b=b+B,c=c+C,d=d+D,e=e+e最后输出为最后输出为abcde的级联的级联a,b,c,d,e的初值的初值a=0 x67452301b=0 xefcdab89c=0 x98badcfed=0 x10325476e=0 xc3d2e1f0Ei-1Di-1Ci-1Bi-1Ai-1EiDiCiBiAi非线性函数非线性函数f305 FtWtKt非线性函数非线性函数FFt(x,y,z)=(x&y)|(x&z)0=t20Ft(x,y,z)=xyz20=t40Ft(x,y,z)=(xy)|(xz)|(yz)40=t60F
6、t(x,y,z)=xyz60=t80Kt:常数常数Kt=0 x5a8279990=t20Kt=0 x6ed9eda120=t40Kt=0 x8f1bbcdc40=t60Kt=0 xca62c1d660=t80Wt:消息的变形消息的变形消息:消息:512bit,16个个32bit字字M0M15Wt:32bit字字0=t=15Wt=Mt16=t=79Wt=(Wt-3Wt-8Wt-14Wt-16)1其他的单向散列函数其他的单向散列函数RIPEMD-160 欧洲欧洲RIPE项目的结果项目的结果 RIPEMD为为128位位 更新后成为更新后成为RIPEMD-160基础是基础是MD5MD5RonRives
7、t于于1990年提出年提出MD41992年年,MD5(RFC1321)developedbyRonRivestatMITMD5把数据分成把数据分成512-bit块块MD5的的hash值是值是128-bit 在最近数年之前在最近数年之前,MD5是最主要的是最主要的hash算法算法 现行美国标准现行美国标准SHA-1以以MD5的前身的前身MD4为基础为基础王小云对王小云对MD5的攻击的攻击方法:方法:差分攻击差分攻击模整数减法模整数减法异或运算异或运算王小云对王小云对MD5的攻击的攻击目的:寻找如下条件的消息:目的:寻找如下条件的消息:(a,b,c,d)=MD5(a0,b0,c0,d0,M0),(
8、a,b,c,d)=MD5(a0,b0,c0,d0,M0),MD5(a,b,c,d,M1)=MD5(a,b,c,d,M1)2005年的攻击结果年的攻击结果找到找到(M0,M0)需要需要239次次MD5操作操作,IBMP690上需要上需要时间时间15分到分到1小时小时找到找到(M1,M1)需要需要232次次MD5操作操作,IBMP690上需要上需要时间时间5分到分到15分分The Story of Alice and her Boss CaesarsViewAtthedayAliceissupposedtoleave,CaesarwritesaletterofrecommendationforAl
9、ice-onpaper.Thesameday,sheasksCaesartodigitallysigntheletter.Forhisconvenienceshepresentsanelectroniccopyofthedocument.Caesaropensthedocument-itlooksexactlyliketheoriginaldocument.Sohesignsthedocument.Monthslater,CaesardiscoversthattherehasbeenabreachofsecrecywithhisFrenchaffairfiles.Willheeverfindo
10、utwhotrickedhimandhow?The Story of Alice and her BossAlicesViewBeinganintern,Alicedoesnothaveanyaccesstosecretdocuments.Notenoughforher.trickyAlicedecidestofoolCaesar.BecauseCaesarisstillrelyingonthewidelyusedMD5hashfunction,sheimplementstheattackfromWangandYuHowtobreakMD5andotherhashfunctions.Euroc
11、rypt2005tofindMD5collisions.Whenshereceivesherletterofrecommendation(onpaper),shepreparestwopostscriptfileswiththesameMD5hash:Onetodisplaytheletterofrecommendation,andasecondone,anorderfromCaesartograntAlicesomekindofasecurityclearance.The Story of Alice and her Bossa25f7f0b 29ee0b39 68c86073 8533a4
12、b9 a25f7f0b 29ee0b39 68c86073 8533a4b9 数字签名数字签名 数字签名是手写签名的数字相似物。消息的数字签数字签名是手写签名的数字相似物。消息的数字签名其实是一个数值,它依赖于只有签名者知道的某名其实是一个数值,它依赖于只有签名者知道的某个秘密数和待签的消息内容。数字签名应具有如下个秘密数和待签的消息内容。数字签名应具有如下性质性质s能够验证签字产生者的身份,以及产生签字的日能够验证签字产生者的身份,以及产生签字的日期和时间。期和时间。s能用于证实被签消息的内容。能用于证实被签消息的内容。s数字签字可由第三方验证,从而能够解决通信双数字签字可由第三方验证,从而
13、能够解决通信双方的争议。方的争议。数字证书的用途包括认证、数据完整性和不可抵赖数字证书的用途包括认证、数据完整性和不可抵赖性。而它最重要的一个应用是数字证书。性。而它最重要的一个应用是数字证书。数字签名法数字签名法美国的犹他州于美国的犹他州于19951995年年颁布的颁布的数字签名法数字签名法是全是全世界范围内第一部全面规范电子签名的法律。美国世界范围内第一部全面规范电子签名的法律。美国20002000年年开始实行开始实行数字签名法数字签名法,数字签名法具有,数字签名法具有法律效率。美国目前已经建立了覆盖全国的法律效率。美国目前已经建立了覆盖全国的PKIPKI网络,网络,联邦、州和大型企业之间
14、的联邦、州和大型企业之间的PKIPKI实现了桥接。实现了桥接。欧洲各国已经建立了自己的欧洲各国已经建立了自己的PKIPKI。20012001年欧盟建立了年欧盟建立了桥接的桥接的CACA,20022002年欧盟开始实行年欧盟开始实行数字签名法数字签名法。亚洲范围内的日本、韩国和新加坡在亚洲范围内的日本、韩国和新加坡在PKIPKI建设方面起建设方面起步较早,这步较早,这3 3个国家目前已经实现了交叉认证。个国家目前已经实现了交叉认证。数字签名法数字签名法我国的立法从我国的立法从20022002年开始的,形成了年开始的,形成了中华人民共中华人民共和国电子签名法和国电子签名法(草案草案)。200420
15、04年年8 8月月2828日中华人民共和国第十届全国人民代表日中华人民共和国第十届全国人民代表大会常务委员会第十一次会议通过了大会常务委员会第十一次会议通过了中华人民共中华人民共和国电子签名法和国电子签名法20052005年年4 4月月1 1日起施行。日起施行。Hash()签名算法签名算法消息消息To Bob数字签名数字签名To Bob消息摘要消息摘要Alice 私钥私钥发送方:发送方:Alice用用RSA算法进行数字签名算法进行数字签名Hash()验证算法验证算法消息消息From Alice数字签名数字签名From Alice消息摘要消息摘要Alice 公钥公钥消息摘要消息摘要?=用用RSA
16、算法进行身份验证算法进行身份验证数字签名标准数字签名标准公布于公布于1994年年5月月19日的联邦记录上,日的联邦记录上,并于并于1994年年12月月1日采纳为标准日采纳为标准DSSDSS为为EIGamal签名方案的改进。签名方案的改进。DSA的参数的参数参数参数p:512位到位到1024位的素数(可有一组用户共享)位的素数(可有一组用户共享)q:160位长,位长,p-1的素因子的素因子(可有一组用户共享可有一组用户共享)g=h(p-1)/q mod p,其中其中h是一整数是一整数,1h(p-1)公开密钥公开密钥 y=gxmod p(一个一个p位的数)位的数)私人密钥:私人密钥:xq(一个一个
17、160位的数位的数)DSA的签名和验证的签名和验证签名签名k:选取小于选取小于q的随机数的随机数 r(签名签名)=(gk mod p)mod q s(签名签名)=(k-1(H(m)+xr)mod q验证验证 w=s-1 mod q u1=(H(m)w)mod q u2=(rw)mod q v=(gu1yu2)mod p)mod q 如果如果v=r,则签名被验证则签名被验证小参数小参数DSA举例举例参数参数p:124540019q:17389h=110217528g=h(p-1)/q mod p=10 083 255私人密钥:私人密钥:x&.N.5.0040:0A63352E78E642AF4C62ACDA8B63FF86.c5.x.B.Lb.c.0050:7D0BF163F9844D020D6820F2562ED6C8.c.M.h.V.0060:EDC8F0CF7B6F382F2D4EEFEC49BFE135.o8/-N.I.50070:3047E764C035BDD88F1E13BE00795B890G.d.5.y.验证已签名的证书验证已签名的证书使用使用Ca的公钥验证已签名的证书的公钥验证已签名的证书编译并运行程序编译并运行程序CheckCertSign.java下次课再见!下次课再见!