资源描述:
《上海交大密码学课件第12讲数字签名算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12讲数字签名算法上海交通大学1.数字签名方案公钥签名方案:利用私钥生成签名利用公钥验证签名只有私钥的拥有者才能生成签名所以能够用于证明谁生成的消息任何知道公钥的人可以验证消息(他们要确认公钥拥有者的身份,这是公钥的密钥分配问题)通常不对整个消息签名,因为这将会使交换信息长度增加一倍使用消息的hash值数字签名可以提供消息的不可否认性,2.RSARSA加密解密是可交换的可以用于数字签名方案给定RSA方案{(e,R),(d,p,q)}要签名消息M:计算:h=H(M)S=hd(modR)(M,S)要验证签名,计算:h=H(M)Se(modR)=h’e.d(modR)=h’(modR)h’=h
2、?3.RSA使用使用RSA加密、认证:使用发送者的私钥签名一个消息使用接收者的公钥加密消息看起来,一个消息可用RSA加密、签名而不改变大小但是,加密使用的是消息接收者的模,签名是消息发送者的模,后着可能比前者小交换两者顺序?签名常使用HASH函数值4.ElGamalSignatureSchemeElGamal加密算法是不可交换的存在一个相关的签名算法安全性是基于计算离散对数的困难性方案的密钥生成是相同的:有个共享的素数p,公开的本原根a每个用户选择一个随机数作为私钥x计算各自的公开密钥:y=axmodp公钥是(y,a,p)私钥是(x)5.ElGamal签名方案的使用签名消息M:选择随机数k
3、,GCD(k,p-1)=1计算K=ak(modp)用Euclidean(inverse)扩展算法求S:M=x.K+k.Smod(p-1);即求S=k-1(M-x.K)mod(p-1)签名是(M,K,S)k应该被销毁同ElGamal加密方案,签名信息也是消息的2倍验证(K,S)是对M的签名:yK.KSmodp=aMmodp6.ElGamal签名方案举例取p=11,a=2选择私钥x=8计算:y=axmodp=28mod11=3公钥是:y=3,a=2,p=11对M=5签名:选择随机数k=9确定gcd(10,9)=1计算:K=akmodp=29mod11=6解:5=8.6+9.Smod10;nb9
4、-1=9mod10;因此S=9.(5-8.6)=3mod10签名是(K=6,S=3)要验证签名,确认:36.63=25mod113.7=32=10mod117.DSA(DigitalSignatureAlgorithm)USFederalGovtapprovedsignaturescheme(FIPSPUB186)使用SHAhashalgNIST&NSA在90‘s初设计DSA是算法,DSS是标准对此标准宣布的争议!是否需要使用RSADSA是ElGamal及Schnorralgorithms的变形生成320bit签名安全性是基于离散对数被广泛接收8.DSA密钥生成首先选取公开参数(p,q
5、,g):选取大素数p=2LL=512to1024bits(64倍数)选取q,160bit素因子(ofp-1)选择g=h(p-1)/q对任何h1每个用户选取私钥并计算他们的公钥:选取x6、(modp))(modq)v=r签名有效10.DSA安全性基于离散对数最初建议使用一个共同的modulusp现在建议不同的工作组使用不同的(p,q,g)GusSimmons发现存在潜信道,能够泄露私钥13.带密钥的HASH以上的签名方法都是公钥技术计算与数据量较大需要私钥的认证方案好的方法是使用快速的hash函数:密钥与消息同时参加运算:KeyedHash=Hash(Key
7、Message)有一些弱点随后建议:KeyedHash=Hash(Key1
8、Hash(Key2
9、Message))14.HMACHMAC是使用带密钥的HASH函数的结果成为internet标准(RFC2104)结构:H
10、MACK=Hash((K+XORopad)
11、
12、Hash((K+XORipad)
13、
14、M))K+是经过填充的密钥opad,ipad特殊的填充值Opad=01011010重复b/8次ipad=00110110重复b/8次安全性是基于原来的HASH函数的安全性任何MD5,SHA-1,RIPEMD-160都可以这样使用15.小结数字签名(RSA,ElGamal,DSA,)HMAC16.练习Illustratetheoperatio