第四章-公钥密码系统_第1页
第四章-公钥密码系统_第2页
第四章-公钥密码系统_第3页
第四章-公钥密码系统_第4页
第四章-公钥密码系统_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Company LOGO第二部分第二部分 信息加密与信息隐藏信息加密与信息隐藏 第第4章章 公钥密码系统公钥密码系统 Company Logo2导读导读v本章我们将讨论解密密钥与加密密钥不同本章我们将讨论解密密钥与加密密钥不同的情况。非对称密码系统的解密密钥与加的情况。非对称密码系统的解密密钥与加密密钥是不同的,一个称为公开密钥,另密密钥是不同的,一个称为公开密钥,另一个称为私人密钥(或秘密密钥),因此一个称为私人密钥(或秘密密钥),因此这种密码体系也称为公钥密码体系。公钥这种密码体系也称为公钥密码体系。公钥密码除可用于加密外,还可用于数字签名。密码除可用于加密外,还可用于数字签名。中华人民共

2、和国电子签名法中华人民共和国电子签名法已于已于20052005年年4 4月月1 1日实行。日实行。Company Logo3Contents公钥密码概述公钥密码概述1数字签名的算法数字签名的算法5 RSARSA密码系统密码系统2Diffie-HellmanDiffie-Hellman密钥交换密钥交换3数字签名数字签名4Company Logo4 公钥密码概述公钥密码概述v公钥的起源公钥的起源公钥密码体制于公钥密码体制于19761976年由年由W. DiffieW. Diffie和和M. M. HellmanHellman提出,同时,提出,同时,R. MerkleR. Merkle也独立提出了这

3、也独立提出了这一体制。一体制。这种密码体制采用了一对密钥这种密码体制采用了一对密钥加密密钥和解加密密钥和解密密钥密密钥( (且从解密密钥推出加密密钥是不可行的且从解密密钥推出加密密钥是不可行的) ),这一对密钥中,一个可以公开这一对密钥中,一个可以公开( (称之为称之为公钥公钥) ),另,另一个为用户专用一个为用户专用( (私钥私钥) )。公开密钥密码体制的产生主要是因为两个方面的公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥原因,一是由于常规密钥密码体制的密钥分配分配(distribution)(distribution)问题,另一是由于对数字签名的问题,另一

4、是由于对数字签名的需求。需求。Company Logo5公钥密码概述公钥密码概述v陷门单向函数陷门单向函数公钥密码系统是基于陷门单向函数的概念。公钥密码系统是基于陷门单向函数的概念。 单向函数是易于计算但求逆困难的函数,单向函数是易于计算但求逆困难的函数,而而陷门单向函数陷门单向函数是在不知道陷门信息情况是在不知道陷门信息情况下求逆困难,而在知道陷门信息时易于求下求逆困难,而在知道陷门信息时易于求逆的函数。逆的函数。Company Logo6公钥密码概述公钥密码概述v公钥密码系统可用于以下三个方面:公钥密码系统可用于以下三个方面: (1) 通信保密:此时将公钥作为加密密钥,私钥通信保密:此时将

5、公钥作为加密密钥,私钥作为解密密钥,通信双方不需要交换密钥就可以作为解密密钥,通信双方不需要交换密钥就可以实现保密通信。实现保密通信。 Alice的公钥Joy明文输入 加密算法,如RSA传输密文解密算法明文输出Alice的私钥Bob的公钥环TedAliceMikeCompany Logo7公钥密码概述公钥密码概述(2) (2) 数字签名:将私钥作为加密密钥,公钥作为解数字签名:将私钥作为加密密钥,公钥作为解 密密钥,可实现由一个用户对数据加密而使多个密密钥,可实现由一个用户对数据加密而使多个用户解读。用户解读。Bob的公钥Joy明文输入 加密算法,如RSA传输密文解密算法明文输出Bob的私钥A

6、lice的公钥环TedBobMikeCompany Logo8公钥密码概述公钥密码概述(3) (3) 密钥交换:通信双方交换会话密钥,以密钥交换:通信双方交换会话密钥,以 加密通信双方加密通信双方后续连接后续连接所传输的信息。所传输的信息。 每次逻辑连接使用一把新的会话密钥,每次逻辑连接使用一把新的会话密钥, 用完就丢弃。用完就丢弃。 Company Logo9公钥密码概述公钥密码概述v 公开密钥算法的特点公开密钥算法的特点: :(1 1)发送者用加密密钥)发送者用加密密钥PKPK对明文对明文X X加密后,在接收者加密后,在接收者用解密密钥用解密密钥SKSK解密,即可恢复出明文,或写为:解密,

