[发明专利]一种基于比特切片的SM4算法快速实现方法在审
| 申请号: | 202210039608.X | 申请日: | 2022-01-14 |
| 公开(公告)号: | CN114091086A | 公开(公告)日: | 2022-02-25 |
| 发明(设计)人: | 苏鑫;罗雨佳;姬一文;马桂才;魏立峰;孔金珠 | 申请(专利权)人: | 麒麟软件有限公司 |
| 主分类号: | G06F21/60 | 分类号: | G06F21/60;H04L9/06 |
| 代理公司: | 北京汇智英财专利代理事务所(普通合伙) 11301 | 代理人: | 陈践实 |
| 地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 比特 切片 sm4 算法 快速 实现 方法 | ||
1.一种基于比特切片的SM4算法快速实现方法,其特征在于,包括:
步骤S1、将明文分组,每组明文包括若干明文SM4块;
步骤S2、将每组明文的所述明文SM4块分别读入到SIMD类型变量中;
步骤S3、使用Usuba语言定义S盒,并基于所述S盒编写加密代码,利用所述加密代码加密所述明文SM4块;
步骤S4、从所述SIMD类型变量中读出加密后的所述明文SM4块,获得密文SM4块;
步骤S5、合并所述密文SM4块得到整体密文。
2.根据权利要求1所述的基于比特切片的SM4算法快速实现方法,其特征在于,还包括:
步骤S6、将步骤S1-S5通过C语言实现,得到C语言代码文件,编译所述C语言代码文件得到可执行文件,所述可执行文件用于实现SM4加密操作。
3.根据权利要求1所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述将明文分组包括:将明文按照块大小为256×128比特进行分组,每组明文包括256个明文SM4块。
4.根据权利要求3所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述将每组明文的所述明文SM4块分别读入到SIMD类型变量中包括:将以256×128矩阵存储的256个明文SM4块转置,并依次存储到SIMD类型变量中。
5.根据权利要求1所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述基于所述S盒编写加密代码包括:用Usuba语言基于所述S盒编写SM4块的加密代码并生成.ua文件,将所述.ua文件转换成C语言代码。
6.根据权利要求5所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述用Usuba语言基于所述S盒编写SM4块的加密代码包括:
用Usuba语法中的查找表定义S盒;
编写中间函数;
根据所述中间函数编写密钥生成函数和明文SM4块加密函数。
7.根据权利要求6所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述中间函数包括τ函数、T函数、T’函数和F函数。
8.根据权利要求3所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述从所述SIMD类型变量中读出加密后的所述明文SM4块包括:将128个SIMD类型变量中加密后的明文SM4块读出到普通类型128×256的矩阵中,将矩阵转置,得到256个密文SM4块。
9.一种基于比特切片的SM4算法快速实现装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的基于比特切片的SM4算法快速实现方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的基于比特切片的SM4算法快速实现方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210039608.X/1.html,转载请声明来源钻瓜专利网。





