江碧嫦
(廣州歷康信息科技股份有限公司,廣東 廣州 510663)
資源共享的并行AES加密/解密算法及實現(xiàn)研究
江碧嫦
(廣州歷康信息科技股份有限公司,廣東 廣州 510663)
隨著密碼分析技術(shù)的進一步發(fā)展,高級加密標(biāo)準(zhǔn)(AES)逐漸取代了以往的數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),成為新一代數(shù)據(jù)加密標(biāo)準(zhǔn)?,F(xiàn)階段,在應(yīng)用AES算法的過程中,還存在一些問題,主要表現(xiàn)為吞吐率低、資源消耗大、無法分別實現(xiàn)加密和解密等。文章主要針對在消耗較少資源的條件下獲取較高吞吐率的AES加密/解密算法進行研究。
AES算法;加密;解密;復(fù)合域
1.1 算法內(nèi)基本變換
AES是利用明文進行多次循環(huán)操作進行加密與解密,屬于分組對稱加密算法。分組長為128位,密鑰長為128位、192位及256位。為方便研究,本文只針對128位密鑰的AES算法進行討論,循環(huán)操作輪數(shù)為10次。該算法中,加密與解密的輪變化由4個基本變換構(gòu)成:字節(jié)置換變換、行字節(jié)移位變換、列字節(jié)混合變換、循環(huán)密鑰添加變換。輪變化中間結(jié)果狀態(tài)字節(jié)為16字節(jié),表示方法采用4×4狀態(tài)矩陣。
1.2 字節(jié)置換變換
此類變換為非線性變換,針對的是狀態(tài)字節(jié),不管是正向還是逆向,都包含兩個變換。在正向字節(jié)置換中,在有限域GF(28)內(nèi)先對字節(jié)求乘法逆,{00}字節(jié)的逆是其自身,最后在有限域GF(2)中進行仿射變換:
上式中,Outi,Ini,ci表示輸出字節(jié)Out,輸入字節(jié)In和常數(shù)字節(jié)c的第i個比特位;表示異或運算;c二進制取值為{01100011}。
在逆向字節(jié)置換中,在有限域GF(2)內(nèi)進行仿射變換:
然后在有限域GF(28)內(nèi)對字節(jié)求乘法逆,其中c值為{00000101}。
1.3 行字節(jié)移位變換
針對的是狀態(tài)矩陣中的字節(jié)數(shù)和不同方面的循環(huán)移位,狀態(tài)矩陣第0,1,2,3行在正向行字節(jié)移位中循環(huán)左移0,1,2,3個字節(jié),在逆向行字節(jié)移位中循環(huán)右移0,1,2,3個字節(jié)。
1.4 列字節(jié)混合變換
針對的是狀態(tài)矩陣的列。在有限域GF(28)內(nèi)每一列都可用4項多項式進行表示,對于正向與逆向列字節(jié)混合變換中,通常會用到c(x)與d(x)兩個固定的4項多項式:
c(x)={03}x3+{01}x+{01}x+{02}d(x)={0b}x3+{0d}x+{09}x+{0e}
如果正向列字節(jié)混合變換的輸入狀態(tài)列為Sc(x),輸出狀態(tài)列為,則有:
如果逆向列字節(jié)混合變換的輸入狀態(tài)列為Sc(x),輸出狀態(tài)列為,則有:
1.5 循環(huán)密鑰添加
種子密鑰通過擴展后得到輪密鑰,將輪密鑰和狀態(tài)矩陣內(nèi)對應(yīng)的字節(jié)進行異或運算即為循環(huán)密鑰。
在加密過程中,從第0輪變換開始,明文與種子密鑰通過循環(huán)密鑰添加后所得到的結(jié)果即為第1輪變化的輸入,以此類推,第i-1輪的輸出即為第i輪的輸入。本文中循環(huán)次數(shù)設(shè)置為10次,則第10輪即可輸出密文。進行第10輪輸出的時候,不需要列字節(jié)混合變換,加密流程如圖1(a)所示。而解密的結(jié)構(gòu)與加密基本類似,不同之處在于,除取逆向外,采用的輪密鑰也不同,解密的第0輪與第10輪的輪密鑰,對應(yīng)的是加密的第10輪和第0輪密鑰,解密的流程如圖1(b)所示。圖1中,種子密鑰就是第0輪密鑰,“*”表示對該輪密鑰進行逆向混合變換。
圖1 加密與解密流程
3.1 基于復(fù)合域的字節(jié)置換變換
字節(jié)置換與列字節(jié)混合變換是AES算法中對資源消耗和時延影響最大的。對公式(1)(2)進行利用,能夠構(gòu)造S盒查找表,實現(xiàn)對字節(jié)的置換,雖然其置換的速度比較快,但是存在資源消耗大的問題,并且需要逆向S盒才能解密。所以在有限域GF(28)內(nèi),硬件實現(xiàn)難度稍大,但在復(fù)合域內(nèi)可在節(jié)省硬件資源的基礎(chǔ)上,實現(xiàn)字節(jié)置換。在正向字節(jié)置換中,先在有限域GF(28)內(nèi)將輸入字節(jié)映射到有限域GF(42)內(nèi),然后對字節(jié)進行求乘法逆,將結(jié)果反映射到有限域GF(28)內(nèi),最后在有限域GF(2)內(nèi)仿射變換。對于逆向字節(jié)置換時,先要在有限域GF(2)內(nèi)逆仿射變換。假設(shè)a∈GF(28),則有:
GF(42)的多項式加法與乘法運算與GF(28)類似,模多項式為x4+x+1。GF(42)的乘法逆可作如下表示:
3.2 基于硬件的行字節(jié)移位變換
可根據(jù)移位的字節(jié)數(shù)與放線連線,幾乎不會產(chǎn)生時延,也不會占用大量固定的硬件資源,然后利用選擇器對正向與逆向行字節(jié)移位變換進行選通即可。
3.3 基于Xtimei()的列字節(jié)混合變換
Xtimei()操作是將字節(jié)多項式a(x)與x相乘,表示為Xtimei(x(x))=xa(x)。假設(shè)ai是字節(jié)a的第i比特位,在有限域GF(28)內(nèi)利用字節(jié)多項式加法和乘法運算,可將Xtime()寫為:
為了降低時延和硬件消耗,對上式進一步進行推算與定義:
3.4 基于128位加密/解密密鑰擴展方案
假設(shè)輸入128位種子月在加密密鑰擴展中為w0,w1,w2,w3,分別表示1個字節(jié),則第i輪的密鑰可從第i-1輪密鑰中進行推導(dǎo):
式中,1≤i≤10,SubWord()為正向字節(jié)置換變換,RoiWord()為循環(huán)左移一個字節(jié),Rcon(i)為循環(huán)常數(shù),最左邊1個字節(jié)有值,其它字節(jié)均為{00},可利用有限域GF(28)多項式Xi-1進行表示。對解密密鑰進行擴展的時候,解密密鑰的第0輪密鑰是加密的最后一輪密鑰,以此類推,可得到下一輪密鑰,然后取逆,可作為該輪解密的密鑰。假設(shè)上一輪混合變換前的密鑰依次為W(4i),W(4i+1),W(4i+2),W(4i+3),對異或運算的性質(zhì)進行利用,可根據(jù)公式(6)對下一輪列混合變換前的密鑰進行推導(dǎo)。
3.5 AES加密/解密算法的并行實現(xiàn)
通過分析可知,在每一輪中,輸入din,而輸出的dout則是作為下一輪的din進行輸入,在經(jīng)過11次循環(huán)(包含第0輪)后,輸出結(jié)果即為明文或密文。
本文主要是針對AES算法提高吞吐率與降低資源消耗的方法進行研究,在128位加密與解密密鑰擴展與各個變換的基礎(chǔ)上,實現(xiàn)字節(jié)置換變換在復(fù)合域內(nèi)的優(yōu)化,通過對Xtimei()結(jié)構(gòu)進行推導(dǎo)及簡化,實現(xiàn)了列字節(jié)混合變換,都降低了變換時延與資源消耗,同時提出了128位加密/解密密鑰擴展方案的共享,利用FPGA驗證結(jié)果證明了該方案在獲取較高吞吐率的同時,有效地降低了資源消耗,能夠使吞吐率與資源消耗達到平衡,具有較好的使用價值。
[1]舒駿,王憶文,李輝.一種資源共享的快速加解密AES算法的實現(xiàn)[J].微處理機,2011(2):48-51.
[2]費雄偉,李肯立,陽王東.基于CTR模式的GPU并行AES算法的研究與實現(xiàn)[J].小型微型計算機系統(tǒng),2015(3):529-533.
Research on the Implementation of Parallel AES Encryption/Decryption Algorithm for Resource Sharing
Jiang Bichang
(Guangzhou Leadcom Information Technology Co., Ltd., Guangzhou 510663, China)
With the further development of the code analysis technology, the advanced encryption standard (AES)has gradually replaced previous data encryption standard (DES) as a new generation of data encryption standard. Of AES algorithm at present, there exist some problems in the process of application, which mainly shows low throughput, resource consumption, unable to realize encryption and decryption respectively. This article mainly aims at consuming less resources conditions to obtain high throughput and AES encryption/decryption algorithm is studied.
AES algorithm; encryption; decryption; composite domain
江碧嫦(1970— ),女,廣東廣州;研究方向:計算機應(yīng)用技術(shù)。