[发明专利]一种SM4分组密码算法的加速方法及指令集处理器在审

专利信息
申请号: 202211280193.1 申请日: 2022-10-19
公开(公告)号: CN115658148A 公开(公告)日: 2023-01-31
发明(设计)人: 何军;陈子钰;姜军;尹飞;蒋生健;李媛;范好好 申请(专利权)人: 上海高性能集成电路设计中心
主分类号: G06F9/38 分类号: G06F9/38;G06F9/30;G06F21/60
代理公司: 上海泰博知识产权代理有限公司 31451 代理人: 钱文斌
地址: 201210 上海市浦*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 sm4 分组 密码 算法 加速 方法 指令 处理器
【权利要求书】:

1.一种SM4分组密码算法的加速方法,其特征在于,基于SM4扩展指令集,采用并行流水线和指令级并行技术加速实现SM4分组密码算法,所述SM4分组密码算法包括SM4密钥扩展算法和SM4加解密算法;所述SM4扩展指令集采用RISC架构,指令采用定长的32位格式,源操作数和目标操作数均为256位;所述SM4扩展指令集包括SM4轮密钥生成指令和SM4轮函数迭代指令;所述SM4轮密钥生成指令采用多个SM4轮密钥并行生成算法以加速所述SM4密钥扩展算法,所述SM4轮密钥并行生成算法以此前的4个32位的中间密钥K3~K0和与后续8个轮密钥相关的8个32位的算法固定参数CK7~CK0作为输入,在SM4轮密钥扩展过程中,执行一次就能完成8个轮密钥生成;所述SM4轮函数迭代指令采用多轮SM4迭代并行执行算法以加速所述SM4加解密算法,所述SM4迭代并行执行算法以两组不相关的当前4个中间字W3~W0、W’3~W’0和后续8轮运算使用的8个轮密钥rk7~rk0为输入,在SM4分组密码算法的加密/解密过程中,生成执行SM4加解密轮函数8轮后的两组不相关的4个中间字。

2.根据权利要求1所述的SM4分组密码算法的加速方法,其特征在于,所述采用并行流水线和指令级并行技术加速实现SM4分组密码算法时:

加密时包括以下步骤:

(A)采用通用处理器中的通用指令生成轮密钥迭代初值(K3,K2,K1,K0);

(B)以所述轮密钥迭代初值(K3,K2,K1,K0)和系统固定参数CK7~CK0为输入执行第1条SM4轮密钥生成指令,生成SM4分组密码算法的8个轮密钥rk7~rk0

(C)以所述轮密钥rk7~rk4和系统固定参数CK15~CK8为输入执行第2条SM4轮密钥生成指令,生成SM4分组密码算法的8个轮密钥rk15~rk8;同时以所述轮密钥rk7~rk0和两组数据不相关的明文(W3,W2,W1,W0,W’3,W’2,W’1,W’0)为输入,执行第1条SM4轮函数迭代指令,完成SM4加密算法1~8次轮函数迭代,得到迭代工作字(W(7)3,W(7)2,W(7)1,W(7)0,W’(7)3,W’(7)2,W’(7)1,W’(7)0);

(D)以所述轮密钥rk15~rk12和系统固定参数CK23~CK16为输入执行第3条SM4轮密钥生成指令,生成SM4分组密码算法的8个轮密钥rk23~rk16;同时以所述轮密钥rk15~rk8和迭代工作字(W(7)3,W(7)2,W(7)1,W(7)0,W’(7)3,W’(7)2,W’(7)1,W’(7)0)为输入,执行第2条SM4轮函数迭代指令,完成SM4加密算法9~16次轮函数迭代,得到迭代工作字(W(15)3,W(15)2,W(15)1,W(15)0,W’(15)3,W’(15)2,W’(15)1,W’(15)0);

(E)以所述轮密钥rk23~rk20和系统固定参数CK31~CK24为输入执行第4条SM4轮密钥生成指令,生成SM4分组密码算法的8个轮密钥rk31~rk24;同时以所述轮密钥rk23~rk16和迭代工作字(W(15)3,W(15)2,W(15)1,W(15)0,W’(15)3,W’(15)2,W’(15)1,W’(15)0)为输入,执行第3条SM4轮函数迭代指令(VSM4R),完成SM4加密算法17~24次轮函数迭代,得到迭代工作字(W(23)3,W(23)2,W(23)1,W(23)0,W’(23)3,W’(23)2,W’(23)1,W’(23)0);

(F)以所述轮密钥rk31~rk24和迭代工作字(W(23)3,W(23)2,W(23)1,W(23)0,W’(23)3,W’(23)2,W’(23)1,W’(23)0)为输入,执行第4条SM4轮函数迭代指令,完成SM4加密算法25~32次轮函数迭代,得到迭代工作字(W(31)3,W(31)2,W(31)1,W(31)0,W’(31)3,W’(31)2,W’(31)1,W’(31)0);

(G)将所述迭代工作字(W(31)3,W(31)2,W(31)1,W(31)0,W’(31)3,W’(31)2,W’(31)1,W’(31)0)反序输出,得到加密算法的执行结果密文(Y3,Y2,Y1,Y0,Y’3,Y’2,Y’1,Y’0);解密时包括以下步骤:

(a)采用通用处理器中的通用指令生成轮密钥迭代初值(K3,K2,K1,K0);

(b)以所述轮密钥迭代初值(K3,K2,K1,K0)和系统固定参数CK31~CK0为源操作数据,依次执行SM4轮密钥生成指令4次,生成SM4分组密码算法的32个轮密钥rk31~rk0

(c)以所述轮密钥rk31~rk0和密文(Y3,Y2,Y1,Y0,Y’3,Y’2,Y’1,Y’0)为输入,依次执行SM4轮函数迭代指令4次,完成SM4解密算法的32次轮函数迭代,得到迭代工作字(W(31)3,W(31)2,W(31)1,W(31)0,W’(31)3,W’(31)2,W’(31)1,W’(31)0);

(d)将所述迭代工作字(W(31)3,W(31)2,W(31)1,W(31)0,W’(31)3,W’(31)2,W’(31)1,W’(31)0)反序输出,得到解密算法的执行结果明文(W3,W2,W1,W0,W’3,W’2,W’1,W’0)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海高性能集成电路设计中心,未经上海高性能集成电路设计中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202211280193.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top