[发明专利]一种国密分组密码算法SM4的快速实现方法有效
申请号: | 201910428748.4 | 申请日: | 2019-05-22 |
公开(公告)号: | CN110166223B | 公开(公告)日: | 2021-08-13 |
发明(设计)人: | 王闯;郭华;张笑从;郜雅;高莹 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 重庆启恒腾元专利代理事务所(普通合伙) 50232 | 代理人: | 赵晨宇 |
地址: | 100010*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分组 密码 算法 sm4 快速 实现 方法 | ||
本发明提供了一种国密分组密码算法SM4的快速实现方法,该方法包括:数据编排步骤,密钥编排步骤,迭代计算步骤,数据反编排步骤,反序计算步骤。本发明使用比特切片技术、SIMD技术和复合域技术,实现256组明文消息的并行加密,将SM4中的非线性变换在复合域中实现,并将非线性变换和线性变换压缩合并,使得SM4加密算法中的合成置换T的计算由原先的一次GF(28)上的求逆运算、两次仿射变换、4次循环左移以及4次异或运算简化为一次GF(24)上的求逆运算、两次仿射变换、三次有限域GF(24)上的乘法运算以及4次以后运算,降低了计算复杂度,提高了执行效率。
技术领域
本发明涉及计算机安全技术领域,特别是一种SM4加密方法
背景技术
数据加密时密码系统的基本任务。按加密密钥与解密密钥的关系,目前的各种数据加密体制可以分为两大类:对称密码加密体制和公钥密码加密体制。常用的对称密码方法有DES、AES、IDEA、RC6等。
SM4是一个分组密码算法,明文、密钥、密文都是128比特,加密和解密密钥相同。通过32次循环的非线性迭代轮函数来实现加密和解密。其中包括非线性变换S盒,以及由循环异或构成的线性变换。除了256字节的S盒之外,还定义了另外两组参数FK以及CK(具体数据参考密码局网站)。基本过程是首先把128比特密钥按照32比特一组分成4组,然后根据密钥扩展算法,生成32组32比特轮密钥;再把输入的128比特数据也按照32比特一组分成4组进行循环运算。
发明内容
本发明针对目前软件实现方法中的缺陷,提出了如下改进的软件优化方法。
一种国密分组密码算法SM4的快速实现方法,包括:
数据编排步骤,将256组128比特的数据表示为X[256][128],X[i]表示第i组数据,i=0,1,...,255,存在比特矩阵转置变换TRANS256(·):X[128][256]=TRANS(X[256][128]),特征在于,输入为256*128比特,输出为128*256比特,实现将256组数据的同一比特聚集在同一内存块中;
密钥编排步骤,将第k轮加密密钥记为RKk,[32],k=0,1,...,31,存在变换TRANS32(·):TRKk,[32][256]=TRANS32(RKk,[32]),其特征在于,定义{·}256表示将元素重复256次并拼接在一起,则TRKk,[i]={RKk,[i]}256,实现将密钥RK的第i个比特复制256次存入TRK的第i项;
迭代计算步骤,将经过数据编排后的数据记为X256表示二维数组X[128][256],指向X[128][256]的第i*32项,i=0,1,2,3,将经过密钥编排后的第k轮加密密钥记为进行32次迭代计算:其中,为异或运算;
存在比特矩阵转置TRANS256′(·):X[256][128]=TRANS256′(X[128][256])将经过迭代计算后的数据从切片后的128组256比特数据组织方式恢复到正常256组128比特数据;
反序计算步骤:
反序计算步骤,令则输出的256组128比特的加密数据表示为
其中,合成置换T的输入和输出都是32*256比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910428748.4/2.html,转载请声明来源钻瓜专利网。