[发明专利]一种SM4加密算法的软件优化实现方法有效

专利信息
申请号: 201910428737.6 申请日: 2019-05-22
公开(公告)号: CN110197076B 公开(公告)日: 2021-03-26
发明(设计)人: 张笑从;郜雅;郭华;王闯 申请(专利权)人: 北京航空航天大学
主分类号: G06F21/60 分类号: G06F21/60;G06F21/12
代理公司: 重庆启恒腾元专利代理事务所(普通合伙) 50232 代理人: 赵晨宇
地址: 100010*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 sm4 加密算法 软件 优化 实现 方法
【权利要求书】:

1.一种SM4加密算法的软件优化实现方法,特征在于,包括:

预处理步骤,包括明文编排和密钥编排,其中明文编排将输入为256*128比特的256组128比特数据,通过比特矩阵转置变换,输出为128*256比特;密钥编排将第i轮加密的128比特密钥RKi变换得到其中表示将RKi每比特重复256次得到的结果;

迭代计算步骤,将256组128比特的数据表示为32轮的加密密钥记为进行32次迭代运算:其中^表示异或运算;合成置换T的输入和输出都是256组32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·));

反序计算步骤,将输出的128比特的加密数据表示为

反编排步骤,从切片后的128组256比特数据组织方式恢复到正常256组128比特数据。

2.根据权利要求1所述的SM4加密算法的软件优化实现方法,其特征在于,在迭代计算步骤中,将256组32比特输入数据表示为:其中,均为8*256比特,则

合成变换T中的非线性变换τ中的四个完全相同的代替函数S()为,其中S()的输入输出均为8*256比特数据;Si()输入为8*256比特数据,输出为1*256比特数据,i=0、1、2、3、4、5、6、7,为切片后的8个256比特数据,代表原始数据中256个分组中相同的8比特。

3.根据权利要求2所述的SM4加密算法的软件优化实现方法,在非线性变换的实现中,S0~S7在逻辑函数表达形式基础上用逻辑运算实现,逻辑表达式采用与或式的表达如下:

S0

~a~b~d~e~g~h+~b~c~d~e h+~b~c~d~f h+~a~c~e~f g~h+~a~b~d~e~f g h+~a~c~d~e f~g~h+~a~b~d f~g h+~a~b e f~g h+~a~b~cd f h+~a~b d e~f~g~h+~a~b c~d f~h+~b c~e f~h+~a c d~e~g~h+~a~b c d~f h+~a~b c d g h+~a~b c d e~f+~a c d e g h+~a b~c~e g h+~ab~c~d e~g~h+~a b~c~d e f~g+b~d e f g h+~a b~c d f g~h+~a b~c de~f~g+~a b c~d~e f g+~a b c d f~g+~a b c d e f+b c d e f~g+a~b~c~d~f+a~b~e~f~g h+a~d~e~f g~h+a~b~c~d g h+a~c~e~f g h+a~b~c e~g~h+a~b~d e~f~g~h+a~b~d e~f g h+a~b d~e~g~h+a~b d~f~g h+a~c d e f+a~b c d~e~g+a c d~f~g h+a b~c~d~e~h+a b~d~e~f~h+a b~c~e f~g+a b~e f~g h+a b~d e~f~g h+a b~c d~e h+a b d~e~f h+a b~c d eg~h+a b c~d~f g~h+a b c~d e f~h

S1

~a~c~d~e~g~h+~b~c~d~e~g~h+~a~b~d~e~f g+~a~d~e~f g h+~b~c~d~f gh+~b~d f~g h+~a~c d~f~g h+~a~b~c d~e g h+~b~c d~ef g h+~b d e f~g~h+~a~bc~d h+~b c~d~e~g h+~b c~d~e~f g~h+~a~b c~d e f~g+c d~e~f~g~h+~a~b c d~ef~h+~b c d e~f h+b~e f~g h+b~c e~f~g h+~a b~c~d e f~h+~a b~c d~g+~a b d~f~g~h+b~c d~g h+~a b d f~g h+b~c d~e f g~h+~a b d e~f g h+b c~e~f g h+~a b c~d~ef~h+b c~d e g~h+b c e f g~h+~a b c d~e~f~h+b c d~e f h+a~b~c~d f~g+a~c~de~f h+a~c~d e~f g+a~b~c d~e~f~h+a d e f g h+a~b c~d f g+a c~d e~f~g~h+a~bc d~e~g+a c d~e~g~h+a~b c d~f h+a~b c d f~g+ac d e g+a b~c~d~e f h+a b e~f g~h+a b~d e f g+a b c~d e~f~g+a b c e~h

