<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AES算法中S-box和列混合單元的優(yōu)化及FPGA技術(shù)實(shí)現

AES算法中S-box和列混合單元的優(yōu)化及FPGA技術(shù)實(shí)現

作者: 時(shí)間:2010-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏
1 設計

標準中定義了兩個(gè)較大的列表。和逆。將S-box用于兩個(gè)應用:字節替代和密鑰擴展。而逆S-box則用于逆字節替代。這兩個(gè)列表是不相同的,因此必須建立兩個(gè)不同的ROM(256×8 b),用以存儲這兩個(gè)列表。另外,在設計中使用平行結構,這就需要用到多個(gè)列表,這樣會(huì )使硬件過(guò)于復雜,需要對其進(jìn)行。以下主要對S-box模塊進(jìn)行結構。

1.1 S-box和逆S-box的組合

在一個(gè)高速128 b的設計中,一般需要總共20個(gè)S-box模塊和16個(gè)逆S-box模塊。其中,16個(gè)S-box模塊用于字節替代的功能,4個(gè)S-box用于密鑰擴展的功能,而16個(gè)逆S-box模塊用于逆字節替代功能。在這種情形下,如果字節替代和逆字節替代時(shí)使用不同的列表,就會(huì )占用大量的硬件資源。所以非常需要一種減少硬件復雜性的方法。

就如AES標準所描述的那樣,S-box的操作過(guò)程可以表示為:



因為multiplicative_inverse(乘法求逆)是一個(gè)相當復雜的方程,最常用的實(shí)現S-box的方法是運用look-up列表來(lái)由x得到y。等式(1)的逆等式如下:



因為multiplicative_inverse-1和multiplicative_inverse是相同的,所以等式(3)可以表述為:



最后,必須找到M-1,即矩陣M的有限域逆矩陣。由有限域逆矩陣的運算方法可知,可以計算出矩陣M的逆矩陣,命名為M’,如式(5)所示:



在式(1)和式(6)中,只使用了一個(gè)普通的look-up列表,從而將S-box和逆S-box集成,大大減少了字節替代和逆字節替代的硬件需求。圖1展示了集成的S-box/逆S-box模塊,可應用于A(yíng)ES的加密和解密。



1.2 S-box中乘法求逆電路的優(yōu)化

由第1.1節可知,S-box盒的生成電路由加密仿射電路(實(shí)現out=(in+c)M-1等式功能),解密仿射電路(實(shí)現out=in?M+c等式功能)以及乘法求逆電路三個(gè)模塊組成。要減少組合邏輯的復雜度,需要對乘法求逆電路進(jìn)行優(yōu)化。下面說(shuō)明求逆電路的優(yōu)化過(guò)程。

S-box硬件實(shí)現時(shí)的主要部件是乘法求逆。在有限域GF(28)上,乘法求逆是一種相當復雜的函數,直接在域GF(28)上生成S-box盒,組合邏輯復雜度高,會(huì )使電路中邏輯電路的門(mén)數大大增加。根據有限域的性質(zhì),利用域GF(28)與GF[(24)2]的同構變換,把GF(28)上的求逆轉化在GF[(24)2]上的求逆運算,從而生成S-box,可以降低邏輯關(guān)系運算的復雜度,優(yōu)化S-box的面積。

所采用有限域GF(28)上的乘法求逆電路模塊優(yōu)化過(guò)程如圖2所示。優(yōu)化的乘法求逆過(guò)程可表述如下:

(1)通過(guò)線(xiàn)性變換T將GF(28)的輸入X映射到域GF(24)上的元素b,c;

(2)構建相應的域GF(24)的一次多項式,定義域GF(24)上的加法、乘法和求逆運算。利用域GF(24)上的加法、乘法和求逆運算,得到域GF(24)上元素b,c的逆元素p,q;

(3)構建線(xiàn)性變換T-1,將域GF(24)上的元素p,q映射到域GF(28)上,得到域GF(28)上的元素x的逆元素y=T-1(p,q)。



由有限域的知識可知,復合域GF[(24)2]中每個(gè)元素都可表示為系數在GF(24)上的一次多項式bx+c。設定義有限域GF[(24)2]的乘法的二次不可約多項式x2+Ax+B,可驗證此時(shí)GF[(24)2]中的任一元素bx+c的乘逆元素是:



式中:(b2B+bcA+c2)-1是b2B+bcA+c2在GF(24)上的乘法逆元。各部分的邏輯實(shí)現過(guò)程可描述如下:

(1)有限域GF(28)到復合域GF[(24)2]映射。通過(guò)GF(28)上的即約多項式p(x)=x2+Ax+B構造線(xiàn)性變換T,根據式(8)將GF(28)的輸入x映射到GF(24)上的元素b,c:



式中:B是GF(24)上的常量元素;T是一個(gè)8×8的矩陣,矩陣的元素是0或1,T矩陣由B的取值決定;A取1,B取8;


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>