说明:收录全文最新的团体标准 提供单次或批量下载
ICS35.040 L80 中华人民共和国国家标准 GB/T32905—2016 信息安全技术 SM3密码杂凑算法 Informationsecuritytechniques—SM3cryptographichashalgorithm 2016-08-29发布 2017-03-01实施 中华人民共和国国家质量监督检验检疫总局 中国国家标准化管理委员会发布目 次 前言 Ⅲ ………………………………………………………………………………………………………… 1 范围 1 ……………………………………………………………………………………………………… 2 术语和定义 1 ……………………………………………………………………………………………… 3 符号 1 ……………………………………………………………………………………………………… 4 常数与函数 2 ……………………………………………………………………………………………… 4.1 初始值 2 ……………………………………………………………………………………………… 4.2 常量 2 ………………………………………………………………………………………………… 4.3 布尔函数 2 …………………………………………………………………………………………… 4.4 置换函数 2 …………………………………………………………………………………………… 5 算法描述 2 ………………………………………………………………………………………………… 5.1 概述 2 ………………………………………………………………………………………………… 5.2 填充 2 ………………………………………………………………………………………………… 5.3 迭代压缩 3 …………………………………………………………………………………………… 5.4 输出杂凑值 4 ………………………………………………………………………………………… 附录A(资料性附录) 运算示例 5 ………………………………………………………………………… ⅠGB/T32905—2016 前 言 本标准按照GB/T1.1—2009给出的规则起草。 本标准由国家密码管理局提出。 本标准由全国信息安全标准化技术委员会(SAC/TC260)归口。 本标准起草单位:清华大学、国家密码管理局商用密码检测中心、解放军信息工程大学、中国科学院 数据与通信保护研究教育中心。 本标准主要起草人:王小云、李峥、王永传、于红波、谢永泉、张超、罗鹏、吕述望。 ⅢGB/T32905—2016 信息安全技术 SM3密码杂凑算法 1 范围 本标准规定了SM3密码杂凑算法的计算方法和计算步骤,并给出了运算示例。 本标准适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可 满足多种密码应用的安全需求。 2 术语和定义 下列术语和定义适用于本文件。 2.1 比特串 bitstring 具有0或1值的二进制数字序列。 2.2 大端 big-endian 数据在内存中的一种表示格式,规定左边为高有效位,右边为低有效位。即数的高阶字节放在存储 器的低地址,数的低阶字节放在存储器的高地址。 2.3 消息 message 任意有限长度的比特串,本标准中消息作为杂凑算法的输入数据。 2.4 杂凑值 hashvalue 杂凑算法作用于一条消息时输出的消息摘要(比特串)。 2.5 字 word 长度为32比特的组(串)。 3 符号 下列符号适用于本文件。 ABCDEFGH:8个字寄存器或它们的值的串连 B(i):第i个消息分组 CF:压缩函数 FFj:布尔函数,随j的变化取不同的表达式 GGj:布尔函数,随j的变化取不同的表达式 IV:初始值,用于确定压缩函数寄存器的初态 P0:压缩函数中的置换函数 P1:消息扩展中的置换函数 Tj:算法常量,随j的变化取不同的值 1GB/T32905—2016 m:消息 m':填充后的消息 mod:模运算 n:消息分组个数 ∧:32比特与运算 ∨:32比特或运算 􀱇:32比特异或运算 􀱑:32比特非运算 +:mod232比特算术加运算 <<<k:32比特循环左移k比特运算 􀲓:左向赋值运算符 4 常数与函数 4.1 初始值 IV=7380166f4914b2b9172442d7da8a0600a96f30bc163138aae38dee4db0fb0e4e 4.2 常量 Tj=79cc4519 0≤j≤15 7a879d8a 16≤j≤63 { 4.3 布尔函数 FFj(X,Y,Z)=X􀱇Y􀱇Z 0≤j≤15 (X∧Y)∨(X∧Z)∨(Y∧Z) 16≤j≤63 { GGj(X,Y,Z)=X􀱇Y􀱇Z 0≤j≤15 (X∧Y)∨(􀱑X∧Z) 16≤j≤63 { 其中X,Y,Z为字。 4.4 置换函数 P0(X)=X􀱇(X<<<9)􀱇(X<<<17) P1(X)=X􀱇(X<<<15)􀱇(X<<<23) 其中X为字。 5 算法描述 5.1 概述 SM3密码杂凑算法的输入为长度为l(l<264)比特的消息m,经过填充、迭代压缩,生成杂凑值,杂 凑值输出长度为256比特。运算示例参见附录A。 5.2 填充 假设消息m的长度为l比特,则首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足l+1 +k≡448(mod512)的最小的非负整数。然后再添加一个64位比特串,该比特串是长度l的二进制表 2GB/T32905—2016 示。填充后的消息m'的比特长度为512的倍数。 例如:对消息:011000010110001001100011,其长度l=24,经填充得到比特串: 5.3 迭代压缩 5.3.1 迭代过程 将填充后的消息m'按512比特进行分组:m'=B(0)B(1)…B(n-1),其中n=(l+k+65)/512。 对m'按下列方式迭代: FOR i=0 TO n-1 V(i+1)=CF(V(i),B(i)) ENDFOR 其中CF是压缩函数,V(0)为256比特初始值IV,B(i)为填充后的消息分组,迭代压缩结果为V(n)。 5.3.2 消息扩展 将消息分组B(i)按以下方法扩展生成132个消息字W0,W1,…W67,W'0,W'1,…W'63,用于压缩函 数CF: 第一步,将消息分组B(i)划分为16个字W0,W1,…W15。 第二步, FOR j=16 TO 67 Wi􀲓P1(Wi-16􀱇Wi-9􀱇(Wi-3<<<15))􀱇(Wi-13<<<7)􀱇Wi-6ENDFOR 第三步, FOR j=0 TO 63 W'i=Wi􀱇Wi+4 ENDFOR 5.3.3 压缩函数 令A,B,C,D,E,F,G,H为字寄存器,SS1,SS2,TT1,TT2为中间变量,压缩函数Vi+1= CF(V(i),B(i)),0≤i≤n-1。计算过程描述如下: ABCDEFGH􀲓V(i) FOR j=0 TO 63 SS1􀲓((A<<<12)+E+(Ti<<<(jmod32)))<<<7 SS2􀲓SS1􀱇(A<<<12) TT1􀲓FFi(A,B,C)+D+SS2+W'i TT2􀲓GGi(E,F,G)+H+SS1+Wi D􀲓C C􀲓B<<<9 B􀲓A A􀲓TT1 H􀲓G G􀲓F<<<19 3GB/T32905—2016 F􀲓E E􀲓P0(TT2) ENDFOR V(i+1)􀲓ABCDEFGH􀱇V(i) 其中,字的存储为大端(big-endian),左边为高有效位,右边为低有效位。 5.4 输出杂凑值 ABCDEFGH􀲓V(n) 输出256比特的杂凑值y=ABCDEFGH。 4GB/T32905—2016 附 录 A (资料性附录) 运 算 示 例 A.1 示例1 A.1.1 输入十六进制数据 616263 A.1.2 填充后的消息 6162638000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000018 A.1.3 扩展后的消息 W0W1…W67 6162638000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000018 9092e20000000000000c0606719c70ed000000008001801f939f7da900000000 2c6fa1f9adaaef14000000000001801e9a965f894971004823ce86a1b2d12f1b e1dae338f8061807055d68be86cfd4811f447d83d9023dbf185898e0e0061807 050df55ccde0104ca5b9c955a7df01846e46cd08e3babdf870caa4220353af50 a92dbca15f33cfd2e16f6e89f70fe941ca5462dc85a9015276af6296c922bdb2 68378cf5975853440900872386faee742ab908b04a64bc50864e6

.pdf文档 GB-T 32905-2016 信息安全技术 SM3密码杂凑算法

文档预览
中文文档 15 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
GB-T 32905-2016 信息安全技术 SM3密码杂凑算法 第 1 页 GB-T 32905-2016 信息安全技术 SM3密码杂凑算法 第 2 页 GB-T 32905-2016 信息安全技术 SM3密码杂凑算法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2025-07-16 21:10:12上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。