曾小麗
(廣東互維科技有限公司 廣東廣州 510663)
資源共享的并行AES加密/解密算法及實現研究
曾小麗
(廣東互維科技有限公司 廣東廣州 510663)
為了能有效的對高級加密標準(AES)進行改善,我們可以通過資源共享以及并行來實現AES的加密以及解密,并且,我們對AES算法的不同變換、密鑰擴展特點性質等進行分析,然后選擇合理的置換及變換方式,提高密鑰的有效擴展方案,僅為幫助資源共享的并行AES加密/解密算法實現。
資源共享;加密/解密;高級加密標準;并行
高級加密標準簡稱AES,它是由美國國家標準與技術研究院在2001年發布,然后在2002年5月份正式成為標準。AES是當前最主流的對稱密鑰的加密算法之一。安全系統利用軟件加密解密的工作時,密鑰的明文會存在的計算機中,但是利用硬件加密解密安全系統則不會出現明文的流動,實現了安全系統的保密性,并且,硬件的運行速度快且可靠性非常高。
1.1 AES算法的基本變換方法
AES的加密解密主要是通過循環操作一定輪數的明文來實現的。通常分組的長度為16字節,也就是128位。本文分析研究的為10個循環輪數,128位的密鑰算法。AES加密解密算法的基本變換的方法主要是以下的四種:①字節置換變換;這種字節替代變換的方法主要是利用非線性查找表來完成字節替代來實現的,每一個字節都可以表示為地址地址利用替代表來完成查表替換的工作,每個字節都能替換成對應的字節。②行移位變換;在進行行移位變換的過程中,我們可以將字節構成的矩陣進行循環移位,循環移位包括矩陣中每一行的元素,并且不同行位在移位是位移的量也是不同的。③列混合變換;列混合變換主要是將混合矩陣中的每個元素進行充分的混合,這種混主要是在有限域的情況下通過線性轉換來對矩陣中的每個元素進行混合,進而實現最佳線性分支數。④輪密鑰變換;這種變換主要是為了獲得每一輪需要的子密鑰,在矩陣中所有的元素都有其向對應的子密鑰來完成運算。
1.2 AES加密/解密的算法
加密算法是從第0輪的變換開始的,明文以及種子密鑰都是通過循環密鑰來添加的,然后其結果為第1輪變換的輸入,然后依次進行輸入,將變換過程循環進行10輪,第10輪輸出密文。并且第10輪不需要完成列字節的混合變換過程。
等效解密的過程與加密的過程相類似。需要注意的是,等效解密的取逆過程、等效解密的輪密鑰等都與加密過程不相同。并且,等效解密在進行第0輪以及第10輪時的輪密鑰與加密過程第10輪以及第0輪使用的輪密鑰分別相同,中間解密輪換過程中使用的輪密鑰分別與加密過程逆序后的輪密鑰相同。等效解密流程示意圖中的第0輪為種子密鑰。“*”表示的是逆向列的字節混合變換。
2.1 字節置換加密/解密的算法
AES加密/解密算法中消耗資源最大并且影響時延最大的主要因素是字節置換以及列字節的混合變換。我們同仿射變換公式以及逆仿射變換公式可以構造出S盒查找表,進而完成字節置換的過程,該置換的速度雖然比較快,但是消耗的資源比較大,并且需要逆向的S盒來解密。但是,有限域GF(28)不適宜利用硬件來實現,我們可以在復合域中來進行字節置換的過程,并且該過程能有效的節約硬件資源。正向字節在置換的過程中,將輸入字節從GF(28)映射到GF(42),并且進行乘法逆的過程,然后反映射到GF(28),最后在GF(2)GF仿射變換。其中,Affine以及InvAffine代表的是有限域GF(28)放射變換以及逆放射變換;Map以及InvMap代表的是映射以及反映射。
2.2 AES算法加密/解密算法并行實現
AES加密/等效解密輪的變化結構如圖1所示。
如圖1中所示,S表示的為正向/逆向字節置換結構,MC/IMC表示的為正向/逆向列字節混合變換的結構,key表示的為加密/等效解密循環密鑰擴展結構中輸出輪密鑰kout,enc以及sel的是能,并且密鑰擴展與加密/等效解密循環密鑰擴展結構相同,每輪的輸入din、輸出dout代表的為下一輪的din輸出,在循環11輪(其中包括第0輪),輸出也就是密文或是明文。

圖1 加密/等效解密輪變換結構圖
2.3 實驗算法以及比較
AES的加密/解密算法可以通過FPGA來實現,進而實現資源共享的并行,我們在實驗時的描述可以采用VerilogHDL語言門級來進行,通過層間的模塊結構來進行計算。Verilog門級的描述能力相當于其他的HDL來說更加出色,控制影響的行為能力特別強,幾乎能夠直接控制,這也資源的控制也就更加方便。算法中我們先對小單元進行門級描述,將其定位為子模塊,然后在更大的模塊中調用子模塊,通過各個變換描述來實現相互連接并且具有層次的子模塊,最后在將所有的變換模塊構成整個的系統。并且,在實驗中我們也能夠發現,FPGA實現的算法能夠完成AES加密/解密的算法,并且資源消耗以及吞吐率也能實現較好的平衡。
本文對AES算法中的字節置換進行了分析,并且通過復合域來實現字節置換的變換,通過結構的簡化來完成列字節的混合變換,這樣就有效的解決了資源的消耗以及變換時延,進而通過資源共享的并行來完成AES加密/解密的算法。這種算法的資源消耗以及資源吞吐率能獲得較好的平衡,具有一定的實用價值。
[1]譚永栓,戴選民.資源共享的并行AES加密/解密算法及其實現[J].計算機仿真,2008,25(9).
[2]郭艷珍,韓文報,趙龍,劉佳瀟.AES列混合變換[J].解放軍理工大學學報(自然科學版),2009,10(3).
TP309
A
1004-7344(2016)03-0276-01
2016-1-11
曾小麗(1982-),女,漢族,廣東廣州人,注冊會計師,本科,研究方向為大數據數據挖掘與萃取算法設計、信息安全等。