- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3公钥密码体制
公钥密码体制 公钥密码体制的基本原理 公钥密码体制采用了两个不同的密钥,这对在公开的网络上进行保密通信、密钥分配、数字签名和认证有着深远的影响。 对称密码的不足 密钥管理量的困难:两两分别用一个密钥时,则n个用户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空间急剧增大。如:n=100 时,共4,995个;n=5000时增加到12,497,500个。 密钥建立问题:对协商密钥的信道的安全性的要求比正常的传送消息的信道的安全性要高。 数字签名的问题:传统加密算法无法实现抗抵赖的需求。 公钥密码体制的起源 公钥密码又称为双钥密码和非对称密码,是1976年由Diffie和Hellman在其“密码学新方向”一文中提出的,文献:W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976,PP.644-654 RSA公钥算法是由Rivest,Shamir和Adleman在1978年提出来的, 见Communitions of the ACM. Vol.21.No.2. Feb.1978, PP.120-126 公钥密码体制加密框图 公钥密码体制认证框图 部分数学基础 乘法逆元 费尔玛(Fermat)定理 欧拉函数 欧拉定理 RSA算法 通过三个方面研究: RSA算法描述 RSA实现中的问题 RSA的应用 RSA算法 1977年由Ron Rivest、Adi Shamir和Len Adleman发明,1978年公布是一种分组加密算法,明文和密文在0-(n-1)之间,n是一个正整数;应用最广泛的公钥密码算法只在美国申请专利,且已于2000年9月到期。 RSA体制的安全性基于数论中的Euler定理和计算复杂性理论中的下述论断:求两个大素数的乘积是很容易计算的,但要分解两个大素数的乘积,求出它们的素因子则是非常困难的。 RSA算法描述 1、密钥生成 (1)随机选取两个大素数p 、q,令n=pq,随机选取两个整数e和d。使得e,d与 (n)互素,且 (2)公开n,e,作为E,记为E=(e,n) (3)保密p,q,d与 (n),作为D,记为D=(d,n) 2、加密过程 (1)在公开密钥数据库中,查得用户U的公钥:E(n,e); (2)将明文分组 ,使得每个 ≤ n,i=1,2…r (3)对每一组明文作加密变换 (4)将密文 传送给用户U。 ? 3、解密过程 (1)先对每一组明文做解密变换: (2)合并分组得到明文 证明解密过程的正确性: 讨论RSA算法的安全性: 在算法中,e和n作为公开密钥,任何人都可以用来加密消息;而p、q、d和 是保密的,用来解密密文,只有私钥拥有者知道,也就是只有接收者知道。 由于n为两个大素数的乘积,又n=pq,那么可以得到Φ(n)=(p-1)(q-1)。发信者并不知道n的两个素因子p和q,就无法计算Φ(n)。 又由于ed≡1 modΦ(n),d是通过此式计算出来的,因此无法计算d,所以就无法进行解密。 这样,只有秘密钥拥有者才可以进行密文的解密,其他任何人都不能。 因式分解的计算量 RSA参数的选择 RSA系统是一个将安全性植于因子分解的系统。很明显地,在公开密钥(e,n)中,若n能被因子分解,则在模n中,φ(n)=(p-1)(q-1)就无从隐藏,使得解密密钥d不再是秘密,进而整个系统不安全。 因此,在使用RSA系统时,对于公开密钥n的选择非常重要。必须使得n公开后,任何人无法从n得到T。此外,对于公钥e与解密密钥d,也需要有所限制。否则在使用上可能会导致系统被破解. 1、p与q必须是强素数 一素数p若满足以下条件,则此素数为强素数。 (1)存在两个大素数 和 ,使得 (2)存在四个大素数 、 、 和 ,使得 2、p与q的差必须很大 3、p与q应大到使得因子分解N为计算上不可能 4、e不可以太小 5、d的长度不能太小 RSA算法举例: 1、设p=43,q=59,取e=13。 求公钥和私钥分别是多少? RSA算法举例: 解:p=43,q=59,n=pq=43×59=2539 φ(n)=42×58=2436, 取e=13,解方程d
文档评论(0)