当前位置:文档之家› 信息安全技术SM3密码杂凑算法编制说明全国信息安全标准化.doc

信息安全技术SM3密码杂凑算法编制说明全国信息安全标准化.doc

《信息安全技术SM3 密码杂凑算法》(征求意见稿)编制说明一、任务来源根据国家标准化管理委员会XX 年下达的国家标准制修订计划,国家标准《信息安全技术SM3 密码杂凑算法》由国家商密办负责主办。

标准计划号为XXXXX (全国信息安全标准化技术委员会XXXX 年信息安全专项)。

二、编制原则1.坚持安全、实用、美观的技术标准:全面分析所制定规范的安全性,对算法的可抗攻击性进行完善分析,重点考虑实用性和其以后的推广;保证算法能够有效抵抗比特追踪法以及其他已知的分析方法。

算法的设计过程中,算法的符号表述尽量标准、美观。

2.创新性:在算法标准的设计方面分别有不同的创新。

3.自主性:设计自主、符合我国需求的哈希算法。

4.高效性:设计的杂凑算法便于软、硬件平台高效的实现。

在保障安全性的前提下,综合性能指标优于SHA-256。

5.合法性:符合国家有关法律法规和已经制定的标准规范的相关要求。

三、主要工作过程(一)密码行业标准起草工作过程1.设计评审阶段2002年1月21日,国密办下达了“杂凑算法”研制任务的通知,算法于2002 年5月设计完成。

2002年8月22日,技术处对数据所研制的SCH1杂凑算法进行了算法审查,并于8月29日至31日对其余六个分别由数据所、济南得安、中科院DCS 中心、成都卫士通、江南所和山东大学研制的SCH2-SCH7 进行了集中审查。

确定并评审出SCH4 杂凑算法。

2.优化检测阶段2003年7月,国密办向SCH4研制单位中科院数据与通信保护研究教育中心下达了“关于对SCH4杂凑算法进行修改完善的通知”,9月26日“LSW杂凑算法课题组”完成SCH4杂凑算法修改完善工作完成并形成相关技术文档。

2003年10 月27 日志12 月26 日,商用密码杂凑算法综合检测组在SSR02密码算法综合检测平台、IC卡汇编语言仿真检测平台、FPGA/ASIC 仿真检测平台上对优化后的SCH4 杂凑算法进行了综合检测并形成综合检测记录和检测报告。

3.初稿编写及IP 核实施阶段2004年6月国密办下达杂凑算法标准编写任务。

7月~10月底,中科院数据通信与保护研究教育中心根据杂凑算法标准编写任务的要求完成商用密码杂凑算法标准,形成初稿。

同年11月,根据国密办《关于下达杂凑算法IP 核设计任务的通知》,国家密码管理委员会办公室商用密码研究中心承担了SCH4 杂凑算法0.35um、0.25um、0.18um三种工艺IP核实现的设计任务,形成SCH4算法IP核实施方案。

4.算法修改及初稿重新修订阶段2005年3月,针对王小云教授自主研发的比特追踪法破解MD5 等算法的情况,国家密码管理局请专家组对SCH4 算法进行了针对性分析,分析结果表明该算法不能有效抵御比特追踪法分析;随后国家密码管理局紧急组织成立了SCH 杂凑算法研制攻关组,在保持SCH4 基本结构的基础上,运用最先进的杂凑算法分析和设计理论对其修改,研制了SCH 算法并对初稿进行重新修订。

新算法采用了新颖的消息扩展算法、双字介入的并行压缩结构以及混合使用不同群运算,有利于消息的扩散和混乱,便于软、硬件实现。

针对算法本身特点,综合运用差分抗碰撞分析、线性分析和均差分析等方法进行了深入的安全性分析,特别是针对国际上最先进的比特追踪法进行了安全设计和分析。

结果表明,该算法安全强度高,灵活性好,技术先进,设计上有创新,适合软硬件实现,适合IC 卡等终端用户产品实现。

5.征求意见稿编写阶段2005 年5 月,对初稿进行修改和补充,结合各成员单位多年技术积累,反复交流,求同存异,在形成一致共识的基础上整理完成了规范的征求意见稿。

6.送审稿编写阶段2008年4月,依据国密局字[2008]190 号文件“关于下达《SM1 分组密码算法》等标准文本修订任务的通知”,无锡江南信息安全工程技术中心组成了标准文本修订工作小组,开展对SM3 密码杂凑算法标准文本的修订工作。

工作小组遵照国家密码管理局关于“精心组织、周密安排,合理使用经费“的要求采取了集中办公的方式,统筹安排、合理分工、认真编写、交流讨论等方式开展工作。

按照标准的规范性要求,在标准的结构、规范性要素的编写规则,尤其是密码算法的标准名称、前言、引言、范围、术语和定义、符号和缩略语、内容设置、图、表、公式表述、词语表达、符号选择、规范性引用文件和参考性文献以及规范性附录和资料性附录等方面,经多次讨论,反复修订,形成了《SM3 密码杂凑算法》标准文本。

2012年1 月~2012年2月,国家密码管理局组织专家审查,对《算法》进行修改和讨论,并对送审稿进行补充完善,形成了《SM3 密码杂凑算法》(送审稿)。

(二)国家标准工作过程1、2013年3月-2013年9月,在上述工作的基础上,根据信息安全国家标准制修订工作程序,对标准文本进行完善修改,形成《信息安全技术SM3 密码杂凑算法》征求意见稿,提交信安标委秘书处。

