龔向東,王 佳,張 準,王 坤
(1.深圳大學 電子科學與技術學院,廣東 深圳518060;2.深圳大學 光電工程學院,廣東 深圳518060)
基于FPGA的AES算法硬件實現優化及IP核應用
龔向東1,王 佳2,張 準2,王 坤2
(1.深圳大學 電子科學與技術學院,廣東 深圳518060;2.深圳大學 光電工程學院,廣東 深圳518060)
根據AES算法的特點,從3方面對算法硬件實現進行改進:列混合部分使用查找表代替矩陣變換,降低算法實現的運算復雜度,采用流水線結構優化關鍵路徑-密鑰拓展,提升加密速度,利用FPGA定制RAM (BRAM)預存查找表進一步提升加密速度。優化后的AES算法在Virtex-6 xc6vlx240T(速度等級 -3)FPGA上實現,結果發現,AES算法共占用1 139個Slice,最大頻率達到443.99 MHz,通量達到 56.83 Gbit/s,效率達到 49.89 (Mbit/s)/Slice;然后,對 AES算法進行接口邏輯聲明,將優化后AES算法封裝成自定制IP核;最后,采用基于NIOS II的SOPC技術,構建了一個嵌入式AES算法加密系統,實現了數據通信中的高速加密。
AES;流水線結構;通量;效率;自定制IP核;加密系統
數據加密標準(DES-Data Encryption Standard)[1]是密碼學歷史上第一個廣泛用于商用數據保密的密碼算法,隨著計算機性能的不斷提升,DES的密鑰長度和分組長度顯得過短,易被窮舉攻破。為了更好的保護數據,2001年更安全的數據加密標準 (AESAdvancedEncryptionStandard高級加密標準)正式公布。
AES[2]算法的分組長度為128 bit,密鑰長度支持128、192和256 bit。不同的密鑰長度對應不同的加密輪數,分別為10,12,14輪。如密鑰長度為128位的AES算法需要10輪迭代實現,前9輪迭代過程是一致的,包括字節替換、行移位、列混合、輪密鑰異或,最后一輪包括字節替換、行移位和輪密鑰異或,解密過程則是逆向輪迭代運算。……