加密算法解析三:SM3

概要

SM3算法中文称为商密3算法,是由中国国家密码局发布的一种杂凑算法(哈希算法)。它性能和安全性大致与SHA256相等。具体国家的发布标准链接:http://www.sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml

国家密码局发布的算法不仅有SM3,还有SM1、SM2、SM4、SM7、SM9等,它们的设计和结构都不同,并不是SM3的改进或前期版本。比如SM1为一种对称加密算法,安全与性能与AES相当;SM2为椭圆曲线公钥密码算法,安全和性能大于RSA;SM4为分组数据对称加密算法。

步骤

算法也分为:填充、迭代压缩、处理数据、输出这4个步骤。

1、填充:相当于MD5和SHA的补位和添加长度,先增1和若干个0补成对512求模得448的长度,然后再添加原文长度的64位二进制。举例如下:

其中 原文24bit,补位424bit(1个1和423个0),增加长度64bit(原文长度的64位二进制表示)

2、消息扩展:SM3没有直接使用数据分组进行运算,而是先对每个512bit分组进行划分,每个分组划分成16个消息字,再以这16个消息通过函数递推出后面的116个消息字,即每个512bit原文可以产生132个消息字(每个消息字32bit)。具体伪代码如下:

3、压缩:先声明初始值IV=7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4e ,分别存在A,B,C,D,E,F,G,H这8个32位变量中。接着压缩函数会使用这8个变量进行64轮计算。具体函数如下:

4、输出:最后的ABCDEFGH组成的256位二进制就是密文,一般用64个(16进制)字符打印。

优缺点

优点:安全性高,虽然说安全性和SHA256相当。但个人认为应该指理论上与SHA256相当,毕竟都是哈希算法以及256位摘要。但实际应该比SHA256更高,毕竟破解不可逆算法就是靠字典库,而SHA256的字典库远大于SM3。

缺点:大数据量下加密速度慢。

使用场景

可使用于数字签名验证,信息验证、随机数生成、密码保存等。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间在手上,需要抓住

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值