[发明专利]一种国密分组密码算法SM4的快速实现方法有效
申请号: | 201910428748.4 | 申请日: | 2019-05-22 |
公开(公告)号: | CN110166223B | 公开(公告)日: | 2021-08-13 |
发明(设计)人: | 王闯;郭华;张笑从;郜雅;高莹 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 重庆启恒腾元专利代理事务所(普通合伙) 50232 | 代理人: | 赵晨宇 |
地址: | 100010*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本发明提供了一种国密分组密码算法SM4的快速实现方法,该方法包括:数据编排步骤,密钥编排步骤,迭代计算步骤,数据反编排步骤,反序计算步骤。本发明使用比特切片技术、SIMD技术和复合域技术,实现256组明文消息的并行加密,将SM4中的非线性变换在复合域中实现,并将非线性变换和线性变换压缩合并,使得SM4加密算法中的合成置换T的计算由原先的一次GF(2 |
||
搜索关键词: | 一种 分组 密码 算法 sm4 快速 实现 方法 | ||
【主权项】:
1.一种国密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(τ(·))。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910428748.4/,转载请声明来源钻瓜专利网。