[发明专利]一种基于SM4算法的数据加密方法、装置及计算机平台在审
申请号: | 202110822234.4 | 申请日: | 2021-07-21 |
公开(公告)号: | CN113282947A | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 叶露晨;范渊;吴卓群;王欣 | 申请(专利权)人: | 杭州安恒信息技术股份有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F9/30;G06F9/38 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春辉 |
地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sm4 算法 数据 加密 方法 装置 计算机 平台 | ||
1.一种基于SM4算法的数据加密方法,其特征在于,应用于计算机平台,包括:
运用SIMD流水线技术,每次并行读取目标数量的明文分组,对读取到的数据进行重排,将重排结果存入计算机平台的全部寄存器;所述目标数量为:所述计算机平台的寄存器长度与32的商的整数倍;
将所述全部寄存器每4个划分为一个寄存器分组,各个所述寄存器分组依次执行S1至S3的步骤,执行之后,各个所述分组依次执行S4至S6的步骤;
对所述全部寄存器中的数据进行反重排,得到密文;
S1至S6的步骤如下:
S1、将寄存器中的数据与轮密钥进行抑或运算;
S2、对抑或运算结果进行第一仿射变换;
S3、利用AES-NI指令集的AESENCLAST指令,对第一仿射变换结果进行计算;
S4、在计算完成后,对计算结果进行第二仿射变换;
S5、对第二仿射变换结果进行循环移位、置换;
S6、判断当前迭代次数是否达到32,若是,结束流程,否则更新当前迭代次数并进入S1。
2.如权利要求1所述的方法,其特征在于,所述利用AES-NI指令集的AESENCLAST指令,对第一仿射变换结果进行计算,包括:
利用128位AES-NI指令集的AESENCLAST指令,对第一仿射变换结果进行计算。
3.如权利要求2所述的方法,其特征在于,所述运用SIMD流水线技术,每次并行读取目标数量的明文分组,对读取到的数据进行重排,将重排结果存入计算机平台的全部寄存器,包括:
运用SIMD流水线技术,每次并行读取32个明文分组,对读取到的数据进行重排,将重排结果存入计算机平台的全部寄存器。
4.如权利要求3所述的方法,其特征在于,在计算机平台为X86平台时,该X86平台包括16个256位的YMM寄存器;
所述运用SIMD流水线技术,每次并行读取32个明文分组,对读取到的数据进行重排,将重排结果存入计算机平台的全部寄存器,包括:
运用256位的SIMD流水线技术,每次读取8个明文分组,并行数为4;对读取到的数据进行重排,将重排结果存入16个YMM寄存器。
5.如权利要求4所述的方法,其特征在于,所述利用AES-NI指令集的AESENCLAST指令,对第一仿射变换结果进行计算,包括:
将第一仿射变换结果拆分为两个128位数据;利用128位AES-NI指令集的AESENCLAST指令,对所述两个128位数据进行计算;
相应的,所述在计算完成后,对计算结果进行第二仿射变换,包括:
在计算完成后,得到两个128位计算结果;对所述两个128位计算结果进行合并,对合并结果进行第二仿射变换。
6.如权利要求5所述的方法,其特征在于,所述将第一仿射变换结果拆分为两个128位数据;利用128位AES-NI指令集的AESENCLAST指令,对所述两个128位数据进行计算,包括:
将第一仿射变换结果拆分为两个128位数据,分别存入两个XMM寄存器中;利用128位AES-NI指令集的AESENCLAST指令,对所述两个XMM寄存器中的数据进行计算。
7.如权利要求3所述的方法,其特征在于,在计算机平台为ARM平台时,该ARM平台包括32个128位的NEON寄存器;
相应的,所述运用SIMD流水线技术,每次并行读取32个明文分组,对读取到的数据进行重排,将重排结果存入计算机平台的全部寄存器,包括:
运用128位的SIMD流水线技术,每次读取4个明文分组,并行数为8;对读取到的数据进行重排,将重排结果存入32个NEON寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州安恒信息技术股份有限公司,未经杭州安恒信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110822234.4/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置