7、即可恢复出明文,或写为:D DSKSK(E(EPKPK(X)(X) X X 解密密钥是接收者专用的秘密密钥,对其他人解密密钥是接收者专用的秘密密钥,对其他人都保密。都保密。此外,加密和解密的运算可以对调,即此外,加密和解密的运算可以对调,即 E EPKPK(D(DSKSK(X) (X) X X(2 2)加密密钥是公开的,但不能用它来解密,即)加密密钥是公开的,但不能用它来解密,即D DPKPK(E(EPKPK(X)(X) X X Company Logo10公钥密码概述公钥密码概述(3 3)在计算机上可以容易地产生成对的)在计算机上可以容易地产生成对的PKPK和和SKSK。 (4 4)从已知的

8、)从已知的PKPK实际上实际上不可能推导出不可能推导出SKSK,即,即从从PKPK到到SKSK是是“计算上计算上不可能的不可能的”。(5 5)加密和解密算法都是公开的。)加密和解密算法都是公开的。Company Logo11ContentsRSA密码系统密码系统2数字签名的算法数字签名的算法5公钥密码概述公钥密码概述1Diffie-HellmanDiffie-Hellman密钥交换密钥交换3数字签名数字签名4Company Logo12 RSA密码系统密码系统v公开密钥算法公开密钥算法RSARSA ( (根据其发明者命名,即根据其发明者命名,即R. R. Rivest, A. ShamirRi

9、vest, A. Shamir和和L. Adleman)L. Adleman)。 vRSARSA密码系统的安全性基于大数分解的困难性。密码系统的安全性基于大数分解的困难性。 v求一对大素数的乘积很容易,但要对这个乘积进求一对大素数的乘积很容易,但要对这个乘积进行因式分解则非常困难,因此,行因式分解则非常困难,因此,可以把一对大素可以把一对大素数的乘积公开作为公钥,而把素数作为私钥,数的乘积公开作为公钥,而把素数作为私钥,从从而由一个公开密钥和密文中恢复出明文的难度等而由一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积。价于分解两个大素数之积。v公钥密码系统一般都涉及数论的知识,如素

10、数、公钥密码系统一般都涉及数论的知识,如素数、欧拉函数、中国剩余定理等等。欧拉函数、中国剩余定理等等。Company Logo131000以内的素数以内的素数(部分)(部分)311 * 709 =220499220499= ? * ?Company Logo14RSA密码系统密码系统(1)加密算法)加密算法若用整数若用整数X表示明文,用整数表示明文,用整数Y表示密表示密文文(X和和Y均小于均小于n),则加密和解密运,则加密和解密运算为:算为: 加密:加密:Y Xe mod n解密:解密:X Yd mod n Company Logo15RSA密码系统密码系统(2 2)密钥的产生)密钥的产生 现

11、在讨论现在讨论RSARSA公开密钥密码体制中每个参数是如公开密钥密码体制中每个参数是如何选择和计算的。何选择和计算的。 计算计算n n。用户秘密地选择两个大素数。用户秘密地选择两个大素数p p和和q q,计,计 算出算出n n pqpq。n n称为称为RSARSA算法的模数。算法的模数。 计算计算( (n n) )。用户再计算出。用户再计算出n n的欧拉函数的欧拉函数 ( (n n) ) ( (p p 1)( 1)(q q 1) 1) 。 选择选择e e。用户从。用户从1, 1, ( (n n) ) 1 1中选择一个中选择一个与与 ( (n n) )互素的数互素的数e e作为公开的加密指数。作

12、为公开的加密指数。Company Logo16RSA密码系统密码系统 计算计算d d作为解密指数。用户计算出满足下式的作为解密指数。用户计算出满足下式的d d ed ed 1mod(n)1mod(n) 即:即:(ed 1) mod(n)=0(ed 1) mod(n)=0由此推出由此推出 ed =t (n)+1 (ed =t (n)+1 (t t 是大于等于是大于等于1 1的正整数)的正整数) 得出所需要的公开密钥和秘密密钥:得出所需要的公开密钥和秘密密钥: 公开密钥公开密钥( (即加密密钥即加密密钥)PK )PK e, n e, n 秘密密钥秘密密钥( (即解密密钥即解密密钥)SK )SK d

