zntsbkhhhhhh

RSA公钥指数的选取

0
阅读(231) 评论(25)

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+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安全。然而这种想法并没有合理的依据。实际上采用这三个值中的任何一个都不存在安全问题。前提是使用正确的填充方案。

 


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

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

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



  4. 对我也想找个安全的填充的方案

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


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

  7.  RSA是一种公钥加密算法

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


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

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

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


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

  13. @xiaoyuzhou1228   

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

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


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


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