S2

~a~c~d~e~f g+~a~b~e~f g h+~a~b~d~e f h+~a~c~d~e f h+~b~c~d~e f g+~d~e f g h+~b~c~d e~g h+~a~b~d e f~h+~a~b d~e~f~g+~a~c d~e~g+~a~c d~f~g~h+~a~c d~e~f h+~b~c d~e~f h+~b~c d~e~g h+~b d e~f g h+~a~b c~d e~g~h+~a~b c e f g+~a c d~e f g~h+~a c d e f~g~h+~a b~c~d~f g~h+~a b~c f~g~h+~a b~d~e f~g~h+b~c~e f~g~h+~a b~c e f g h+b~c d e~f~g+b c~d~f~g h+b c~d e~f~h+~a b c e~f h+b c~d e~g h+~a b c~d e g~h+a~b~c~e~f~g+a~b~d~f~gh+a~b~d f g h+a~b~c~d e~g+a~b~c e~f~h+a~b~c d e g+a~c d e f~h+a~b c~d~f g+a~b c~f g~h+a~b c~e f h+a~b c e~f h+a~b c d e f~g+a b~c~e g~h+a b~d~e f g+a b~e f g h+a b d~e~f g~h+a b d~e f~g~h+a b~c d e f+a b d e f g~h+a b c e~f~g+a b c d~f h

S3

~a~b~c~d~f~g+~a~c~e~f g h+~c~d~e g h+~c~d~e f g+~a~b~de~f~g+~a~b~c~d e~g h+~c~d e~f~g h+~c~d e~f g~h+~a~b d~f g~h+~b d~e~f g~h+~b~c d~e f~g h+~a~c d e f g h+~a~b c~d~e~h+~ac~d~e~f~g~h+~a~b c~d~e g+~b c d~f~g h+~a c d~e f g h+~a c d e~f~g h+~b c d e~f h+~a~b c d e f~h+~a b~e~f g h+~a b~c~e f~h+b~c~d~e f+b~d~e f g~h+~a b~d e~f g+~a b~c d e~g~h+~a b~c d e f+b c~e f~g h+~a b c~d e g~h+b c d~e~g~h+~a b c d f g h+a~c~d~f~gh+a~c e f~h+a~cd g~h+a~b~c d~e f+a~c d e~f h+a~b c~e~f~g+a~b c~d e f~g h+a c d~e~g+a~b c d e f g+a b~c f g+a b~d~e f g+a b~c~d e~g+a b~d e~f~g h+a b d e~f g+a b c~f g~h+a b c d e~h

S4

~a~b~c~d~e~f g+~b~c~d~e g~h+~b~c~e~f g~h+~a~b~c~d f~h+~a~b~d e f~g+~b~d e f~g~h+~a~b~c d~g~h+~a~b d~e f~g+~c de~f~g~h+~a~b~c d e f g h+c~d~e~f~g~h+~a c~d~e f~g h+~a~b c~d~e f g+~b c f g~h+~a c~d e g~h+~a~b c d~e~f g+c d~e f~g~h+~a~b c d e~f h+~b c d e~g h+~a b~c~d g h+~a b~c e~f h+~a b~c~d e g+~a b~c e g~h+~a b~c d~f~g+b~c d~f~g~h+b~c d~e f g+~a b~c d e~f+b d e~f~g~h+~a b c~d~f g+b c d e f g+a~c~d~e~f~g+a~b~d e~f gh+a~b d~e~f~g h+a~b d~e f~h+a~b d e f~g h+a c~d~f g h+a c~d e~fh+a~b c~d e f g+a~b c d~e f+a~b c d f~g+a c d e g~h+a b~d~e~g~h+ab~d~f~g h+a b~c~d g~h+a b~c~d~e f+a b~c~d f g+a b~c e f~g~h+a b~c d~e g h+a b d~e f~g h+a b c~d~e g h+a b c e~g h+a b c d~e~h+a b cd~f g

S5

