曾小麗
(廣東互維科技有限公司 廣東廣州 510663)
資源共享的并行AES加密/解密算法及實現(xiàn)研究
曾小麗
(廣東互維科技有限公司 廣東廣州 510663)
為了能有效的對高級加密標(biāo)準(zhǔn)(AES)進行改善,我們可以通過資源共享以及并行來實現(xiàn)AES的加密以及解密,并且,我們對AES算法的不同變換、密鑰擴展特點性質(zhì)等進行分析,然后選擇合理的置換及變換方式,提高密鑰的有效擴展方案,僅為幫助資源共享的并行AES加密/解密算法實現(xiàn)。
資源共享;加密/解密;高級加密標(biāo)準(zhǔn);并行
高級加密標(biāo)準(zhǔn)簡稱AES,它是由美國國家標(biāo)準(zhǔn)與技術(shù)研究院在2001年發(fā)布,然后在2002年5月份正式成為標(biāo)準(zhǔn)。AES是當(dāng)前最主流的對稱密鑰的加密算法之一。安全系統(tǒng)利用軟件加密解密的工作時,密鑰的明文會存在的計算機中,但是利用硬件加密解密安全系統(tǒng)則不會出現(xiàn)明文的流動,實現(xiàn)了安全系統(tǒng)的保密性,并且,硬件的運行速度快且可靠性非常高。
1.1 AES算法的基本變換方法
AES的加密解密主要是通過循環(huán)操作一定輪數(shù)的明文來實現(xiàn)的。通常分組的長度為16字節(jié),也就是128位。本文分析研究的為10個循環(huán)輪數(shù),128位的密鑰算法。AES加密解密算法的基本變換的方法主要是以下的四種:①字節(jié)置換變換;這種字節(jié)替代變換的方法主要是利用非線性查找表來完成字節(jié)替代來實現(xiàn)的,每一個字節(jié)都可以表示為地址地址利用替代表來完成查表替換的工作,每個字節(jié)都能替換成對應(yīng)的字節(jié)。②行移位變換;在進行行移位變換的過程中,我們可以將字節(jié)構(gòu)成的矩陣進行循環(huán)移位,循環(huán)移位包括矩陣中每一行的元素,并且不同行位在移位是位移的量也是不同的。③列混合變換;列混合變換主要是將混合矩陣中的每個元素進行充分的混合,這種混主要是在有限域的情況下通過線性轉(zhuǎn)換來對矩陣中的每個元素進行混合,進而實現(xiàn)最佳線性分支數(shù)。④輪密鑰變換;這種變換主要是為了獲得每一輪需要的子密鑰,在矩陣中所有的元素都有其向?qū)?yīng)的子密鑰來完成運算。
1.2 AES加密/解密的算法
加密算法是從第0輪的變換開始的,明文以及種子密鑰都是通過循環(huán)密鑰來添加的,然后其結(jié)果為第1輪變換的輸入,然后依次進行輸入,將變換過程循環(huán)進行10輪,第10輪輸出密文。并且第10輪不需要完成列字節(jié)的混合變換過程。
等效解密的過程與加密的過程相類似。需要注意的是,等效解密的取逆過程、等效解密的輪密鑰等都與加密過程不相同。并且,等效解密在進行第0輪以及第10輪時的輪密鑰與加密過程第10輪以及第0輪使用的輪密鑰分別相同,中間解密輪換過程中使用的輪密鑰分別與加密過程逆序后的輪密鑰相同。等效解密流程示意圖中的第0輪為種子密鑰?!埃北硎镜氖悄嫦蛄械淖止?jié)混合變換。
2.1 字節(jié)置換加密/解密的算法
AES加密/解密算法中消耗資源最大并且影響時延最大的主要因素是字節(jié)置換以及列字節(jié)的混合變換。我們同仿射變換公式以及逆仿射變換公式可以構(gòu)造出S盒查找表,進而完成字節(jié)置換的過程,該置換的速度雖然比較快,但是消耗的資源比較大,并且需要逆向的S盒來解密。但是,有限域GF(28)不適宜利用硬件來實現(xiàn),我們可以在復(fù)合域中來進行字節(jié)置換的過程,并且該過程能有效的節(jié)約硬件資源。正向字節(jié)在置換的過程中,將輸入字節(jié)從GF(28)映射到GF(42),并且進行乘法逆的過程,然后反映射到GF(28),最后在GF(2)GF仿射變換。其中,Affine以及InvAffine代表的是有限域GF(28)放射變換以及逆放射變換;Map以及InvMap代表的是映射以及反映射。
2.2 AES算法加密/解密算法并行實現(xiàn)
AES加密/等效解密輪的變化結(jié)構(gòu)如圖1所示。
如圖1中所示,S表示的為正向/逆向字節(jié)置換結(jié)構(gòu),MC/IMC表示的為正向/逆向列字節(jié)混合變換的結(jié)構(gòu),key表示的為加密/等效解密循環(huán)密鑰擴展結(jié)構(gòu)中輸出輪密鑰kout,enc以及sel的是能,并且密鑰擴展與加密/等效解密循環(huán)密鑰擴展結(jié)構(gòu)相同,每輪的輸入din、輸出dout代表的為下一輪的din輸出,在循環(huán)11輪(其中包括第0輪),輸出也就是密文或是明文。
圖1 加密/等效解密輪變換結(jié)構(gòu)圖
2.3 實驗算法以及比較
AES的加密/解密算法可以通過FPGA來實現(xiàn),進而實現(xiàn)資源共享的并行,我們在實驗時的描述可以采用VerilogHDL語言門級來進行,通過層間的模塊結(jié)構(gòu)來進行計算。Verilog門級的描述能力相當(dāng)于其他的HDL來說更加出色,控制影響的行為能力特別強,幾乎能夠直接控制,這也資源的控制也就更加方便。算法中我們先對小單元進行門級描述,將其定位為子模塊,然后在更大的模塊中調(diào)用子模塊,通過各個變換描述來實現(xiàn)相互連接并且具有層次的子模塊,最后在將所有的變換模塊構(gòu)成整個的系統(tǒng)。并且,在實驗中我們也能夠發(fā)現(xiàn),F(xiàn)PGA實現(xiàn)的算法能夠完成AES加密/解密的算法,并且資源消耗以及吞吐率也能實現(xiàn)較好的平衡。
本文對AES算法中的字節(jié)置換進行了分析,并且通過復(fù)合域來實現(xiàn)字節(jié)置換的變換,通過結(jié)構(gòu)的簡化來完成列字節(jié)的混合變換,這樣就有效的解決了資源的消耗以及變換時延,進而通過資源共享的并行來完成AES加密/解密的算法。這種算法的資源消耗以及資源吞吐率能獲得較好的平衡,具有一定的實用價值。
[1]譚永栓,戴選民.資源共享的并行AES加密/解密算法及其實現(xiàn)[J].計算機仿真,2008,25(9).
[2]郭艷珍,韓文報,趙龍,劉佳瀟.AES列混合變換[J].解放軍理工大學(xué)學(xué)報(自然科學(xué)版),2009,10(3).
TP309
A
1004-7344(2016)03-0276-01
2016-1-11
曾小麗(1982-),女,漢族,廣東廣州人,注冊會計師,本科,研究方向為大數(shù)據(jù)數(shù)據(jù)挖掘與萃取算法設(shè)計、信息安全等。