[发明专利]SM4加解密方法及电路有效
申请号: | 201810229969.4 | 申请日: | 2018-03-20 |
公开(公告)号: | CN110311771B | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 高献龙 | 申请(专利权)人: | 北京小米松果电子有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 曾尧;魏嘉熹 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sm4 解密 方法 电路 | ||
本公开是关于一种SM4加解密方法及电路,所述方法包括:基于SM4密钥扩展算法,对输入的加密密钥进行多轮密钥扩展,在每一轮密钥扩展得到加密轮密钥后,基于SM4加密算法利用该加密轮密钥对输入的明文数据进行加密变换,以得到密文数据;保存针对所述加密密钥进行的最后四轮密钥扩展得到的加密轮密钥;在对所述密文数据进行解密时,对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展,并在每一轮密钥逆向扩展得到解密轮密钥后,基于SM4解密算法利用该解密轮密钥对所述密文数据进行解密变换,以得到所述明文数据。通过本公开的技术方案,可以避免存储全部的轮密钥,从而减小占用的存储资源。
技术领域
本公开涉及信息安全技术领域,尤其涉及一种SM4加解密方法及电路。
背景技术
SM4算法是国家密码管理局发布的分组密码算法,是我国官方公布的第一个商用密码算法,其广泛应用于无线通信、物联网传感节点以及智能数据卡等领域。
SM4算法包括密钥扩展算法和加密算法,两者均采用32轮非线性迭代结构,其加密过程为:将128比特的密钥按照32比特一组进行分组,然后根据密钥扩展算法进行32轮密钥扩展,在每一轮密钥扩展产生轮密钥后,将128比特明文数据也按照32比特一组进行分组,利用该轮密钥进行一轮加密变换,经过32轮加密变换后得到与明文数据对应的密文数据。
在对密文数据进行解密时,解密算法与加密算法相同,仅是轮密钥的使用顺序与之相反。可见,在解密过程中需要将32轮密钥扩展得到的32个轮密钥全部存储,这就需要消耗32×32比特的存储资源,从而将导致所应用的芯片中的大量资源被占用。
发明内容
为克服相关技术中存在的问题,本公开提供一种SM4加解密方法及电路。
根据本公开实施例的第一方面,提供一种SM4加解密方法,包括:
基于SM4密钥扩展算法,对输入的加密密钥进行多轮密钥扩展,在每一轮密钥扩展得到加密轮密钥后,基于SM4加密算法利用该加密轮密钥对输入的明文数据进行加密变换,以得到密文数据;
保存针对所述加密密钥进行的最后四轮密钥扩展得到的加密轮密钥;
在对所述密文数据进行解密时,对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展,并在每一轮密钥逆向扩展得到解密轮密钥后,基于SM4解密算法利用该解密轮密钥对所述密文数据进行解密变换,以得到所述明文数据。
可选地,所述对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展,包括:
根据如下公式对对保存的最后四轮加密轮密钥进行多轮密钥逆向扩展:
RKi-4=RKi⊕T'(RKi-3⊕RKi-2⊕RKi-1⊕CKi),i=31,30,...,0
其中,RKi表示第i轮加密轮密钥;CKi表示固定参数且CKi为字;⊕表示异或运算;T'表示合成置换运算,由非线性变换τ和线性变换L'复合而成,即T'(·)=L'(τ(·))。
可选地,所述非线性变换τ的输入表示为A=(a0,a1,a2,a3),则τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3)),其中,a0,a1,a2,a3均为8比特;Sbox(·)表示固定的8比特输入8比特输出的置换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小米松果电子有限公司,未经北京小米松果电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810229969.4/2.html,转载请声明来源钻瓜专利网。