[发明专利]SM3密码杂凑算法的并行化优化方法有效
申请号: | 201811323148.3 | 申请日: | 2018-11-08 |
公开(公告)号: | CN109547192B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 关志;陈霄;王珂;李青山;陈钟 | 申请(专利权)人: | 北京大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/08;H04L9/32 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 黄凤茹 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sm3 密码 杂凑 算法 并行 优化 方法 | ||
1.一种SM3密码杂凑算法的并行化优化方法,所述SM3密码杂凑算法包括SM3消息扩展函数和SM3消息压缩函数;所述SM3消息扩展函数将512位的消息分组分为16个字,再将16个字长度的消息转化成68个字长度的变量W0,W1,…,W67和64个字长度的变量W′0,W′1,…,W′63,供SM3消息压缩函数使用;SM3密码杂凑并行优化算法将512位的消息分组作为输入,通过16轮或8轮迭代,将最后一轮的状态变量A,B,C,D,E,F,G,H作为SM3消息压缩函数的输出;其特征是:
采用4路或8路并行算法,分别对应16轮或8轮迭代,在每轮上述迭代中,通过将SM3密码杂凑算法中的循环运算展开,循环运算展开后再进行4轮或8轮迭代,并进行变量替换和冗余消除,再将变化后的SM3消息压缩函数和SM3消息扩展函数按照迭代合并;具体是:在4路或8路合并后的函数的并行部分,使用具体向量指令代替并行的伪代码;而在非并行部分,使用通用非向量指令执行;
4路并行算法将SM3密码杂凑算法的展开与并行化过程具体包括如下步骤:
1)SM3消息压缩函数共包含64轮循环运算,将64轮循环运算的执行按照每4轮循环展开,展开之后再进行计算;在SM3消息压缩函数循环展开过程中,可进行状态变量替换和/或输入变量替换;
11)进行状态变量替换,即用一轮迭代的状态变量来替换后几轮迭代的状态变量,使得迭代过程中的中间状态变量及状态变量的赋值语句都被简化;
12)进行输入变量替换,所需输入变量由W0,W1,…,W67和W′0,W′1,…,W′63变成V0,V1,…,V63和V′0,V′1,…,V′63,每次迭代需要变量Vj,Vj+1,Vj+2,Vj+3和V′j,V′j+1,V′j+2,V′j+3,其中j是当前算法相对标准算法的迭代轮数;由此进一步简化SM3消息压缩函数的计算;
所述替换具体是:令
Vj=Dj+Wj
V′j=Hj+W′j
Vj+1=Cj+Wj+1
V′j+1=Gj+W′j+1
Vj+2=(Bj<<<9)+Wj+2
V′j+2=(Fj<<<19)+W′j+2
Vj+3=(Aj<<<9)+Wj+3
V′j+3=(Ej<<<19)+W′j+3
2)将SM3消息扩展函数的64轮运算按照同样4轮的循环/迭代展开,则新的SM3消息扩展函数刚好可以在j轮的时候,利用j轮时SM3消息压缩函数的初始状态,并行地生成新SM3消息压缩函数在j轮迭代所需要的变量Vj,Vj+1,Vj+2,Vj+3和V′j,V′j+1,V′j+2,V′j+3;
3)迭代展开后的SM3消息压缩函数和SM3消息扩展函数按轮对应合并,表示为4路SM3消息压缩函数;
经过转换,SM3密码杂凑算法等价于每轮执行步骤2)中SM3消息扩展函数迭代展开后的1轮循环和步骤1)SM3消息压缩函数迭代展开后的1轮循环,即相当于标准算法执行SM3消息压缩函数和SM3消息扩展函数各4次迭代;
Vj,Vj+1,Vj+2,Vj+3,V′j,V′j+1,V′j+2,V′j+3可通过并行方式进行计算,由此实现利用处理器中的SIMD指令集进行加速计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811323148.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:双轨预充电逻辑装置
- 下一篇:一种基于区块链且抗量子计算机攻击的电子投票方法