馮 妮,張會新,盧一男,劉文怡
(中北大學a.儀器科學與動態測試教育部重點實驗室;b.電子測試技術重點實驗室,山西太原 030051)
嵌入式AES加密存儲器的硬件實現
馮 妮,張會新,盧一男,劉文怡
(中北大學a.儀器科學與動態測試教育部重點實驗室;b.電子測試技術重點實驗室,山西太原 030051)
介紹了一種基于FPGA的AES硬件加密系統,該系統實現了電子數據的加密及存儲。詳細說明了AES加密算法的FPGA架構,AES核心算法的接口時序設計,AES加密存儲器的硬件設計以及算法驗證。硬件加密較之軟件加密有實時性高、數據量大以及性能好的特點。FPGA開發周期短的特點與AES靈敏性好、實現效率高、安全性能高的優勢相輔相成,為需要保密的電子數據提供更加可靠的保證。
AES;FPGA;數據加密;加密存儲器
隨著人們對信息安全的要求越來越高,電子數據加密技術也逐步登上歷史舞臺。因為AES加密算法具有靈活性高、容易實現、對稱加密的特點,已被廣泛應用于各行各業。其算法塊的大小可變為128,192,256位,密鑰位寬有128,192,256 三種且對應的加解密輪數為 10,12,14輪[1-2]。基于軟件加密算法有生成時間長、執行速度慢的缺點,硬件加密算法的可塑性則受到了人們的廣泛關注。它具有高速性、靈活性和易維護性的特點,同時用硬件實現加密,即可將加密生成過程封裝于芯片中,很難被盜者篡取,安全性更高。
本系統以Spantan-2系列的XC2S300E為中控邏輯單元,主要完成數據的硬件加密及Flash存儲。存儲器接收到采編器采集的數字量,進行解碼后緩存入FIFO,對FIFO中的數據進行AES加密,由FPGA控制加密數據的讀與寫,最后通過上位機將Flash中的加密數據進行分析和處理,得到的數據就是前端設備傳輸的實測數據。主要的參數如下:1)AES加密算法的數據吞吐率為90 Mbit/s;
2)明文輸入和密文輸出接口為128位,密鑰長度為128位;
3)密鑰注入方式為編程器燒制。系統框圖如圖1所示。

圖1 系統結構圖
AES加密的內部架構主要包含五大模塊,如圖2所示。當FPGA檢測到開始加密的指令后,初始化序列模塊將輸入的128位明文按照矩陣排列,同時初始密鑰根據子密鑰生產模型進行10輪變換,從而快速產生10輪子密鑰。初始化后的128位明文和子密鑰經過10輪迭代后得到密文[3-4]。結束序列模塊主要負責將輪變換后的密文進行反矩陣排列,排列后的128位密文則傳送到輸出端口。當FPGA收到結束加密的指令時,即完成加密過程,與此同時將128位密文數據存入Flash進行長期存儲。

圖2 FPGA內部結構圖
數據的準確采集和完整接收是存儲器進行存儲的前提[5]。本設計在12個clk內實現了128位明文的數據加密。當第1個clk來臨時,load信號被拉高,在總線上會采樣到128位明文,同時初始密鑰會被裝載到密鑰擴展模塊中。通過加密系列運算,10個clk內完成了10輪加密循環。在第12個clk內,輸出總線上會采集到128位密文。FPGA控制done信號被拉高,此時128位密文被送到輸出端口。具體時序圖如圖3所示。

圖3 AES加密的接口時序圖
嵌入式加密存儲器就是將AES加密過程封裝于存儲器的主控芯片中,實現數據流的加密與存儲功能,既增強了系統的可靠性,也保證了電子數據的安全性。采用Spantan-2系列的XC2S300E作為本設計的主控芯片,是因為它的門陣列數最高可達300 000個,可利用的最多的I/O口有329個,CLB總共有1 536個,BLOCK RAM BITS為64 kbit,可配置邏輯塊豐富以及芯片時鐘遠遠大于工作時鐘等都已經為數據加密存儲器增加了很高的可靠性[6-8]。
在硬件設計中,FPGA時鐘頻率選用60 MHz,12個clk內完成128位明文的一次加密過程。在ISE中生成的FPGA原理圖如圖4所示。首先,存儲器將接收到的pcm數字量進行解碼處理,解碼后的數據緩存入內部FIFO進行速度匹配。data8to128主要是將USBFIFO內的8位數字量匹配為128位的明文,然后AES模塊對明文進行加密處理。最后,將加密完的128位密文寫入外部FIFO,此模塊采用IDT7207作為緩存芯片來匹配速度。

