SM3算法设计原理

SM3算法基于Merkle-Damgard结构,消息分组512b,摘要256b。初始值和常量特定,通过布尔函数、置换函数和消息填充进行处理。迭代压缩过程中,消息扩展和状态更新确保安全性。算法设计考虑了高效性和适用性,能有效抵抗各种密码分析攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 SM3密码杂凑算法的描述

SM3密码杂凑算法采用Merkle-Damgard结构,消息分组长度为512b,摘要长度256b。压缩函数状态256b,共64步操作步骤。

SM3密码杂凑算法的初始值:

SM3密码杂凑算法的初始值共256b,由8个32b串联构成,具体值如下:

IV=7380166f  4914b2b9  1724422d7  da8a0600

   a96f30bc  163138aa   e38dee4d   b0fb0e4e。

SM3密码杂凑算法的常量:

SM3密码杂凑算法的常量定义如下:

SM3密码杂凑算法的布尔函数:    

SM3密码杂凑算法的布尔函数定义如下:

SM3密码杂凑算法的置换函数:

SM3密码杂凑算法的置换函数定义如下:

SM3密码杂凑算法的消息填充:

对于长度为l(l<264)比特的消息m,SM3密码杂凑算法首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足l+k+1=448 mod 512的最小非负整数。然后再添加一个64位比特串,该比特串是长度l的二进制表示。填充后的消息m的比特长度我512的倍数。例如:对消息01100001 01100010 01100011,其长度l=24,经填充得到的比特串如下:01100001 0100010 011000111 0···00···011000

SM3密码杂凑算法的迭代压缩过程:

将填充后的消息m按512b进行分组:m=B(0)B

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Walter Sun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值