AES算法中S-box和列混合單元的優(yōu)化及FPGA實(shí)現(xiàn)
最后,必須找到M-1,即矩陣M的有限域逆矩陣。由有限域逆矩陣的運(yùn)算方法可知,可以計(jì)算出矩陣M的逆矩陣,命名為M’,如式(5)所示:
在式(1)和式(6)中,只使用了一個(gè)普通的look-up列表,從而將S-box和逆S-box集成,大大減少了字節(jié)替代和逆字節(jié)替代的硬件需求。圖1展示了集成的S-box/逆S-box模塊,可應(yīng)用于AES的加密和解密。
1.2 S-box單元中乘法求逆電路的優(yōu)化
由第1.1節(jié)可知,S-box盒的生成電路由加密仿射電路(實(shí)現(xiàn)out=(in+c)M-1等式功能),解密仿射電路(實(shí)現(xiàn)out=in·M+c等式功能)以及乘法求逆電路三個(gè)模塊組成。要減少組合邏輯的復(fù)雜度,需要對(duì)乘法求逆電路進(jìn)行優(yōu)化。下面說(shuō)明求逆電路的優(yōu)化過(guò)程。
S-box硬件實(shí)現(xiàn)時(shí)的主要部件是乘法求逆。在有限域GF(28)上,乘法求逆是一種相當(dāng)復(fù)雜的函數(shù),直接在域GF(28)上生成S-box盒,組合邏輯復(fù)雜度高,會(huì)使電路中邏輯電路的門(mén)數(shù)大大增加。根據(jù)有限域的性質(zhì),利用域GF(28)與GF[(24)2]的同構(gòu)變換,把GF(28)上的求逆轉(zhuǎn)化在GF[(24)2]上的求逆運(yùn)算,從而生成S-box單元,可以降低邏輯關(guān)系運(yùn)算的復(fù)雜度,優(yōu)化S-box的面積。
所采用有限域GF(28)上的乘法求逆電路模塊優(yōu)化過(guò)程如圖2所示。優(yōu)化的乘法求逆過(guò)程可表述如下:
(1)通過(guò)線性變換T將GF(28)的輸入X映射到域GF(24)上的元素b,c;
(2)構(gòu)建相應(yīng)的域GF(24)的一次多項(xiàng)式,定義域GF(24)上的加法、乘法和求逆運(yùn)算。利用域GF(24)上的加法、乘法和求逆運(yùn)算,得到域GF(24)上元素b,c的逆元素p,q;
(3)構(gòu)建線性變換T-1,將域GF(24)上的元素p,q映射到域GF(28)上,得到域GF(28)上的元素x的逆元素y=T-1(p,q)。
評(píng)論