-
AES算法中S—box和列混合单元的优化及FPGA实现
夏克维,李
冰
(东南大学集成电路学院江苏南京210096)
摘要:由于
AES算法的硬件实现较为复杂,在此提出一种优化算法中S—box和列混合单元的方法。其中S—box通<
/p>
过组合和有限域映射的方法进行优化,列混合单元使用算式重组的方法进行优化。这些优化
设计通过组合逻辑实现,经过
仿真并在Xilinx
Spart
an
3系列FPGA上进行综合验证,可以将结构简化,使AES电路面积得到优化,明
显节约硬件资源。
关键词:AES算法;S—box;列混合;结构优化;FPGA实现
中图分类号:TN710
文献标识码:B
文章编号:1004—373X(2009)24—011一04
Optimizat
ion
of
S—box
and
< br>MixColumn
Blocks
in
A
ES
Encryption
Algorithm
and
FPGA
Implementation
XIA
Kewei。I.1
Bing
< br>(Institute
of
Integrated
Circuit,Southeast
University,Naming,2100
96.China)
of
it
is
complex,an
optimi—
Abstract:AES
p>
encryption
algorithm
is
p>
an
advanced
encryptio
n
algorithm.Because
the
structure
zation
of
the
algorithm
is
pre
sented.The
implementation
of
S—box
and
MixColumn
blo
cks
in
the
AES
encrypt
ion
is
optimized
by<
/p>
the
combinational
logic<
/p>
method.The
circuit
desig
n
is
successfully
synthe sized
in
the
Xilinx
< p>Spartan
3
FPGA
device< /p>
and
the
area
o
f
AES
circuit
is
finel
y
optimized.
Keywords:AES
en cryption
algorithm;S—box;mix
colum
n;optimization;FPGA
implementation
美国国家标准与技术局(National
Standard
and< /p>
Institute
of
择合适的即约多项式,进
行域GF(28)到GF(24)的同构
映射,对S—box的算法进行优化,并采用组
合逻辑电路
实现,使优化后的S—box在同等频率条件下较显著地
减少了硬件资源的消耗。同时介绍了一种减小列混合
(MixColumn)单元硬
件复杂度的方案,可以明显地减
少列混合单元的设计面积。
1<
/p>
Technology,NIST)于1997年1月提出
发展A
ES(Advanced
Encryption
Standar
d)加密算法,
并于同年9月12日推出AES的早期基本算法。在研
< br>究了一系列早期算法之后,Rijndael算法被确定为先进
加密标准(Adv
anced
Encryption
Standard,AES)
。由
于其较高的保密级别,AES算法被用来替代DES和
3一
DES,以适应更为严苛的数据加密需要。
与此同时,市场迫切需要AES的FPGA和
ASIC
的硬件解决方案,因为其与用软件实现相比更安全而且
更省电。在一些应用,如:信用卡,手机,PDA等中,硬
件的复杂度是影响成本和能耗
的一个非常重要的因素。
因此。在加密和解密中都非常需要优化AES的主要操
作部分。在AES算法中,S—box是惟一的非线性单
元,在加密解密
,特别是字节替代和逆字节替代操作时
需要分别执行S—box和逆S—box。建立一
个16×16
的S—box,以往通常采用查找表的方式实现,占用大量
硬件资源。因此,对S—box进行优化是实现高效AES
的重要步骤。
在此首先通过在S—box和逆S—box中共用一个
look—up
列表,简化非线性单元的复杂度,然后通过选
收稿日期:2009一06—18
S—box的优化设计
在AES标准算法中定义了两个较大的列表。S—
box和逆S—box。将S—box用于两个应用:字节替代
和密钥扩展。而逆S—box则用于逆字节替代。这两个
列表是不相同的,因此必须建立
两个不同的ROM
(256×8
b),用以存储这两个列表。另
外,在AES设计
中使用平行结构,这就需要用到多个列表,这样会使硬
件过于复杂,需要对其进行优化。以下主要对S—box
模块进行结构优化。<
/p>
1.1
S—box和逆S—box的组合
在一个高速128
b的AES设计中,一般需要总共
20个S—box模
块和16个逆S—box模块。其中,16个
S—box模块用于实现字节替代的功能,
4个S—box用
于实现密钥扩展的功能,而16个逆S—box模块用于实
现逆字节替代功能。在这种情形下,如果字节替代和逆
字节替代时使用不同
的列表,就会占用大量的硬件资
1
1
万方数据<
/p>
源。所以非常需要一种减少硬件复杂性的方法。
就如AES标准所
描述的那样,S—box的操作过程
可以表示为:
Y=M?mu
ltiplicative_inverse(x)+c
(1)
其中:
1
1
1
1
1
O
O
0
O
1<
/p>
1
1
1
1
O
O
O
O
1
1
1
1
1
O
M=
p>
O
O
O
1
1
1
1
1
(2)
1
O
O
O
1
p>
1
1
1
1
1
0
O
0
1
1
1
1
1
1
O
O
0
1
1
1
p>
1
1
1
O
O
O
1
0
0㈤1
M,一M_
1一I
㈦1
o
1
o
o
1
0:1|]
< br>o
1
o
㈦㈦1
< br>1
l(5)
12
万方数据
图1
S—box/逆S—box模块
S—bo
x硬件实现时的主要部件是乘法求逆。在有
限域GF(28)上,乘法求逆是一种相当复
杂的函数.直接
在域GF(28)上生成S—box盒,组合逻辑复杂度高,会
使电路中逻辑电路的门数大大增加。根据有限域的性
质,利用域GF(2
8)与GF[(24)2]的同构变换,把
GF(28)上的求逆转化在GF[(24)
2]上的求逆运算,从
而生成S—box单元。可以降低逻辑关系运算的复杂度,
优化S—box的面积。
所采用有限域GF(28)上的乘法求逆电路
模块优化
过程如图2所示。优化的乘法求逆过程可表述如下:
(
1)通过线性变换丁将GF(28)的输入X映射到
域GF(2
4)上的 元素b,(;
(2)构建相应的域GF(2
4)的一次多项式,定义域< /p>
GF(24)上的加法、乘法和求逆运算。利用域(;F(2
4)
上
的加法、乘法和求逆运算,得到域GF(24)上元素b,C的
逆元素P,q;
(3)构建线性变换r1,将域GF(2
4)上的元素 P,q
映射到域GF(28)上,得到域GF(28)上的元素z的逆元
素Y=T’1(P,q)。
图2
GF(25)求逆电路优化 p>
由有限域的知识可知。复合域GF[(24)2]中每个元
素都可表
示为系数在GF(24)上的一次多项式6z+C。
设定义有限域GFE(24)2]的
乘法的二次不可约多项式
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+c
2在GF(24)
上的乘法逆元。各部分的逻辑实现过程可描述如下:
< br>(1)有限域GF(28)到复合域GvE(2
4)2]映射。通
过GF(28)上的即约多项式户(z)一.372十A丁+j;构造线
性变换T。根据
式(8)将GF(28)的输入z映射到
GF(24)上的元素b,C:
{bE3:ol,cE3:03}一如
(8)
式中:B
是GF(2
4)上的常量元素;T是一个8×8的矩
阵,矩阵的元素是0
或l,T矩阵由B的取值决定;A取
1,B取8;
1
O
O
O
1
1
1
O
O
1
1
O
0
O
0
O
O
O
O
O
O
O
< p>O
1
O
O
1
O
1
O
O
O
T:=
/~
9
、J
0
O
O
0
l
1
O
O
1
O
0
1
O
1
1
O
O
1
1
O
1
0
0
O
O
O
O
1
O
1
(2)GFE(24)2]到GF(28
)的逆映射。构造线性变
换T-1,GF(24)上的逆P,q映射到GF(28)上的
逆元素
Y,如式(10)所示。其中,线性变换r1和乘法求递
步骤(1)中的线性变换T满足:玎一一E。
Y=T-1{户[3:o],qE3:o]
}
(10)
其中:
1
O
O
0
1
0
O p>
O
O
O
O
O
< br>1
1
O
1
O
1
O
O
1
1
O
1
O
1
O p>
O
O
1
1
O
T-1=
/~
l
●●■
、J
O
1
O
l
1
1
O
1
O
0
1
O
l<
/p>
l
O
O
0
l
1
1
1
O
O
1
O
O
l
O
1
1
O
1
(3)通过域GF(24)上的运算,求b,c的逆P,q。首
< br>先构建GF(24),g(z)一一+X+l作为域GF(24)上的
本源多项式
,口(z),d(z),已(z)E-GF(24)。其中,
口(z)=a323如22
2+alz+ao,d(z)一d323+d222+
dlz+do,P(z)=e32
3+e222+elz+eo定义域GF(24)
上的加法、乘法、逆运算。
①加法为按位异或。
②乘法为多项式相乘后用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)上的加法、乘法
和求逆运算进行运算,得到
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)求得。
在这种设计方案中,求逆运算模块中所选
用的即约
万方数据
多项式户(z)和本源多项式q(z)不同,
减低了求逆模块
的复杂度。根据理论分析,本文中用到的户(z)和口(z)
不会减低AES算法的安全性。
2列混合单元的优化设计
< br>在列混合(MixColumn)和逆列混合(InvMix
Column)的操
作中,由以下两式定义了两个主要操作:
out。=Ez
3
p>
1
1]?[口b
f
d]T<
/p>
(15)
以及:
’
out,一[E
B
D
9]?Ea
p>
b
c
d]T
(16
)
在设计中,可以将两式重组并表示如下:
out。一2(口+
6)+b+(f+d)
(17)
和:
o
ut,=4(2(口+6)+2(C+d)+(口+f))+
2(口+6)+b+(f+
d)
(18)
将式(15)和式(16)所做的操作及结果列于
表1中,
由步骤1~步骤5处理的结果得到out。,接着由out。和
硼。得到out,。因此,在执行过程中,操作所用到的硬件
资源及其所得结果
可以应用到步骤9,步骤10中。如
图3所示,这种新型结构(字节一列混合模块)仅需
8个
加法器和4个乘法器。与原方案相比,此设计大大减少
了硬
件复杂度并显著节省了资源的消耗。
裹1对式(11)和式(12)的重组操作
步骤
操作
步骤
操作
p>
1
Z01一a—l-b
6
< br>∞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<
/p>
5
讹=w3×2
10
out,=Out.-+撕
占
’丫7
l、爪
u{7、
.厂h
一7
W
7W
,7删7丫:。
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
模块),
如图4所示。
这种模块设计可以通过部分分享硬件来同
时实现
】3
列混合和逆列混合的功能,实现了硬件资源的节省。
-
-
-
-
-
-
-
-
-
上一篇:基于电平检测的上电复位电路
下一篇:RF螺旋电感参数的提取方法