- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章公开密钥密码体制;4.1 公钥密码体制的基本概念;Diffie和Hellmna于1976年在《密码学的新方向》中首次提出了公钥密码的观点,即为每个用户分配两个相互匹配又相互独立的密钥,其中:
一个密钥被公开,称为公开密钥(公钥),用于加密。
另一个密钥被保密,称为私有密钥(私钥),用于解密。
所有用户的公钥均登记在类似电话号码簿的密钥本上。
当要给用户A发送加密信息时,需要在密码本上查找A用户的公钥,然后加密信息,并发给用户A。
用户A接收到密文之后,用自己的私钥进行解密即可得到明文。;1977年由Rivest(李维斯特)、Shamir(沙米尔)和Adleman(埃德曼)共同提出了第一个公钥密码算法(即RSA密码体制),是公钥密码中最优秀的加密算法,被誉为密码学发展史上的里程碑之一。此后,人们基于不同的计算问题提出了大量的公钥密码算法。
在公钥密码体制(Public-Key Cryptosystem)中,加密和解密使用两把不同的密钥,即公钥(Public Key)和私钥(Private Key)。
公钥可以被任何人知道,用于加密消息以及验证签名;
私钥仅仅自己知道,用于解密消息和签名。
因此又称其为非对称密码体制(Asymmetric Cryptosystem)。
如果能从公开的加密密钥推出解密密钥,那么这种密码体制就是不安全的。;与对称密码体制所采取的技术不同,公钥密码算法是基于数学函数,而不是基于代换和置换。因此要构造一个公钥密码体制时,必须寻找符合下列条件的函数f(x):
(1)对于f(x)定义域中的每个x,使f(x)=y,均存在函数f -1 (y),使f-1 (f(x))=x;
----------相当于加密和解密变换均存在
(2)f(x)和f -1 (y)都容易计算;
---------相当于加密和解密过程都容易进行
(3)已知f(x),求出f -1 (y)非常困难。
--------相当于由密文推出明文困难。;4.1.2加密模型和认证模型;如图4-1所示,假设用户A向用户B发送消息M。
在发送方,用户A首先用用户B的公钥PUB加密消息M,得到密文: ;
在接收方,用户B用自己的私钥PRB解密密文C,得到明文:
由于只有B知道PRB,所以其他人不能解密C。;图4-1 公钥加密模型 ;4.1.2加密模型和认证模型;如图4-2所示,
用户A首先用自己??私钥PRA对消息M做解密变换,即数字签名: ;
在接收方,用户B用A的公钥PUA对C做加密变换,即验证A的数字签名: 。;图4-2 公钥认证模型 ;4.2 RSA密码体制;1、密钥的产生
(1)随机选择两个大素数(如100位十进制数)p和q,令n=p×q;
(2)计算欧拉函数(见定理2.1.1)
?(n)=n(1-1/p)( 1-1/q)=(p -1)(q -1) ;
(3)选择 e使得1e?(n),且gcd(e, ?(n))=1;
(4)计算d
e?d≡1 mod ?(n), 且 0≤d≤n
(5)公开公钥:PU={e, n};
(6)保存私钥:PR={d, p, q}。;2、加密过程
(1)在公钥库中查得用户U的公钥:PU={e, n};
(2)将明文分组m=m1m2…mr,使得0≤min,i=1,2,… ,r;
(3)对明文分组mi作加密变换:
ci=E(mi) ≡ mie mod n, i=1,2,… ,r
(4)将密文c1 c2…cr传送给用户U。
3、解密过程
(1)先对每组密文做解密变换:
mi=D(ci) ≡cid mod n
(2)合并分组得到明文m=m1m2…mr。;图4-3 RSA算法;【例4-1】选择素数: p=47 和 q=71,并选取e=79,求出RSA算法的公钥和私钥。; 回代:
1 =19-6×3
=19-6×(60-3×19)=19×19-6×60
=19×(79-1×60)-6×60=19×79-25×60
=19×79-25×(3220-40×79)
=1019×79-25×3220
两边同时对模3220进行求余运算得
1019×79≡1 mod 3220
于是d =1019
(4)公开公钥PU ={e, n} = {79,3337}
保存私钥PR ={d, p, q} = {1019,47,71};;(5)假设消息为 m = 6882326879666683,进行分组,分组的位数比N要小,我们选取m1 = 688,m2 = 232,m3 = 687,m
文档评论(0)