[发明专利]一种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位输入单输出的逻辑函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910428737.6/1.html,转载请声明来源钻瓜专利网。