加密芯片吧 关注:141贴子:2,139

RSA算法密钥长度的选择

只看楼主收藏回复

RSA算法密钥长度的选取直接关系到加解密、签名验签的安全强度和运算速度。密钥的长度实际上是指公钥模N的长度(以Bit为单位),理论上来讲N越大,安全强度越高,算法运算速度越慢。因此,RSA算法密钥长度要结合项目的实际情况来选取,以求在安全性和运算性能之间取得平衡点。例如:有些产品的应用场景要求RSA加解密必须具有很高的实时性,比如公交刷卡机。如果RSA运算时间过长会导致刷卡交易整体时间延长,用户刷卡体验变差,上下车客流速度变慢,因此这种应用场景不适合选取过高的公钥模长。有些PC端产品依托于强大CPU性能,不需要过多考虑RSA运算速度,还有些终端产品,虽然MCU运算性能偏弱,但是增加了一颗带有协处理器的加密芯片来协助MCU完成运算,这样就能很好的实现运算加速,因此不需要过多担心速度问题,可以选取较高的公钥模长来提升系统安全强度。总体来说,现在市场上RSA公钥长度应用较多的是1024位和2048位,简称RSA1204算法和RSA2048算法。
RSA几个特性如下:
(1)密钥长度增长一倍,公钥操作所需时间增加约4倍,私钥操作所需时间增加约8倍,公私钥生成时间约增长16倍。
(2) 一次能加密的密文长度与公钥长度成正比,如RSA1024,一次能加密的内容长度为 1024/8 = 128byte(包含填充字节)。所以非对称加密一般都用于加密对称加密算法的密钥,而不是直接加密内容。
(3) 加密后密文的长度为公钥的长度,例如公钥长度为1024Bit(128Byte),最后生成的密文固定为 1024Bit(128Byte)。


1楼2021-01-12 10:08回复
    学习了,RSA的加密速度还得依托于CPU的性能,如果性能好,密钥长度就可以选择位数多一些的。


    2楼2021-01-13 16:40
    回复
      楼主的文章对于我这这种小白来说通俗易懂,涨知识了


      IP属地:北京3楼2021-01-13 16:49
      回复
        这样用带有协处理器的加密芯片运算RSA,提升安全强度还实现运算加速,倒是一个不错的方案


        4楼2021-01-14 09:40
        回复
          是不是RSA长度越长越好?越安全呢?


          来自iPhone客户端5楼2021-01-14 11:35
          回复
            RSA的公钥模长和运算速度为反比关系,在一定的前提下,公钥越长,安全强度越高,运算速度越慢,利弊可根据实际情况选取


            IP属地:北京6楼2021-01-14 13:05
            回复
              不同行业中如何选择1024和2048呢?比如我是想做个产品中的数据加密,能否用到RSA这种呢?


              7楼2021-01-14 13:31
              收起回复
                各有所长,前者是非对称加密,是业内普遍使用的,加密效率较后者低,可能会被破,虽然在成本的限制下可行性不高。AES256是用于取代3DES的,破解的相对少些。


                IP属地:北京8楼2021-01-15 08:23
                回复
                  现在是不是也有用RSA4096的了,1024位用的都比较少了


                  IP属地:北京9楼2021-01-15 08:36
                  回复
                    其实跟用法有关,一般都是用RSA进行握手传递密钥使用,所以位数确实要选高点。但如果做数据流加密,那肯定不能选太高,RSA4096的话,估计你都跑不起来


                    IP属地:北京10楼2021-01-15 13:47
                    回复
                      加密数据超过128字节,或者不足128可以加密吗?


                      来自iPhone客户端11楼2021-01-15 21:29
                      收起回复
                        密钥越长,加密时间肯定就越长,那么选择一个合适的长度就很重要了


                        13楼2021-01-16 13:59
                        回复
                          这时间是以4的倍数增长吗


                          IP属地:北京14楼2021-01-16 15:47
                          收起回复
                            楼主帮忙推荐一款这种支持较高安全等级加密算法的芯片


                            IP属地:北京15楼2021-01-17 20:28
                            收起回复
                              看来要使用RSA算法的话,还是要选择具有RSA协处理器的安全芯片。


                              16楼2021-01-18 11:14
                              回复