GB-T 32905-2016 信息安全技术 SM3密码杂凑算法.pdf
《GB-T 32905-2016 信息安全技术 SM3密码杂凑算法.pdf》由会员分享,可在线阅读,更多相关《GB-T 32905-2016 信息安全技术 SM3密码杂凑算法.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、I C S3 5.0 4 0L8 0中 华 人 民 共 和 国 国 家 标 准G B/T3 2 9 0 52 0 1 6信息安全技术 S M 3密码杂凑算法I n f o r m a t i o ns e c u r i t y t e c h n i q u e sS M 3c r y p t o g r a p h i ch a s ha l g o r i t h m2 0 1 6-0 8-2 9发布2 0 1 7-0 3-0 1实施中华人民共和国国家质量监督检验检疫总局中 国 国 家 标 准 化 管 理 委 员 会发 布目 次前言1 范围12 术语和定义13 符号14 常数与函数2 4
2、.1 初始值2 4.2 常量2 4.3 布尔函数2 4.4 置换函数25 算法描述2 5.1 概述2 5.2 填充2 5.3 迭代压缩3 5.4 输出杂凑值4附录A(资料性附录)运算示例5G B/T3 2 9 0 52 0 1 6前 言 本标准按照G B/T1.12 0 0 9给出的规则起草。本标准由国家密码管理局提出。本标准由全国信息安全标准化技术委员会(S A C/T C2 6 0)归口。本标准起草单位:清华大学、国家密码管理局商用密码检测中心、解放军信息工程大学、中国科学院数据与通信保护研究教育中心。本标准主要起草人:王小云、李峥、王永传、于红波、谢永泉、张超、罗鹏、吕述望。G B/T3
3、 2 9 0 52 0 1 6信息安全技术 S M 3密码杂凑算法1 范围本标准规定了S M 3密码杂凑算法的计算方法和计算步骤,并给出了运算示例。本标准适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。2 术语和定义下列术语和定义适用于本文件。2.1 比特串 b i t s t r i n g具有0或1值的二进制数字序列。2.2 大端 b i g-e n d i a n数据在内存中的一种表示格式,规定左边为高有效位,右边为低有效位。即数的高阶字节放在存储器的低地址,数的低阶字节放在存储器的高地址。2.3 消息 m e s s a g
4、e任意有限长度的比特串,本标准中消息作为杂凑算法的输入数据。2.4 杂凑值 h a s hv a l u e杂凑算法作用于一条消息时输出的消息摘要(比特串)。2.5 字 w o r d长度为3 2比特的组(串)。3 符号下列符号适用于本文件。A B C D E F GH:8个字寄存器或它们的值的串连B(i):第i个消息分组C F:压缩函数F Fj:布尔函数,随j的变化取不同的表达式G Gj:布尔函数,随j的变化取不同的表达式I V:初始值,用于确定压缩函数寄存器的初态P0:压缩函数中的置换函数P1:消息扩展中的置换函数Tj:算法常量,随j的变化取不同的值1G B/T3 2 9 0 52 0 1
5、 6m:消息m:填充后的消息m o d:模运算n:消息分组个数:3 2比特与运算:3 2比特或运算:3 2比特异或运算:3 2比特非运算+:m o d23 2比特算术加运算k:3 2比特循环左移k比特运算:左向赋值运算符4 常数与函数4.1 初始值I V=7 3 8 0 1 6 6 f 4 9 1 4 b 2 b 91 7 2 4 4 2 d 7d a 8 a 0 6 0 0a 9 6 f 3 0 b c1 6 3 1 3 8 a ae 3 8 d e e 4 db 0 f b 0 e 4 e4.2 常量Tj=7 9c c4 5 1 9 0j1 57a8 7 9d8a 1 6j6 34.3 布
6、尔函数F Fj(X,Y,Z)=XYZ 0j1 5(XY)(XZ)(YZ)1 6j6 3G Gj(X,Y,Z)=XYZ 0j1 5(XY)(XZ)1 6j6 3其中X,Y,Z为字。4.4 置换函数P0(X)=X(X9)(X1 7)P1(X)=X(X1 5)(X2 3)其中X为字。5 算法描述5.1 概述S M 3密码杂凑算法的输入为长度为l(l26 4)比特的消息m,经过填充、迭代压缩,生成杂凑值,杂凑值输出长度为2 5 6比特。运算示例参见附录A。5.2 填充假设消息m的长度为l比特,则首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足l+1+k4 4 8(m o d5 1 2)的最
7、小的非负整数。然后再添加一个6 4位比特串,该比特串是长度l的二进制表2G B/T3 2 9 0 52 0 1 6示。填充后的消息m 的比特长度为5 1 2的倍数。例如:对消息:0 1 1 0 0 0 0 10 1 1 0 0 0 1 00 1 1 0 0 0 1 1,其长度l=2 4,经填充得到比特串:5.3 迭代压缩5.3.1 迭代过程将填充后的消息m 按5 1 2比特进行分组:m=B(0)B(1)B(n-1),其中n=(l+k+6 5)/5 1 2。对m 按下列方式迭代:F O R i=0 T O n-1 V(i+1)=C F(V(i),B(i)E N D F O R其中C F是压缩函数
8、,V(0)为2 5 6比特初始值I V,B(i)为填充后的消息分组,迭代压缩结果为V(n)。5.3.2 消息扩展将消息分组B(i)按以下方法扩展生成1 3 2个消息字W0,W1,W6 7,W 0,W 1,W 6 3,用于压缩函数C F:第一步,将消息分组B(i)划分为1 6个字W0,W1,W1 5。第二步,F O R j=1 6 T O 6 7 WiP1(Wi-1 6Wi-9(Wi-31 5)(Wi-1 37)Wi-6E N D F O R第三步,F O R j=0 T O 6 3 W i=WiWi+4E N D F O R5.3.3 压缩函数令A,B,C,D,E,F,G,H为字寄存器,S S
9、1,S S2,T T1,T T2为中间变量,压缩函数Vi+1=C F(V(i),B(i),0in-1。计算过程描述如下:A B C D E F GHV(i)F O R j=0 T O 6 3 S S1(A1 2)+E+(Ti(jm o d 3 2)7 S S2S S1(A1 2)T T1F Fi(A,B,C)+D+S S2+W i T T2G Gi(E,F,G)+H+S S1+Wi DC CB9 BA AT T1 HG GF1 93G B/T3 2 9 0 52 0 1 6 FE EP0(T T2)E N D F O RV(i+1)A B C D E F GHV(i)其中,字的存储为大端(b
10、i g-e n d i a n),左边为高有效位,右边为低有效位。5.4 输出杂凑值A B C D E F GHV(n)输出2 5 6比特的杂凑值y=A B C D E F GH。4G B/T3 2 9 0 52 0 1 6附 录 A(资料性附录)运 算 示 例A.1 示例1A.1.1 输入十六进制数据6 1 6 2 6 3A.1.2 填充后的消息6 1 6 2 6 3 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11、 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8A.1.3 扩展后的消息W0W1W6 76 1 6 2 6 3 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0
12、0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 89 0 9 2 e 2 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 6 0 6 7 1 9 c 7 0 e d 0 0 0 0 0 0 0 0 8 0 0 1 8 0 1 f 9 3 9 f 7 d a 9 0 0 0 0 0 0 0 02 c 6 f a 1 f 9 a d a a e f 1 4 0 0 0 0 0 0 0 0 0 0 0 1 8 0 1 e 9 a 9
13、6 5 f 8 9 4 9 7 1 0 0 4 8 2 3 c e 8 6 a 1 b 2 d 1 2 f 1 be 1 d a e 3 3 8 f 8 0 6 1 8 0 7 0 5 5 d 6 8 b e 8 6 c f d 4 8 1 1 f 4 4 7 d 8 3 d 9 0 2 3 d b f 1 8 5 8 9 8 e 0 e 0 0 6 1 8 0 70 5 0 d f 5 5 c c d e 0 1 0 4 c a 5 b 9 c 9 5 5 a 7 d f 0 1 8 4 6 e 4 6 c d 0 8 e 3 b a b d f 8 7 0 c a a 4 2 2 0 3
14、5 3 a f 5 0a 9 2 d b c a 1 5 f 3 3 c f d 2 e 1 6 f 6 e 8 9 f 7 0 f e 9 4 1 c a 5 4 6 2 d c 8 5 a 9 0 1 5 2 7 6 a f 6 2 9 6 c 9 2 2 b d b 26 8 3 7 8 c f 5 9 7 5 8 5 3 4 4 0 9 0 0 8 7 2 3 8 6 f a e e 7 4 2 a b 9 0 8 b 0 4 a 6 4 b c 5 0 8 6 4 e 6 e 0 8 f 0 7 e 6 5 9 03 2 5 c 8 f 7 8 a c c b 8 0 1 1 e 1
15、 1 d b 9 d d b 9 9 c 0 5 4 5 W 0W 1W 6 36 1 6 2 6 3 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 9 0 9 2 e 2 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 6 0 6 7 1 9 c 7 0 f 59 0 9
16、2 e 2 0 0 8 0 0 1 8 0 1 f 9 3 9 3 7 b a f 7 1 9 c 7 0 e d 2 c 6 f a 1 f 9 2 d a b 6 f 0 b 9 3 9 f 7 d a 9 0 0 0 1 8 0 1 eb 6 f 9 f e 7 0 e 4 d b e f 5 c 2 3 c e 8 6 a 1 b 2 d 0 a f 0 5 7 b 4 c b c b 1 b 1 7 7 1 8 4 f 2 6 9 3 e e 1 f 3 4 1 e f b 9 af e 9 e 9 e b b 2 1 0 4 2 5 b 8 1 d 0 5 f 0 5 e 6 6
17、c 9 c c 8 6 1 a 4 9 8 8 d f 1 4 e 2 2 d f 3 b d e 1 5 1 b 5 4 7 d 9 1 9 8 36 b 4 b 3 8 5 4 2 e 5 a a d b 4 d 5 7 3 6 d 7 7 a 4 8 c a e d 4 c 7 6 b 7 1 a 9 b c 8 9 7 2 2 a 9 1 a 5 c a a b f 4 5 c 4 6 1 16 3 7 9 d e 7 d d a 9 a c e 8 0 9 7 c 0 0 c 1 f 3 e 2 d 5 4 f 3 a 2 6 3 e e 2 9 1 2 f 1 5 2 1 6 7
18、f a f e 5 b 5 4 f d 8 5 3 c 64 2 8 e 8 4 4 5 d d 3 c e f 1 4 8 f 4 e e 9 2 b 7 6 8 4 8 b e 4 1 8 e 5 8 7 c 8 e 6 a f 3 c 4 1 6 7 5 3 d 7 d 5 4 9 e 2 6 0 d 5A.1.4 迭代压缩中间值jABCDEFGH7 3 8 0 1 6 6 f 4 9 1 4 b 2 b 9 1 7 2 4 4 2 d 7 d a 8 a 0 6 0 0 a 9 6 f 3 0 b c 1 6 3 1 3 8 a a e 3 8 d e e 4 d b 0 f b 0
19、e 4 e0b 9 e d c 1 2 b 7 3 8 0 1 6 6 f 2 9 6 5 7 2 9 2 1 7 2 4 4 2 d 7 b 2 a d 2 9 f 4 a 9 6 f 3 0 b c c 5 5 0 b 1 8 9 e 3 8 d e e 4 d1e a 5 2 4 2 8 c b 9 e d c 1 2 b 0 0 2 c d e e 7 2 9 6 5 7 2 9 2 a c 3 5 3 a 2 3 b 2 a d 2 9 f 4 8 5 e 5 4 b 7 9 c 5 5 0 b 1 8 926 0 9 f 2 8 5 0 e a 5 2 4 2 8 c d b 8
20、2 5 7 7 3 0 0 2 c d e e 7 d 3 3 a d 5 f b a c 3 5 3 a 2 3 4 f a 5 9 5 6 9 8 5 e 5 4 b 7 95G B/T3 2 9 0 52 0 1 633 5 0 3 7 e 5 9 6 0 9 f 2 8 5 0 a 4 8 5 1 9 d 4 d b 8 2 5 7 7 3 b 8 2 0 4 b 5 f d 3 3 a d 5 f b d 1 1 d 6 1 a 9 4 f a 5 9 5 6 941 f 9 9 5 7 6 6 3 5 0 3 7 e 5 9 3 e 5 0 a 0 c 1 a 4 8 5 1 9
21、d 4 8 a d 2 1 2 e a b 8 2 0 4 b 5 f a f d e 9 9 d 6 d 1 1 d 6 1 a 953 7 4 a 0 c a 7 1 f 9 9 5 7 6 6 0 6 f c b 2 6 a 3 e 5 0 a 0 c 1 a c f 0 f 6 3 9 8 a d 2 1 2 e a 5 a f d c 1 0 2 a f d e 9 9 d 663 3 1 3 0 1 0 0 3 7 4 a 0 c a 7 3 2 a e c c 3 f 0 6 f c b 2 6 a 3 3 9 1 e c 8 a a c f 0 f 6 3 9 9 7 5 4
22、5 6 9 0 5 a f d c 1 0 271 0 2 2 a c 9 7 3 3 1 3 0 1 0 0 9 4 1 9 4 e 6 e 3 2 a e c c 3 f 3 6 7 2 5 0 a 1 3 3 9 1 e c 8 a b 1 c d 6 7 8 7 9 7 5 4 5 6 9 08d 4 7 c a f 4 c 1 0 2 2 a c 9 7 2 6 0 2 0 0 6 6 9 4 1 9 4 e 6 e 6 a d 4 7 3 a 4 3 6 7 2 5 0 a 1 6 4 5 1 9 c 8 f b 1 c d 6 7 8 795 9 c 2 7 4 4 b d 4
23、7 c a f 4 c 4 5 5 9 2 e 2 0 2 6 0 2 0 0 6 6 c 6 a 3 c e a e 6 a d 4 7 3 a 4 8 5 0 9 b 3 9 2 6 4 5 1 9 c 8 f1 0 4 8 1 b a 2 a 0 5 9 c 2 7 4 4 b f 9 5 e 9 9 a 8 4 5 5 9 2 e 2 0 0 2 a f b 7 2 7 c 6 a 3 c e a e 9 d 2 3 5 6 a 3 8 5 0 9 b 3 9 21 1 6 9 4 a 3 d 0 9 4 8 1 b a 2 a 0 8 4 e 8 9 6 b 3 f 9 5 e 9
24、9 a 8 9 d d 1 b 5 8 c 0 2 a f b 7 2 7 7 5 7 6 3 5 1 e 9 d 2 3 5 6 a 31 2 8 9 c b c d 5 8 6 9 4 a 3 d 0 9 3 7 4 5 4 0 9 0 8 4 e 8 9 6 b 3 6 3 7 0 d b 6 2 9 d d 1 b 5 8 c b 9 3 8 1 5 7 d 7 5 7 6 3 5 1 e1 3 2 4 c 9 5 a b c 8 9 c b c d 5 8 9 4 7 a 1 2 d 2 3 7 4 5 4 0 9 0 1 a 4 a 2 5 5 4 6 3 7 0 d b 6 2
25、a c 6 4 e e 8 d b 9 3 8 1 5 7 d1 4 7 c 5 2 9 7 7 8 2 4 c 9 5 a b c 9 7 9 a b 1 1 3 9 4 7 a 1 2 d 2 3 e e 9 5 9 3 3 1 a 4 a 2 5 5 4 d b 1 3 1 b 8 6 a c 6 4 e e 8 d1 5 3 4 d 1 6 9 1 e 7 c 5 2 9 7 7 8 9 2 b 5 7 8 4 9 9 7 9 a b 1 1 3 6 1 f 9 9 6 4 6 3 e e 9 5 9 3 3 2 a a 0 d 2 5 1 d b 1 3 1 b 8 61 6 7 9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB-T 32905-2016 信息安全技术 SM3密码杂凑算法 GB 32905 2016 信息 安全技术 SM3 密码 杂凑 算法
限制150内