加密芯片吧 关注:142贴子:2,143

RSA公钥指数的选取

只看楼主收藏回复

RSA公钥指数的选取
1:什么是RSA公钥指数。
首先了解一下RSA密钥的建立流程。如下图所示:

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


IP属地:北京1楼2020-11-10 13:21回复
    有什么填充方案吗?学习下


    2楼2020-11-10 13:44
    回复
      广告
      立即查看
      填充方案可以采用PKCS1中规定的RSA_PKCS1_PADDING 填充方案,按照规则使用随机数填充


      IP属地:北京3楼2020-11-10 13:49
      回复
        专业性太强了,看不懂,还是请大神来白话一下吧


        来自iPhone客户端4楼2020-11-10 13:57
        回复
          讲解的真细致,之前只知道是加密解密,不清楚还有指数这个说法


          IP属地:北京5楼2020-11-10 14:04
          回复
            基本都用65536的,很少有用其他的。要么就换成ECC算法了,强度高,速度快。


            6楼2020-11-10 14:32
            回复
              学习到了,期待能保护好程序心血!


              来自iPhone客户端7楼2020-11-10 14:54
              回复
                说的太绝对了,得有个前提条件,同样安全强度条件下,ECC速度更快


                来自iPhone客户端8楼2020-11-10 14:57
                回复
                  广告
                  立即查看
                  是所有芯片都支持RSA吗?


                  IP属地:北京9楼2020-11-10 16:30
                  回复
                    不是所有芯片都支持RSA,芯片算法不一样的


                    IP属地:北京来自Android客户端10楼2020-11-10 16:47
                    回复
                      公钥会不会影响私钥的安全性呢?


                      11楼2020-11-10 17:17
                      回复
                        RSA是非对称算法,只要保证私钥不被泄露,加密数据就不会泄露,公钥不会影响私钥的安全


                        IP属地:北京来自iPhone客户端12楼2020-11-10 22:00
                        回复
                          RSA是否可以选择公钥的大小,即有512/1024位吗?


                          13楼2020-11-11 16:03
                          回复
                            RSA可以选择公钥的大小,比如512位、1024位、1280位、2048位等等,目前使用的大多是1024位以上的


                            IP属地:北京来自iPhone客户端14楼2020-11-11 23:15
                            回复
                              广告
                              立即查看
                              为何公钥指数和公钥运算时间有关系?楼主能再说明一下吗?


                              15楼2020-11-12 18:12
                              回复