全网唯一标准王
(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

.PDF文档 专利 一种SM3密码杂凑算法的加速方法及指令集处理器

文档预览
中文文档 22 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共22页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种SM3密码杂凑算法的加速方法及指令集处理器 第 1 页 专利 一种SM3密码杂凑算法的加速方法及指令集处理器 第 2 页 专利 一种SM3密码杂凑算法的加速方法及指令集处理器 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 05:34:59上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。