信息安全数字签名_第1页
信息安全数字签名_第2页
信息安全数字签名_第3页
信息安全数字签名_第4页
信息安全数字签名_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/8/51信息平安与密码学

数字签名2023/8/52主要内容数字签名的根本概念1RSA签名2数字签名标准DSS3其他签名算法4基于身份的签名方案5问题的提出手写签名:传统确实认方式,如书信、签约、支付、批复等在网络时代,人们通过网络支付费用、买卖股票,为了保证网上商务活动的平安,需要信息平安中一个很重要的平安机制——数字签名例子:用户A通过网络发送一条消息,告诉银行从用户A的账户上给用户B支付5000元1、银行如何知道这条消息是由用户A发送的?2、如果事后用户A否认他曾经发送过这条消息,或声称他的支付请求是1000元,银行如何向公证机关证明用户A确实发送过这条消息?2023/8/53解决方法之一:用户A对他的请求“让银行从用户A的账户上给用户B支付5000元〞进行签名数字签名是手写签名数字化的产物,但又有着显著的区别每个消息的签名都是不同的,否那么签名就会被获取并复制到另外的文件中数字签名的根底是公钥密码学2023/8/54数字签名的目的和要求

数字签名的目的:保证信息的完整性和真实性,即消息内容没有被篡改,而且签名也没有被篡改,消息只能始发于所声称的一方一个完善的签名方案应满足以下三个条件:不可否认性:签名者事后不能否认或抵赖自己的签名不可伪造性:其他任何人均不能伪造签名,也不能对接收或发送的信息进行篡改、伪造和冒充假设当事双方对签名真伪发生争执时,能够在公正的仲裁者面前通过验证签名来确定其真伪2023/8/55数字签名的定义ISO对数字签名的定义:数字签名是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造简单地说,数字签名就是指消息的发送者通过某种签名方法产生的别人无法伪造的一段“特殊报文〞,该报文就是签名2023/8/56签名方案的组成一个签名方案是满足以下条件的五元组(P,A,K,S,V):P:所有可能消息组成的有限集A:所有可能签名组成的有限集K:所有可能密钥组成的有限集对每一个k∈K,有一个签名算法Sk∈S和一个相应的验证算法Vk∈V。对消息x∈P和相应签名y∈A,签名算法Sk:PA和验证算法Vk:P×A{0,1}都满足:当y=Sk(x)时,Vk(x,y)=1,否那么Vk(x,y)=02023/8/57数字签名的过程数字签名方案一般包括三个过程:系统初始化过程:产生数字签名方案中用到的所有系统和用户参数(公开的+秘密的)签名产生过程:用户利用给定的签名算法对消息签名,签名过程可以公开也可以不公开,但一定包含仅签名者才拥有的秘密信息〔签名密钥〕签名验证过程:验证者利用公开的验证方法对给定消息的签名进行验证,得出签名的有效性2023/8/582023/8/59RSA签名基于RSA公钥体制的签名方案通常称为RSA数字签名方案。RSA签名体制的根本算法可表述如下:密钥的生成〔与加密系统一样〕:公钥Pk={e,n};私钥Sk={d,p,q}签名过程(d,n):

用户A对消息M∈Zn进行签名,计算S=Sig(H(M))=H(M)dmodn;并将S附在消息M后作为对用户对消息M的签名验证过程(e,n):给定(M,S),Ver(M,S)为真H(M)=Se(modn)成立2023/8/510RSA签名方案图2023/8/511yeH(x)d比较消息x消息xy消息xyHH(x)ye对RSA签名的攻击假设RSA直接对消息进行签名,而不是对消息的Hash值签名一般攻击:设e和n是用户A的公钥,攻击者任选一个数据Y,用A的公钥计算X=Yemodn,于是便可以用Y伪造A对消息X的签名,因为Y=Xdmodn实际意义不大:伪造的消息X具有实际意义的概率很小Hash函数可以抵御这种攻击2023/8/512利用已有签名进行攻击:如果消息M1、M2的签名分别是S1和S2,那么任何知道M1,S1,M2,S2的人可以伪造对消息M1M2的签名S1S2,因为Sig(M1M2)=Sig(M1)Sig(M2)抵抗该攻击的方法:用户不要轻易地对其他人提供的随机数据进行签名更有效的方法:不直接对数据签名,而是对数据的Hash值签名2023/8/513利用签名获得明文:设攻击者截获了密文C,C=Memodn,想求出明文M。于是选择一个小的随机数r,并计算x=remodn;y=xCmodn;t=r–1modn那么xd=(re)d=rmodn。然后攻击者设法让发送者对y签名,获得:S=ydmodn攻击者计算:tSmodn=r−1ydmodn=r−1xdCdmodn=Cdmodn=M,抵抗该攻击的方法:用户不要轻易地对其他人提供的随机数据进行签名。最好是对数据的Hash值签名2023/8/514H(M)的重要性H(M)的另一个作用:签名算法对整个消息进行签名,由于公开密钥密码体制一般速度都比较慢,这样当消息比较长时,整个签名与验证过程都会相当的慢利用对消息的Hash值进行签名,那么无论消息多长,签名都只与Hash值的长度有关2023/8/515RSA签名标准PSS2023/8/516PSS算法的编码操作过程EIGamal签名方案ElGamal数字签名方案由T.ElGamal在1985年提出签名过程如下:系统初始化过程:同加密算法。公钥为(p,g,y),私钥为x(1≤x<p-1),其中y=gxmodp签名过程:给定消息M,签名者A进行如下计算:①选择随机数k∈Zp*,且k与(p-1)互素;②首先计算消息M的哈希值H(M),然后计算:

