[发明专利]一种SM4算法快速实现方法及装置有效
| 申请号: | 202010546732.6 | 申请日: | 2020-06-16 |
| 公开(公告)号: | CN111865559B | 公开(公告)日: | 2022-02-18 |
| 发明(设计)人: | 张朝阳;彭金辉;雷宗华;穆佩红;刘武忠;李鑫 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
| 主分类号: | H04L9/06 | 分类号: | H04L9/06 |
| 代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 张微微 |
| 地址: | 450000 河南省*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 sm4 算法 快速 实现 方法 装置 | ||
本发明提出一种SM4算法快速实现方法,包括查找表构造过程:在大端存储设备中,计算生成的结果信息;依据的结果信息分别构造生成大端存储设备的T变换查找表;依据大端存储设备的T变换查找表进行R变换后分别构造生成小端存储设备的T变换查找表;数据加密过程:若在大端存储设备中进行迭代加密运算时,通过构造的查找表L0、L1、L2和L3计算T;若在小端存储设备中进行迭代加密运算时,通过构造的查找表L0’、L1’、L2’和L3’计算T;利用预先生成的轮密钥rk对的输入数据进行32次迭代运算后生成数据密文。
技术领域
本发明涉及计算机安全技术领域,具体涉及一种SM4算法快速实现方法及装置。
背景技术
SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F,输入数据:(X0,X1,X2,X3)。其中T为一个合成变换,由非线性变换τ和线性变换L复合而成,T(.)=L(τ(.)),先S盒变换,再L变换。
目前,常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式,有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。大端存储与小端存储模式主要指的是数据在计算机中存储的两种字节优先顺序,小端存储指从内存的低地址开始,先存储数据的低序字节再存高序字节;相反,大端存储指从内存的低地址开始,先存储数据的高序字节再存储数据的低序字节。不管是大端还是小端存储,计算机在内存中存放数据的顺序都是从低地址到高地址,所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。
在整数大端存储的设备中,待加密的字节串在内存中的存储顺序与整数是一致的,运算时不需要将加密的字节串转换为整数,直接使用指针运算即可,而在整数小端存储的设备中,在进行轮运算之前,还需要将字节串转换为整数再进行后续运算,必然会导致SM4算法的运算速度降低。
因此如何设计一种SM4算法快速实现方案,能够兼容大端存储和小端存储设备,使得在小端存储设备中进行数据加解密时不需要进行数据类型的转换,提高算法的运算速度是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种SM4算法快速实现方法及装置,其能够保证兼容大端存储和小端存储设备,使得在小端存储设备中进行数据加解密时不需要进行数据类型的转换,提高算法的运算速度。
本发明第一方面提出一种SM4算法快速实现方法,包括:所述SM4算法快速实现方法包括:查找表构造过程和数据加密过程;
所述查找表构造过程:
设待加密的输入数据为(X1,X2,X3,X4),轮密钥rk=(r0,r1,r2,r3),计算(b0,b1,b2,b3),其中
以(b0,b1,b2,b3)作为大端存储设备中合成变换T运算的输入参数,进行合成变换T运算,获得运算结果T(b0,b1,b2,b3);
其中,合成变换T是由非线性变换τ和线性变换L复合而成,T(.)=L(τ(.)),τ为由4个并行的S盒构成的非线性变换,非线性变换τ的输出是线性变换L的输入;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010546732.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种伸缩货架及货架组合体
- 下一篇:用于加工折弯机下模的模具





