[发明专利]SM4加解密方法及电路有效
申请号: | 201810229969.4 | 申请日: | 2018-03-20 |
公开(公告)号: | CN110311771B | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 高献龙 | 申请(专利权)人: | 北京小米松果电子有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 曾尧;魏嘉熹 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sm4 解密 方法 电路 | ||
1.一种SM4加解密方法,其特征在于,包括:
基于SM4密钥扩展算法,对输入的加密密钥进行多轮密钥扩展,在每一轮密钥扩展得到加密轮密钥后,基于SM4加密算法利用该加密轮密钥对输入的明文数据进行加密变换,以得到密文数据;
保存针对所述加密密钥进行的最后四轮密钥扩展得到的加密轮密钥;
在对所述密文数据进行解密时,对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展,并在每一轮密钥逆向扩展得到解密轮密钥后,基于SM4解密算法利用该解密轮密钥对所述密文数据进行解密变换,以得到所述明文数据。
2.根据权利要求1所述的方法,其特征在于,所述对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展,包括:
根据如下公式对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展:
其中,RKi表示第i轮加密轮密钥;CKi表示固定参数且CKi为字;表示异或运算;T'表示合成置换运算,由非线性变换τ和线性变换L'复合而成,即T'(·)=L'(τ(·))。
3.根据权利要求2所述的方法,其特征在于,所述非线性变换τ的输入表示为A=(a0,a1,a2,a3),则τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3)),其中,a0,a1,a2,a3均为8比特;Sbox(·)表示固定的8比特输入8比特输出的置换。
4.根据权利要求3所述的方法,其特征在于,所述线性变换L'的输入表示为B=τ(A),则其中,表示循环左移操作。
5.根据权利要求1所述的方法,其特征在于,在进行所述多轮密钥扩展的过程中,除最后四轮对所述加密密钥的密钥扩展以外,在其他每一轮密钥扩展得到加密轮密钥后,在利用该加密轮密钥对所述明文数据进行加密变换时并行执行下一轮密钥扩展;和/或
在进行所述多轮密钥逆向扩展的过程中,除最后四轮所述密钥逆向扩展以外,在其他每一轮密钥逆向扩展得到解密轮密钥后,在利用该解密轮密钥对所述密文数据进行解密变换时并行执行下一轮密钥逆向扩展。
6.一种SM4加解密电路,其特征在于,包括:
密钥扩展模块,用于基于SM4密钥扩展算法,对输入的加密密钥进行多轮密钥扩展,以及在对输入的明文数据对应的密文数据进行解密时,对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展;
存储模块,与所述密钥扩展模块连接,用于保存针对所述加密密钥进行的最后四轮密钥扩展得到的加密轮密钥;
加解密模块,分别与所述密钥扩展模块和所述存储模块连接,用于在每一轮密钥扩展得到加密轮密钥后,基于SM4加密算法利用该加密轮密钥对所述明文数据进行加密变换,以得到密文数据,以及在对所述密文数据进行解密时,对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展,并在每一轮密钥逆向扩展得到解密轮密钥后,基于SM4解密算法利用该解密轮密钥对所述密文数据进行解密变换,以得到所述明文数据。
7.根据权利要求6所述的电路,其特征在于,所述密钥扩展模块用于:
根据如下公式对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展:
其中,RKi表示第i轮加密轮密钥;CKi表示固定参数且CKi为字;表示异或运算;T'表示合成置换运算,由非线性变换τ和线性变换L'复合而成,即T'(·)=L'(τ(·))。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小米松果电子有限公司,未经北京小米松果电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810229969.4/1.html,转载请声明来源钻瓜专利网。