r=gkmodp;s=(H(M)-xr)k-1mod(p-1)③将(r,s)作为签名,与M一起发送给接收方2023/8/517验证签名过程:接收方B收到M与其签名(r,s)后:①计算消息M的Hash值H(M);②验证公式yrrs=gH(M)modp是否成立,成立确认(r,s)为有效签名,否那么认为签名是伪造的2023/8/518ElGamal数字签名算法平安性ElGamal数字签名算法是一个非确定性的数字签名算法,对同一个消息M所产生的签名依赖于随机数k由于用户的签名密钥x是保密的,攻击者要从公开的验证密钥y得到签名密钥x必须求解有限域上的离散对数问题。因此ElGamal数字签名算法的平安性是基于有限域上计算离散对数的困难性在签名时用的随机数r不能被泄露随机数k不能被重复使用2023/8/519Schnorr签名方案初始化过程同EIgamal签名过程:对消息M,做下述运算:任选一随机数k∈Zq,计算签名

(e,s)r≡gkmodpe=H(r||M)s

k-xemodq验证签名:(e,s)r’

≡gsyemodp,而后计算H(r’||M)验证H(r’||M)=e

2023/8/520数据签名标准DSS1991年,美国政府公布了数字签名标准DSS〔DigitalSignatureStandard〕和DES一样,DSS也引起了剧烈的争论。反对者认为:密钥太短、效率不如RSA高、不能实现数据加密并疑心NIST在DSS中留有后门随后,美国政府对其做了一些改进目前DSS的应用已经十分广泛,并被一些国际标准化组织采纳为国际标准2000年,美国政府将RSA和椭圆曲线密码引入到数字签名标准中,进一步丰富了DSS算法2023/8/521DSS算法描述DSS签名利用Hash函数产生消息的Hash值,Hash值连同随机数k一起作为签名函数的输入,签名函数还需使用发送方的私钥SKA和一些公开参数PKG+,签名函数的两个输出s和r就构成了消息的签名(s,r)接收方收到消息后再产生消息的Hash值,将Hash值与签名一起输入验证函数,验证函数还需输入PKG+和发方的公钥PKA。验证函数的输出如果与收到的签名成分r相等,那么签名有效2023/8/5222023/8/523M||MHSigSrHVerPKG+SKGPKAPKG+k比较数字签名算法DSADSS的签名算法称为DSA,DSA使用以下参数:p为素数,2L–1<p<2L,其中512≤L≤1024且L为64的倍数,即L=512+64j

j=0,1,2,,8q为素数,是(p-1)的素因子,2159<q<2160g=h(p−1)/qmodp,1<h<p-1,且满足g>1x为随机数,0<x<q,计算y=gxmodp参数p、q、g可以公开,且可为一组用户公用。x和y分别为用户的私钥和公钥2023/8/524DSA签名生成过程选择一个随机数k,0<k<g,进行如下计算:r=(gkmodp)modq,s=k−1(SHA(M)+xr)modqSHA(M)为160位的Hash函数值,把签名r和s附在数据M后面发给接收者(M||r||s)应检验计算所得的r和s是否为零,假设r=0或s=0,那么重新产生k,并重新计算产生签名r和s每一签名使用不同的k2023/8/525DSA签名验证过程首先检验是否有0<r<q,0<s<q,假设其中之一不成立,那么签名为假计算:w=s1modq,u1=wSHA(M)modq,u2=rwmodq,v=(gu1yu2modp)modq假设v=r,那么签名为真,否那么签名为假或数据被篡改2023/8/526ECDSA签名算法签名过程:消息m,全局参数D=(q,a,b,G,n,h),签名者的公私钥对(Q,d),(Q=dG)选择一个随机数k,计算kG=(x1,y1)r=x1modn;如果r=0,那么回到步骤1e=SHA1(m)s=k−1(e+dr)modn,如果s=0,那么回到步骤1;对消息的签名为(r,s),签名者把消息m和签名(r,s)发送给接收者2023/8/527验证签名:收到消息m和签名(r,s)之后检验r、s,要求r、s∈[1,n-1]计算e=SHA1(m)计算w=s−1modn计算u1=ewmodn;u2=rwmodn计算X=u1G+u2Q。如果X=0,表示签名无效;否那么,X=(x1,y1),计算v=x1modn如果v=r,表示签名有效;否那么表示签名无效2023/8/528基于身份的签名方案Shamir的基于身份的数字签名方案--包括四个算法:初始化:KGC选择n为两个大素数p、q的乘积,e是一个与(n)互素的大素数,f是一个单向函数,那么<n,e,f>为公开的参数密钥提取:公开的用户身份值i,与i值相对应的私钥为g,满足:ge=i(modn)签名算法:对消息m签名,首先选择一个随机数r,计算t=re(modn),s=grf(tm),那么将签名(s,t,r)发送给验证者验证算法:验证者收到签名(s,t,r)之后,如果

成立,那么接受该签名为有效签名;否那么,拒绝该签名2023/8/529Cha-Cheon的基于身份的数字签名方案:设置:给定平安参数k,生成素数q,两个q阶群G1和G2,一个可接受的双线性映射ê:G1×G1→G2。随机选择生成元P∈G1。取随机数s∈Zq*为主密钥,令Ppub=sP。选择2个密码学Hash函数H1:{0,1}*G1*和H2:{0,1}*×G1*Zq*。系统参数为params=<q,G1,G2,ê,P,Ppub,H1,H2>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论