[发明专利]一种SM4加密方法及装置在审
申请号: | 201710059240.2 | 申请日: | 2017-01-24 |
公开(公告)号: | CN106712930A | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 温隆;毛文波;白小勇 | 申请(专利权)人: | 北京炼石网络技术有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 北京孚睿湾知识产权代理事务所(普通合伙)11474 | 代理人: | 王冬杰,李丹丹 |
地址: | 100028 北京市昌*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm4 加密 方法 装置 | ||
技术领域
本发明涉及计算机安全技术领域,特别是一种SM4加密方法及装置。
背景技术
数据加密是密码系统的基本任务。按加密密钥与解密密钥的关系,目前的各种数据加密体制可以分为两大类:对称密码加密体制和公钥密码加密体制。常用的对称密码方法有DES、AES、IDEA、RC6等。
SM4是一个分组密码算法,明文、密钥、密文都是128比特,加密和解密密钥相同。通过32次循环的非线性迭代轮函数来实现加密和解密。其中包括非线性变换S盒,以及由循环移位异或构成的线性变换。除了256字节的S盒之外,还定义了另外两组参数FK以及CK(具体数据参考密码局网站)。基本过程是首先把128比特密钥按照32比特一组分成4组,然后根据密钥扩展算法,生成32组32比特轮密钥;再把输入的128比特数据也按照32比特一组分成4组然后进行循环运算。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下改进的技术方案。
一种SM4加密方法,包括:
迭代计算步骤,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,...,31,进行32次迭代运算:其中表示异或运算;
反序计算步骤,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
更进一步地,将32比特输入数据表示为:A=(a0,a1,a2,a3),其中,a0,a1,a2,a3均为8比特字节,则τ(A)=(S(a0),S(a1),S(a2),S(a3))。
更进一步地,T(A)=L(τ(A))=L(S(a0),S(a1),S(a2),S(a3))。
更进一步地,定义<<<表示循环左移操作;记I32为32×32的单位矩阵,则B=I32·B;记为将I32的各行向上循环移动2行得到的矩阵,则有同理也有其中通过将矩阵I32各行向上循环移动10、18、24行得到,记则有:
记I8为8×8的单位矩阵而08为8×8零矩阵,32比特字B为Sbox的输出,B=[S(a0),S(a1),S(a2),S(a3)]T,可如下表示:
则
其中
的值由8比特的输入a0决定,通过预计算含有256个元素的表格,记为并通过查表的方式来计算的计算可以通过预计算4张含有256个元素的表格,并通过4次查表以及3次异或运算来完成。
更进一步地,
的代换表格为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京炼石网络技术有限公司,未经北京炼石网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710059240.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据传输方法及设备
- 下一篇:基于秘密共享的SM2数字签名生成方法及系统