嵌入式学习小组
直播中

石双厚

7年用户 195经验值
私信 关注

怎样去选取RSA算法密钥长度?

怎样去选取RSA算法密钥长度?
RSA有哪几个特性?

回帖(1)

毛晨霞

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

更多回帖

发帖
×
20
完善资料,
赚取积分