【2018-08-30】TLS简单笔记-RSA算法简单介绍

发布时间:2026/7/21 8:57:27
【2018-08-30】TLS简单笔记-RSA算法简单介绍 [历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2018-08-30 标题TLS简单笔记-RSA算法简单介绍分类编程 标签tls·rsaTLS笔记-RSA算法本文转自【 https://blog.csdn.net/dbs1215/article/details/48953589 】什么是RSARSA算法是现今使用最广泛的公钥密码算法也是号称地球上最安全的加密算法。在了解RSA算法之前先熟悉下几个术语根据密钥的使用方法可以将密码分为对称密码和公钥密码对称密码加密和解密使用同一种密钥的方式公钥密码加密和解密使用不同的密码的方式因此公钥密码通常也称为非对称密码。RSA加密RSA的加密过程可以使用一个通式来表达密文明文^E mod N也就是说RSA加密是对明文的E次方后除以N后求余数的过程。就这么简单对就是这么简单。从通式可知只要知道E和N任何人都可以进行RSA加密了所以说E、N是RSA加密的密钥也就是说E和N的组合就是公钥我们用(E,N)来表示公钥公钥(E,N)不过E和N不并不是随便什么数都可以的它们都是经过严格的数学计算得出的关于E和N拥有什么样的要求及其特性后面会讲到。顺便啰嗦一句E是加密Encryption的首字母N是数字Number的首字母RSA解密RSA的解密同样可以使用一个通式来表达明文密文^D mod N也就是说对密文进行D次方后除以N的余数就是明文这就是RSA解密过程。知道D和N就能进行解密密文了所以D和N的组合就是私钥私钥(D,N)从上述可以看出RSA的加密方式和解密方式是相同的加密是求“E次方的mod N”;解密是求“D次方的mod N”此处D是解密Decryption的首字母N是数字Number的首字母。小结下公钥 EN私钥 DN密钥对 EDN加密密文明文^E mod N解密明文密文^D mod N生成密钥对既然公钥是EN私钥是DN所以密钥对即为EDN但密钥对是怎样生成的步骤如下求N求LL为中间过程的中间数求E求D4.1 求N准备两个质数pq。这两个数不能太小太小则会容易破解将p乘以q就是NNp∗q4.2 求LL 是 p1 和 q1的最小公倍数可用如下表达式表示Llcmp1q14.3 求EE必须满足两个条件E是一个比1大比L小的数E和L的最大公约数为1用gcd(X,Y)来表示XY的最大公约数则E条件如下1 E LgcdEL1之所以需要E和L的最大公约数为1是为了保证一定存在解密时需要使用的数D。现在我们已经求出了E和N也就是说我们已经生成了密钥对中的公钥了。4.4 求D数D是由数E计算出来的。D、E和L之间必须满足以下关系1 D LED mod L 1只要D满足上述2个条件则通过E和N进行加密的密文就可以用D和N进行解密。简单地说条件2是为了保证密文解密后的数据就是明文。现在私钥自然也已经生成了密钥对也就自然生成了。小结下求N N p q pq为质数求L Llcmp1q1 L为p1、q1的最小公倍数求E 1 E LgcdEL1EL最大公约数为1E和L互质求D 1 D LED mod L 1