13、, n d, n 其中,其中,p p、q q、(n)(n)和和d d就是秘密的陷门就是秘密的陷门( (四项四项 并不是相互独立的并不是相互独立的) ),这些信息不可以泄露。,这些信息不可以泄露。Company Logo17RSA密码系统密码系统vRSA加密消息加密消息m时时(这里假设这里假设m是以十进是以十进制表示的制表示的),首先将消息分成大小合适的数,首先将消息分成大小合适的数据分组,然后对分组分别进行加密。每个据分组,然后对分组分别进行加密。每个分组的大小应该比分组的大小应该比n小。小。v设设ci为明文分组为明文分组mi加密后的密文,则加密加密后的密文,则加密公式为公式为ci=mie (

14、mod n)v解密时,对每一个密文分组进行如下运算:解密时,对每一个密文分组进行如下运算: mi=cid (mod n)Company Logo18RSA密码系统密码系统v例子例子:说明说明RSA的加的加/解密过程。解密过程。 选选p=5,q=11,则,则n=pq=55,(n)=(p1)(q1)=40v明文空间为在闭区间明文空间为在闭区间1, 54内且不能被内且不能被5和和11整除的数。如果明文整除的数。如果明文m同同n不是互为不是互为素数,就有可能出现消息暴露情况,这样素数,就有可能出现消息暴露情况,这样我们就可能通过计算我们就可能通过计算n与加密以后的与加密以后的m的最的最大公约数来分解出

15、大公约数来分解出n。Company Logo19RSA密码系统密码系统v一个明文同一个明文同n有公约数的概率小于有公约数的概率小于1/p+1/q,因此,对于大的,因此,对于大的p和和q来说,来说,这种概率是非常小的。选择这种概率是非常小的。选择e=7,则,则d=23。由加。由加/解密公式可以得到加密表如解密公式可以得到加密表如表表4-1所示。所示。 Company Logo20加加 密密 表表Company Logo21ContentsDiffie-HellmanDiffie-Hellman密钥交换密钥交换3数字签名的算法数字签名的算法5 RSARSA密码系统密码系统2公钥密码概述公钥密码概述

16、1数字签名数字签名4Company Logo22Diffie-Hellman密钥交换密钥交换vDiffie-Hellman算法算法 Diffie-HellmanDiffie-Hellman算法是第一个公开密钥算算法是第一个公开密钥算法,发明于法,发明于19761976年。年。Diffie-HellmanDiffie-Hellman算法算法能够用于能够用于密钥分配密钥分配,但不能用于加密或解,但不能用于加密或解密信息。密信息。Company Logo23Diffie-Hellman密钥交换密钥交换vDiffie-HellmanDiffie-Hellman算法的安全性在于在有限域上计算法的安全性在

17、于在有限域上计算离散对数非常困难。算离散对数非常困难。 v定义素数定义素数p p的本原根的本原根(Primitive Root)(Primitive Root)为一种能生为一种能生成成1 1p p1 1所有数的一个数,即如果所有数的一个数,即如果a a为为p p的本原根,的本原根,则则a mod pa mod p,a a2 2 mod p mod p,a ap p1 1 mod p mod pv两两互不相同,构成两两互不相同,构成1 1p p1 1的全体数的一个排列的全体数的一个排列( (例如例如p=11p=11,a=2)a=2)。对于任意数。对于任意数b b及素数及素数p p的本原根的本原根

18、a a,可以找到一个惟一的指数,可以找到一个惟一的指数i i,满足:,满足:b = ab = ai i mod p, 0ip mod p, 0ip1 1v 称指数称指数i i为以为以a a为底模为底模p p的的b b的离散对数。的离散对数。Company Logo24Diffie-Hellman密钥交换密钥交换v 如果如果AliceAlice和和BobBob想在不安全的信道上交换密钥,他们可以采想在不安全的信道上交换密钥,他们可以采用如下步骤:用如下步骤:(1)Alice(1)Alice和和BobBob协商一个大素数协商一个大素数p p及及p p的本原根的本原根a a,a a和和p p 可以公