~a~b~c~d~e~g~h+~a~d~e~f g h+~a~b~c~d f g+~a~b~c f g~h+~a~b~c~d e~f~h+~a~b e~f~g h+~b~d e f g~h+~a~b~c d~f h+~c df~g h+~b c~e~f~g~h+~a~b c~d f~g h+~a~b c e f~g+~a~b c d~f g~h+~a~b c d f g h+c d e~f~g h+~a~b c d e f+~a b~d~e~f+b~c~d~e~f~h+b~c~d~e g~h+b~c~d~f g~h+~a b~c e g~h+~a b~c~d e f~g+b~c~d e f~g~h+~a b d e f h+b~c d e f g~h+~a b c~d~f~h+~a b c~f~g~h+~a b c~e~f g+b c~d e~f~g~h+~a b c e f g h+~a b c d~e~h+~a b c d eh+a~b~c~e~g h+a~c~e f h+a~e f~g h+a~b~c~d e~f h+a~b d~e~f g+a~c d e~f~g~h+a~b d e f~g+a~b c~d~e~f h+a c e f~g~h+a c~d e f g+a~b c d~e f+a b~c d~e f~g+a b~c d e~f~g+a b c~e g~h+a b c~d f+ab cd~f g

S6

~a~b~c~f~g~h+~a~c~d~f~g~h+~a~b~c~e g h+~a~b~d e~f~g~h+~b~c~d e~f h+~a~b e f~g h+~a~b~c d~e~f+~a~b~c d~e~g+~a~c d e~f g+~a~b d e f g~h+~b c~e~f~g h+~a~b c~d f h+~b c~d e~fg+~a c e g h+c d e~f h+~a b~c~d~e~g+~a b~d~e~f~h+~a b~d~e~g~h+b~c~d f~g~h+~a b~c~e f g+b~d~e f g h+b~c~d e f~h+~a b~c d~fh+~a b~c d e~g h+b d e~f g h+~a b c~e~f g+~a b c e~f h+~a b c d~ef+b c d e~f g+a~b~c~d~f+a~b~c~f~g h+a~b~d~e~g h+a~c~d~e~f h+a~d~e~fg+a~b e~f g~h+a~b d~e f~h+a~c d~e f g~h+a~b~c d e f g h+a~b c g~h+a~b c~e f~h+a c~d f~g h+a c~d f g~h+a~b c~d e g+a~b c d~e f g+a~b c d e~f+a b~c d~e~f~g~h+a b c d f~g~h+a b c d e f~g

S7

~a~c~d~e g~h+~b~c~d f h+~b~c f g h+~a~d e f~g h+~a~b~c d~e~f~g+~a~cd f g h+~a~c d e~f g~h+~b d e f~g~h+~a~b c~d f~g+~a~b c f~g~h+~a c~d e~g~h+~b c~d e~f g+~b c d~e~f h+~b c d~eg h+~a~b c d e~g h+~b c d e f~h+b~c~d~e~g+b~c~d~f~g+b~c~e~f~g h+b~c~e~f g~h+~a b~e f~g~h+~a b~c~d f g~h+~a b~c e~f h+b~de~f g h+~a b~c d e g+b c~e f g~h+~a b c~d e f h+~a b c d~f g h+~a bc d~e f~g+a~b~c~d~g h+a~c~d~e f h+a~b~c e~f~g+a~c e~f~g~h+a~b~c e f~h+a~d e f~g~h+a d~e~f g~h+a~b~c d f~g~h+a~b d e f g+a~b c~e~f~g~h+a~b c~d e h+a~b c d~f~g+a~b c d~e h+a b~d~f~g+a b~c d~e f+a b d e f~g h+ab c~d~f~h+ab c d e~h

上式中a,b,c,d,e,f,g,h为顺序排列的8组256比特输入,~为非运算,+为或运算,与运算*省略,运算优先级为~>*>+。

4.根据权利要求3所述的SM4加密算法的软件优化实现方法,其特征在于,对于S0~S7中任意一个逻辑函数,表达为以下“选择函数”形式之一;

选择函数的形式为:

Fo=(F1 and sel)or(F2 and not sel)

Fo=(F3 and sel)xor F2

Fo=(F3 and not sel)xor F1

Fo=(F4 or sel)xor not F1

Fo=(F4 or not sel)xor not F2

Fo=(F4 nand sel)xor F2

Fo=(F4 nand not sel)xor F1

Fo=(F3 nor sel)xor not F1

Fo=(F3 nor not sel)xor not F2

其中F3=F1 xor F2,F4=not F3,A nand B=not A and B,A nor B=not A or B;

其中Fo为n输入单输出逻辑函数,sel为a~h中任一位输入,F1、F2为与sel位无关的n-1位输入单输出的逻辑函数。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910428737.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top