关键词不能为空

当前您在: 大学查询网 > 高校介绍 >

大学生求职自我介绍AES算法中Sbox和列混合单元的优化及FPGA实现

作者:高考题库网
来源:https://bjmy2z.cn/daxue
2020-12-10 19:36
tags:

-

2020年12月10日发(作者:相润)


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


encryption

algorithm


is


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


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模块用于实

< p>
现逆字节替代功能。在这种情形下,如果字节替代和逆


字节替代时使用不同 的列表,就会占用大量的硬件资



万方数据< /p>


源。所以非常需要一种减少硬件复杂性的方法。


就如AES标准所 描述的那样,S—box的操作过程


可以表示为:


Y=M?mu ltiplicative_inverse(x)+c


(1)


其中:





1< /p>







M=





(2)



















0㈤1


M,一M_ 1一I


㈦1







0:1|]

< br>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)求逆电路优化


由有限域的知识可知。复合域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;


< p>





< p>



< p>





< p>
T:=


/~



、J



< p>1














< p>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)


其中:





< br>1












T-1=


/~



●●■


、J








l< /p>







< p>







(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)


上的加法、乘法、逆运算。

< p>
①加法为按位异或。


②乘法为多项式相乘后用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)

< p>
不会减低AES算法的安全性。


2列混合单元的优化设计

< br>在列混合(MixColumn)和逆列混合(InvMix


Column)的操 作中,由以下两式定义了两个主要操作:


out。=Ez



1]?[口b



d]T< /p>


(15)


以及:



out,一[E




9]?Ea




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)的重组操作


步骤


操作


步骤


操作



Z01一a—l-b


< br>∞6一W2+W4+t啦



∞2=a+f



"W7一"6×2



W3= c+d



W8=W7×2


< p>
批=∞l×2



out,一”3+t£,4+b< /p>



讹=w3×2


10

out,=Out.-+撕



’丫7


l、爪


u{7、


.厂h


一7



7W


,7删7丫:。



一。,,


,、


。,一


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


列混合和逆列混合的功能,实现了硬件资源的节省。

-


-


-


-


-


-


-


-



本文更新与2020-12-10 19:36,由作者提供,不代表本网站立场,转载请注明出处:https://bjmy2z.cn/daxue/27176.html

AES算法中Sbox和列混合单元的优化及FPGA实现的相关文章