19、开;可以公开;(2)Alice(2)Alice秘密产生一个随机数秘密产生一个随机数x x,计算,计算X=aX=ax x mod p mod p, 然后把然后把X X发送给发送给BobBob;(3)Bob(3)Bob秘密产生一个随机数秘密产生一个随机数y y,计算,计算Y= aY= ay y mod p mod p,然,然 后把后把Y Y发送给发送给AliceAlice;( (4)Alice4)Alice计算计算k=Yk=Yx x mod p mod p;(5)Bob(5)Bob计算计算k=Xk=Xy y mod p mod p。 Company Logo25Diffie-Hellman密钥交换

20、密钥交换 k k和和kk是恒等的,因为是恒等的,因为 k= Y k= Yx x mod p=(a mod p=(ay y) )x x mod p=(a mod p=(ax x) )y y mod p mod p = X = Xy y mod p = k mod p = kv线路上的搭线窃听者只能得到线路上的搭线窃听者只能得到a、p、X和和Y的值,的值,除非能计算离散对数,恢复出除非能计算离散对数,恢复出x和和y,否则就无法,否则就无法得到得到k,因此,因此,k为为Alice和和Bob独立计算的秘密独立计算的秘密密钥。密钥。Company Logo26Diffie-Hellman密钥交换密钥交换

21、v 下面用一个例子来说明上述过程。下面用一个例子来说明上述过程。AliceAlice和和BobBob需进行密钥需进行密钥交换,如图交换,如图4-34-3所示,则:所示,则: 二者协商后决定采用素数二者协商后决定采用素数p=353p=353及其本原根及其本原根a=3a=3。 Alice Alice选择随机数选择随机数x=97x=97, 计算计算X=3X=39797 mod 353 mod 3534040,并发送给,并发送给BobBob。 Bob Bob选择随机数选择随机数y=233y=233, 计算计算Y=3Y=3233233 mod 353 mod 353248248,并发送给,并发送给Ali

22、ceAlice。 Alice Alice计算计算k=Yk=Yx x mod p mod p2482489797 mod 353=160 mod 353=160。 Bob Bob计算计算k=Xk=Xy y mod p mod p4040233233 mod 353=160 mod 353=160。 k k和和kk即为秘密密钥即为秘密密钥. .Company Logo27Diffie-Hellman密钥交换密钥交换Alice产生随机数xBob产生随机数y计算X=ax mod p计算Y=ay mod p计算k=Yx mod p计算k=Xy mod pXYCompany Logo28中间人攻击中间人攻

23、击vDiffie-HellmanDiffie-Hellman密钥交换容易遭受密钥交换容易遭受中间人攻击中间人攻击:(1)(1)AliceAlice发送公开值发送公开值(a(a和和p)p)给给BobBob,攻击者,攻击者CarolCarol截获这些值并把自己产生的公开值发送给截获这些值并把自己产生的公开值发送给BobBob。(2)(2)BobBob发送公开值给发送公开值给AliceAlice,CarolCarol截获它然后把截获它然后把自己的公开值自己的公开值(a(a和和p)p)发送给发送给AliceAlice。(3)(3)AliceAlice和和CarolCarol计算出二人之间的共享密钥计算

24、出二人之间的共享密钥k1k1。(4)(4)BobBob和和CarolCarol计算出另外一对共享密钥计算出另外一对共享密钥k2k2。Company Logo29中间人攻击中间人攻击AliceBobCarola,pa,pk1k2Company Logo30中间人攻击中间人攻击vAlice用密钥用密钥k1给给Bob发送消息;发送消息;Carol截获消截获消息后用息后用k1解密就可读取消息;然后将获得的明文解密就可读取消息;然后将获得的明文消息用消息用k2加密加密(加密前可能会对消息作某些修改加密前可能会对消息作某些修改)后发送给后发送给Bob。v对对Bob发送给发送给Alice的消息,的消息,Ca

