资源描述
数字签名数字签名一一、数字签名的基本概念、数字签名的基本概念在人们的工作和生活中,许多事物的处理在人们的工作和生活中,许多事物的处理需要当事者需要当事者签名签名。签名签名起到确认、核准、生效和负责任等多起到确认、核准、生效和负责任等多种作用。种作用。签名签名是证明当事者的身份和数据真实性的是证明当事者的身份和数据真实性的一种信息。一种信息。签名签名可以用不同的形式来表示。可以用不同的形式来表示。一一、数字签名的基本概念、数字签名的基本概念在传统的以书面文件为基础的事物处理中,在传统的以书面文件为基础的事物处理中,采用书面签名的形式:采用书面签名的形式:手签、印章、手印等手签、印章、手印等书面签名得到司法部门的支持。书面签名得到司法部门的支持。在以计算机文件为基础的现代事物处理中,在以计算机文件为基础的现代事物处理中,应采用电子形式的签名,即数字签名应采用电子形式的签名,即数字签名(Digital Signature)。)。数字签名已得到一些国家的法律支持。数字签名已得到一些国家的法律支持。一一、数字签名的基本概念、数字签名的基本概念一种完善的签名应满足以下三个条件:一种完善的签名应满足以下三个条件:签名者事后不能抵赖自己的签名;签名者事后不能抵赖自己的签名;任何其他人不能伪造签名;任何其他人不能伪造签名;如如果果当当事事的的双双方方关关于于签签名名的的真真伪伪发发生生争争执执,能能够够在在公公正正的的仲仲裁裁者者面面前前通通过过验验证证签签名名来来确认其真伪。确认其真伪。一一、数字签名的基本概念、数字签名的基本概念数字签名基于密码技术,其形式多种多样:数字签名基于密码技术,其形式多种多样:通通用用签签名名、仲仲裁裁签签名名、不不可可否否认认签签名名、盲盲签签名名、群群签名、门限签名等。签名、门限签名等。1994年年月月美美国国政政府府正正式式颁颁布布了了美美国国数数字字签签名名标标准准DSS(Digital Signature Standard)。)。1995年年 我我 国国 也也 制制 定定 了了 自自 己己 的的 数数 字字 签签 名名 标标 准准(GB158511995)。)。2004年我国颁布中华人民共和国电子签名法年我国颁布中华人民共和国电子签名法。数字签名的实际应用 在现实生活中用公章、签名等来实现的抗否认,在网上可以借助数字证书的数字签名来实现。如将来的地税局的网上银行,网上审批都可以通过数字签名来保证身份的认证,实现网上业务的防伪造和防抵赖。发送方发送方A A接收方接收方B BA A将加密的消息发送给将加密的消息发送给B B 网网 络络用用 发发 送送 方方 A A的公匙解密的公匙解密密密密密 文文文文 密密密密 文文文文 明明明明 文文文文 明明明明 文文文文 用用 发发 送送 方方 A A的私匙解密的私匙解密数字签名的作用lI.文件发送者即签名者不能否认所发送信文件发送者即签名者不能否认所发送信息的签名;息的签名;II.文件接收者能够验证发送者所发送信息文件接收者能够验证发送者所发送信息签名的真实性;签名的真实性;III.采用数字签名技术,只要保证签名方私采用数字签名技术,只要保证签名方私钥信息的秘密性,就能够保证任何其他人钥信息的秘密性,就能够保证任何其他人都无法对签名进行伪造;都无法对签名进行伪造;IV.因为任何更改都可以导致签名的无效,因为任何更改都可以导致签名的无效,所以不能对发送者的原始信息进行任何更所以不能对发送者的原始信息进行任何更改。改。l数字签名:数字签名是指使用密码算法对数字签名:数字签名是指使用密码算法对待发的数据(报文、票证等)进行加密处待发的数据(报文、票证等)进行加密处理,生成一段信息,附在原文上一起发出,理,生成一段信息,附在原文上一起发出,这段信息类似现实中的签名或印章,接收这段信息类似现实中的签名或印章,接收方对其进行验证,判断原文的真伪。其目方对其进行验证,判断原文的真伪。其目的是为了提供数据完整性保护和抗否认功的是为了提供数据完整性保护和抗否认功能。能。二二、数字签名的模型、数字签名的模型一个数字签名体制包括两个方面的处理:一个数字签名体制包括两个方面的处理:施加签名施加签名和和验证签名验证签名。设设施施加加签签名名的的算算法法为为SIG,产产生生签签名名的的密密钥钥为为K,被被签签名名的的数数据据为为M,产产生生的的签签名名信息为信息为S,则有则有 SIG(M,K)S。二二、数字签名的模型、数字签名的模型设设验验证证签签名名的的算算法法为为 VER,用用VER对对签签名名S进行验证,可鉴别进行验证,可鉴别 S的真假。即的真假。即 真真,当当SSIG(M,K);假假,当,当SSIG(M,K)。VERVER(S S,K K)二二、数字签名的模型、数字签名的模型签签名名函函数数必必须须满满足足以以下下条条件件,否否则则文文件件内内容及签名被篡改或冒充均无法发现:容及签名被篡改或冒充均无法发现:当当MM时,有时,有SIG(M,K)SIG(M,K)。条条件件要要求求签签名名S至至少少和和被被签签名名的的数数据据M一一样样长长。当当M较长时,应用很不方便。较长时,应用很不方便。将将条条件件改改为为:虽虽然然当当MM时时,存存在在SS,但但对对于于给给定定的的M或或S,要要找找出出相相应应的的M在在计计算算上上是不可能的。是不可能的。二二、数字签名的模型、数字签名的模型 签签名名 S 只只能能由由签签名名者者产产生生,否否则则别别人人便便可伪造,于是签名者也就可以抵赖。可伪造,于是签名者也就可以抵赖。收收信信者者可可以以验验证证签签名名S的的真真伪伪。这这使使得得当当签名签名S为假时收信者不致上当。为假时收信者不致上当。签签名名者者也也应应有有办办法法鉴鉴别别收收信信者者所所出出示示的的签签名名是是否否是是自自己己的的签签名名。这这就就给给签签名名者者以以自卫的能力。自卫的能力。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:对于一个公钥密码,如果满足对于一个公钥密码,如果满足E(D(M,K Kd d),),K Ke e)=M,则可确保数据的真实性。则可确保数据的真实性。凡凡是是能能够够确确保保数数据据的的真真实实性性的的公公开开密密钥钥密密码码都都可可用用来来实实现现数数字字签签名名,例例如如RSA密密码码、ELGamal密密码码、椭椭圆圆曲曲线线密密码码ECC等等都都可可以实现数字签名。以实现数字签名。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:为了实现数字签名,应成立管理机构;为了实现数字签名,应成立管理机构;制定规章制度,制定规章制度,统一技术问题,统一技术问题,用户登记注册,用户登记注册,纠纷的仲裁等。纠纷的仲裁等。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:签名通信协议:签名通信协议:A B A用自己的解密钥用自己的解密钥 K KdAdA对数据对数据 M进行签名:进行签名:SA A=D(M,K KdAdA)如果不需要保密,则如果不需要保密,则 A直接将直接将 SA A 发送给用户发送给用户B。如如果果需需要要保保密密,则则A查查到到B的的公公开开的的加加密密钥钥K KeB eB,并用,并用 K KeB eB 对对 SA A 再加密,得到密文再加密,得到密文C,C=E(SA A,K KeBeB)最后,最后,A把把 C发送给发送给 B,并将,并将 SA A或或 C留底。留底。MM三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名B收到后,若是不保密通信,则先查到收到后,若是不保密通信,则先查到A的公的公开加密钥开加密钥K KeA eA,然后用,然后用K KeA eA 对签名进行验证:对签名进行验证:E(SA A,K KeAeA)=E(D(M,K KdAdA),),K KeAeA)=M若若是是保保密密通通信信,则则B先先用用自自己己的的保保密密的的解解密密钥钥K KdB dB 对对C解解密密,然然后后再再查查到到A的的公公开开加加密密钥钥K KeA eA,用用K KeA eA 对签名进行验证:对签名进行验证:D(C,K KdBdB)=D(E(SA A,K KeBeB),),K KdBdB)=SA A E(SA A,K KeAeA)=E(D(M,K KdAdA),),K KeAeA)=M如如果果能能够够恢恢复复出出正正确确的的M,则则说说明明SA A是是A的的签签名名,否则否则SA A不是不是A的签名。的签名。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法、一般方法:签名通信协议安全分析:签名通信协议安全分析:因因为为只只有有A才才拥拥有有K KdA dA,而而且且由由公公开开的的K KeA eA 在在计计算算上上不不能能求求出出保保密密的的解解密密钥钥K KdA dA。因因此此签签名名的的操操作作只只有有A才才能能进进行行,任任何何其其他他人人都都不不能能进进行行。所所以以,K KdA dA 就就相相当当于于A的的印印章章或或指指纹纹,而而SA A 就就是是A对对M的的签签名名。对对此此A不不能能抵抵赖赖,任任何何其其他他人人不不能能伪造。伪造。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:签名通信协议安全分析:签名通信协议安全分析:事事后后如如果果A和和B关关于于签签名名的的真真伪伪发发生生争争执执,则则他他们们应应向向公公正正的的仲仲裁裁者者出出示示留留底底的的签签名名数数据据,由由仲仲裁裁者者当当众众验验证证签签名名,解解决决纠纷。纠纷。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:签名通信协议的问题:签名通信协议的问题:验验证证签签名名的的过过程程就就是是恢恢复复明明文文的的过过程程。而而B事事先先并并不不知知道道明明文文M,否否则则就就用用不不着着通通信信了了。那那末末B怎样判定恢复出的怎样判定恢复出的M是否正确呢?是否正确呢?怎怎样样阻阻止止B或或A用用A以以前前发发给给B的的签签名名数数据据,或或用用A发发给给其其他他人人的的签签名名数数据据来来冒冒充充当当前前A发发给给B的签名数据呢?的签名数据呢?仅仅靠签名本身并不能解决这些问题。仅仅靠签名本身并不能解决这些问题。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:解决问题的一种办法:解决问题的一种办法:合理设计明文的数据格式:合理设计明文的数据格式:M=记记 其中其中 H=。于于是是,发发送送方方以以 为为最最终终报报文文发给接收方,其中发给接收方,其中H H为明文形式。为明文形式。发方标识 收方标识 报文序号 时间 数据 纠错码三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:解决问题的一种办法:解决问题的一种办法:只只要要用用发发送送方方的的公公钥钥验验证证签签名名并并恢恢复复出出正正确确的的附附加加信信息息H=AT,便便可可断断定定明明文文M M是是否正确。否正确。设设附附加加信信息息 H=A T 的的二二进进制制长长度度为为 l l,则错判概率,则错判概率 p pe e22-l-l 。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名1 1、一般方法:、一般方法:解解决决问问题题的的另另一一种种办办法法:对对HASH(M)签名,而不直接对签名,而不直接对M签名。签名。M=S SIG(HASH(M),KdA)传输格式:传输格式:发方标识 收方标识 报文序号 时间 数据 HASH码三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名2、利用利用RSA密码实现数字签名密码实现数字签名:对于对于RSARSA密码密码 D(E(M)=(Me)d=Med=(Md)e=E(D(M)mod n,所以所以RSARSA可同时确保数据的秘密性和真实性。可同时确保数据的秘密性和真实性。因因此此利利用用RSA密密码码可可以以同同时时实实现现数数字字签签名名和数据加密。和数据加密。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名2、利用利用RSA密码实现数字签名密码实现数字签名:设设M为明文,为明文,K KeAeA=是是A A的公开钥,的公开钥,K KdA dA=是是A的保密的私钥的保密的私钥,则则A对对M的签名过程是,的签名过程是,SA A=D(M D(M,K KdAdA)=)=(M M d d)mod nmod n SA A 便是便是A A对对M M的签名。的签名。验证签名的过程是,验证签名的过程是,E E(SA A,K KeAeA)=(M M d d)e e mod n=M mod n=M 三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名3 3、对对RSA数字签名的攻击数字签名的攻击一般攻击一般攻击:设设e e和和n n是是用用户户A A的的公公开开密密钥钥,所所以以任任何何人人都都可可以以获获得得并并使使用用e e和和n n。攻攻击击者者可可随随意意选选择择一一个个数数据据Y Y,并用,并用A A的公钥计算的公钥计算 X X(Y Y)e e mod n mod n因因为为 Y Y(X X)d d mod mod n n ,于于是是可可以以用用Y Y伪伪造造A A的的签名。因为签名。因为Y Y是是A A对对X X的一个有效签名。的一个有效签名。注意:注意:这样的这样的 X X 往往无正确语义!往往无正确语义!三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名3 3、对对RSA数字签名的攻击数字签名的攻击利用已有的签名进行攻击利用已有的签名进行攻击:攻击者选择随机数据攻击者选择随机数据 M M3 3,且且M M3 3=M=M1 1M M2 2 mod n mod n 。攻击者设法让攻击者设法让A A对对M M1 1和和M M2 2签名:签名:S S1 1(M M1 1)d d mod n mod n ,S S2 2(M M2 2)d d mod n mod n于是可以由于是可以由S S1 1和和S S2 2计算出计算出A A对对M M3 3的签名。因为的签名。因为(S(S1 1S S2 2)=(M)=(M1 1)d d(M(M2 2)d d mod n=mod n=(M M3 3)d d mod n=S mod n=S3 3对策:对策:A A不对数据不对数据M M签名,而是对签名,而是对HASH(M)HASH(M)签名。签名。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名3 3、对对RSA数字签名的攻击数字签名的攻击利用已有的签名进行攻击利用已有的签名进行攻击:此时:此时:S S1 1HASH(MHASH(M1 1)d d mod n mod n ,S S2 2HASH(MHASH(M2 2)d d mod n mod n而,而,HASH(MHASH(M1 1)d d HASH(M HASH(M2 2)d dHASH(MHASH(M1 1M M2 2)d d mod n mod n 所以:所以:S S3 3SS1 1S S2 2 于是不能由于是不能由S S1 1和和S S2 2计算出计算出A A对对M M3 3的签名。的签名。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名3 3、对对RSA数字签名的攻击数字签名的攻击攻击签名获得明文攻击签名获得明文:攻击者截获攻击者截获C C,C C(M M)e e mod n mod n 。攻击者选择小的随机数攻击者选择小的随机数r r,计算:计算:x=rx=re e mod n mod n y=xC mod ny=xC mod n ,t=rt=r-1-1 mod n mod n攻击者让攻击者让A A对对y y签名,于是攻击者又获得:签名,于是攻击者又获得:S=y S=yd d mod n mod n 攻击者计算攻击者计算tS=rtS=r-1-1y yd d=r=r-1-1x xd dC Cd d=C=Cd d=M mod n=M mod n对策:对策:A A不对数据不对数据M M签名,而是对签名,而是对HASH(M)HASH(M)签名。签名。三三、利用公钥密码实现数字签名、利用公钥密码实现数字签名4 4、RSA数字签名的应用数字签名的应用:PGP数据数据M M经经MD5MD5处理处理利用利用RSARSA对对HASH(M)HASH(M)签名签名,得到得到 S S使用使用ZIPZIP对对压缩压缩再用再用IDEAIDEA对压缩数据加密:对压缩数据加密:IDEA(ZIP(M,S)IDEA(ZIP(M,S)用用RSARSA对对IDEAIDEA的密钥加密:的密钥加密:RSA(k)RSA(k)形成数据:形成数据:将数据转换成将数据转换成ASCIIASCII码。码。Pretty Good Privacy,是一,是一个基于个基于RSA公公匙加密体系的匙加密体系的邮件加密软件。邮件加密软件。四四、盲签名、盲签名在在普普通通数数字字签签名名中中,签签名名者者总总是是先先知知道道数数据据的的内内容容后后才才实实施施签签名名,这这是是通通常常的的办办公公事事务务所所需需要要的的。但但有有时时却却需需要要某某个个人人对对某某数数据据签签名名,而而又又不不能能让让他他知知道道数数据据的的内内容容。称称这这种种签签名名为为盲盲签签名名(Blind Signature)。在在无无记记名名投投票票选选举举和和数数字字货货币币系系统统中中往往往往需要这种盲签名,需要这种盲签名,盲盲签签名名在在电电子子商商务务和和电电子子政政务务系系统统中中有有着着广泛的应用前景。广泛的应用前景。四四、盲签名、盲签名 盲签名与普通签名相比有两个显著的特点:盲签名与普通签名相比有两个显著的特点:签名者不知道所签署的数据内容;签名者不知道所签署的数据内容;在在签签名名被被接接收收者者泄泄露露后后,签签名名者者不不能能追追踪踪签签名名。即即:如如果果把把签签名名的的数数据据给给签签名名者者看看,他他确确信信是是自自己己的的签签名名,但但他他无无法法知知道道什什么么时时候候对对什什么么样样的的盲盲数数据据施施加加签签名名而而得得到到此此签名数据。签名数据。四四、盲签名、盲签名接接收收者者首首先先将将待待签签数数据据进进行行盲盲变变换换,把把变变换后的盲数据发给签名者。换后的盲数据发给签名者。经签名者签名后再发给接收者。经签名者签名后再发给接收者。接接收收者者对对签签名名再再作作去去盲盲变变换换,得得出出的的便便是是签名者对原数据的盲签名。签名者对原数据的盲签名。这这样样便便满满足足了了条条件件。要要满满足足条条件件,必必须须使使签签名名者者事事后后看看到到盲盲签签名名时时不不能能与与盲盲数数据据联联系系起起来来,这这通通常常是是依依靠靠某某种种协协议议来来实实现的。现的。四四、盲签名、盲签名盲签名原理图:盲签名原理图:盲变换签名去盲变换数据数据盲签名盲签名四四、盲签名、盲签名1、RSA盲签名盲签名 A B A对对消消息息M进进行行盲盲化化处处理理:他他随随机机选选择择盲盲化化整整数数 k,1kM,并计算,并计算 TM(k)e e mod n。A把把T发给发给B。B对对T签名:签名:T d d =(Mk e e)d d mod n =(M)d d k mod n MM四四、盲签名、盲签名1、RSA盲签名盲签名 B把他对把他对T的签名发给的签名发给A。A通过计算得到通过计算得到B对对M的签名。的签名。ST d d /k/k mod n Md d mod n正确性证明:正确性证明:因为因为T d d =(Mk e e)d d=Md d k mod n,所以,所以T d d/k=Md d mod n,而这恰好是,而这恰好是B对消息对消息M的签名。的签名。四四、盲签名、盲签名盲盲签签名名在在某某种种程程度度上上保保护护了了参参与与者者的的利利益益,但但不不幸幸的的是是盲盲签签名名的的匿匿名名性性可可能能被被犯犯罪罪份份子子所所滥滥用用。为为了了阻阻止止这这种种滥滥用用,人人们们又又引引入入了了公公平平盲盲签签名名的的概概念念。公公平平盲盲签签名名比比盲盲签签名名增增加加了了一一个个特特性性,即即建建立立一一个个可可信信中中心心,通通过过可可信信中中心心的的授授权权,签签名名者者可可追追踪踪签名。签名。四四、盲签名、盲签名2 2、双联签名双联签名双双联联签签名名是是实实现现盲盲签签名名的的一一种种变变通通方方法法。它它利利用用协协议议和和密密码码将将消消息息与与人人关关联联起起来来而而并并不不需需要要知知道道消消息息的的内内容容。从从而而实实现现盲盲签签名。名。双双联联签签名名采采用用单单向向HASH函函数数和和数数字字签签名名技术相结合技术相结合,实现盲签名的两个特性。,实现盲签名的两个特性。四四、盲签名、盲签名消息M1HASHHASH消息M2签名H(MH(M1 1)H(MH(M2 2)H(MH(M1 1)+H(M)+H(M2 2)K KdAdAS SA A=SIG(H(M=SIG(H(M1 1)+H(M)+H(M2 2),K),KdAdA)S SA A+M+M1 1S SA A+M+M2 2接受者接受者B B接受者接受者C CA AB BC CMM1 1MM2 2A A注意:表示前后拼接注意:表示前后拼接四四、盲签名、盲签名接接收收者者B和和C都都可可用用发发信信者者A的的公公开开钥钥验验证证双双联签名联签名SA A。,。,获得获得H(M1 1)和和 H(M2 2)。)。B只只能能阅阅读读M1 1,计计算算H(M1 1),通通过过H(M1 1)验验证证M1 1 是是否否正正确确。而而对对消消息息M2 2 却却一一无无所所知知,但但通通过过验验证证签签名名SA A 可可以以相相信信消消息息M2 2 的的存存在。在。同同样样,C也也只只能能阅阅读读M2 2,计计算算H(M2 2),通通过过H(M2 2)验验证证M2 2 是是否否正正确确。而而对对消消息息M1 1 却却一一无无所所知知,但但通通过过验验证证签签名名SA A 可可以以相相信信消消息息M1 1 的存在。的存在。写在最后写在最后成功的基成功的基础在于好的学在于好的学习习惯The foundation of success lies in good habits41谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way讲师:XXXXXX XX年XX月XX日
展开阅读全文