AES加解密算法IP核的設計與實(shí)現
計算機科學(xué)技術(shù)中的數據加密是信息安全的重要手段。Rijndael加密算法由比利時(shí)密碼學(xué)家JoanDaemen和VincentRijmen發(fā)明的一種迭代型分組加密算法,2000年被確定為美高級加密標準AES的最終算法。本文通過(guò)對AES算法的流程進(jìn)行改進(jìn),提高IP核的性能,從而獲得低成本高性能的AES加密實(shí)現方法。
本文引用地址:http://dyxdggzs.com/article/189657.htm1 AES算法流程
AES算法是一個(gè)迭代型分組密碼, 將輸入的明文( 或密文)分成16個(gè)字節,在第一個(gè)輪密鑰加變換后進(jìn)入1O輪迭代。前9輪完全相同,依次經(jīng)過(guò)字節代替、行移位、列混合、輪密鑰加,最后一輪不同,跳過(guò)了列混合,解密與加密過(guò)程類(lèi)似,但執行順序與描述內容有所不同,因此AES算的加解密過(guò)程需要分別實(shí)現。
我們可以調整操作順序,先進(jìn)行密鑰加操作,再進(jìn)行列混合操作,密鑰擴展部分的列混合操作就可去掉,從而密鑰擴展模塊被簡(jiǎn)化,AES IP核的硬件復雜度得到降低。
2 IP核設計方案
筆者將IP系統的工作模式設計為閑置模式、密鑰輸入模式、單輪加密模式及連續加密模式,其結構包括時(shí)序控制、密鑰處理、數據處理三個(gè)主要單元。
2.1 密鑰處理單元。
① 在系統進(jìn)入密鑰輸入模式后,從數據輸入端口連續四個(gè)時(shí)鐘周期讀入總共一百二十八位密鑰數據,系統完成第一輪密鑰的計算,回到閑置模式。② 密鑰處理單元處于加密模式時(shí),按算法需求實(shí)時(shí)計算各輪密鑰,以三十二位為一單元輸出,與數據通道中三十二位數據結合進(jìn)行運算。③ 為利于下一輪加密的進(jìn)行,密鑰處理單元的復位環(huán)節是在系統模式由加密狀態(tài)轉為閑置狀態(tài)時(shí)結束。
2.2 數據處理單元。
① 加密模式的主要工作是迭代運算明文數據。數據處理單元承擔檢測動(dòng)能,當處于最后一輪數據運算時(shí),會(huì )直接跳過(guò)列混合這一環(huán)節。② 加密模式下數據處理單元讀取一百二十八位明文數據連續四次,再通過(guò)四十個(gè)時(shí)鐘周期數據運算,密文之首個(gè)三十二位數據段得以產(chǎn)生。
2.3 時(shí)序控制單元。
該單元負責生成整個(gè)系統關(guān)鍵控制信號,因控制信號集中由一個(gè)單元負責產(chǎn)生,所以使得軟件綜合出較高的時(shí)鐘頻率,輸出的時(shí)鐘相位也趨于一致。從AES加密方法流程圖中可以看到,第一輪與最后一輪都進(jìn)行了特殊處理,雖然未經(jīng)過(guò)完整的四輪處理過(guò)程,但在設計中將第一輪與最后一輪使用單獨硬件實(shí)現,減少了兩輪的運算時(shí)間。而且,降低資源占用的主要手段主要是減少Sbox的使用。
3 硬件實(shí)現方式
為使本硬件在上述設計的基礎上得以實(shí)現,筆者采用的方式是: 應用QuartusII8.0軟件形成Verilog HDL語(yǔ)言, 應用ModelSim6.2系統軟件進(jìn)行測試,路徑與綜合的分析工作應用FPGA綜合工具Synplify9.pro輔助完成。
主要目的是:1)考察80 MHz頻率下,目標器件EP1C4F324C6所綜合的IP核的資源占用及性能。2)在EP2S15F484C3目標器件的高性能狀態(tài)中再一次綜合及后仿真,以便將測試結果縱向比較,得出測試結論。
3.1 測試過(guò)程。
密鑰為:2b7e1516_28aed2a6_abf71588_09cf4f3c,輸入明文:3243f6a8_885a308d_313198a2_e0370734輸出密文3925841d_02dc09fb_dc118597_196a0b32,結果與預期吻合。
從建立流水作業(yè)以提高性能的目的出發(fā),32位和128位數據位寬的設計中原文計算速度/資源比值時(shí)未考慮所占用的RAMs資源,而且文中設計為25MHz時(shí)鐘頻率,進(jìn)行數據分析時(shí)卻將工作頻率直接換算為54MHz,而未對其設計是否可正常工作于此頻率進(jìn)行論證。得到數據見(jiàn)表1:

表1 硬件實(shí)現的比較
3.2 數據分析。
IP核在80MHz時(shí)鐘頻率下工作時(shí),數據吞吐量為256Mb/s,速度/資源值為0.193。在位寬擴展時(shí),采用并行連接IP核的辦法,時(shí)序控制單元與密鑰擴展單元可實(shí)現共用,進(jìn)一步提高資源利用率。當擴展為128位數據位寬時(shí),數據吞吐量成倍增加,而速度/資源比提高到0.326(見(jiàn)表1)。
3.3 實(shí)驗結論。
本設計在32位數據位寬的同類(lèi)設計中有一定的優(yōu)勢,采用6級流水線(xiàn)技術(shù)及復合域方法優(yōu)化Sbox,達到了較優(yōu)的設計指標。
在Synplify9下選定目標器件EP2S15F484C3,優(yōu)先考慮提高速度,綜合結果報告最高時(shí)鐘頻率超過(guò)240MHz,說(shuō)明本IP核設計合理,較好地利用了目標器件資源。
本文設計的IP核硬件在輸入、輸出端加FIFO數據緩存器使從AES加密主器件被中斷數據傳輸次數減少,而且在實(shí)際應用中、簡(jiǎn)化了方法流程圖中可以看到,第一輪與最后一輪都進(jìn)行了特殊處主器件操作時(shí)序,形成了標準通信界面,是一種低成本高性能理,雖然未經(jīng)過(guò)完整的四輪處理過(guò)程,但在設計中將第一輪與的AES加密實(shí)現方法,整個(gè)設計具有較強的實(shí)用性,運行穩最后一輪使用單獨硬件實(shí)現,減少了兩輪的運算時(shí)間。而且, 定,效果良好。降低資源占用的主要手段主要是減少Sbox的使用。
評論