杂说2 —— 回顾以前写过的国密SM3
SM3密码杂凑算法
SM3 Cryptographic Hash Algorithm
国家密码管理局
2010年12月
1 范围
本文本规定了SM3密码杂凑算法的计算方法和计算步骤,并给出了运算示例。
本文本适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。同时,本文本还可为安全产品生产商提供产品和技术的标准定位以及标准化的参考,提高安全产品的可信性与互操作性。
文档中已描述了算法流程,编程中,只需将文档的符号用编程符号或函数实现。
在附录中两个例子描述了流程及中间结果。
对长度为l(l < 264 ) 比特的消息m,SM3杂凑算法经过填充和迭代压缩生成杂凑值。
杂凑值长度为256比特。
注意点:
大端、word字
填充、扩展、分组
<<<循环左移k比特运算
主体函数就像




测试附录的两个例子

=== str1: abc
SM3:
66C7F0F4 62EEEDD9 D1F2D46B DC10E4E2 4167C487 5CF2F7A2 297DA02B 8F4BA8E0
=== str1: abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd
SM3:
DEBE9FF9 2275B8A1 38604889 C18E5A4D 6FDB70E5 387E5765 293DCBA3 9C0C5732
自行测试分组
=== str1: 0123456789012345678901234567890123456789012345678901234
SM3:
FA6EFAC8 92677C6C 6B0F8F19 D2DEB80A F79BDAF1 581D9784 7C851768 27C58B68
=== str1: 01234567890123456789012345678901234567890123456789012345
SM3:
11211AD8 A6656FBC 1A2741CF CEAC1409 91E354F5 C94EA94E E63630C8 6E9858FE
在线网站https://the-x.cn/zh-cn/hash/ShangMi3Algorithm.aspx的结果