2、2013年11月20日,信安标委秘书处组织专家对文本进行讨论修改;编制组根据专家意见对标准文本进行修改完善。

四、标准的主要内容及确定内容的依据1.SM3 杂凑算法流程描述SM3 杂凑算法是一种基于分组迭代结构的杂凑算法。

SM3 杂凑算法流程描述如下:(1)消息填充分组处理:将输入消息比特X (不失一般性,限制消息串的比特长度小于264),按照特定的规定填充并分组成为固定长度整数倍的消息分组序列BB = BB0⋯BB n-2BB n-1,其中每一消息分组BB i 长度固定为512比特,并且BB n-1中最好64比特用来指示消息x 的比特长度。

(2)迭代处理:从0到n-1迭代计算:(3)SM3( ) :H i+1=CF(H i,BB i)(4)消息比特串X 的输出结果为:H n=SM3(X)是输出长度为256 比特的压缩函数。

(5)其中H0-IV 为一256比特常量,CF( H i,BB i)是输出长度为256 比特的压缩函数。

(6)杂凑值输出:SM3 杂凑算法将以上第n 次迭代处理的256 比特输出值H n,通过选裁函数个g(H n)得到160比特、192比特或256 比特三种长度的杂凑输出值。

2.SM3 杂凑算法主要结构描述(1)填充过程假设消息x的长度为l 。

则首先将比特“1添”加到消息的末尾,再添加k个“0,” 这里k是满足l 1 k 448(mod512) 的最小非负整数。

然后再添加一个64 比特长的块,其值等于消息x的长度l的二进制表示。

产生的比特串x'的比特长度恰好为512 的整数倍。

例如,对消息比特串:01100001 01100010 01100011应用以上填充得到比特串:64 742348 6 44 764 4 481014120040301 1014120040310 1014120040311 1 00L 00 00L 01{1000l 24将消息x'按512比特进行分组:x' B 0B 1.................. B n 1,其中n (l k 65) 512 。

(2)迭代压缩算法对每一个消息分组B i按顺序进行以下处理:V i 1 CF(V i ,B i ) i 0,1,..., n 1其中CF 是压缩函数,V 0为256 比特初始值IV 。

迭代压缩的输出为V n。

(3)消息扩展算法将消息分组B i按以下方法扩展成132个消息字W0 ,W1 ,...,W67, W0 ', , W63 ' :a.将消息分组B i划分为16 个字W0W1...W15 。

b.FOR j 16 TO 67W j P1(W j 16 W j 9 (W j 3 15)) (W j 13 7) W j 6ENDFORc.FOR j 16 TO 63W j ' W j W j 4 ENDFOR(4)压缩函数令A,B,C,D,E,F,G,H 为字寄存器,SS1, SS2,TT 1,TT 2为中间变量,压缩函数V i 1 CF(V i ,B i ) 计算过程详细描述如下:ABCDEFGH V iFOR j 0 TO 63SS1 [( A 12) E (T j)] 7SS2 SS1 (A 12)TT1 [FF (A,B,C) D SS2] W j'TT2 [GG(E,F,G) HSS1]W jD CC B9B AA TT1H GG F 19F EE P0(TT 2)ENDFORV i1ABCDEFGH V i压缩函数第j 步框图如下:图 2 压缩函数 V i 1 CF(V i ,B i ) 中“第 j 步”的框图y 0 A B E , y 1 BF C , y 2 CG ,(5) 选裁过程令消息 x 的 n 次迭代压缩输出值为 V n ABCDEFGH ,长度为 256 比特。

192 比特或 160 比特的杂凑值。

a. 256 比特输出ABCDEFGH V n输出 y ABCDEFGHb. 192 比特输出ABCDEFGH V nc. 160 比特输出ABCDEFGH V n针对不同的杂凑输出值长度要求,通过选裁函数 y g(V n)选裁产生 256 比特、 y 0 A B E , y 1B F y 2C G y 3D H , y 4 F C ,y 5 D G 输出 192 比特的杂凑值 y y 0y 1y 2 y 3y 4y 5。

y 3 D H ,y 4 D G 输出 160比特的杂凑值 y y 0 y 1 y 2 y 3 y 4 。

五、 与相关法律法规及国家有关规定、国内相关标准的关系1) 与相关法律法规及国家有关规定的关系 本标准遵守《商用密码管理条例》的各项规定,标准中定义的各项标识与 GM/T 0004-2012 《SM3 密码杂凑算法》中规定的相关密码算法的使用要求保持 一致。

2) 与相关国际标准的关系本标准中的附录 A “商用密码领域中的相关 OID 定义 ”定义了国产密码算法 相关的标识符 OID ,与国际上相关密码算法的 OID 定义不存在冲突,是对国际 上密码算法的 OID 定义的扩展。

六、 有关问题的说明1.函数与常数(1) 初始值IV=7380166F 4914B2B9 172442D7 DA8A0600A96F30BC 163138AA E38DEE4D B0FB0E4E(2) 内部常数77CC4519 0 j 15 T jj 7A879D8A 16 j 63(3) 函数A B C 0 j 15 (A C) (B C) 16 j 63 F G 0 j 15 ( E G) 16 j 63 (1) 创新的结构设计 SM3 杂凑算法的压缩函数采用 P 置换作为加强雪崩的基本运算,结合双字 介入的并行处理结构,增加了扩散和混乱的速度,在提高安全性的同时, 又保证 了算法的实现效率。

相关主题