新闻  |   论坛  |   博客  |   在线研讨会
RSA公钥指数的选取
xiaoxiao10 | 2020-11-09 14:34:25    阅读:503   发布文章

1:什么是RSA公钥指数。

首先了解一下RSA密钥的建立流程。如下图所示:

图片1.jpg

(1)选择两个不同的大素数p和q;

(2)计算公共模数(n=pq)和欧拉数(eular=(p-1)(q-1)); 

(3)选择公钥指数e;

(4)计算inverse(d);

(5)生成公钥、私钥;

上述流程中出现的e就是公钥指数。

2:公钥指数的选取。

公钥指数是可以随意选取的,但是为了提高RSA的加密速度实际使用中公钥指数最长用的三个值是3、17、65537(=2^16+1,65537的二进制表示中只有两个1,所以需要17次乘法来实现指数运算)。PEM建议用3。PKCS#1建议用3或65537。X.509建议用65537。这样选取主要是为了提高加密或签名验证的性能,因为3、17或65537分别只需要2或17次模乘运算,而一个随机选择的e(假设n是1024-bit)则大约需要1000次模乘运算。这种方法刻意把公钥指数选的小一点,其对应私钥指数就会很大,这么做的目的是节约公钥运算的时间。因为正常使用中都是用公钥加密,所以需要节约大部分人的时间。而极少部分人也会选用私钥解密,那么就只能少数服从多数了。

在选用公钥指数时,人们普遍会认为3和17没有65537安全。然而这种想法并没有合理的依据。实际上采用这三个值中的任何一个都不存在安全问题。前提是使用正确的填充方案。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
我是大学僧  2020-12-29 09:14:59 

那RSA算法中公钥指数是定值吗?

tiancongcong  2020-11-12 20:39:51 

有啊楼主去年发过一篇RSA的文章你可以看看去发过很多干货的文章呢

haofeng  2020-11-12 19:05:19 

关于RSA的文章还有吗?就这一篇吗 不够看啊

25257758  2020-11-12 17:49:16 

很多人更倾向于选e=65537,选用e=3作为RSA的公钥指数,只要使用正确的填充方案,目前仍然是安全的

Lity2016  2020-11-12 16:47:49 

对,我也想知道个可靠的填充方案

我是大学僧  2020-11-12 16:39:46 

公钥指数e=3或e=6哪个更安全?

旋转木偶  2020-11-12 16:24:34 

可见选取正确的填充方案才能确保其安全性啊

paultoday  2020-11-12 13:59:34 

RSA是一种公钥加密算法

pinbo2008  2020-11-12 13:27:39 

RSA是利用模数和指数生成的公钥加密。

haofeng  2020-11-12 11:44:28 

什么是RSA?什么是公钥指数?为什么要选取?

李阿淇  2020-11-12 09:27:00 

@ YXG12345679 这是一个推荐使用的公钥指数,选这个值的目的只是一个介于低指数攻击和运算效率之间的一个折中考虑,即以防万一"e=3"被攻破而侥幸"e=65537"可能还是安全的

YXG12345679  2020-11-11 21:02:28 

为什么RSA 公钥指数(e=65537)更安全?

15930473139  2020-11-11 17:02:57 

为何公钥指数和公钥运算时间有关系?楼主能再说明一下吗?

xiaoxiao10  2020-11-11 16:52:30 

@ 我是大学僧 RSA可以选择公钥的大小,比如512位、1024位、1280位、2048位等等,目前使用的大多是1024位以上的

我是大学僧  2020-11-11 16:45:20 

RSA是否可以选择公钥的大小,即有512/1024位吗

xiaoxiao10  2020-11-11 16:40:50 

@ YXG123456987 RSA是非对称算法,只要保证私钥不被泄露,加密数据就不会泄露,公钥不会影响私钥的安全

YXG123456987  2020-11-11 14:22:39 

公钥会不会影响私钥的安全性呢?

25257758  2020-11-11 14:17:22 

公钥的意思是不是就是公开,私钥是私有,但是公钥和私钥之间有运算关系

Lity2016  2020-11-11 09:08:54 

不是所有芯片都支持RSA的,芯片算法不一样的。

15930473139  2020-11-11 08:55:22 

是所有芯片都支持RSA吗?

paultoday  2020-11-10 21:30:39 

说的太绝对了,得有个前提条件,同样安全强度条件下,ECC速度更快

pinbo2008  2020-11-10 19:32:15 

基本都用65536的,很少有用其他的。要么就换成ECC算法了,强度高,速度快。

旋转木偶  2020-11-10 17:58:52 

讲解的真细致,之前只知道是加密解密,不清楚还有指数这个说法

tiancongcong  2020-11-10 15:57:48 

专业性太强了,看不懂,还是请大神来白话一下吧

李阿淇  2020-11-10 13:56:44 

@ 我是大学僧 填充方案可以采用PKCS1中规定的RSA_PKCS1_PADDING 填充方案,按照规则使用随机数填充

我是大学僧  2020-11-10 13:07:19 

有什么填充方案吗?学习下

推荐文章
最近访客