SM2算法与原生RSA、ECDSA算法的比较

基于问题不同

RSA算法基于大数分解问题(integer factorization problem IFP),可靠性由对极大整数做因数分解的难度决定。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。
ECDSA算法以及SM2算法都是基于椭圆曲线离散对数问题(elliptic curve discrete logarithm problem ECDLP)。它可以看作是椭圆曲线对先前基于离散对数问题(discrete logarithm problem DLP)的密码系统的模拟,只是群元素由素域中的元素数换为有限域上的椭圆曲线上的点。
其中SM2算法是在国际标准的ECC椭圆曲线密码理论基础上进行自主研发设计,具备ECC算法的性能特点并实现优化改进。

密钥强度与安全性不同

与RSA算法基于大数分解问题不同,ECDSA算法以及SM2算法都是基于椭圆曲线离散对数问题,其没有亚指数时间的解决方法,因此椭圆曲线密码的单位比特强度要高于其他公钥体制。所以在使用较短的密钥的情况下,ECC可以达到于DL系统相同的安全级别。这带来的好处就是计算参数更小,密钥更短,运算速度更快,签名也更加短小。因此椭圆曲线密码尤其适用于处理能力、存储空间、带宽及功耗受限的场合。目前,基于ECC的SM2证书普遍采用256位密钥长度,加密强度等同于3072位RSA证书,远高于业界普遍采用的2048位RSA证书。
此外,斯诺登事件爆发后,其泄露出的机密文档显示,RSA算法中可能存在NSA的预置后门,对RSA算法的安全性产生巨大影响。
SM2算法与原生RSA、ECDSA算法的比较_第1张图片
而且,为了提高安全强度必须不断增加密钥长度,ECC算法密钥长度增长速度较慢(例如:224-256-384),而RSA算法密钥长度则需呈倍数增长(例如:1024-2048-4096)。
SM2算法与原生RSA、ECDSA算法的比较_第2张图片

效率不同

RSA-2048、ECDSA-521与SM2-256的对比:
签名:
SM2算法与原生RSA、ECDSA算法的比较_第3张图片

验签:
SM2算法与原生RSA、ECDSA算法的比较_第4张图片

你可能感兴趣的:(SM2算法与原生RSA、ECDSA算法的比较)