[发明专利]一种SM3密码杂凑算法的加速方法及指令集处理器在审
申请号: | 202211280343.9 | 申请日: | 2022-10-19 |
公开(公告)号: | CN115525342A | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 何军;陈子钰;姜军;尹飞;蒋生健;李媛;范好好 | 申请(专利权)人: | 上海高性能集成电路设计中心 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30;G06F21/60 |
代理公司: | 上海泰博知识产权代理有限公司 31451 | 代理人: | 钱文斌 |
地址: | 201210 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm3 密码 杂凑 算法 加速 方法 指令 处理器 | ||
1.一种SM3密码杂凑算法的加速方法,其特征在于,基于SM3扩展指令集,采用并行流水线和指令级并行技术加速执行SM3密码杂凑算法;所述SM3扩展指令集采用RISC架构,指令采用定长的32位格式,源操作数和目标操作数均为256位;所述SM3扩展指令集包括SM3消息字扩展指令和SM3工作变量字迭代更新指令,所述SM3消息字扩展指令采用多消息字并行扩展算法以加速SM3消息扩展函数,所述多消息字并行扩展算法以填充后消息中的16个消息字作为初始输入,单次执行就能完成8个消息字的生成,依次执行所述SM3消息字扩展指令7次,生成68个消息字;所述SM3工作变量字迭代更新指令采用多轮迭代融合算法以加速SM3迭代压缩函数,所述多轮迭代融合算法能将经过所述SM3消息字扩展指令处理后得到的消息字的扩展融合到所述SM3迭代压缩函数执行过程中,并且每次以消息字中的8个消息字和迭代中的工作变量字作为输入,完成SM3工作变量字的4轮迭代更新,依次执行所述SM3工作变量字迭代更新指令16次,完成SM3算法工作变量字的第0~63轮迭代更新,从而得到所述SM3压缩函数最终输出的工作变量字。
2.根据权利要求1所述的SM3密码杂凑算法的加速方法,其特征在于,所述采用并行流水线和指令级并行技术加速执行SM3密码杂凑算法具体包括以下步骤:
(1)以填充后消息中的16个消息字W0,W1,……,W15作为输入,执行第1条所述SM3消息字扩展指令,生成新的消息字W16,W17,……,W23;同时,以消息字W0,W1,……,W7和256比特的工作状态变量初始值V(0)作为输入,执行第一条所述SM3工作变量字迭代更新指令;
(2)连续以最新的16个消息字作为输入,连续执行6条所述SM3消息字扩展指令,每次执行结果输出的消息字记为W8i+8,W8i+9,……,W8i+15,最终得到SM3密码杂凑算法的68个消息字W1,W2,……,W67;在第一条所述SM3工作变量字迭代更新指令执行5拍后输出工作状态变量V(3),以新的消息字和工作状态变量作为输入,然后采用相同的方式连续循环执行15条所述SM3工作变量字迭代更新指令,每次执行结果输出的工作状态变量记为V(4j-1);
(3)将最终的执行结果输出的工作状态变量V(63)作为最终输出的256位的SM3杂凑值y={H,G,F,E,D,C,B,A}。
3.根据权利要求1所述的SM3密码杂凑算法的加速方法,其特征在于,所述SM3消息字扩展指令采用寄存器格式的简单运算指令格式,具体为VSM3MSW Va,Vb,Vc,用于指示两个256位的源寄存器Va和源寄存器Vb中的两个操作数进行运算,结果保存到256位的目标寄存器Vc中,32位指令的[31:26]位表示6位的操作码,[25:21]位表示选择由32个256位的寄存器组成的寄存器文件之一作为源寄存器Va,保存指令的源操作数,[20:16]位表示选择由32个256位的寄存器组成的寄存器文件之一作为源寄存器Vb,保存指令的源操作数,[15:13]位总是全“0”,[12:5]位表示用于确定具体指令功能的8位功能码,[4:0]位表示选择由32个256位的寄存器组成的寄存器文件之一作为目标寄存器Vc,保存指令的运算结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海高性能集成电路设计中心,未经上海高性能集成电路设计中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211280343.9/1.html,转载请声明来源钻瓜专利网。