圖4 FPGA原理圖
本系統采用硬件描述語言(VHDL)進行程序編寫,使用(chipscope)硬件在線仿真軟件對嵌入式AES加密系統進行實驗驗證[8]。AES加密在FPGA中實現的驗證步驟如下:1)先對AES加密模塊中各子模塊進行驗證;2)再對AES加密模塊進行整體算法驗證。工程項目中會使用不同組的明文和密鑰來驗證結論的正確性。本設計針對一組明文和密鑰進行仿真,經過驗證可得出密文是正確的。圖5是對整體算法進行驗證,其中,明文為128位,共16 byte,經過10輪子循環得到128位密文。
由圖5可知:明文為32 43 F6 A8 88 5A 30 8D 31 31 98 A2 E0 37 07 34;密文為39 25 84 1D 02 DC 09 FB DC 11 85 97 19 6A 0B 32。
本設計是在研究AES加密算法的基礎上實現了電子數據的加密與存儲。與一般的固態存儲器相比,加密存儲器先將前端設備傳來的數據進行加密處理,再送進Flash進行存儲,數據的安全性和系統的可靠性已經在工程項目中得到體現。AES加密領域可優化的地方還有很多,比如密鑰長度可擴展到192位或256位,那么基于AES-192或AES-256的加密存儲器也有待應用于各行各業中。

圖5 AES算法的chipscope驗證(截圖)
:
[1]李全民,張運楚.一種用數字技術加密模擬電視信號的方法[J].電視技術,2000,24(9):47-48.
[2]DAEMEN J,RIJMEN V.高級加密標準(AES)算法——Rijndael的設計[M].谷大武,譯.北京:清華大學出版社,2003.
[3]李瑋.若干分組密碼算法的故障攻擊研究[D].上海:上海交通大學,2009.
[4]張文棟.存儲測試系統的設計理論及其應用[M].北京:高等教育出版社,2002.
[5]平亮,孫軍,周軍.一種基于JPEG標準的數字圖像加密算法[J].電視技術,2006,30(7):87-90.
[6]路偉.基于FPGA的AES加密算法在網絡認證中的應用[D].哈爾濱:哈爾濱工程大學,2006.
[7]鐘名富.分組密碼SMS4安全性分析[D].西安:西安電子科技大學,2008.
[8]張金輝,郭曉彪,符鑫.AES加密算法分析及其在信息安全中的應用[J].信息網絡安全,2011(5):31-33.
張會新(1980— ),博士,主研動態測試技術及智能儀表等;
盧一男(1988— ),碩士生,主研電路與系統;
劉文怡(1970— ),博士生導師。
Implementation of Embedded AES Encryption Algorithm in Hardware
FENG Ni,ZHANG Huixin,LU Yinan,LIU Wenyi
(a.Key Laboratory of Instrumentation Science&Dynamic Measurement;b.Science and Technology on Electronic Test&Measurement Laboratory,North University of China,Taiyuan 030051,China)
An AES hardware encryption system which achieves the target data encryption based on FPGA is introduced in this paper.The overall structure of AES encryption algorithm,the interface timing design of the core algorithm,hardware design of AES encryption memory and algorithm verification are described in detail.Hardware encryption,than software encryption,has the characteristics of real-time,large volumes of data and good performance.FPGA has a short development cycle,and AES has some advantages of good sensitivity,high efficiency and high safety performance.They complementary provide a more reliable guarantee for the confidential and electronic data.
AES;FPGA;data encryption;encryption memory
TN91
A
【本文獻信息】馮妮,張會新,盧一男,等.嵌入式AES加密存儲器的硬件實現[J].電視技術,2013,37(3).
國家自然科學基金項目(61004127)
馮 妮(1987— ),女,碩士生,主研總線技術及自動檢測儀器;
責任編輯:魏雨博
2012-07-25