《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 面向CBC模式的AES高速芯片設(shè)計與實現(xiàn)
面向CBC模式的AES高速芯片設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2014年第1期
劉 楠,陳 迅,李軍偉
信息工程大學(xué) 密碼工程學(xué)院,河南 鄭州450004
摘要: 為以硬件方式高速實現(xiàn)AES密碼算法,縮短整個芯片的關(guān)鍵路徑,基于一種改進(jìn)AES密碼算法,在算法級對電路實現(xiàn)進(jìn)行優(yōu)化,將AES密碼算法中字節(jié)代替變換與列混合變換進(jìn)行合并,以查找表的方式實現(xiàn)這兩種變換的一步變換。在支持密鑰長度為128 bit、192 bit和256 bit AES算法的同時,支持分組密碼工作中的ECB,CBC模式,提高了分組密碼不同級別的安全性。在0.13 μm CMOS工藝下,用Verilog硬件描述語言進(jìn)行綜合,仿真結(jié)果表明最高時鐘頻率可以達(dá)到781 MHz,在密鑰長度分別為128 bit、192 bit和256 bit時,最大數(shù)據(jù)吞吐率分別可以達(dá)到9.9 Gb/s、8.3 Gb/s和7.1 Gb/s,占用面積38.5 KGates。
中圖分類號: TN492
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)01-0064-04
Design and implementation of high-speed AES chip optimized for CBC modes
Liu Nan,Chen Xun,Li Junwei
Institute of Cryptography Engineering, PLA Information Engineering University, Zhengzhou 450004,China
Abstract: For the purpose of implementing high-speed AES algorithm and reducing the critical path of the whole chip, this paper optimizes the circuits based on an improved AES algorithm in an algorithmic view. This paper merges the SubByte transform and the MixColumn transform together and implements it in the lookup table(LUT) approach. It can fully support AES-128/192/256 performance and meanwhile support both ECB and CBC modes improving different levels of the security of block cipher. Based on 0.13 μm CMOS technology, using Verilog hardware description language for synthesis, the simulation results show that 781 MHz clock frequency and up to 9.9/8.3/7.1Gb/s data throughput rate are achieved for AES-128/192/256 and the area cost is 38.5 KGates.
Key words : high-speed;AES;CBC;ECB

   針對通信網(wǎng)絡(luò)、數(shù)據(jù)存儲加密等應(yīng)用場景中的安全需求,人們對AES算法的硬件實現(xiàn)進(jìn)行了廣泛地研究。目前,對其高速高吞吐率的優(yōu)化實現(xiàn)方法主要分為兩類。
    第一類采用組合邏輯計算字節(jié)代替變換中S盒代替表的值,并通過在組合路徑中插入流水寄存器的方法來減小整個芯片的關(guān)鍵路徑,從而提高最高時鐘頻率與數(shù)據(jù)吞吐率。HODJAT A[1]將數(shù)據(jù)映射到GF(24)上,MATHEW S K[2]將所有數(shù)據(jù)與變換系數(shù)均映射到GF(24)2上,并在組合路徑中插入了不同級數(shù)的流水寄存器,實現(xiàn)了不同數(shù)據(jù)吞吐率的AES硬件電路。雖然這類實現(xiàn)方法有著面積占用小、數(shù)據(jù)吞吐率高的優(yōu)點(diǎn),但不能有效支持分組密碼工作中目前已被廣泛使用的密碼分組鏈接CBC(Cipher Block Chaining)模式,影響算法實際應(yīng)用的安全性。
    第二類采用多核方案實現(xiàn)。Wang Maoyin[3]提出了面向不同安全等級的AES架構(gòu),Huang Wei[6]提出了低復(fù)雜性的多核異構(gòu)安全SoC平臺。雖然數(shù)據(jù)吞吐率較高,但這類方法在提高數(shù)據(jù)吞吐率的同時成倍地增加了電路面積,且仲裁邏輯的設(shè)計也會導(dǎo)致電路設(shè)計復(fù)雜性的增加。
    基于以上問題,本設(shè)計基于一種改進(jìn)的AES算法,在算法級對電路實現(xiàn)進(jìn)行優(yōu)化,將AES算法中字節(jié)代替變換與列混合變換進(jìn)行合并,采用查找表方式實現(xiàn),從而有效地縮短了關(guān)鍵路徑,提高了時鐘頻率,同時支持分組密碼CBC模式,提升了安全強(qiáng)度。
