516|26

44

帖子

0

资源

一粒金砂(中级)

RSA公钥指数的选取 [复制链接]

 

RSA公钥指数的选取

1:什么是RSA公钥指数。

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

1604886891(1).png

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

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

 

此帖出自ARM技术论坛

回复

108

帖子

0

资源

一粒金砂(中级)

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


回复

116

帖子

0

资源

一粒金砂(中级)

填充方案可以采用PKCS1中规定的RSA_PKCS1_PADDING 填充方案,按照规则使用随机数填充
 


回复

116

帖子

0

资源

一粒金砂(中级)

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


回复

29

帖子

0

资源

一粒金砂(初级)

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


回复

32

帖子

0

资源

一粒金砂(中级)

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


回复

23

帖子

0

资源

一粒金砂(初级)

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


回复

115

帖子

0

资源

一粒金砂(中级)

是所有芯片都支持RSA吗?


回复

14

帖子

0

资源

一粒金砂(初级)

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


回复

106

帖子

0

资源

一粒金砂(中级)

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


回复

44

帖子

0

资源

一粒金砂(中级)

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


回复

2843

帖子

1

资源

五彩晶圆(初级)

看不懂,谢谢分享

个人签名人已离开,无事别找,找也找不到。

回复

108

帖子

0

资源

一粒金砂(中级)

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

点评<