安徽工程大学-信息安全原理及应用-第7讲-数字签名与身份认证

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

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

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

资源描述

1第7讲数字签名与身份认证网络与信息安全Ⅰ主要内容数字签名1认证协议2数字签名标准3身份认证技术4认证服务57.1数字签名数字签名(DigitalSignature)是公开密钥体系加密技术发展的一个重要的成果。消息认证可以保护消息交换双方不受第三方的攻击。但是不能处理通信双方自身发生的互相攻击。不可否认性的应用需求网络通信中,希望有效防止通信双方的欺骗和抵赖行为。Y伪造一个不同的消息,但声称是从X收到的;X可以否认发过该消息,Y无法证明X确实发了该消息;数字签名技术为此提供了一种解决方案。它的作用相当于手写签名。《纽约客》杂志一张颇为著名的漫画数字签名的特征必须能够验证签名者、签名日期和时间;必须能够认证被签的消息内容;签名应能够由第三方仲裁,以解决争执。数字签名的满足条件数字签名必须是与消息相关的二进制位串;签名必须使用发送方某些独有的信息,以防伪造和否认;产生数字签名比较容易;识别和验证数字签名比较容易;伪造数字签名在计算上是不可行的;保存数字签名的拷贝是可行的。数字签名体制一个数字签名体制应由以下部分组成:一个明文消息空间M:某字母表中串的集合;一个签名空间S:可能的签名集合;一个签名密钥空间K:用于生成签名的可能密钥集合;一个认证密钥空间K’:用于验证签名的可能密钥集合;一个有效的密钥生成算法;一个有效的签名算法s←Signsk(m);一个有效的验证算法Verifypk(m,s)={True,False}。案例描述从网上下载可执行的软件后,用户如何相信它是无害的呢?大公司的软件可以信赖。可是如果黑客用自己的软件冒充大公司的软件,或者篡改大公司的软件,企图危害用户时怎么办?数字签名案例——软件防纂改案例解决方案这个问题利用数字签名可以解决。软件发行者生成软件后,用私钥对软件签名,再把软件本身、签名结果、公钥证书制作成一个包发行。这样用户可以从公钥证书知道发行者的真实身份,经验证签名可以确定软件发行后有没有被篡改。数字签名案例——软件防纂改数字签名的解决方案可分为两大类:直接数字签名方案;基于仲裁的数字签名方案。直接数字签名实现比较简单,在技术上仅涉及到通信的源点X和终点Y双方。终点Y需要了解源点X的公开密钥Kux。发送方A可以使用其私有密钥KRx对整个消息进行加密来生成数字签名。更好的方法是使用KRx对消息的散列码进行加密来形成数字签名。直接数字签名的安全性方案的安全性依赖于发送方X私有密钥的安全性。发送方可以声称自己的私有密钥丢失或被盗用,而否认其发送过某个报文。改进:每个签名报文中包含一个时间戳。问题:X的私有密钥确实在时间T被窃取;攻击者窃取X的密钥后,则可能发送带有X的签名报文,附上一个等于T的时间戳,接受者无法判别。基于仲裁的数字签名通过引入仲裁来解决直接签名方案中的问题。仲裁者必须是一个所有通信方都能充分信任的仲裁机构。基本工作方式(假定用户X和Y之间进行通信):每个从X发往Y的签名消息首先被送给仲裁者A;A检验该报文及其签名的出处和内容,然后对报文注明日期,并附加上一个“仲裁证实”的标记发给Y。基于仲裁的数字签名--对称密钥加密方式(1)发送方X和仲裁A共享一个密钥Kax。A和Y共享密钥Kay。数字签名由X的标识符IDx和消息的散列码H(M)构成,用密钥Kax进行加密。过程:(1)X→A:M‖EKax(IDx‖H(M))。(2)A→Y:EKay(IDx‖M‖EKax(IDx‖H(M))‖T)。(3)Y存储报文M及签名。当发生争端时解决方式Y→A:EKay(IDx‖M‖EKax(IDx‖H(M)))。仲裁A可用Kay恢复出IDx、M及签名,然后再用Kax对签名解密并验证其散列码。基于仲裁的数字签名--对称密钥加密方式(1)基于仲裁的数字签名--对称密钥加密方式(1)特点:Y不能直接验证X的签名。双方都需要高度相信AY相信A已对消息认证,X不能否认其签名;X信任A没有暴露Kxa,无人可伪造签名;双方都信任A处理争议是公正。问题:报文M明文传送给A,有可能被窃听。基于仲裁的数字签名--对称密钥加密方式(2)明文加密的方案(仲裁方不能阅读消息)假定X和Y共享密钥Kxy。X用Kxa对其标识、用Kxy加密后的消息的hash值产生签名,然后将其标识、用Kxy加密后的消息和签名发送给A。(1)X→A:IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M)))。(2)A→Y:EKay(IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M))‖T)。基于仲裁的数字签名--对称密钥加密方式(2)特征:X与Y之间共享密钥Kxy。签名的构成:IDx和消息密文的散列码用Kxa加密。签名的验证:A解密签名,用散列码验证消息。A只能验证消息的密文,而不能读取其内容。A将来自X的所有信息加上时间戳并用Kay加密后发送给Y。问题:A和发送方X联手可以否认签名的信息。A和接收方Y联手可以伪造发送方X的签名。基于仲裁的数字签名—公开密钥加密方式特点:仲裁者看不见消息的内容。过程:X对消息M进行两次加密。经过双重加密后,报文M只有Y能够阅读,A不能读取XA:IDx||EKRx[IDx||EKUy[EKRx(M)]]A能进行外层的解密,从而证实报文确实是来自X的因为只有X拥有KRx。验证后A向Y发送用KUy加密的报文,其中包括时间戳TAY:EKRa[IDx||EKUy[EKRx(M)]||T]基于仲裁的数字签名—公开密钥加密方式优点:通信各方之间无须共享任何信息,从而避免了联手作弊;只要KRa安全,则不会出现伪造A发送的消息;消息的内容是保密的,包括对A在内。数字签名过程:设厂长使用RSA密码体制,厂长的加密密钥为e,是公开的,解密密钥为d,只有厂长本人知道,则:(1)将附上数据x的合同发给厂长;(2)厂长用解密密钥对数据x作运算y=Dk(x),结果为厂长的数字签名;(3)用厂长的公开加密密钥e作运算x′=Ek(y),如果x′=x,则可证实厂长的签名为真;否则为假。因为Ek(Dk(x))≡Dk(Ek(x))≡x(modn),而Dk是唯一的且只有厂长本人知道。RSA签名方案设p与q是两个不同的素数,n=pq,(n)=(p-1)(q-1)。任取一个与n互素且小于n的数e,由de≡1(mod(n))求得唯一的解d,1dn。公开n与e,保密值p,q和d。对x∈Zn,定义签名算法S(·)为S(x)≡xd(modn);对y∈Zn,定义验证算法V(·)为V(y)≡ye(modn),则签名为真的充要条件是V(S(x))≡x(modn)。由于d只有签名者一人知道,因此只有他能给出真的签名。RSA签名方案ElGamalSignatureSchemeElGamal加密算法是不可交换的存在一个相关的签名算法安全性是基于计算离散对数的困难性方案的密钥生成是相同的:有个共享的素数p,公开的本原根a每个用户选择一个随机数作为私钥x计算各自的公开密钥:y=axmodp公钥是(y,a,p)私钥是(x)ElGamal签名方案的使用签名消息M:选择随机数k,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)ElGamal签名方案的使用签名是(K,S)k应该被销毁同ElGamal加密方案,签名信息也是消息的2倍验证(K,S)是对M的签名:yK.KSmodp=aMmodpElGamal签名方案举例取p=11,g=2;选择私钥x=8;计算:y=axmodp=28mod11=3;公钥是:y=3,g=2,p=11;对M=5签名:选择随机数k=9;确定gcd(10,9)=1计算:K=akmodp=29mod11=6解:5=8.6+9.Smod10;因此S=9.(5-8.6)=3mod10签名是(K=6,S=3);要验证签名,确认:36.63=25mod113.7=32=10mod11利用椭圆曲线密码实现数字签名一个椭圆曲线密码由下面的六元组描述:T=p,a,b,G,n,h其中,p为大于3素数,p确定了有限域GF(p);元素a,b∈GF(p),a和b确定了椭圆曲线;G为循环子群E1的生成元,n为素数且为生成元G的阶,G和n确定了循环子群E1。y2=x3+ax+bmodp利用椭圆曲线密码实现数字签名d为用户的私钥,公开钥为Q点,Q=dG。1、产生签名选择一个随机数k,k∈{1,2,···,n-1};计算点R(xR,yR)=kG,并记r=xR;利用保密的解密钥d计算:s=(m-dr)k-1modn;以r,s作为消息m的签名,并以m,r,s的形式传输或存储。利用椭圆曲线密码实现数字签名2、验证签名①计算s-1modn;②利用公开的加密钥Q计算U(xU,yU)=s-1(mG-rQ);③如果xU=r,则r,s是用户A对m的签名。证明:因为s=(m–dr)k-1modn,所以s-1=(m–dr)-1kmodn,所以U(xU,yU)=(m–dr)-1k(mG-rQ)=(m–dr)-1(mkG-krdG)=(m–dr)-1(mR-rdR)=(m–dr)–1R(m-dr)=R(xR,yR)。所以xU=xR=r.利用椭圆密码实现数字签名3、椭圆曲线密码签名的应用2000年美国政府已将椭圆曲线密码引入数字签名标准DSS。安全,密钥短、软硬件实现节省资源等特点。盲签名在普通数字签名中,签名者总是先知道数据的内容后才实施签名,这是通常的办公事务所需要的。但有时却需要某个人对某数据签名,而又不能让他知道数据的内容。称这种签名为盲签名(BlindSignature)。在无记名投票选举和数字货币系统中往往需要这种盲签名,盲签名在电子商务和电子政务系统中有着广泛的应用前景。盲签名盲签名与普通签名相比有两个显著的特点:①签名者不知道所签署的数据内容;②在签名被接收者泄露后,签名者不能追踪签名。即:如果把签名的数据给签名者看,他确信是自己的签名,但他无法知道什么时候对什么样的盲数据施加签名而得到此签名数据。盲签名接收者首先将待签数据进行盲变换,把变换后的盲数据发给签名者。经签名者签名后再发给接收者。接收者对签名再作去盲变换,得出的便是签名者对原数据的盲签名。这样便满足了条件①。要满足条件②,必须使签名者事后看到盲签名时不能与盲数据联系起来,这通常是依靠某种协议来实现的。盲签名盲签名原理图:盲变换签名去盲变换数据盲签名盲签名1、RSA盲签名AB①A对消息M进行盲化处理:他随机选择盲化整数k,1kM,并计算T=M(k)emodn。②A把T发给B。③B对T签名:Td=(Mke)dmodn=(M)dkmodnM盲签名1、RSA盲签名④B把他对T的签名发给A。⑤A通过计算得到B对M的签名。S=Td/kmodn=Mdmodn正确性证明:因为Td=(Mke)d=Mdkmodn,所以Td/k=Mdmodn,而这恰好是B对消息M的签名。盲签名盲签名在某种程度上保护了参与者的利益,但不幸的是盲签名的匿名性可能被犯罪份子所滥用。为了阻止这种滥用,人们又引入了公平盲签名的概念。公平盲签名比盲签名增加了一个特性,即建立一个可信中心,通过可信中心的授权,签名者可追踪签名。盲签名2、双联签名双联签名是实现盲签名的一种变通方法。它利用协议和密码将消息与人关联起来而并不需要知道消息的内容。从而实现盲签名。双联签名采用单向HASH函数和数字签名技术相结合,实现盲签名的两个特性。特殊数字签名代理签名:指签名人将其签名权委托给代理人,由代理人代表他签名的一种签名。多重签名:由多人分别对同一文件进行签名的特殊数字签名。群签名:由个体代表群体执行签名,验证者从签名不能判定签名者的真实身份,但能通过群管理员查出真实签名者。环签名:一种与群签

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

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

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

×
保存成功