1 AES密碼算法簡介
    AES密碼算法是基于對稱密鑰密碼實現(xiàn)的分組密碼算法,分組長度為128 bit,密鑰長度為128 bit、192 bit或256 bit。對應(yīng)的輪數(shù)Nr分別為10、12和14。
    AES密碼算法在對明文進(jìn)行加密時,經(jīng)過的變換依次為字節(jié)代替變換、行移位變換、列混合變換和輪密鑰加變換。
2 高速AES密碼算法硬件結(jié)構(gòu)設(shè)計
2.1 適用于CBC模式的硬件結(jié)構(gòu)選擇

    分組密碼算法對數(shù)據(jù)進(jìn)行加/解密操作時,有多種不同的工作模式,其中ECB(Electronic Code Book)和CBC是兩種常用的工作模式。
    ECB模式中各明/密文分組獨(dú)立處理、實現(xiàn)簡單。但ECB模式無法隱蔽明文數(shù)據(jù)的格式規(guī)律和統(tǒng)計特性,無法抵抗組的重放、嵌入和刪除等攻擊,使密碼分析者可以按組進(jìn)行分析,這對長報文而言并不安全。CBC工作模式中加密算法的輸入是當(dāng)前明文分組與前一密文分組的“異或”。其能夠隱蔽明文數(shù)據(jù)的格式規(guī)律和統(tǒng)計特性,使相同的明文分組未必蘊(yùn)涵著相同的密文分組,可以有效克服ECB模式的弱點(diǎn)。
    為使AES密碼芯片能夠有效支持分組密碼CBC模式,在實現(xiàn)時要對其硬件結(jié)構(gòu)設(shè)計進(jìn)行充分的考量。
    分組密碼算法的硬件實現(xiàn)結(jié)構(gòu)通常可以分為兩種——循環(huán)迭代結(jié)構(gòu)和全流水結(jié)構(gòu)。
    圖1(a)所示,循環(huán)迭代結(jié)構(gòu)將明文分組接入AES運(yùn)算模塊進(jìn)行Nr輪迭代運(yùn)算后輸出,關(guān)鍵路徑為經(jīng)過數(shù)據(jù)選擇器和AES運(yùn)算模塊到輪數(shù)據(jù)寄存器的延遲,其共需Nr個時鐘周期完成加/解密運(yùn)算。對于分組密碼CBC模式而言,下一明文分組等待Nr個時鐘周期后與當(dāng)前明文分組的密文結(jié)果先進(jìn)行“異或”,再開始加/解密運(yùn)算。
    圖1(b)所示,全流水結(jié)構(gòu)以在每輪運(yùn)算之間插入流水寄存器的方式實現(xiàn),其關(guān)鍵路徑與循環(huán)迭代結(jié)構(gòu)相同。在輸入數(shù)據(jù)連續(xù),即每個時鐘周期輸入1個明文分組的情況下,當(dāng)前明文分組與下一明文分組連續(xù)輸入時,下一明文分組在沒有得到當(dāng)前明文分組對應(yīng)的密文結(jié)果之前就輸入進(jìn)行計算,這顯然不能滿足分組密碼CBC模式的工作條件。在輸入數(shù)據(jù)不連續(xù)(即下一明文分組在得到當(dāng)前明文分組的密文結(jié)果后,先“異或”再進(jìn)行加/解密運(yùn)算)的情況下,下一明文分組需要等待Nr個時鐘周期才能進(jìn)行加/解密運(yùn)算。此時,芯片的吞吐率與采用循環(huán)迭代結(jié)構(gòu)實現(xiàn)時相同。

    但在占用面積資源方面,采用全流水結(jié)構(gòu)時,電路結(jié)構(gòu)中需要Nr個128 bit位寬的輪數(shù)據(jù)寄存器和Nr個AES運(yùn)算模塊,占用面積較大。采用循環(huán)迭代結(jié)構(gòu)實現(xiàn)時,電路結(jié)構(gòu)中只需1個128 bit位寬的輪數(shù)據(jù)寄存器和1個AES運(yùn)算模塊通過硬連線進(jìn)行迭代就可實現(xiàn),占用面積較小。
    因此,為有效支持分組密碼CBC模式,同時考慮到資源占用問題,本設(shè)計采用循環(huán)迭代結(jié)構(gòu)來實現(xiàn)AES密碼算法。
