[发明专利]实现SM3密码杂凑算法中的迭代压缩的方法在审
申请号: | 201410325899.4 | 申请日: | 2014-07-09 |
公开(公告)号: | CN104092534A | 公开(公告)日: | 2014-10-08 |
发明(设计)人: | 刘忠志 | 申请(专利权)人: | 昆腾微电子股份有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100195 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 sm3 密码 杂凑 算法 中的 压缩 方法 | ||
技术领域
本发明涉及密码学领域,尤其涉及一种实现SM3密码杂凑算法中的迭代压缩的方法。
背景技术
国产密码算法是我国自主研制完成的一种密码算法,具有较高安全性,由国家密码管理局任何和推广,用以保障我国信息安全,在国家主导的行业中大多采用国家密码管理局的密码算法,已逐渐成为趋势。
SM3密码杂凑算法是国家密码管理局于2010年12月公布的一种国产密码算法。SM3密码杂凑算法适用于商用密码应用中的数字签名和认证、消息认证码的生成与验证以及随机数的生成,可以满足多种密码应用的安全需求,同时还可为安全产品生产商提供产品和技术的标准定位以及标准化的参考,提高安全产品的可信性与互操作性。
国家密码管理局公布的SM3密码杂凑算法中,规定了SM3的计算方法和计算步骤。SM3密码杂凑算法分为消息填充、迭代压缩和杂凑值三步。其中,消息填充是将长度小于264-bit的消息m,填充为长度为512-bit的整倍数的消息块m’;迭代压缩是SM3算法的核心,把填充后的消息m’按照固定的512-bit进行分组,得到消息分组B(0)B(1)…B(n-1),然后对每个512-bit分组B(i)逐次压缩,最终得到整个消息m’的256-bit的杂凑值(hash value),其中,n=消息m’的长度/512。迭代压缩过程包括迭代过程、消息扩展和压缩函数,其中,消息扩展和压缩函数的具体算法如下:
1、消息扩展
将消息分组B(i)按以下方法扩展生成132个字W0;W1;…W67;W’0;W’1;…W’63,用于压缩函数CF。其中,68个W和64个W’,均是32-bit的字。
a)将消息分组B(i)划分为16个字W0;W1;…W15。
b)FOR j=16TO67
Wj=P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕(Wj-1<<<7)⊕Wj-6
ENDFOR
c)FOR j=0TO63
W’j=Wj⊕Wj+4
ENDFOR
2、压缩函数
令A,B,C,D,E,F,G,H为32-bit字寄存器,SS1,SS2,TT1,TT2为32-bit中间变量,压缩函数Vi+1=CF(V(i),B(i)),0≤i≤n-1。计算消息分组B(i)的杂凑值V(i+1)过程描述如下:
ABCDEFGH=V(i)
FOR j=0TO63
SS1=((A<<<12)+E+(Tj<<<j))<<<7
SS2=SS1⊕(A<<<12)
TT1=FFj(A,B,C)+D+SS2+W’j
TT2=GGj(E,F,G)+H+SS1+Wj
D=C
C=B<<<9
B=A
A=TT1
H=G
G=F<<<19
F=E
E=P0(TT2)
ENDFOR
V(i+1)=ABCDEFGH⊕V(i)
其中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆腾微电子股份有限公司,未经昆腾微电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410325899.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:老年人专用电话机
- 下一篇:一种交流双电源切换方法