北京交通大学-密码学-第13章-数字签名

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第13章数字签名本章内容数字签名的基本概念普通数字签名算法RSA数字签名方案EIGamal数字签名方案数字签名标准DSS基于离散对数问题的一般数字签名体制椭圆曲线数字签名具有特殊性质的数字签名消息认证基于共享秘密,能保护通信双方以防止第三方的攻击,然而却不能防止抵赖,无法防止通信双方的一方对另一方的欺骗。如通信双方A和B使用消息认证码通信,则可能发生如下欺骗:A伪造一个消息,并使用与B共享的密钥产生该消息的认证码,然后声称该消息来自于B。由于这个原因,B也可以对自己发送给A的消息予以否认。例如:EFT中改大金额;股票交易指令亏损后抵赖。因此除了认证之外,还需要其它机制来防止通信双方的抵赖行为,最常见的解决方案就是采用数字签名(DigitalSignature)。数字签名的基本概念考察手写签名的特性签名的含义•签名者慎重表达认可文件内容的意向的行为主要形式•手写签名、签章、手指纹印(其他生物技术)特性•不可伪造,特异性•不可重用,日期和时间相关性•不可改变,能发现涂改、转移意义或用途•不可抵赖,能够质证•可仲裁的,可做为法律证据数字签名的基本概念数字签名:是一种给以电子形式存储的消息签名的方法手写签名与数字签名的区别:签署文件的属性:手写签名是所签文件的物理组成部分;数字签名与所签文件无物理载体绑定,数字签名算法必须以某种形式将签名“绑”到所签文件上。数字签名的基本概念手写签名与数字签名的区别:签名的验证:手写签名通过与标准签名比较或检查笔迹来验证,伪造签名比较容易;数字签名是数字信息,肉眼无法辨识真假。数字签名能通过一个公开的验证算法对它进行确认。安全数字签名方案的使用能阻止伪造签名的可能性。签名的可复制性:手写签名不易复制;数字签名是一个电子信息,十分容易复制。必须采取措施防止一个数字签名消息被重复使用。数字签名的基本概念•所谓数字签名(DigitalSignature),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法对该电子文档进行关键信息提取并与用户私有信息进行混合运算而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造.数字签名应具有的特征(1)签名是可信的(2)签名不可伪造(3)签名不可复制(4)签名的文件是不可改变的(5)签名是不可抵赖的数字签名的基本概念数字签名的基本概念1976,WDiffie和MHellman在“NewDirectionsinCryptography”,首先提出了数字签名的思想并猜测存在这样的方案1978,RRivest,AShamir和LAdleman发明了RSA算法可以用作数字签名算法1984,SGoldwasser,SMicali,和RRivest首次粗略提出了数字签名算法的安全性要求。1994年,美国政府正式颁布了美国数字签名标准DSS;1995年,我国也制定了自己的数字签名标准(GB15851-1995)2004年,中国颁布《中华人民共和国电子签名法》数字签名模型数字签名模型数字签名方案的定义定义(数字签名方案)一个签名方案是一个满足下列条件的三元组(Gen,Sig,Ver):满足①Gen生成密钥对(sk,vk).Sk称为签名密钥,vk是验证密钥,用于验证.②Sig是签名算法.输入签名密钥sk和要签名的消息m,得到一个签名σ=Sigsk(m)③Ver是验证算法.输入一个签名σ和消息m,输出0或者1.Gen,Sig,Ver应该是多项式时间可计算函数.它们都是公开的函数,vk是公开的,而sk是保密的.如果没有sk,任何人计算一个满足Versk(m,σ’)=1的消息对(m,σ’)应该在计算上不可行.(注意,对给定的m,vk,可能存在不止一个σ,这要看函数Sig是如何定义的)针对数字签名的攻击和伪造如果敌手能够计算满足Versk(m,σ)=1的数据对(m,σ),而m没有事先被签名,则签名(m,σ)被称为一个伪造签名一个伪造的签名是不使用签名密钥产生的某个消息m的一个有效数字签名.对签名方案来讲,经常考虑下面的攻击模型:唯密钥攻击:敌手拥有Alice的公钥,即验证函数Kver。已知消息攻击:敌手拥有一系列以前由Alice签名的消息,例如:1122(,),(,),xyxy,其中ix是消息而iy是Alice对这些消息的签名(因此()iKiysigx,1,2,i),敌手企图伪造签名。选择消息攻击:敌手请求Alice对一个消息列表签名。因此他选择消息,,21xx,并且Alice提供对这些消息的签名,它们分别是()iKiysigx,1,2,i,敌手随后企图伪造签名。针对数字签名的攻击下面考虑攻击者可能的几种目的:完全破译:攻击者能够确定Alice的私钥,即签名函数Ksig。因此他能对任何消息产生有效的签名。选择性伪造:攻击者可以对所选择的消息产生有效的签名。换句话说,如果给攻击者一个消息x,那么他能(以某种概率)决定签名y,使得trueyxverK),(。该消息x不应该是以前Alice曾经签名的消息。存在性伪造:攻击者至少能够为一则消息产生一个有效的签名。换句话说,攻击者能创建一个数对),(yx,其中x是消息而trueyxverK),(。该消息x不应该是以前Alice曾经签名的消息。对数字签名的攻击结果数字签名的需求根据数字签名应具有的基本特征和攻击,数字签名应满足下列条件:依赖性:签名必须是与消息相关的;唯一性:签名必须使用发送方某些独有的信息防止伪造和否认可验证:数字签名必须是在算法上可验证的;抗伪造:伪造数字签名在计算上是不可行的;无论是通过以后的数字签名来构造新报文还是对给定的报文构造一个虚假的数字签名(类似笔迹签名不可模仿性)可用性:数字签名的产生识别和证实必须相对简单并且其备份在存储上是可实现的(显然签名不能太长)数字签名的分类目前已经提出了许多数字签名体制,但按照执行方式分类,可以分成两类:直接数字签名(directdigitalsignature)和需仲裁的数字签名(arbitrateddigitalsignature)。直接数字签名(DDS)(1)A→B:EKRa[M]提供了鉴别与签名只有A具有KRa进行加密;传输中没有被篡改;需要某些格式信息/冗余度;任何第三方可以用KUa验证签名(1’)A→B:EKUb[EKRa(M)]提供了保密(KUb)、鉴别与签名(KRa)直接数字签名(DDS)(2)A→B:M║EKRa[H(M)]提供了鉴别及数字签名H(M)受到密码算法的保护;只有A能够生成EKRa[H(M)](2’)A→B:EK[M║EKRa[H(M)]提供了保密性、鉴别与数字签名直接数字签名的缺点验证模式依赖于发送方的保密密钥发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。改进的方式,例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳仲裁数字签名引入仲裁者通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给Y。仲裁者在这一类签名模式中扮演敏感和关键的角色所有的参与者必须极大地相信这一仲裁机制工作正常。(trustedsystem)引入中心可以有很多优点,同时也很多缺点优点:可以简化用户的考虑,甚至可以使用对称算法缺点:中心的安全故障、在线瓶颈、可靠性等问题仲裁数字签名技术仲裁数字签名技术仲裁数字签名技术仲裁数字签名技术本节主要内容数字签名的基本概念普通数字签名算法RSA数字签名方案EIGamal数字签名方案数字签名标准DSS基于离散对数问题的一般数字签名体制椭圆曲线数字签名具有特殊性质的数字签名RSA数字签名方案定义(RSA签名方案)由三个算法(Gen,Sig,Ver)构成:①Gen选择素数p,q,令n=pq.选择e使得(e,Ø(n))=1,计算d使得ed≡1modØ(n).有vk:=(n,e),sk:=p,q,d.②Sig对于输入m和sk.计算σ:=mdmodn,签名是(m,σ)③Ver对于输入σ,m,vk,Vervk(m,σ)=1当且仅当σe≡mmodn.RSA数字签名的缺点阻止以上攻击的一种方法是让消息具备足够的冗余,使使用这种方法获得的伪造签名对应一个有“意义”的消息x的概率非常小。另外,Hash函数与数字签名结合使用能阻止这种伪造(先Hash,再签名)。RSA数字签名RSA数字签名对照数字签名的各项要求散列函数取得报文的信息摘要,从而使对之进行加密产生的签名依赖于消息;RSA私钥的保密性使得签名是唯一的;Hash函数的输出信息摘要的字节数很少,如SHA的160字节。产生签名相对简单,同样地。签名的识别与证实相对简单。散列函数的单向性与抗冲突性,还有RSA私钥的保密性,使得伪造数字签名不可行可以看出散列在数字签名中发挥了重要作用签名与公钥加密的结合先签名后加密.假定Alice希望发送一个签名的加密消息给Bob.给定明文m,Alice将计算她的签名σ=Sigsk(m),然后使用Bob的公开加密函数E加密m和σ,获得y=Epk(m║σ).密文y将被传送至Bob.当Bob接收到y后,他首先使用解密函数获得m║σ=Dk(y),然后使用Alice的公开验证来验证Vervk(m,σ)是否为1.签名与公钥加密的结合先加密后签名.如果Alice首先加密m,然后对加密结果签名会怎样呢?那么她将计算y=Epk(m)和σ=Sigsk(y).Alice将把(y,σ)发送给Bob,Bob用验证对y的签名σ,然后解密y,获得m=Dk(y).这种方法一个潜在的问题是如果敌手获得了(y,σ),他能够用他自己的签名σ’=Sigsk’(y)来代替Alice的签名.然后,如果Oscar将(y,σ’)发送给Bob,Bob将用Vervk’(y,σ’)来验证敌手的签名,Bob可能由此推断明文m来自Oscar.因为这种潜在的危险(不能确定发送方身份),大多数人建议在加密前签名.RSA数字签名RSA数字签名的应用:PGP数据M经MD5处理利用RSA对Hash(M)签名,得到S使得ZIP对M,S压缩再用IDEA对压缩数据加密:IDEA(ZIP(M,S))用RSA对IDEA的密钥加密:RSA(k)形成数据:IDEA(ZIP(M,S)),RSA(k)将数据转换成ASCII码本节主要内容数字签名的基本概念普通数字签名算法RSA数字签名方案EIGamal数字签名方案数字签名标准DSS基于离散对数问题的一般数字签名体制椭圆曲线数字签名具有特殊性质的数字签名1985年ElGamal提出了ElGamal签名方案,该方案的变型已被美国国家标准技术研究所采纳为数字签名算法(或DSA)。与RSA密码体制既可以用于公钥又可以用于签名方案不一样,这种方案是为签名而专门设计的。ElGamal签名方案是非确定性的(ElGamal公钥密码体制也是非确定性的)。这意味着对任何给定的消息有许多有效的签名,并且验证算法能够将它们中的任何一个作为可信的签名而接受。ElGamal签名方案ElGamal签名方案用到的符号:**,,pppZZZ是一个本原元当且仅当012,,,ppZ注:11modppGen选取大素数p,以及本原元*pZ,随机选1,2,,1ap计算mod.ap验证密钥为,,vkp.签名密钥ska.Sig输入pxZ,随机选取*1pkZ,计算modkyp和1mod1xaykp.签名是,y.Ver对于输入,,,xy定义,,1v

1 / 89
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功