2.2 整體架構(gòu)設(shè)計
    本設(shè)計的架構(gòu)設(shè)計主要分為(ENCRYPT/DECRYPT)加/解密模塊和(EXPANDKEY)密鑰擴(kuò)展模塊兩大部分。
    如圖2所示,輸入數(shù)據(jù)寄存器直接接入與密鑰擴(kuò)展模塊輸出的128 bit輪密鑰進(jìn)行“異或”操作,而后數(shù)據(jù)依次進(jìn)入(ShiftRow)行移位變換模塊、(Sub&Mix)字列合并變換模塊,并將運(yùn)算結(jié)果存入輪數(shù)據(jù)寄存器。以此類推,每一輪的輪寄存器當(dāng)中存入的都是其相應(yīng)輪數(shù)的運(yùn)算結(jié)果。若為最后一輪時,數(shù)據(jù)直接與最后一輪密鑰相“異或”進(jìn)入輸出寄存器。


    例如,第1列32 bit列向量中Column1的第i個字節(jié)通過硬連線接入(S&M Table i)字列合并查找表i中(i=1,2,3,4),對查找表的結(jié)果進(jìn)行“異或”后,輸出該32 bit列向量經(jīng)過字節(jié)代替變換與列混合變換后的結(jié)果。
2.4 密鑰擴(kuò)展模塊設(shè)計
    由于AES密碼算法的密鑰擴(kuò)展算法是以字為單位進(jìn)行操作的,所以要將128 bit、192 bit和256 bit的密鑰存入4、6和8個不同的32 bit位寬寄存器中。之后初始密鑰數(shù)據(jù)按照密鑰擴(kuò)展算法被擴(kuò)展成4(Nr+1)個字的陣列,記其為W[0],W[1],…,W[4Nr+3]。
    如圖4所示,經(jīng)ModeSel信號選擇后,電路可完成3種不同密鑰長度的AES密鑰擴(kuò)展算法。對于128 bit、192 bit和256 bit的密鑰長度,本設(shè)計一個時鐘周期分別能夠輸出4、6和8個字的輪密鑰。

    初始密鑰輸入到不同個數(shù)的32 bit位寬輸入密鑰寄存器中,經(jīng)密鑰擴(kuò)展運(yùn)算后并置輸出至KEY.OUT,同時返回迭代,通過數(shù)據(jù)選擇器選擇作為下一輪密鑰擴(kuò)展算法的輸入。其分別需要經(jīng)過10、9和8個時鐘周期完成密鑰擴(kuò)展運(yùn)算。
    為減小整個芯片的關(guān)鍵路徑,本設(shè)計采用預(yù)先生成密鑰擴(kuò)展模塊設(shè)計,在電路接收到初始密鑰之后,在狀態(tài)機(jī)控制信號的控制下預(yù)先生成加/解密模塊所需要的Nr輪密鑰序列,并將每輪的128 bit密鑰存入相應(yīng)的寄存器當(dāng)中,在使用時結(jié)合狀態(tài)機(jī)不同輪數(shù)的選擇信號,將每輪的輪密鑰輸出至加/解密模塊以完成相應(yīng)輪數(shù)的加/解密運(yùn)算。這樣一來,在使用時只需結(jié)合相應(yīng)的選擇信號從這些寄存器中選擇相應(yīng)的輪密鑰,不需要在線生成輪密鑰。因此可以減小整個芯片的關(guān)鍵路徑,提高時鐘頻率。
