RSA算法的知识点有哪些

发布时间:2022-01-15 10:51:19 作者:iii
来源:亿速云 阅读:124

本篇内容主要讲解“RSA算法的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“RSA算法的知识点有哪些”吧!

什么是RSA

前面文章我们讲了AES算法,AES算法是一种是对称加密算法,本文我们来介绍一个十分常用的非对称加密算法RSA。

非对称加密算法也叫公钥密码算法,通过生成的公私钥来对明文密文进行加密解密。 RSA的名字是由它的三个开发者Ron Rivest, Adi Shamir和 Leonard Adleman的首字母而来的。

RSA公司在1983年为RSA算法申请了专利。

RSA的加密

RSA的加密可以用下面的公式来表示:

密 文 = 明 文 E   m o d   N 密文=明文^E\ mod\ N 密文=明文E mod N

通过公式我们可以知道RSA的密文是通过明文的E次方再对N进行mod运算得到的。这个加密过程只用到了阶乘和取模运算,可以算是非常简单明了了。

简洁的才是最好的,这可能也是RSA算法这么通用的原因吧。

如果知道了E和N,那么就可以得到密文,所以我们把E和N的组合称为公钥,可以这样表示 公钥{E,N}。

如何选择E和N是一个复杂的数学过程,我们会在后面讲到。

RSA的解密

先看一下RSA解密的公式:

明 文   =   密 文 D   m o d   N 明文\ =\ 密文^D\ mod\ N 明文 = 密文D mod N

通过公式可以看到,明文是通过密文的D次方,再和N取模得到的。这里的N和加密的N是同一个数字。

D和N的组合表示为私钥{D,N}。

N,E,D的生成

知道了RSA的加密和解密原理之后,接下来我们就要探讨一下加密和解密过程中的N,E,D是怎么生成的。

生成过程如下:

1. 生成N

生成N的公式如下:

N = p ∗ q N=p*q N=p∗q

p和q是两个很大的质数,太小的话容易被破译,太大的话会影响计算速度。通常p和q的大小为1024比特。这两个数是通过伪随机数生成器生成的。伪随机数生成器不能直接生成质数,它是通过不断的重试得到的。

2. 求L

L是一个中间数,它和p,q一样,不会出现在RSA的加密和解密过程。

L的计算公式如下:

L = l c m ( p − 1 , q − 1 ) L=lcm(p-1, q-1) L=lcm(p−1,q−1)

L是p-1和q-1的最小公倍数

3. 求E

E就是用来加密的公钥了,E是一个比1大,比L小的数。并且E和L必须互质。只有E和L互质才能计算出D值。

1 < E < L 1< E < L 1<E<L

g c d ( E , L ) = 1 gcd(E,L)=1 gcd(E,L)=1

这里E也是通过伪随机数生成器来生成的。

找到了E和N,我们的公钥就生成了。

4. 求D

计算D的公式如下:

1 < D < E 1<D<E 1<D<E

E ∗ D   m o d   L = 1 E*D\ mod\ L=1 E∗D mod L=1

破解RSA

如果想破解RSA, 对于密码破解者来说,他知道了公钥{E,N}, 知道了密文,根据公式:

密 文 = 明 文 E   m o d   N 密文=明文^E\ mod\ N 密文=明文E mod N

有没有可能直接通过已知的三个变量,求出未知变量明文呢?

这个求解其实是一个离散对数的问题。目前还没有发现求离散对数的高效的方法。可以说是非常困难的。

那么有没有可能通够暴力破解来得出密钥中的D呢?

目前RSA算法中p和q的长度一般为1024比特以上,生成的N的长度为2048比特以上,E和D的长度和N差不多,如果要暴力破解2048比特的D是非常困难的。

由公式:

E ∗ D   m o d   L = 1 E*D\ mod\ L=1 E∗D mod L=1

可知,如果破解者知道了L的值,那么就可以轻易的求出D。而L是通过p和q计算出来的,所以p和q一定要保密,否则跟密码泄露是一样的。

因为 N= p * q , 而p和q都是质数, N又是已知的,那么我们可不可以通过质因数分解来得到 p和q呢?

目前来说,还没有有效的对大整数进行质因素分解的高效算法,所以目前来说RSA算法还是很安全的,但是一旦有这样的算法出现,那么RSA将会很容易被攻破。

所以官方推荐:1024比特的RSA算法不应该被用于新的用途。2048比特的RSA算法可以用到2030年,4096比特的算法可以用到2031年。

到此,相信大家对“RSA算法的知识点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. RSA加密算法的简单案例
  2. RSA算法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rsa

上一篇:服务器的中间人攻击是什么

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》