信息安全技术SM3密码杂凑算法编制说明全国信息安全标准化.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信息安全技术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 48
1014120040301 1014120040310 1014120040311 1 00L 00 00L 01{1000
l 24
将消息x'按512比特进行分组:x' B 0B 1.................. B n 1,其中
n (l k 65) 512 。
(2)迭代压缩算法