3 實驗結(jié)果
    在0.13 μm CMOS工藝條件下,利用綜合工具對本設(shè)計進(jìn)行邏輯綜合優(yōu)化。仿真結(jié)果顯示,本設(shè)計的關(guān)鍵路徑為1.28 ns,最高時鐘頻率為781 MHz,在這一時鐘頻率下,在密鑰長度分別為128 bit、192 bit和256 bit時,最大數(shù)據(jù)吞吐率分別可以達(dá)到9.9 Gb/s、8.3 Gb/s和7.1 Gb/s。
    表1所示為本設(shè)計與相關(guān)文獻(xiàn)中AES硬件設(shè)計在工藝、面積、最高時鐘頻率、吞吐率和性能面積比等方面的仿真結(jié)果對比情況。

 

 

    在0.13 μm CMOS工藝下,LIN S Y[4]提出了同樣支持ECB、CBC模式的高數(shù)據(jù)吞吐率AES密碼芯片;HAMALAINENP[5]設(shè)計實現(xiàn)了小面積、低功耗的AES算法核,Yan Weiwei[6]實現(xiàn)了可重構(gòu)的AES算法,本設(shè)計在數(shù)據(jù)吞吐率方面較其均有顯著的提升。HODJAT A[1]和MATHEW S K[2]以流水線方式實現(xiàn)AES算法,雖然數(shù)據(jù)吞吐率較高,但不支持CBC模式,安全性較低。
    本設(shè)計基于改進(jìn)AES算法,在算法級對電路進(jìn)行優(yōu)化,將字節(jié)代替變換和列混合變換整合為一次查表完成,縮短了關(guān)鍵路徑,提高了最高時鐘頻率和數(shù)據(jù)吞吐率。同時采用輪間循環(huán)迭代結(jié)構(gòu)設(shè)計,占用相對較少的面積。仿真結(jié)果證明,本設(shè)計在密碼處理速率上有較高的指標(biāo),在支持密鑰長度為128 bit、192 bit和256 bit AES算法的同時,支持分組密碼工作中的ECB、CBC模式,可以有效滿足當(dāng)前人們對于芯片在通信網(wǎng)絡(luò)、數(shù)據(jù)存儲加密等應(yīng)用場景中的高速數(shù)據(jù)處理需求,并可以作為一個獨(dú)立的IP核嵌入到SoC芯片中。
參考文獻(xiàn)
[1] HODJAT A,VERBAUWHEDE I.Area-throughput trade-offs for fully pipelined 30 to 70 G/s AES processors[J].Computers,IEEE Transactions on.2006,55(4):366-372.
[2] MATHEW S K,SHEIKH F,KOUNAVIS M,et al.53 Gb/s Native GF(24)2 composite-field AES-encrypt/decrypt accelerator for content-protection in 45 nm high-performance microprocessors[C].VLSI Circuits(VLSIC),2010 IEEE Symposium on.2010.
[3] Wang Maoyin,SU C P,HORNG C L,et al.Single-and multi-core configurable AES architecturs for flexible security[J].Very Large Scale Integration (VLSI) Systems,IEEE Transactions on.2010,18(4):541-552.
[4] LIN S Y,HUANG C T.A high-throughput  low-power AES cipher for network applications[C].Design Automation Conference,2007.ASP-DAC′07.Asia and South Pacific,2007.
[5] HAMALAINEN P,ALHO T,HANNIKAINEN M,et al.Design and implementation of low-area and low power AES encryption hardware core[C].Digital System Design:Architectures,Methods and Tools,2006.DSD 2006. 9th EUROMICRO Conference,2006.
[6] Yan Weiwei,YOU K,Han Jun.Low-cost reconfigurable VLSI implementation of the SMS4 and AES algorithms[C].ASIC,2009.ASICON′09.IEEE 8th International Conference,2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。