[发明专利]一种统一AES和SM4S盒的实现方法在审
申请号: | 201711064057.8 | 申请日: | 2017-11-02 |
公开(公告)号: | CN107959565A | 公开(公告)日: | 2018-04-24 |
发明(设计)人: | 韩绪仓 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;G06F21/60 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102209 北京市昌平区北七家镇未*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 统一 aes sm4s 实现 方法 | ||
技术领域
本发明主要应用于在密钥算法硬件中同时实现AES和SM4。
背景技术
自从Rijndael算法被选定为AES(Advanced Encryption Standard)标准以来,一直受到了密码学界广泛的关注与研究,对后来的分组密码算法的设计有非常大的影响。
S盒是分组密码中唯一的非线性运算,用于实现密码设计准则中的混淆功能,因此S盒在很大程度上决定了分组算法的好坏。DES的S盒通过置换查找表的方式给出,研究人员并没有找到其对应的代数表达式。这种方式不利于对算法进行深入的安全性分析,研究人员一度怀疑DES的S盒设计中存在后门。AES的S盒则有明确的代数表达式S(a)=A·a-1+b,使用了有限域求逆和线性运算。这一结构有很好的抵抗密码分析的能力,因此这一S盒的设计思想被后续的许多分组密码算法所借鉴。例如:我国的国产密码算法SM4的S盒表达式为S(a)=A(A·a+b)-1+b,也使用了求逆和线性运算。
为了满足不同应用的需求,密码硬件设备中往往需要同时包含多个分组算法。例如:国产安全芯片中一般会同时支持SM4和AES。目前对AES硬件实现的研究较多,根据需求可以选择不同的方案;而对SM4硬件实现的研究则比较少,通常采用对AES的实现方案进行修改,从而得到符合需求的SM4实现方案。这样实际上需要重复设计,效率较低。另一方面,在硬件实现中,不同的分组算法需要用不同的硬件模块实现,因此硬件的面积、成本等将呈线性增加。
如果能够将S盒统一实现,既能够提高开发效率,避免重复设计,同时还可减少芯片的面积,降低硬件成本。但由于AES和SM4的S盒表达式并不完全相同,因此一般很难达成这一目标。本专利注意到SM4和AES的S盒都是基于有限域乘法求逆运算,利用数学理论进行推导,找到了SM4和AES的S盒转换公式,进而可将AES和SM4的S盒统一实现。
发明内容
本发明的内容是一种统一实现AES和SM4的S盒的方法,核心是利用数学理论进行推导,找到了SM4和AES的S盒转换公式,最终给出了一种统一实现AES和SM4的S盒的方法。该方法包括:1)输入数据x;2)对x进行线性运算L1,得到运算结果为y=L1(x);3)对y进行求逆运算Inv,得到运算结果为z=Inv(y);4)对z进行线性运算L2,得到运算结果为S(x)=L2(z);5)输出S(x)。
AES算法的表达式为S(a)=A1·a-1+b1。其中
1)a-1为有限域上的模m1(x)=x8+x4+x3+x+1乘法求逆运算,即输入表示多项式,求满足
a·y=1mod(x8+x4+x3+x+1)
2)A1为8*8的矩阵,b1为列向量,定义如下:
SM4算法的S盒表达式为:
S(a)=A2(A2·a+b2)-1+b2
其中1)a-1为有限域上的模m2(x)=x8+x7+x6+x5+x4+x2+1乘法求逆运算,即输入表示多项式,求满足
a·y=1mod(x8+x7+x6+x5+x4+x2+1)
2)A2为8*8的矩阵,b2为列向量,定义如下:
AES和SM4的S盒中仅有两种运算:有限域上的乘法求逆运算Inv,由矩阵乘法和向量加法A·a+b组成的线性运算L。显然AES的S盒可以表示成其结构如图1所示;SM4的S盒可以表示成其结构如图2所示。
AES与SM4在有限域上使用的模多项式不同,即m1(x)≠m2(x)。因此在这两个有限域下的求逆运算的结果不一致:y1=a-1mod m1(x)≠y2=a-1mod m2(x)。为了统一AES和SM4的S盒实现,首先需要将模多项式统一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711064057.8/2.html,转载请声明来源钻瓜专利网。