AES算法中Sbox和列混合单元的优化及FPGA实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)构建线性变换r1,将域GF(2 4)上的元素P,q 映射到域GF(28)上,得到域GF(28)上的元素z的逆元 素Y=T’1(P,q)。
图2 GF(25)求逆电路优化
由有限域的知识可知。复合域GF[(24)2]中每个元
素都可表示为系数在GF(24)上的一次多项式6z+C。
设定义有限域GFE(24)2]的乘法的二次不可约多项式
OO l O 1 1 O 1
(3)通过域GF(24)上的运算,求b,c的逆P,q。首 先构建GF(24),g(z)一一+X+l作为域GF(24)上的
本源多项式,口(z),d(z),已(z)E-GF(24)。其中,
口(z)=a323如222+alz+ao,d(z)一d323+d222+
dlz+do,P(z)=e323+e222+elz+eo定义域GF(24) 上的加法、乘法、逆运算。
如图4所示。 这种模块设计可以通过部分分享硬件来同时实现
z2+A丁+B,可验证此时GF[(24)2]中的任一元素
6z+C的乘逆元素是:
(bz+C)~一b(b2B+bcA+C2)叫z+
(C+bA)(b2B+出A+C2)_1
(7)
式中:(62 B+bcA+f2)_1是b2B+bcA+c2在GF(24)
上的乘法逆元。各部分的逻辑实现过程可描述如下: (1)有限域GF(28)到复合域GvE(2 4)2]映射。通
在这种设计方案中,求逆运算模块中所选用的即约
万方数据
多项式户(z)和本源多项式q(z)不同,减低了求逆模块 的复杂度。根据理论分析,本文中用到的户(z)和口(z) 不会减低AES算法的安全性。
2列混合单元的优化设计
在列混合(MixColumn)和逆列混合(InvMix
Column)的操作中,由以下两式定义了两个主要操作:
在一个高速128 b的AES设计中,一般需要总共 20个S—box模块和16个逆S—box模块。其中,16个 S—box模块用于实现字节替代的功能,4个S—box用 于实现密钥扩展的功能,而16个逆S—box模块用于实 现逆字节替代功能。在这种情形下,如果字节替代和逆 字节替代时使用不同的列表,就会占用大量的硬件资
11
源。所以非常需要一种减少硬件复杂性的方法。
就如AES标准所描述的那样,S—box的操作过程
可以表示为:
Y=M·multiplicative_inverse(x)+c (1) 其中:
1 1 1 1 1 OO0
O1 1 11 1 OO
OO1 1 111 O
O O O11 1 1 1
M=
(2)
1 OOO 1 1 1 1
仿真并在Xilinx Spartan 3系列FPGA上进行综合验证,可以将结构简化,使AES电路面积得到优化,明显节约硬件资源。
关键词:AES算法;S—box;列混合;结构优化;FPGA实现
中图分类号:TN710
文献标识码:B
文章编号:1004—373X(2009)24—011一04
Optimization of S—box and MixColumn Blocks in AES Encryption Algorithm and FPGA Implementation
c
,、
一。,,
t束w
十
} 。,一
7\
.。厂了]
‘一n[7'O]冈out[7"O,]
图3 字节一列混合模块
图3中:X,模块(AES中的乘法器)的计算公 式为:
out[-7:o]一{in[-6:43,in['3:o]A{inE7],inE7], 0,in[Z]),in[Z])
更进一步,会发现,要建立一个全局的逆选择列混 合模块,需要将4个字节一列混合模块集成在一起,形成 一个全新的字一列混合模块(Word—MixColumn模块),
1 S—box的优化设计
在AES标准算法中定义了两个较大的列表。S— box和逆S—box。将S—box用于两个应用:字节替代 和密钥扩展。而逆S—box则用于逆字节替代。这两个 列表是不相同的,因此必须建立两个不同的ROM (256×8 b),用以存储这两个列表。另外,在AES设计 中使用平行结构,这就需要用到多个列表,这样会使硬 件过于复杂,需要对其进行优化。以下主要对S—box 模块进行结构优化。 1.1 S—box和逆S—box的组合
AES算法中S—box和列混合单元的优化及FPGA实现
夏克维,李冰
(东南大学集成电路学院江苏南京210096)
摘要:由于AES算法的硬件实现较为复杂,在此提出一种优化算法中S—box和列混合单元的方法。其中S—box通
过组合和有限域映射的方法进行优化,列混合单元使用算式重组的方法进行优化。这些优化设计通过组合逻辑实现,经过
在此首先通过在S—box和逆S—box中共用一个 look—up列表,简化非线性单元的复杂度,然后通过选
收稿日期:2009一06—18
万方数据
择合适的即约多项式,进行域GF(28)到GF(24)的同构 映射,对S—box的算法进行优化,并采用组合逻辑电路 实现,使优化后的S—box在同等频率条件下较显著地 减少了硬件资源的消耗。同时介绍了一种减小列混合 (MixColumn)单元硬件复杂度的方案,可以明显地减 少列混合单元的设计面积。
与此同时,市场迫切需要AES的FPGA和ASIC 的硬件解决方案,因为其与用软件实现相比更安全而且 更省电。在一些应用,如:信用卡,手机,PDA等中,硬 件的复杂度是影响成本和能耗的一个非常重要的因素。 因此。在加密和解密中都非常需要优化AES的主要操 作部分。在AES算法中,S—box是惟一的非线性单 元,在加密解密,特别是字节替代和逆字节替代操作时 需要分别执行S—box和逆S—box。建立一个16×16 的S—box,以往通常采用查找表的方式实现,占用大量 硬件资源。因此,对S—box进行优化是实现高效AES 的重要步骤。
所采用有限域GF(28)上的乘法求逆电路模块优化 过程如图2所示。优化的乘法求逆过程可表述如下:
(1)通过线性变换丁将GF(28)的输入X映射到 域GF(2 4)上的元素b,(;
(2)构建相应的域GF(2 4)的一次多项式,定义域 GF(24)上的加法、乘法和求逆运算。利用域(;F(2 4)上 的加法、乘法和求逆运算,得到域GF(24)上元素b,C的 逆元素P,q;
Keywords:AES encryption algorithm;S—box;mix column;optimization;FPGA implementation
美国国家标准与技术局(National Institute of Standard and Technology,NIST)于1997年1月提出 发展AES(Advanced Encryption Standard)加密算法, 并于同年9月12日推出AES的早期基本算法。在研 究了一系列早期算法之后,Rijndael算法被确定为先进 加密标准(Advanced Encryption Standard,AES)。由 于其较高的保密级别,AES算法被用来替代DES和 3一DES,以适应更为严苛的数据加密需要。
①加法为按位异或。
②乘法为多项式相乘后用q(z)取模,按公式
P(z)=n(z)o d(x)mod q(z)进行运算; ③求逆根据公式公式口·a-1=1 mod g(z),计算
GF(24)上元素a的逆a~;
构造GF(24)上的一次多项式妇+C,并利用上述
GF(24)上的加法、乘法和求逆运算进行运算,得到
裹1对式(11)和式(12)的重组操作
步骤
操作
步骤
操作
1
Z01一a—l-b
6
∞6一W2+W4+t啦
2
∞2=a+f
7
"W7一"6×2
3
W3=c+d
8
W8=W7×2
4
批=∞l×2
9
out,一”3+t£,4+b
5
讹=w3×2
10
out,=Out.-+撕
,7删7丫:。 占
u{7、 ’l一 丫、7 7W爪 . 7厂Wh
out。=Ez 3 1 1]·[口b f d]T
(15)
以及:
’
out,一[E B D 9]·Ea b c d]T
(16)
在设计中,可以将两式重组并表示如下:
out。一2(口+6)+b+(f+d)
(17)
和:
out,=4(2(口+6)+2(C+d)+(口+f))+
2(口+6)+b+(f+d)
wenku.baidu.com
(18)
XIA Kewei。I.1 Bing (Institute of Integrated Circuit,Southeast University,Naming,210096.China)
Abstract:AES encryption algorithm is an advanced encryption algorithm.Because the structure of it is complex,an optimi— zation of the algorithm is presented.The implementation of S—box and MixColumn blocks in the AES encryption is optimized by the combinational logic method.The circuit design is successfully synthesized in the Xilinx Spartan 3 FPGA device and the area of AES circuit is finely optimized.
过GF(28)上的即约多项式户(z)一.372十A丁+j;构造线 性变换T。根据式(8)将GF(28)的输入z映射到
GF(24)上的元素b,C:
{bE3:ol,cE3:03}一如
(8)
式中:B是GF(24)上的常量元素;T是一个8×8的矩
阵,矩阵的元素是0或l,T矩阵由B的取值决定;A取
1,B取8;
1 1 0O 0 1 1 1
1 1 1 O O0 1 1
1 1 1 1 O OO 1
0
㈦1 0㈤1 0:1|]
M,一M_1一I o 1 o o 1 o 1 o l(5) 1 ㈦㈦1
12
万方数据
图1 S—box/逆S—box模块
S—box硬件实现时的主要部件是乘法求逆。在有 限域GF(28)上,乘法求逆是一种相当复杂的函数.直接 在域GF(28)上生成S—box盒,组合逻辑复杂度高,会 使电路中逻辑电路的门数大大增加。根据有限域的性 质,利用域GF(28)与GF[(24)2]的同构变换,把 GF(28)上的求逆转化在GF[(24)2]上的求逆运算,从 而生成S—box单元。可以降低逻辑关系运算的复杂度, 优化S—box的面积。
步骤(1)中的线性变换T满足:玎一一E。
其中:
Y=T-1{户[3:o],qE3:o]}
(10)
1OO 0 1 0 OO
OOO O1 1 O 1
O 1 O O1 1 O 1
O 1O OO 1 1 O T-1=
O 1O l 1 1 O 1
l /~
●●■ 、J
O0 1 Ol l OO
0 l 1 1 1 OO1
将式(15)和式(16)所做的操作及结果列于表1中,
由步骤1~步骤5处理的结果得到out。,接着由out。和 硼。得到out,。因此,在执行过程中,操作所用到的硬件
资源及其所得结果可以应用到步骤9,步骤10中。如
图3所示,这种新型结构(字节一列混合模块)仅需8个
加法器和4个乘法器。与原方案相比,此设计大大减少 了硬件复杂度并显著节省了资源的消耗。
GF(24)上的元素b,f的逆P,q,由式(7)可得: (如+f)一1=6(8b2+缸+C2)-124-
(f+6)(8b2+bc+f2)_1
(12)
P=6(8b2+&+C2)一
(13)
q=(f+6)(8b2+bc+f2)一1
(14)
P,q的计算是S—box中最复杂的逻辑运算,占用
了大量的逻辑关系,关于P,q的分量元素计算是由上述 算法中的分量元素代入式(13)、式(14)求得。
1 OOO1 1 1 O
O 1 1 O0 O0 O
OO OOO OO 1
OO 1 O 1 O OO T:=
0OO0 l 1 1 O
/~ 9 、J
O 1 O0 1 O 1 1
OO 1 1 O 1 0 1
0OOO O 1 O 1
(2)GFE(24)2]到GF(28)的逆映射。构造线性变 换T-1,GF(24)上的逆P,q映射到GF(28)上的逆元素 Y,如式(10)所示。其中,线性变换r1和乘法求递
图2 GF(25)求逆电路优化
由有限域的知识可知。复合域GF[(24)2]中每个元
素都可表示为系数在GF(24)上的一次多项式6z+C。
设定义有限域GFE(24)2]的乘法的二次不可约多项式
OO l O 1 1 O 1
(3)通过域GF(24)上的运算,求b,c的逆P,q。首 先构建GF(24),g(z)一一+X+l作为域GF(24)上的
本源多项式,口(z),d(z),已(z)E-GF(24)。其中,
口(z)=a323如222+alz+ao,d(z)一d323+d222+
dlz+do,P(z)=e323+e222+elz+eo定义域GF(24) 上的加法、乘法、逆运算。
如图4所示。 这种模块设计可以通过部分分享硬件来同时实现
z2+A丁+B,可验证此时GF[(24)2]中的任一元素
6z+C的乘逆元素是:
(bz+C)~一b(b2B+bcA+C2)叫z+
(C+bA)(b2B+出A+C2)_1
(7)
式中:(62 B+bcA+f2)_1是b2B+bcA+c2在GF(24)
上的乘法逆元。各部分的逻辑实现过程可描述如下: (1)有限域GF(28)到复合域GvE(2 4)2]映射。通
在这种设计方案中,求逆运算模块中所选用的即约
万方数据
多项式户(z)和本源多项式q(z)不同,减低了求逆模块 的复杂度。根据理论分析,本文中用到的户(z)和口(z) 不会减低AES算法的安全性。
2列混合单元的优化设计
在列混合(MixColumn)和逆列混合(InvMix
Column)的操作中,由以下两式定义了两个主要操作:
在一个高速128 b的AES设计中,一般需要总共 20个S—box模块和16个逆S—box模块。其中,16个 S—box模块用于实现字节替代的功能,4个S—box用 于实现密钥扩展的功能,而16个逆S—box模块用于实 现逆字节替代功能。在这种情形下,如果字节替代和逆 字节替代时使用不同的列表,就会占用大量的硬件资
11
源。所以非常需要一种减少硬件复杂性的方法。
就如AES标准所描述的那样,S—box的操作过程
可以表示为:
Y=M·multiplicative_inverse(x)+c (1) 其中:
1 1 1 1 1 OO0
O1 1 11 1 OO
OO1 1 111 O
O O O11 1 1 1
M=
(2)
1 OOO 1 1 1 1
仿真并在Xilinx Spartan 3系列FPGA上进行综合验证,可以将结构简化,使AES电路面积得到优化,明显节约硬件资源。
关键词:AES算法;S—box;列混合;结构优化;FPGA实现
中图分类号:TN710
文献标识码:B
文章编号:1004—373X(2009)24—011一04
Optimization of S—box and MixColumn Blocks in AES Encryption Algorithm and FPGA Implementation
c
,、
一。,,
t束w
十
} 。,一
7\
.。厂了]
‘一n[7'O]冈out[7"O,]
图3 字节一列混合模块
图3中:X,模块(AES中的乘法器)的计算公 式为:
out[-7:o]一{in[-6:43,in['3:o]A{inE7],inE7], 0,in[Z]),in[Z])
更进一步,会发现,要建立一个全局的逆选择列混 合模块,需要将4个字节一列混合模块集成在一起,形成 一个全新的字一列混合模块(Word—MixColumn模块),
1 S—box的优化设计
在AES标准算法中定义了两个较大的列表。S— box和逆S—box。将S—box用于两个应用:字节替代 和密钥扩展。而逆S—box则用于逆字节替代。这两个 列表是不相同的,因此必须建立两个不同的ROM (256×8 b),用以存储这两个列表。另外,在AES设计 中使用平行结构,这就需要用到多个列表,这样会使硬 件过于复杂,需要对其进行优化。以下主要对S—box 模块进行结构优化。 1.1 S—box和逆S—box的组合
AES算法中S—box和列混合单元的优化及FPGA实现
夏克维,李冰
(东南大学集成电路学院江苏南京210096)
摘要:由于AES算法的硬件实现较为复杂,在此提出一种优化算法中S—box和列混合单元的方法。其中S—box通
过组合和有限域映射的方法进行优化,列混合单元使用算式重组的方法进行优化。这些优化设计通过组合逻辑实现,经过
在此首先通过在S—box和逆S—box中共用一个 look—up列表,简化非线性单元的复杂度,然后通过选
收稿日期:2009一06—18
万方数据
择合适的即约多项式,进行域GF(28)到GF(24)的同构 映射,对S—box的算法进行优化,并采用组合逻辑电路 实现,使优化后的S—box在同等频率条件下较显著地 减少了硬件资源的消耗。同时介绍了一种减小列混合 (MixColumn)单元硬件复杂度的方案,可以明显地减 少列混合单元的设计面积。
与此同时,市场迫切需要AES的FPGA和ASIC 的硬件解决方案,因为其与用软件实现相比更安全而且 更省电。在一些应用,如:信用卡,手机,PDA等中,硬 件的复杂度是影响成本和能耗的一个非常重要的因素。 因此。在加密和解密中都非常需要优化AES的主要操 作部分。在AES算法中,S—box是惟一的非线性单 元,在加密解密,特别是字节替代和逆字节替代操作时 需要分别执行S—box和逆S—box。建立一个16×16 的S—box,以往通常采用查找表的方式实现,占用大量 硬件资源。因此,对S—box进行优化是实现高效AES 的重要步骤。
所采用有限域GF(28)上的乘法求逆电路模块优化 过程如图2所示。优化的乘法求逆过程可表述如下:
(1)通过线性变换丁将GF(28)的输入X映射到 域GF(2 4)上的元素b,(;
(2)构建相应的域GF(2 4)的一次多项式,定义域 GF(24)上的加法、乘法和求逆运算。利用域(;F(2 4)上 的加法、乘法和求逆运算,得到域GF(24)上元素b,C的 逆元素P,q;
Keywords:AES encryption algorithm;S—box;mix column;optimization;FPGA implementation
美国国家标准与技术局(National Institute of Standard and Technology,NIST)于1997年1月提出 发展AES(Advanced Encryption Standard)加密算法, 并于同年9月12日推出AES的早期基本算法。在研 究了一系列早期算法之后,Rijndael算法被确定为先进 加密标准(Advanced Encryption Standard,AES)。由 于其较高的保密级别,AES算法被用来替代DES和 3一DES,以适应更为严苛的数据加密需要。
①加法为按位异或。
②乘法为多项式相乘后用q(z)取模,按公式
P(z)=n(z)o d(x)mod q(z)进行运算; ③求逆根据公式公式口·a-1=1 mod g(z),计算
GF(24)上元素a的逆a~;
构造GF(24)上的一次多项式妇+C,并利用上述
GF(24)上的加法、乘法和求逆运算进行运算,得到
裹1对式(11)和式(12)的重组操作
步骤
操作
步骤
操作
1
Z01一a—l-b
6
∞6一W2+W4+t啦
2
∞2=a+f
7
"W7一"6×2
3
W3=c+d
8
W8=W7×2
4
批=∞l×2
9
out,一”3+t£,4+b
5
讹=w3×2
10
out,=Out.-+撕
,7删7丫:。 占
u{7、 ’l一 丫、7 7W爪 . 7厂Wh
out。=Ez 3 1 1]·[口b f d]T
(15)
以及:
’
out,一[E B D 9]·Ea b c d]T
(16)
在设计中,可以将两式重组并表示如下:
out。一2(口+6)+b+(f+d)
(17)
和:
out,=4(2(口+6)+2(C+d)+(口+f))+
2(口+6)+b+(f+d)
wenku.baidu.com
(18)
XIA Kewei。I.1 Bing (Institute of Integrated Circuit,Southeast University,Naming,210096.China)
Abstract:AES encryption algorithm is an advanced encryption algorithm.Because the structure of it is complex,an optimi— zation of the algorithm is presented.The implementation of S—box and MixColumn blocks in the AES encryption is optimized by the combinational logic method.The circuit design is successfully synthesized in the Xilinx Spartan 3 FPGA device and the area of AES circuit is finely optimized.
过GF(28)上的即约多项式户(z)一.372十A丁+j;构造线 性变换T。根据式(8)将GF(28)的输入z映射到
GF(24)上的元素b,C:
{bE3:ol,cE3:03}一如
(8)
式中:B是GF(24)上的常量元素;T是一个8×8的矩
阵,矩阵的元素是0或l,T矩阵由B的取值决定;A取
1,B取8;
1 1 0O 0 1 1 1
1 1 1 O O0 1 1
1 1 1 1 O OO 1
0
㈦1 0㈤1 0:1|]
M,一M_1一I o 1 o o 1 o 1 o l(5) 1 ㈦㈦1
12
万方数据
图1 S—box/逆S—box模块
S—box硬件实现时的主要部件是乘法求逆。在有 限域GF(28)上,乘法求逆是一种相当复杂的函数.直接 在域GF(28)上生成S—box盒,组合逻辑复杂度高,会 使电路中逻辑电路的门数大大增加。根据有限域的性 质,利用域GF(28)与GF[(24)2]的同构变换,把 GF(28)上的求逆转化在GF[(24)2]上的求逆运算,从 而生成S—box单元。可以降低逻辑关系运算的复杂度, 优化S—box的面积。
步骤(1)中的线性变换T满足:玎一一E。
其中:
Y=T-1{户[3:o],qE3:o]}
(10)
1OO 0 1 0 OO
OOO O1 1 O 1
O 1 O O1 1 O 1
O 1O OO 1 1 O T-1=
O 1O l 1 1 O 1
l /~
●●■ 、J
O0 1 Ol l OO
0 l 1 1 1 OO1
将式(15)和式(16)所做的操作及结果列于表1中,
由步骤1~步骤5处理的结果得到out。,接着由out。和 硼。得到out,。因此,在执行过程中,操作所用到的硬件
资源及其所得结果可以应用到步骤9,步骤10中。如
图3所示,这种新型结构(字节一列混合模块)仅需8个
加法器和4个乘法器。与原方案相比,此设计大大减少 了硬件复杂度并显著节省了资源的消耗。
GF(24)上的元素b,f的逆P,q,由式(7)可得: (如+f)一1=6(8b2+缸+C2)-124-
(f+6)(8b2+bc+f2)_1
(12)
P=6(8b2+&+C2)一
(13)
q=(f+6)(8b2+bc+f2)一1
(14)
P,q的计算是S—box中最复杂的逻辑运算,占用
了大量的逻辑关系,关于P,q的分量元素计算是由上述 算法中的分量元素代入式(13)、式(14)求得。
1 OOO1 1 1 O
O 1 1 O0 O0 O
OO OOO OO 1
OO 1 O 1 O OO T:=
0OO0 l 1 1 O
/~ 9 、J
O 1 O0 1 O 1 1
OO 1 1 O 1 0 1
0OOO O 1 O 1
(2)GFE(24)2]到GF(28)的逆映射。构造线性变 换T-1,GF(24)上的逆P,q映射到GF(28)上的逆元素 Y,如式(10)所示。其中,线性变换r1和乘法求递