网络与信息安全数字签名精品文稿.ppt
《网络与信息安全数字签名精品文稿.ppt》由会员分享,可在线阅读,更多相关《网络与信息安全数字签名精品文稿.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络与信息安全数字签名网络与信息安全数字签名1第1页,本讲稿共79页第第5 5章章 Hash函数与数字签名l5.6 数字签名概念l5.7 RSA数字签名体制 l5.8 ElGamal数字签名体制 l5.9 其它数字签名方案l5.10 数字签名标准l5.11 应用2第2页,本讲稿共79页5.6 5.6 数字签名概念数字签名概念l在政治、军事、外交、商业和日常生活中,人们经常在政治、军事、外交、商业和日常生活中,人们经常需要对纸质材料进行签名。需要对纸质材料进行签名。l签名起到确认、核准、生效和负责任等多种作用。签名起到确认、核准、生效和负责任等多种作用。l随着计算机网络技术的发展,电子商务、电子
2、政务和随着计算机网络技术的发展,电子商务、电子政务和电子金融等系统得到广泛应用,人们需要通过网络信电子金融等系统得到广泛应用,人们需要通过网络信息传输对电子的文件、契约、合同、信件和张单等进息传输对电子的文件、契约、合同、信件和张单等进行数字签名以替代手写签名。行数字签名以替代手写签名。3第3页,本讲稿共79页5.6 5.6 数字签名概念数字签名概念l签名是证明当事人的身份和数据真实性的一种信息。签名是证明当事人的身份和数据真实性的一种信息。l在传统的以书面文件为基础的事物处理中,采用书面在传统的以书面文件为基础的事物处理中,采用书面签名的形式,如手签、手印和印章等。书面签名得到签名的形式,如
3、手签、手印和印章等。书面签名得到司法部门的支持,具有一定的法律意义司法部门的支持,具有一定的法律意义4第4页,本讲稿共79页5.6 5.6 数字签名概念数字签名概念l在以计算机文件为基础的现代事物处理中,应采用电在以计算机文件为基础的现代事物处理中,应采用电子形式的签名,即数字签名(子形式的签名,即数字签名(digital signature)。)。l数字签名的目的是提供一种手段,使得一个实体把他数字签名的目的是提供一种手段,使得一个实体把他的身份与某个信息捆绑在一起。的身份与某个信息捆绑在一起。l一个信息的数字签名实际上是一个数,它仅仅依赖于一个信息的数字签名实际上是一个数,它仅仅依赖于签名
4、者的密钥和被签名的消息。签名者的密钥和被签名的消息。10011100010100011000sigK密钥K5第5页,本讲稿共79页5.6.1 数字签名的基本概念数字签名的基本概念u(1)消息空间:由所有任意长度消息组成的集合 u(2)签名空间:由所有签名组成的集合。签名长度不超过n。u(3)密钥空间:u(4)sigK称为签名算法(signing algorithm)l一个数字签名体制是一个满足以下条件的五元组:6第6页,本讲稿共79页5.6.1 数字签名的基本概念数字签名的基本概念u(5)verK称为验证算法(verification algorithm)u(6)u 则将数据对(x,y)称为消
5、息x的一个数字签名,或直接把y称为消息x的数字签名7第7页,本讲稿共79页5.6.1 数字签名的基本概念数字签名的基本概念l数字签名基本要求u对每一个密钥K,sigK和verK应该是多项式时间函数uverK是公开的函数,而sigK是保密的 u给定一个消息x,除了发送者本人以外,任何其他人找到满足verK(x,y)为真的数字签名y,应该是计算上不可行的u如果攻击者能够找到满足verK(x,y)的数据对(x,y),而发送者事先又没有对x签名,则称y是伪造(forgery)的数字签名。l数字签名算法必须满足的条件u签名者事后不能否认自己的签名;u其他人不能伪造签名;u当通信双方为签名真伪发生争执时,
6、可以由第三方解决争端8第8页,本讲稿共79页5.6.1 数字签名的基本概念数字签名的基本概念l手写签名与数字签名的区别u手写签名是所签文件的物理组成部分,数字签名必须与所签文件捆绑在一起。u手写签名通过与标准签名进行比较或检查笔迹来验证,数字签名是通过验证算法来验证。手写签名容易伪造,好的数字签名算法应该使伪造签名十分困难。u手写签名不易复制。数字签名是一个二进制串,容易复制。所以必须防止数字签名重复使用。9第9页,本讲稿共79页5.6.1 数字签名的基本概念数字签名的基本概念l签名算法进行分类u按应用目的p普通数字签名p特殊目的数字签名:不可否认数字签名、盲签名、群签名等u按验证方法p在验证
7、时需要输入被签名信息p在验证时自动恢复被签名信息u按签名时是否使用随机数p分成确定性数字签名p随机数字签名10第10页,本讲稿共79页5.6.2 数字签名的基本构造方法数字签名的基本构造方法l利用Hash函数和加密算法可以构造有效的数字签名方案。l基于Hash函数和单钥密码算法构造数字签名 11第11页,本讲稿共79页5.6.2 数字签名的基本构造方法数字签名的基本构造方法l基于Hash函数和双钥密码算法构造数字签名12第12页,本讲稿共79页5.6.2 数字签名的基本构造方法数字签名的基本构造方法l具有保密作用的数字签名u双钥密码体制:SK是发送方的私钥,PK是发送方的公钥,E1和D1分别是
8、加密算法与解密算法。u单钥密码体制密钥:K是双方公用密钥,E2和D2分别是对应的加密算法和解密算法。13第13页,本讲稿共79页 5.6.3 数字签名的安全需求数字签名的安全需求l数字签名的攻击模型数字签名的攻击模型u唯密钥攻击(唯密钥攻击(key only attack)攻击者攻击者E拥有签名者拥有签名者A的公钥的公钥K,因而能够计算验证函,因而能够计算验证函数数verK。u已知消息攻击(已知消息攻击(known message attack)攻击者攻击者E拥有一系列以前由签名者拥有一系列以前由签名者A所签名的消息。即所签名的消息。即E具有数据对(具有数据对(xi,yi),其中),其中xi是
9、消息,是消息,yi=sigK(xi)是是A对对xi的签名(的签名(i=1,2,)。)。u选择消息攻击(选择消息攻击(chosen message attack)攻击者攻击者E可以选择一些消息请求签名者可以选择一些消息请求签名者A签名。即签名。即E选选择消息择消息xi,并将,并将xi发送给签名者发送给签名者A,请求,请求A对对xi签名。签名。A计算计算yi=sigK(xi),并将,并将yi发给发给E。所以,。所以,E具有具有A的有效的有效数字签名(数字签名(xi,yi)()(i=1,2,)。)。14第14页,本讲稿共79页 5.6.3 数字签名的安全需求数字签名的安全需求l攻击者对数字签名系统的
10、攻击目的u完全破译(total break)攻击者E能确定签名者A的私钥K,因而能够计算签名函数sigK,可以对任何消息产生有效的签名。u选择性伪造(selective forgery)攻击者E能以某一个不可忽略的概率对另外某个人选定的消息产生一个有效的签名。也就是说,如果给E选定一个消息x,那么他能以一个正的概率找到x的签名y=sigK(x),并且签名者A以前未对x签名。u存在性伪造(existential forgery)攻击者E至少能够为一个消息产生一个有效的签名。也就是说,E可能生成一个数据对(x,y),其中x是消息,y=sigK(x)。签名者A以前未对x签名。15第15页,本讲稿共7
11、9页 5.6.3 数字签名的安全需求数字签名的安全需求lHash函数与数字签名的安全性u对消息的散列值签名16第16页,本讲稿共79页 5.6.3 数字签名的安全需求数字签名的安全需求u使用已知消息攻击的存在性伪造使用已知消息攻击的存在性伪造 攻击者攻击者E从一个有效的签名从一个有效的签名(x,y)开始开始,其中其中y=sigK(h(x).然后他计算然后他计算z=h(x),并企图找到并企图找到x x,使得使得h(x)=h(x).如果如果E能做到这一点能做到这一点,则则(x,y)就是一个有效的签名就是一个有效的签名,从而从而y是消息是消息x的一个伪造签名的一个伪造签名.为了阻为了阻止这种攻击止这
12、种攻击,必须要求必须要求Hash函数函数h是弱无碰撞的是弱无碰撞的.u使用选择消息攻击的存在性伪造使用选择消息攻击的存在性伪造 攻击者攻击者E首先找到首先找到x x,使得使得h(x)=h(x).然后将消息然后将消息x发给签名发给签名者者A,并让并让A对消息的散列值对消息的散列值h(x)签名签名,从而得到从而得到y=sigK(h(x).所以所以E能够成功伪造签名能够成功伪造签名(x,y).为了阻止这种攻击为了阻止这种攻击,必须要求必须要求Hash函函数数h是强无碰撞的是强无碰撞的.17第17页,本讲稿共79页 5.6.3 数字签名的安全需求数字签名的安全需求u使用唯密钥攻击的存在性伪造 当签名算
13、法遭到唯密钥攻击时,即攻击者E拥有签名者A的公钥K.E就可能对一个随机的散列值z伪造签名y=sigK(z).此时,如果Hash函数h不是单向的,则E可能找到一个消息x,使得z=h(x).所以E能够成功伪造一个签名(x,y).为了阻止这种攻击,必须要求Hash函数h是单向的.18第18页,本讲稿共79页第第5 5章章 HashHash函数与数字签名函数与数字签名l5.6 数字签名概念l5.7 RSA数字签名体制 l5.8 ElGamal数字签名体制 l5.9 其它数字签名方案l5.10 数字签名标准l5.11 应用19第19页,本讲稿共79页 5.7 RSA数字签名体制数字签名体制l利用RSA加
14、密算法构造的数字签名称为RAS数字签名体制。l5.7.1 RSA算法描述l1密钥生成算法u选取两个大素数p,q,计算 n=pq,(n)=(p 1)(q 1)。u任选整数e,满足:0 e(n),且gcd(e,(n)=1。u用扩展Euclidean算法求e模(n)的逆d,即 ed=1 mod(n)。u签名者的公钥:n,e,私钥:p,q,d。20第20页,本讲稿共79页 5.7.1 RSA算法描述算法描述l2签名算法 设消息为x,则x的RAS签名是l3验证算法 当接收方收到签名(x,y)后,计算如果如果x=x,则,则y是是x的的RAS签名。签名。21第21页,本讲稿共79页5.7.2 RSA数字签名
15、的安全性数字签名的安全性l1一般攻击u攻击方法:设n与e为用户A的公钥,攻击者首先随意选择一个数据y,并用A的公钥计算 x=ye mod n,于是可以伪造A的一个RSA数字签名(x,y)。因为 xd=(ye)d=yed=y mod n,所以用户A对x的RSA数字签名是y。u这种攻击实际上成功的概率是不高的 因为对于选择的数据y,得到的x=ye mod n具有正确语义的概率是很低的。u抵抗措施p仔细设计数据格式p对数据的Hash值进行签名22第22页,本讲稿共79页5.7.2 RSA数字签名的安全性数字签名的安全性l2选择消息攻击u攻击方法:假设攻击者E想伪造消息x的签名,他容易找到两个数据x1
16、和x2,使得 攻击者E设法让用户A分别对x1和x2 进行签名,得到 然后E可以计算 于是攻击者E得到了用户A对消息x的RSA数字签名yu抵抗措施p用户不要轻易地对其他人提供的随机数据进行签名p对数据的Hash值进行签名 23第23页,本讲稿共79页5.7.2 RSA数字签名的安全性数字签名的安全性l3利用签名进行攻击从而获得明文u攻击方法 假设攻击者E已截获了秘文c=xe mod n,他想求出明文x。于是,他选择一个小的随机数r,并计算 因为s=re,所以sd=(re)d=mod n,r=sd mod n.然后E 设法让签名者对l签名.于是E又获得k=ld mod n.攻击者E再计算:于是,获
17、得了秘文x。u抵抗措施p用户不要轻易地对其他人提供的随机数据进行签名p对数据的Hash值进行签名 24第24页,本讲稿共79页5.7.2 RSA数字签名的安全性数字签名的安全性l4对先加密后签名方案的攻击u攻击方法 假设签名者A采用先加密后签名的方案把消息x发送给接收者B,则他先用B的公开密钥eB对x加密,然后用自己的私钥dA签名.设A的模数为nA,B的模数为nB.于是A发送给B的数据为:如果B是不诚实的,那么B可能伪造A的签名.例如,假设B想抵赖收到A发的消息x,慌称收到的是x1.因为nB是B的模数,所以B知道nB的分解,于是能够计算模nB的离散对数.即他能找到k满足:然后,B再公布他的新公
18、开密钥为keB。现在B宣布他收到的消息是x1,而不是x。由于下式成立,所以A无法争辩。25第25页,本讲稿共79页5.7.2 RSA数字签名的安全性数字签名的安全性l4对先加密后签名方案的攻击u抵抗措施p签名者A应当在发送的数据中加入时间戳,从而可证明是用公开密钥eB对x加密,而不是用新公开密钥keB对x1加密。p对数据的Hash值进行签名。l综上所述,对于RSA数字签名系统,必须采取如下安全措施:u不直接对消息进行签名,而应该对消息的Hash值进行签名。u要采用先签名后加密的方式,而不要采用先加密后签名的方式。26第26页,本讲稿共79页第第5 5章章 HashHash函数与数字签名函数与数
19、字签名l5.6 数字签名概念l5.7 RSA数字签名体制 l5.8 ElGamal数字签名体制 l5.9 其它数字签名方案l5.10 数字签名标准l5.11 应用27第27页,本讲稿共79页5.8 ElGamal5.8 ElGamal数字签名体制数字签名体制u在1985年,ElGamal T.提出了一个基于离散对数问题的数字签名体制,通常称为ElGamal数字签名体制。uElGamal签名体制的安全性主要是基于有限域上离散对数问题的难解性。28第28页,本讲稿共79页5.8.1 ElGamal5.8.1 ElGamal签名算法描述签名算法描述l1参数生成算法参数生成算法u选取一个大素数选取一个
20、大素数p,g Zp*是一个本原元,是一个本原元,p和和g是是系统公开参数。系统公开参数。u任选整数任选整数x,满足:,满足:1xp 2。计算。计算 y=gx mod p.签名者的公钥为签名者的公钥为y,私钥为,私钥为x。l2签名算法签名算法 设设M Zp*为待签名的消息。签名者随机选择一个秘为待签名的消息。签名者随机选择一个秘密整数密整数k,1kp 2,计算,计算 签名者对M的ElGamal签名为:签名者将数据(M,(r,s)发送给接收者。29第29页,本讲稿共79页5.8.1 ElGamal5.8.1 ElGamal签名算法描述签名算法描述l3验证算法 接收方收到签名(M,(r,s)后,验证
21、 是否成立,如果等号成立,则确认(r,s)是M的有效签名。l有效性证明 因此,如果(r,s)是M的正确签名,则一定有30第30页,本讲稿共79页5.8.1 ElGamal5.8.1 ElGamal签名算法描述签名算法描述lElGamal数字签名是一个随机的数字签名体制 l例5.6 设p=11,g=2是Z11*的本原元。选取私钥为x=8,u计算公钥 设签名者A要对消息M=5进行签名。签名者A首先秘密选取一个整数k=9,计算u签名者A对M=5的ElGamal签名为(6,3)。u接收者B可以对消息M=5的签名(6,3)进行验证。因为31第31页,本讲稿共79页5.8.25.8.2 ElGamal数字
22、签名的安全性数字签名的安全性 lElGamal数字签名算法的实现u需要作一次模指数运算u一次扩展Euclidean算法运算(求随机数k的逆元)u二次模乘运算u前两个运算可以离线进行u是一个随机的数字签名体制 lElGamal数字签名体制的参数pup的选择与在Zp*中计算离散对数的算法有直接关系。从目前的计算水平来看,p至少应该是二进制512位的素数,从长期安全性考虑,应使用1024位或更长的素数。up1最好有大的素因子u私钥x最好是Zp*的素数阶子群的生成元。32第32页,本讲稿共79页5.8.35.8.3 ElGamal数字签名的安全性数字签名的安全性 l1不知道私钥的攻击 假设攻击者E不知
23、道私钥x,要想伪造消息M的签名(r,s),则E可能使用的攻击方式有:u(1)攻击者已知消息M,选择一个值r,再求另一个值s.此时,因为有 所以攻击者E必须计算离散对数。u(2)攻击者已知消息M,选择一个值s,再求另一个值r.此时,他必须从同余方程 中求出r。这是一个到目前为止还没有可行方法求解的方程,甚至也看不出它与离散对数问题有没有关系。33第33页,本讲稿共79页5.8.35.8.3 ElGamal数字签名的安全性数字签名的安全性 l1不知道私钥的攻击 u(3)攻击者已知消息M,同时求(r,s).即他必须从同余方程 中同时求出(r,s)。现在人们对这个方程的认识几乎是一无所有,既没有人发现
24、解这个问题的方法,也没有人能够证明不能解这个问题。u(4)攻击者选择数据对(r,s),求消息M。此时必须计算离散对数34第34页,本讲稿共79页5.8.35.8.3 ElGamal数字签名的安全性数字签名的安全性 l1不知道私钥的攻击不知道私钥的攻击 u(5)攻击者同时选择数据攻击者同时选择数据M,r和和s,使得,使得(r,s)是是M的的签名。这种攻击方法可能获得成功。攻击者首先选择签名。这种攻击方法可能获得成功。攻击者首先选择整数整数i和和j,0i,jp 2,gcd(j,p 1)=1,计算,计算 成立,所以(r,s)是消息M的有效签名 p该攻击方法属于存在性伪造。因此,在使用ElGamal数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 信息 安全 数字 签名 精品 文稿
限制150内