25、rol同样可以读同样可以读取和修改。造成中间人攻击的原因是取和修改。造成中间人攻击的原因是Diffie-Hellman密钥交换密钥交换不认证对方不认证对方。利用数字签名。利用数字签名可以挫败中间人攻击。可以挫败中间人攻击。Company Logo31认证的认证的Diffie-Hellman密钥交换密钥交换v密钥交换双方通过数字签名和公钥证书相互认证密钥交换双方通过数字签名和公钥证书相互认证可以挫败中间人攻击。在密钥交换之前,密钥交可以挫败中间人攻击。在密钥交换之前,密钥交换的双方换的双方AliceAlice和和BobBob各自拥有公钥各自拥有公钥/ /私钥对和公开私钥对和公开密钥证书,密钥证书

26、,AliceAlice和和BobBob签名算法和验证算法分别签名算法和验证算法分别为为SigSigA A、SigSigB B、VerVerA A、VerVerB B。可信中心。可信中心TATA也有一个也有一个签名方案,签名算法为签名方案,签名算法为SigSigTATA,公开的签名验证算,公开的签名验证算法为法为VerVerTATA,AliceAlice和和BobBob持有一个证书:持有一个证书:C(A)=(ID(A), VerC(A)=(ID(A), VerA A,Sig,SigTATA(ID(A),Ver(ID(A),VerA A)C(B)=(ID(B), VerC(B)=(ID(B), V

27、erB B,Sig,SigTATA(ID(B),Ver(ID(B),VerB B)v其中其中ID(A)ID(A)为用户身份信息为用户身份信息, ,证书证书C(A)C(A)由由TATA事先签事先签发发 Company Logo32AliceAlice和和BobBob产生共享秘密密钥的过程产生共享秘密密钥的过程(1) Alice(1) Alice秘密产生一个随机数秘密产生一个随机数x x,计算,计算X=aX=ax x mod mod p p,然后把,然后把X X发送给发送给BobBob; (2) Bob(2) Bob秘密产生一个随机数秘密产生一个随机数y y,首先计算,首先计算Y= aY= ay

28、y mod mod p p,然后计算,然后计算 k=Xk=Xy y mod pmod p 和和y yB B=Sig=SigB B(Y, X),(Y, X),最后,最后,BobBob把把(C(B),Y, y(C(B),Y, yB B) )发送给发送给AliceAlice;(3) Alice(3) Alice计算计算k=Yk=Yx x mod p mod p,并使用,并使用VerVerB B 验证验证y yB B ,使用使用VerVerTATA验证验证C(B)C(B);计算;计算y yA A=Sig=SigA A(Y, X),(Y, X),并将结并将结果果 (C(A),y(C(A),yA A) )

29、 发给用户发给用户BobBob(4) Bob(4) Bob使用使用VerVerA A 验证验证y yA A, ,使用使用VerVerTATA验证验证C(A)C(A)。Company Logo33AliceAlice和和BobBob产生共享秘密密钥的过程产生共享秘密密钥的过程v简要分析抗击中间入侵攻击的过程。简要分析抗击中间入侵攻击的过程。v若攻击者若攻击者CarolCarol插在用户插在用户AliceAlice和和BobBob之间,显然之间,显然CarolCarol可能截获可能截获AliceAlice发送的发送的X X,并将其替换为,并将其替换为X X =a=axxmod p,mod p,然后

30、然后CarolCarol截获截获BobBob发送的发送的Y= aY= ay y mod mod p p 和和SigSigB B(Y, X(Y, X ) )。攻击者。攻击者CarolCarol有可能将有可能将Y Y替换为替换为Y Y =a=ayymod p,mod p,或将或将SigSigB B(Y, X(Y, X ) )替换为替换为SigSigB B(Y(Y , , X)X),但由于,但由于CarolCarol不知道不知道BobBob的签名算法的签名算法SigSigB B,所以所以他无法计算他无法计算SigSigB B(Y(Y , X), X)。同样,。同样,CarolCarol也无法知也无法

31、知道道A A 的签名的签名SigSigA A。这样就达到了抗击中间人攻击。这样就达到了抗击中间人攻击的目的。的目的。Company Logo34三方或多方三方或多方Diffie-HellmanCompany Logo35三方或多方三方或多方Diffie-Hellman(1) Alice选取一个大随机整数选取一个大随机整数x,计算,计算X=ax mod p,然后把,然后把X发送给发送给Bob;(2) Bob选取一个大随机整数选取一个大随机整数y,计算,计算Y= ay mod p,然后把,然后把Y发送给发送给Carol;(3) Carol选取一个大随机整数选取一个大随机整数z,计算,计算Z= az

32、 mod p,然后把,然后把Z发送给发送给Alice;(4) Alice计算计算Z= Zx mod p并发送并发送Z给给Bob;(5) Bob计算计算X= Xy mod p并发送并发送X给给Carol;Company Logo36三方或多方三方或多方Diffie-Hellman(6) Carol计算计算Y= Yz mod p并发送并发送Y给给Alice;(7) Alice计算计算k= Yx mod p;(8) Bob计算计算k= Zy mod p;(9) Carol计算计算k= Xz mod p。 共享秘密密钥共享秘密密钥k等于等于axyz mod p。这个协议很容。这个协议很容易扩展到更多方

33、。易扩展到更多方。Company Logo37Contents数字签名数字签名4数字签名的算法数字签名的算法5 RSARSA密码系统密码系统2Diffie-HellmanDiffie-Hellman密钥交换密钥交换3公钥密码概述公钥密码概述1Company Logo38数字签名数字签名v数字签名概述数字签名概述 在文件上手写签名长期以来被用作作者身份的证在文件上手写签名长期以来被用作作者身份的证明,或表示同意文件的内容。签名为什么会如此明,或表示同意文件的内容。签名为什么会如此引人注目呢?引人注目呢? 1. 1.签名是可信的。签名是可信的。 2. 2.签名不可伪造。签名不可伪造。 3. 3.签

34、名不可重用。签名不可重用。 4. 4.签名的文件是不可改变的。签名的文件是不可改变的。 5. 5.签名是不可抵赖的。签名是不可抵赖的。Company Logo39数字签名数字签名v在现实生活中,关于签名的这些陈述没有一个是在现实生活中,关于签名的这些陈述没有一个是完全真实的。完全真实的。 公钥密码学使得数字签名成为可能。用私钥加密公钥密码学使得数字签名成为可能。用私钥加密信息,这时就称为信息,这时就称为对信息进行数字签名对信息进行数字签名。将密文。将密文附在原文后,称为附在原文后,称为数字签名数字签名。其他人用相应的公。其他人用相应的公钥去解密密文,将解出的明文与原文相比较,如钥去解密密文,将

35、解出的明文与原文相比较,如果相同则验证成功,这称为果相同则验证成功,这称为验证签名验证签名。 现在,已有很多国家制订了电子签名法。现在,已有很多国家制订了电子签名法。中华中华人民共和国电子签名法人民共和国电子签名法已于已于20042004年年8 8月月2828日第十日第十届全国人民代表大会常务委员会第十一次会议通届全国人民代表大会常务委员会第十一次会议通过,并已于过,并已于20052005年年4 4月月1 1日开始施行。日开始施行。Company Logo40数字签名的方法数字签名的方法基本的数字签名协议是简单的:基本的数字签名协议是简单的:1.Alice1.Alice用她的私钥对文件加密,从

36、而对文件签名。用她的私钥对文件加密,从而对文件签名。2.Alice2.Alice将签名的文件传给将签名的文件传给BobBob。3.Bob3.Bob用用AliceAlice的公钥解密文件,从而验证签名。的公钥解密文件,从而验证签名。v这个协议不需要第三方去签名和验证。甚至协议这个协议不需要第三方去签名和验证。甚至协议的双方也不需要第三方来解决争端;如果的双方也不需要第三方来解决争端;如果BobBob不能不能完成第完成第3 3步,那么他知道签名是无效的。步,那么他知道签名是无效的。Company Logo41这个协议也满足我们期待的特征:这个协议也满足我们期待的特征:1.1.签名是可信的签名是可信

37、的。当。当BobBob用用AliceAlice的公钥验证信息时,的公钥验证信息时,他知道是由他知道是由AliceAlice签名的。签名的。2.2.签名是不可伪造的签名是不可伪造的。只有。只有AliceAlice知道她的私钥。知道她的私钥。3.3.签名是不可重用的签名是不可重用的。签名是文件的函数,并且不。签名是文件的函数,并且不可能转换成另外的文件。可能转换成另外的文件。4.4.被签名的文件是不可改变的被签名的文件是不可改变的。如果文件有任何改。如果文件有任何改变,文件就不可能用变,文件就不可能用AliceAlice的公钥验证成功。的公钥验证成功。5.5.签名是不可抵赖的签名是不可抵赖的。Bo

38、bBob不用不用AliceAlice的帮助就能验的帮助就能验证证AliceAlice的签名。的签名。Company Logo42数字签名的方法数字签名的方法 在实际的实现过程中,采用公钥密码算法对长文在实际的实现过程中,采用公钥密码算法对长文件签名效率太低。为了节约时间,数字签名协议件签名效率太低。为了节约时间,数字签名协议经常和单向散列函数一起使用。经常和单向散列函数一起使用。AliceAlice并不对整个并不对整个文件签名,只对文件的散列值签名。文件签名,只对文件的散列值签名。1.Alice1.Alice产生文件的散列值。产生文件的散列值。2.Alice2.Alice用她的私钥对散列值加密

39、,凭此表示对文用她的私钥对散列值加密,凭此表示对文件签名。件签名。3.Alice3.Alice将文件和散列签名送给将文件和散列签名送给BobBob。4.Bob4.Bob用用AliceAlice发送的文件产生文件的散列值,然后发送的文件产生文件的散列值,然后用用AliceAlice的公钥对签名的散列值解密。如果解密的的公钥对签名的散列值解密。如果解密的散列值与自己产生的散列值相同,签名就是有效散列值与自己产生的散列值相同,签名就是有效的。的。Company Logo43多重签名多重签名采用单向散列函数,是容易的:采用单向散列函数,是容易的:1.Alice1.Alice对文件的散列值签名。对文件的

40、散列值签名。2.Bob2.Bob对文件的散列值签名。对文件的散列值签名。3.Bob3.Bob将他的签名交给将他的签名交给AliceAlice。4.Alice4.Alice把文件、她的签名和把文件、她的签名和BobBob的签名发给的签名发给CarolCarol。5.Carol5.Carol验证验证AliceAlice和和BobBob的签名。的签名。 Alice Alice和和BobBob能同时或顺序地完成能同时或顺序地完成1 1和和2 2,CarolCarol可可以只验证其中一人的签名而不用验证另一人的签以只验证其中一人的签名而不用验证另一人的签名。名。Company Logo44带加密的数字签

41、名带加密的数字签名v通过把公钥密码和数字签名结合起来,我们能够通过把公钥密码和数字签名结合起来,我们能够产生一个协议,可把数字签名的真实性和加密的产生一个协议,可把数字签名的真实性和加密的安全性合起来。想象你写的一封信:签名提供了安全性合起来。想象你写的一封信:签名提供了原作者的证明,而信封提供了秘密性。原作者的证明,而信封提供了秘密性。消息M用Alice的私钥签名用Bob的公钥加密EB(SA(M)消息M用Bob的私钥解密用Alice的公钥验证EB(SA(M)Company Logo45带加密的数字签名带加密的数字签名1.Ailce1.Ailce用她的私钥对信息签名:用她的私钥对信息签名:S

42、SA A(M)(M)2.Alice2.Alice用用BobBob的公钥对签名的信息加密,然后送给的公钥对签名的信息加密,然后送给BobBob:E EB B(S(SA A(M)(M)3.Bob3.Bob用他的私钥解密:用他的私钥解密:D DB B(E(EB B(S(SA A(M)=S(M)=SA A(M)(M)4.Bob4.Bob用用AliceAlice的公钥验证并且恢复出信息:的公钥验证并且恢复出信息:V VA A(S(SA A(M)=M(M)=MCompany Logo46Contents数字签名的算法数字签名的算法5数字签名数字签名4 RSARSA密码系统密码系统2Diffie-Hellm

43、anDiffie-Hellman密钥交换密钥交换3公钥密码概述公钥密码概述1Company Logo47数字签名算法数字签名算法DSADSAv 19911991年年8 8月,美国月,美国NISTNIST公布了用于数字签名标准公布了用于数字签名标准DSSDSS的数字的数字签名算法签名算法DSADSA,19941994年年1212月月1 1日正式采用为美国联邦信息处日正式采用为美国联邦信息处理标准。理标准。v DSADSA中用到了以下参数:中用到了以下参数:(1) (1) p p为为L L位长的素数,其中,位长的素数,其中,L L为为51251210241024之间且之间且是是6464倍数的数。倍数的数。(2) (2) q q是是160160位长的素数,且为位长的素数,且为p-1p-1的因子。的因子。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论