RSA与ECC的选择

数字签名技术已经广泛使用于网络安全协议或分布式系统中,目前比较流行的数字签名算法有RSA和ECDSA。很多同学在产品设计中往往都难以区分RSA和ECDSA的优劣,所以笔者将基于自己的实践,来给出一些初步的建议。

1. 密码强度比较
 

Symmetric ECC RSA
96 192 1536
112 224 2048
128 256 3072
192 384 7680
256 521 15360


这是学术界普遍认可的密码强度对照表。比如,7680-bit的RSA密码强度,大约相当于384-bit的ECC密码强度,大约相当于192-bit的对称密码算法的强度。换句话说,攻击分组加密算法AES-192的难度,与攻击数字签名算法ECDSA-384、RSA-7680的难度相当。

2. 性能比较

笔者基于开源的tommathlib实现了ECDSA(符合ANSI X9.62标准)和RSA签名算法(符合PKCS#1 v2.1, e=65537)。

 

 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
RSAECC是两种常见的非对称加密算法,它们的优缺点和开发友好程度如下: RSA算法的优点: 1. 安全性较高,目前没有有效的攻击手段。 2. 支持加密和数字签名。 3. 支持密钥长度的可变性。 RSA算法的缺点: 1. 加解密速度较慢,特别是对于较长的密钥。 2. 对于大数据量的加密,需要分段进行。 3. 容易受到选择明文攻击(known plaintext attack)和密文攻击(ciphertext attack)等攻击方式的影响。 对于开发来说,RSA算法的实现较为友好,因为其算法流程简单,也有成熟的库和工具可供使用。 ECC算法的优点: 1. 相对于RSA算法,ECC算法在相同安全级别下所需的密钥长度更短,可以提高加解密速度和传输效率。 2. 支持加密和数字签名。 3. 容易实现硬件加速,可以提高加解密速度。 ECC算法的缺点: 1. 安全性依赖于椭圆曲线参数的选择,如果参数选择不当,可能会导致安全性降低。 2. 相对于RSA算法,ECC算法实现较为复杂,需要处理大量的数学运算。 3. 目前还没有成熟的ECC算法库和工具,需要进行自己的实现。 对于开发来说,ECC算法的实现较为复杂,需要处理大量的数学运算,但其实现可以利用硬件加速,可以提高加解密速度。 综上所述,RSA算法和ECC算法各有优缺点,选择哪种算法需要根据具体应用场景来确定。对于开发来说,RSA算法实现相对较为友好,而ECC算法实现较为复杂。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值