杂凑算法之SM3

一、算法基本参数

1. 常数的定义

IV =7380166F 4914B2B9 172442D7 DA8A0600 A96F30BC 163138AA E38DEE4ED B0FB0E4E
在这里插入图片描述

2.布尔函数定义

在这里插入图片描述
在这里插入图片描述

3.置换函数定义

在这里插入图片描述

二、算法流程

1.填充

我们需要将消息分成每组512bit,所以需要将消息填充成512的倍数
填充规则:不足512bit的消息需要填充,先1,然后添0直到448bit,然后填充消息的长度(用64bit表示),填充为512bit的一个分组
在这里插入图片描述在这里插入图片描述

2.扩展

以一个512bit消息分组m为例.。将消息分成16个分组,每个32bit并按照2,3进行扩展,最终得到W0-W67,W‘0-W’63
在这里插入图片描述
在这里插入图片描述

3.压缩

最开始有个初始向量,256bit,即文章开始的IV向量,将其分成32bit一组,一共8个分组,填入ABCDEFG,然后一轮的压缩过程要循环64次,每次输入为Wi,,和W’i,每次都会更新ABCDEFGH的值,
在这里插入图片描述
在这里插入图片描述
这里的输出就是中间值

最后一次的值组合起来,并且与h0异或,就是我们一轮压缩过程的输出。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值