(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211280343.9
(22)申请日 2022.10.19
(71)申请人 上海高性能集成电路 设计中心
地址 201210 上海市浦东 新区张江高科技
园区毕升路39 9号
(72)发明人 何军 陈子钰 姜军 尹飞
蒋生健 李媛 范好好
(74)专利代理 机构 上海泰博知识产权代理有限
公司 31451
专利代理师 钱文斌
(51)Int.Cl.
G06F 9/38(2006.01)
G06F 9/30(2006.01)
G06F 21/60(2013.01)
(54)发明名称
一种SM3密码杂凑算法的加速方法及指令集
处理器
(57)摘要
本发明涉及一种SM3密码杂凑算法的加速方
法及指令集处理器, 其中, 加速方法基于SM3扩展
指令集, 采用并行流水线和指令级并行技术加速
执行SM3密码杂凑 算法; 所述SM3扩展指令集采用
RISC架构, 包括SM3消息字扩展指令和SM3工作变
量字迭代更新指令, 所述SM3消息字扩展指令采
用多消息字并行扩展算法以加速SM3消息扩展 函
数, 所述SM3工作变量字迭代更新指令采用多轮
迭代融合算法 以加速SM3迭代压缩函数。 所述指
令集处理器支持SM3消息字扩展指令和SM3工作
变量字迭代更新指令流水执行, 延迟分别为1拍
和5拍。 本发明可以显著地提高处理器执行SM3密
码杂凑算法的速度。
权利要求书3页 说明书12页 附图6页
CN 115525342 A
2022.12.27
CN 115525342 A
1.一种SM3密码杂凑算法的加速方法, 其特征在于, 基于SM3扩展指令集, 采用并行流水
线和指令级并行技术加速执行SM3密码杂凑算法; 所述SM3扩展指令集采用RISC架构, 指令
采用定长的32位格式, 源操作数和目标操作数均为256位; 所述S M3扩展指令集包括SM3消息
字扩展指 令和SM3工作变量字迭代更新指 令, 所述S M3消息字扩展指 令采用多消息字并行扩
展算法以加速SM3消息扩展函数, 所述多消息字并行扩展算法以填充后消息中的16个消息
字作为初始输入, 单次执行就能完成8 个消息字的生 成, 依次执行所述S M3消息字扩展指 令7
次, 生成68个消 息字; 所述SM3工作变量字迭代更新指令采用多轮迭代 融合算法以加 速SM3
迭代压缩函数, 所述多轮迭代融合算法能将经过所述SM3消息字扩展指令处理后得到的消
息字的扩展融合到所述S M3迭代压缩函数执行过程中, 并且每次以消息字中的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)作为最终输出的2 56位的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, 保存指令的运 算结果。
4.根据权利 要求1所述的SM3密码杂 凑算法的加速方法, 其特征在于, 所述SM3消息字扩
展指令具体为: 根据当前的16个32位消息字W15~W0, 并行生成SM3密码杂凑算法后续8个消
息字W23~W16, 其中, W7~W0保存在源寄存器Va中, W15~W8保存在源寄存器Vb中, 生成的结果
W23~W16保存在一个目标寄存器Vc中; 结果W23~W16中的每一个结果字Wi的生成逻辑是:
(Temp XOR(Temp<<<15)XOR(T emp<<<23))XOR(Wi‑13<<<7)XOR Wi‑6, 其中XOR表示按位异或、 <
<<表示循环左移、 Temp是一个32位的中间变量字, Temp的生成逻辑是Wi‑16 XOR Wi‑9XOR(Wi‑3
<<<15); 单次执行所述SM3消息字扩展指 令就能生 成SM3密码杂凑算法的8个消息字, 依次执权 利 要 求 书 1/3 页
2
CN 115525342 A
2行所述SM3消 息字扩展指令7次, 每次用源寄存器Vb中的数据更新源寄存器V a, 用生成的目
标寄存器Vc中的数据更新源寄存器Vb, 生成SM3密码杂凑算法的68个消息字W0, W1,……,
W67。
5.根据权利 要求1所述的SM3密码杂 凑算法的加速方法, 其特征在于, 所述SM3工作变量
字迭代更新指令采用立即数格式的浮点复合运算指令格式, 具体为VSM3RVa,Vb,#c,Vd, 用
于指示两个256位的源寄存器V a和源寄存器Vb中的两个操作数以及一个5位的立即数#c进
行运算, 结果保存到一个256位的目标寄存器Vd中, 32位指令的[31:26]位表示6位的操作
码, [25:21]位表示选择由32个256位的寄存器组成 的寄存器文件之一作为源寄存器Va, 保
存指令的源操作数, [20:16 ]位表示选择由32个256位的寄存器组成的寄存器文件之一作为
源寄存器Vb, 保存指令的源操作数, [15:10]位表示用于确定具体指令功能的6位功能码,
[9:5]位表示5位的立即数, 指示循环迭代次数, [4:0]位表示选择由32个256位的寄存器组
成的寄存器文件之一作为目标寄存器Vd, 保存指令的运 算结果。
6.根据权利 要求1所述的SM3密码杂 凑算法的加速方法, 其特征在于, 所述SM3工作变量
字迭代更新指令具体为: 根据 当前的8个32位工作变量字{H,G,F,E,D,C,B,A}和8个消息字
{W7~W0}, 以及立即数#c的值, 按照SM3 算法完成工作变 量字第4*#c~4*#c+3轮的迭代更新,
其中, {W7~W0}保存在源寄存 器Va中, 工作变 量字{H,G,F,E,D,C,B,A}保存在源寄存 器Vb中,
更新后的工作变量字{H,G,F,E,D,C,B,A}保存在目标寄存器Vd中; 每一轮迭代更新会根据
立即数#c的不同选择不同的迭代常数T以及迭代逻辑, 迭代过程中设置中间变量字SS1、
SS2、 TT1、 TT2、 P0, 每一个中间变量字均为32位; 对于第4*#c~4*#c+3轮的4轮(i=0~3)迭
代, 当#c小于4时: 迭代常数T=0x79cc4519, SS1的生成逻辑是: ((A<<<12)+E+(T<<<(4*#c+
i)))<<<7, SS2的生成逻辑是: SS2=SS1 XOR(A<<<12), TT1的生成逻辑是: TT1=(A XORBXOR
C)+D+SS2+(WiXOR Wi+4), TT2的生成逻辑是: TT2=(EXORFXOR G)+H+SS1+Wi, P0的生成逻辑
是: P0=TT2 XOR(TT2<<<9)XOR(TT2 <<<17), 其中XOR表示按 位异或、 <<<表示循环左移, 更新
过程为: H更新为G, G更新为F<<<19, F更新为E, E更新为P0, D更新为C, C更新为B<<<9, B更新
为A, A更新为TT1; 当#c大于等于4时: 迭代常数T=0x7a879d8a, SS1的生成逻辑是: ((A<<<
12)+E+(T<<<(4*#c+i)))<<<7, SS2的生成逻辑是: SS2=SS1 XOR(A<<<12), TT1的生成逻辑
是: TT1=((A AND B)OR(A AND C)OR(BAND C))+D+SS2+(WiXOR
专利 一种SM3密码杂凑算法的加速方法及指令集处理器
文档预览
中文文档
22 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共22页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 05:34:59上传分享