国密算法性能

RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。SM2算法,由国家密码管理局于2010年12月发布,是我国自主设计的公钥密码算法。SM2基于更加安全先进的椭圆曲线密码机制,在国际标准的ECC椭圆曲线密码理论基础上进行改进而来,其加密强度更高。RSA算法,其数学原理相对简单,在工程应用中比较易于实现,但它的单位安全强度相对较低。随着计算机运算速度的提高和分布式计算的发展,加上因子分解方法的改进,对低位数的密钥攻击已成为可能。
ECC算法,其数学理论非常深奥复杂,在工程应用中比较难以实现,但它的单位安全强度相对较高,破译或求解难度基本上是指数级的。
因此,ECC算法的单位安全强度远高于RSA算法,可以用较少的计算能力提供比RSA算法更高的安全强度,而所需的密钥长度却远比RSA算法低。
目前,基于ECC的SM2算法普遍采用256位密钥长度,加密强度等同于3072位RSA证书,远高于业界普遍采用的2048位RSA证书。
此外,为了提高安全强度必须不断增加密钥长度,ECC算法密钥长度增长速度较慢(例如:224-256-384),而RSA算法密钥长度则需呈倍数增长(例如:1024-2048-4096)。
更长的密钥意味着必须来回发送更多的数据以验证连接,产生更大的性能损耗和时间延迟。因此,SM2算法能够以较小的密钥和较少的数据传递建立HTTPS连接,在确保相同安全强度的前提下提升连接速度。
经国外有关权威机构测试,在Web服务器中采用SM2算法,Web服务器响应时间比RSA算法快十几倍。
RSA-2048、ECDSA-521与SM2-256的对比:
签名:
在这里插入图片描述

图3.4 RSA-2048、ECDSA-521与SM2-256的签名效率对比
验签:
在这里插入图片描述

图3.5 RSA-2048、ECDSA-521与SM2-256的验签效率对比

SM3算法的压缩函数与SHA-256的压缩函数具有相似的结构,但是SM3算法的设计更加复杂,比如压缩函数的每一轮都使用2个消息字。2005年,Wang等人给出了MD5算法和SHA-1算法的碰撞攻击方法,证明现今被广泛应用的MD5算法和SHA-1算法不再是安全的算法。
SM3密码摘要算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。SM3算法适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进实现的一种算法。SM3算法采用Merkle-Damgard结构,消息分组长度为512位,摘要值长度为256位。现今为止,SM3算法的安全性相对较高。
MD5、SHA1、SH2-256与SM3效率的对比:
在这里插入图片描述

图3.6 MD5、SHA1、SH2-256与SM3效率的对比
百万次级SHA3算法与SM3算法对比如下:

哈希算法及实现 加密解密次数 总共耗时(s)
EthereumUtil sha3 100万次 2.89
SpongyCastle SM3 100万次 1.57

比较了第三方提供商SpongyCastle包中提供的SM3算法以及使用以太坊Util类中自带的哈希算法,速度相差不多,甚至国密更快。预计区块链换用国密算法后,速度不会因此下降。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值