1、2022-12-28计算机科学与技术学院1第第9 9章:数字签名章:数字签名问题的提出问题的提出2022-12-28计算机科学与技术学院2手写签名:传统的确认方式,如书信、签约、支付、批复等在网络时代,人们通过网络支付费用、买卖股票,为了保证网上商务活动的安全,需要一个很重要的安全机制数字签名数字签名2022-12-28计算机科学与技术学院3AliceBob从我账户给Bob转入100万1.这么大一笔资金,这么大一笔资金,这消息是这消息是Alice发的发的吗?吗?2.要是过后要是过后Alice不承认这笔转不承认这笔转账怎么办?账怎么办?Alice,把你要转,把你要转账的消息账的消息签名签名之之后
2、再发给我后再发给我l数字签名数字签名是手写签名数字化的产物,但又有着显著的区别l每个消息的签名都不同每个消息的签名都不同,否则签名就会被获取并复制到另外的文件中l数字签名的基础是公钥密码学2022-12-28计算机科学与技术学院42022-12-285数字签名的基本概念数字签名的基本概念数字签名应该具有的性质数字签名应该具有的性质完整性完整性一个被签了名的消息,无法分割成为若干个被签了名的子消息。这一性质保证了被签名的消息不能被断章取义。(这个性质的本质是:)当一个签名消息被分割子消息发送出去,则签名已经被破坏了,收到消息的人会辨认出签名是无效的(不合法的)。2022-12-286数字签名的基
3、本概念数字签名的基本概念身份唯一性(不可伪造性)身份唯一性(不可伪造性)被Alice签名的消息只能由Alice生成。(这个性质的本质是:)Bob在收到一个“被Alice签名的消息”时,他有办法检验,该签名是否真的被Alice签名的消息。或许攻击者Eve截获了大量的被Alice签名的消息,但他仍然不能伪造出一个新的,别人认可的“被Alice签名的消息”。如果无论Eve截获多少被Alice签名的消息,他伪造新的“被Alice签名的消息”的成功概率仍然没有丝毫提高,则称该签名算法是零知识的。2022-12-287数字签名的基本概念数字签名的基本概念不可否认性(公开可验证性)不可否认性(公开可验证性)
4、被Alice签名的消息,在未来不能被Alice否认。(这个性质的本质是:)Bob在收到一个被Alice签名的消息时,他有办法向第三方证明该签名是真的被Alice签名的消息。如果一个数字签名具有不可伪造性不可伪造性,则Bob能够自行验证签名消息的真伪;而如果一个数字签名具有公公开可验证性开可验证性,则Bob能够向他人证明签名消息的真伪。2022-12-288数字签名的基本概念数字签名的基本概念公钥密码的签名思想公钥密码的签名思想既然要求数字签名具有这么多的性质,怎样来构造数字签名?答案是:以公钥密码为基础的数字签名算法才能具有如此强大的信息安全功能。回忆公钥密码:l明文m,密文c。lAlice的
5、加密密钥(公钥)是z,解密密钥(私钥)是k。l加密方程c=E(m,z),解密方程m=D(c,k)。2022-12-289数字签名的基本概念数字签名的基本概念公钥密码的签名方案(一)公钥密码的签名方案(一)Alice欲发消息m给Bob。(1)Alice用自己的私钥k对消息m“解密”s=D(m,k),s就是对消息m的签名值,(m,s)就是一个签名消息。(2)Alice将(m,s)发送给Bob。(3)Bob收到(m,s)后,用Alice的公钥z,将消息m与签名s做如下的检验:是否m=E(s,z)。若是则(m,s)是Alice发送的签名消息。2022-12-2810数字签名的基本概念数字签名的基本概念
6、在上述方案中,l“密文”变成了消息m,“解密方程”变成了签名方程s=D(m,k)。l“明文”变成了签名值s,“加密方程”变成了验证方程m=E(s,z)。l任何人只要拥有Alice的公钥z,都可以对签名消息(m,s)进行验证。l是否只有Alice自己才能生成自己的签名消息呢?2022-12-2811数字签名的基本概念数字签名的基本概念签名方案(一)的安全性分析:签名方案(一)的安全性分析:(1)设Eve知道Alice的公钥z,选定消息m,对签名值s进行伪造。l要想让伪造的签名值s通过检验,Eve必须选择s满足验证方程m=E(s,z)。然而在验证方程中是解不出s的,必须得到Alice的私钥k,用签
7、名方程得到s:s=D(m,k)。l这就是说,对事先设定的消息m来说,签名消息(m,s)具有身份唯一性和不可伪造性。2022-12-2812数字签名的基本概念数字签名的基本概念(2)设Eve知道Alice的公钥z,设定签名值s,反过来对消息m进行伪造。此时消息m的内容就不能是选定的。lEve选择一个“签名值”s,用验证方程计算“消息”m=E(s,z)。lEve冒充Alice将(m,s)发送给Bob。lBob用验证方程检验得m=E(s,z)。于是Bob认为(m,s)就是Alice发送的签名消息。攻击成功。为了抵抗这种攻击,合法签名消息(m,s)中的消息m必须是有意义的课文,而不是乱码。2022-1
8、2-2813数字签名的基本概念数字签名的基本概念公钥密码的签名方案(二)公钥密码的签名方案(二)额外使用一个公开的杂凑函数H。设Alice欲发消息m给Bob。(1)Alice用H将消息m进行处理,得h=H(m)。(2)Alice用自己的私钥k对h“解密”s=D(h,k),s就是对消息m的签名值,(m,s)就是一个签名消息。(3)Alice将(m,s)发送给Bob。(4)Bob收到(m,s)后,用Alice的公钥z,将消息m与签名s做如下的检验:是否H(m)=E(s,z)。若是则(m,s)是Alice发送的签名消息。2022-12-2814数字签名的基本概念数字签名的基本概念在上述方案中,l签名
9、方程是s=D(H(m),k)。l验证方程是H(m)=E(s,z)。l任何人只要拥有Alice的公钥z,都可以对签名消息(m,s)进行验证。l设攻击者Eve知道Alice的公钥z,他试图伪造一个(m,s),让Bob相信(m,s)是Alice的签名消息。伪造的(m,s)必须满足验证方程H(m)=E(s,z)。2022-12-2815数字签名的基本概念数字签名的基本概念Eve面临着两难问题:l如果选定消息m,再匹配签名值s,则在验证方程H(m)=E(s,z)中无法解出s。(这是公钥密码的基本安全性)l如果选定签名值s,再匹配消息m,则在验证方程H(m)=E(s,z)中能够解出H(m),却无法得到m。
10、(这是杂凑函数的性质)如此看来,签名方案(二)似乎具有身份唯一性和不可伪造性。2022-12-2816数字签名的基本概念数字签名的基本概念签名方案(二)存在的问题签名方案(二)存在的问题(1)如果给Eve更加宽松的条件,设他不但知道Alice的公钥z,而且已经截获了许多Alice的签名消息(m(1),s(1),(m(2),s(2),(m(N),s(N)。Eve伪造新的Alice的签名消息(m,s)是否更加容易?如果允许重复发送,则Eve的伪造是轻而易举的,他只需要发送(m(n),s(n)即可。此称为重放攻击。2022-12-2817数字签名的基本概念数字签名的基本概念为了使签名方案(二)抵抗重
11、放攻击,通常使用两种方法:lAlice已经发送过的签名消息必须存储备案,不得再次发送。一旦发现有再次发送,则肯定是重放攻击。但Eve可以根据公钥密码的结构缺陷来伪造。比如(m,s)=(m(1)m(2),s(1)s(2)。第一种方法没有抵抗这种伪造的能力。l Alice的签名消息中必须含有时戳。一旦发现发送时间过于久远,则肯定是重放攻击。但“时间过于久远”的标准很模糊。2022-12-2818数字签名的基本概念数字签名的基本概念(2)注意到Alice先得到h=H(m),再计算出s=D(h,k)。这就要求:公钥密码对课文h能够正确进行解密运算。换句话说,对课文h进行解密运算的结果,再进行加密就得到
12、h。事实上,许多公钥密码具有如下的性质:当某个明文加密得到h,则对h解密再加密就得到h;当h是随意选择的,则对h解密再加密很难得到h。比如,NTRU就是这样的公钥密码。因此NTRU无法用签名方案(二)来构造数字签名。数字签名的目的和要求数字签名的目的和要求 l数字签名的目的:数字签名的目的:保证信息的完整性和真实性,即消息没有被篡改,而且签名也没有被篡改,消息只能始发于所声称的一方l一个完善的签名方案应满足以下三个条件:1.1.不可否认性:不可否认性:签名者事后不能否认或抵赖自己的签名2.2.不可伪造性:不可伪造性:其他任何人均不能伪造签名,也不能对接收或发送的信息进行篡改、伪造和冒充3.3.
13、公正的仲裁:公正的仲裁:若当事双方对签名真伪发生争执时,能通过公正的仲裁者验证签名来确定其真伪2022-12-28计算机科学与技术学院19数字签名的定义数字签名的定义lISO对数字签名的定义对数字签名的定义:是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元来源数据单元来源和数据单元的完整性完整性,并保护数据,防止被人伪造2022-12-28计算机科学与技术学院20签名方案的组成签名方案的组成l2022-12-28计算机科学与技术学院21数字签名的过程数字签名的过程l数字签名方案一般包括三个过程数字签名方案一般包括三个过程:1.系统
14、初始化过程系统初始化过程:产生数字签名方案中的所有系统和用户参数(公开的公开的+秘密的秘密的)2.签名过程签名过程:用户利用给定的签名算法签名算法对消息签名,签名过程可以公开也可以不公开,但一定包含仅签名者才拥有的秘密信息(签名密钥)3.验证过程验证过程:验证者利用公开的验证方法验证方法对给定消息的签名进行验证2022-12-28计算机科学与技术学院222022-12-28计算机科学与技术学院23RSA签名签名l2022-12-28计算机科学与技术学院24RSA签名方案图签名方案图2022-12-28计算机科学与技术学院25比较Problem:为什么对消息的为什么对消息的HashHash函数值
15、签名而不是直接对消息签名函数值签名而不是直接对消息签名?对对RSA签名的攻击签名的攻击l2022-12-28计算机科学与技术学院26l2022-12-28计算机科学与技术学院27对对RSA签名的攻击签名的攻击l2022-12-28计算机科学与技术学院28对对RSA签名的攻击签名的攻击H(M)的重要性的重要性l2022-12-28计算机科学与技术学院29RSA签名标准签名标准PSS 2022-12-28计算机科学与技术学院30PSSPSS算法的编码操作过程算法的编码操作过程2022-12-2831ElGamal数字签名数字签名ElGamal数字签名数字签名ElGamal的密钥生成:选择一个大的素
16、数p。选择g为域GF(p)的本原元素。选择正整数x。计算y=gx(modp)。Alice的公钥是(p,g,y),私钥是x。签名方案是上述的签名方案(二),额外使用一个公开的杂凑函数H。设Alice欲发消息m给Bob。2022-12-2832ElGamal数字签名数字签名(1)Alice用H将消息m进行处理,得h=H(m)。(2)Alice选择秘密随机数k,满足0kp-1,且(k,p-1)=1,计算r=gk(modp);s=(h-xr)k-1(mod(p1)。(3)Alice将(m,r,s)发送给Bob。l2022-12-28计算机科学与技术学院332022-12-2834Schnorr数字签名
17、数字签名Alice拥有3个正整数(p,q,g),向自己的通信伙伴公开。其中:lp是模数(即将要进行(modp)模数运算),它是一个素数,值的范围在2511到2512之间(即p是一个长度为512的比特串)。lq也是模数(即将要进行(modq)模数运算),它是一个素数,2159 q(即q是一个长度不小于160的比特串),并且q是p-1的一个因子。lg是域GF(p)的元素,且gq=1(modp)。2022-12-2835Schnorr数字签名数字签名Alice选择x,其中1xq。Alice计算y=gx(modp)。Alice的公钥是(p,q,g,y),Alice的私钥是x。签名方案是上述的签名方案(
18、二),额外使用一个公开的杂凑函数H,H的输出长度是160比特。设Alice欲发消息m给Bob。2022-12-2836Schnorr数字签名数字签名(1)Alice选择秘密随机数k,满足0kq,计算r=gk(modp);e=H(r,m);s=kxe(modq)。(3)Alice将(m,e,s)发送给Bob。(4)Bob用Alice的公钥,计算r=gsy-e(mod p)。检验是否e=H(r,m)。若是则(m,e,s)是Alice发送的签名消息。2022-12-2837Schnorr数字签名数字签名Schnorr签名与签名与ElGamal签名的不同点:签名的不同点:l 在ElGamal体制中,g
19、为域GF(p)的本原元素;而在Schnorr体制中,g只是域GF(p)的阶为q的元素,而非本原元素。因此,虽然两者都是基于离散对数的困难性,然而ElGamal的离散对数阶为p-1,Schnorr的离散对数阶为qp-1。从这个角度上说,ElGamal的安全性似乎高于Schnorr。2022-12-2838l签名长度比较:Schnorr比ElGamal签名长度短。ElGamal:(m,r,s),其中r的长度为|p|,s的长度为|p-1|。Schnorr:(m,e,s),其中e的长度为|q|,s的长度为|q|。l在Schnorr签名中,r=gk(modp)可以预先计算,k与m无关,因而签名只需一次m
20、odq乘法及减法。所需计算量少,速度快,适用于灵巧卡采用。数据签名标准数据签名标准DSSl1991年,美国政府颁布了数字签名标准数字签名标准DSS(Digital Signature Standard)l和DES一样,DSS也引起了激烈的争论。反对者认为:密钥太短密钥太短、效率不如效率不如RSA高高、不能实现数据加密不能实现数据加密并怀疑NIST在DSS中留有后门留有后门l随后,美国政府对其做了一些改进l目前DSS的应用已经十分广泛,并被一些国际标准化组织采纳为国际标准l2000年,美国政府将RSA和椭圆曲线密码引入到数字签名标准中,进一步丰富了DSS算法2022-12-28计算机科学与技术学
21、院39DSS算法描述算法描述l2022-12-28计算机科学与技术学院402022-12-28计算机科学与技术学院41M|MHSigSrHVerPKG+SKGPKAPKG+k比较数字签名算法DSA l2022-12-28计算机科学与技术学院42DSA签名生成过程签名生成过程l2022-12-28计算机科学与技术学院43DSA签名验证过程签名验证过程l2022-12-28计算机科学与技术学院44ECDSA签名算法签名算法 l2022-12-28计算机科学与技术学院45l2022-12-28计算机科学与技术学院46基于身份的签名方案基于身份的签名方案 l2022-12-28计算机科学与技术学院47
22、Cha-Cheon的基于身份的数字签名方案的基于身份的数字签名方案l 2022-12-28计算机科学与技术学院482022-12-2849其它其它签名算法签名算法GOST签名标准签名标准,为俄国采用的数字签名标准,自1995启用,正式称为GOST R34.10-94。算法与Schnorr模式下的ElGamal签名及NIST的DSA很相似。算法中也有一个类似于SHA的杂凑函数H(x),其标准号为GOST R34.11-94。ESIGN签名体制。签名体制。日本NTT的T.Okamoto等设计的签名方案。宣称在密钥签名长度相同条件下,至少和RSA,DSA一样安全,且比它们都快。OSS签名体制,签名体
23、制,Ong,Schnorr和Shamir1984提出的一种利用mod n下多项式的签名算法。方案基于二次多项式。2022-12-2850特殊用途的数字签名特殊用途的数字签名盲签名盲签名一般数字签名中,总是要先知道文件内容而后才签署。但有时需要某人对一个文件签名,但又不让他知道文件内容,称此为盲签名盲签名(Blind Signature),它是由Chaum1983最先提出的。在选举投票和数字货币协议中将会碰到这类要求。设B是一位仲裁人,A要B签署一个文件,但不想让他知道所签的是什么,而B也并不关心所签的内容,他只是要确保在需要时可以对此进行仲裁。可通过下述协议实现。2022-12-2851特殊用
24、途的数字签名特殊用途的数字签名(a)A取一文件并以一随机值乘之。称此随机值为盲因盲因子子,称用盲因子盲因子乘后的文件为盲文件。(b)A将此盲文件送给B。(c)B对盲文件签名。(d)A以盲因子除之,得到B对原文件的签名。(若签名函数和乘法函数是可换的,则上述作法成立。否则要采用其它方法(而不是乘法)修改原文件。)2022-12-2852特殊用途的数字签名特殊用途的数字签名安全性讨论安全性讨论 B可以欺诈吗?是否可以获取有关文件的信息?若盲因子完全随机,则可保证B不能由(b)中所看到的盲文件得出原文件的信息。即使B将(c)中所签盲文件复制,他也不能(对任何人)证明在此协议中所签的真正文件,而只是知
25、道其签名是合法的,并可向他人证实其签名合法。即使他签了100万个文件,也无从得到所签文件的信息。2022-12-2853特殊用途的数字签名特殊用途的数字签名盲签名算法盲签名算法 D.Chaum曾提出第一个实现盲签名的算法,他采用了RSA算法。令B的公钥为e,秘密钥为d,模为n。(a)A需要B对消息m进行盲签名,选1k n,作t=mke(modn)B。(b)B对t签名,td=(mke)d(modn)A。(c)A计算 s=td/k(modn)得s=(mke)d/k(modn)=md(modn),(m,s)就是B对m按RSA体制的合法签名,任何知道公钥e的人都能验证se=m(modn)。2022-1
26、2-2854特殊用途的数字签名特殊用途的数字签名群签名群签名群签名(Group Signature)是面向群体密码学中的一个课题,1991年由Chaum和van Heyst提出。它有下述几个特点:只有群中成员能代表群体签名;接收到签名的人可以用公钥验证群签名,但不可能知道由群体中那个成员所签;发生争议时可由群体中的成员或可信赖机构识别群签名的签名者。这类签名可用于投标中,以防止作弊。其他类别数字签名其他类别数字签名l一次数字签名一次数字签名l环签名环签名l代理签名代理签名l不可否认签名不可否认签名l故障停止式签名故障停止式签名l指定接收人签名指定接收人签名l多重数字签名多重数字签名l批验证数字签名批验证数字签名l门限签名门限签名2022-12-28计算机科学与技术学院55人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。