《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 面向CBC模式的AES高速芯片設(shè)計(jì)與實(shí)現(xiàn)
面向CBC模式的AES高速芯片設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2014年第1期
劉 楠,陳 迅,李軍偉
信息工程大學(xué) 密碼工程學(xué)院,河南 鄭州450004
摘要: 為以硬件方式高速實(shí)現(xiàn)AES密碼算法,縮短整個(gè)芯片的關(guān)鍵路徑,基于一種改進(jìn)AES密碼算法,在算法級(jí)對電路實(shí)現(xiàn)進(jìn)行優(yōu)化,將AES密碼算法中字節(jié)代替變換與列混合變換進(jìn)行合并,以查找表的方式實(shí)現(xiàn)這兩種變換的一步變換。在支持密鑰長度為128 bit、192 bit和256 bit AES算法的同時(shí),支持分組密碼工作中的ECB,CBC模式,提高了分組密碼不同級(jí)別的安全性。在0.13 μm CMOS工藝下,用Verilog硬件描述語言進(jìn)行綜合,仿真結(jié)果表明最高時(shí)鐘頻率可以達(dá)到781 MHz,在密鑰長度分別為128 bit、192 bit和256 bit時(shí),最大數(shù)據(jù)吞吐率分別可以達(dá)到9.9 Gb/s、8.3 Gb/s和7.1 Gb/s,占用面積38.5 KGates。
中圖分類號(hào): TN492
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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ù)存儲(chǔ)加密等應(yīng)用場景中的安全需求,人們對AES算法的硬件實(shí)現(xiàn)進(jìn)行了廣泛地研究。目前,對其高速高吞吐率的優(yōu)化實(shí)現(xiàn)方法主要分為兩類。
    第一類采用組合邏輯計(jì)算字節(jié)代替變換中S盒代替表的值,并通過在組合路徑中插入流水寄存器的方法來減小整個(gè)芯片的關(guān)鍵路徑,從而提高最高時(shí)鐘頻率與數(shù)據(jù)吞吐率。HODJAT A[1]將數(shù)據(jù)映射到GF(24)上,MATHEW S K[2]將所有數(shù)據(jù)與變換系數(shù)均映射到GF(24)2上,并在組合路徑中插入了不同級(jí)數(shù)的流水寄存器,實(shí)現(xiàn)了不同數(shù)據(jù)吞吐率的AES硬件電路。雖然這類實(shí)現(xiàn)方法有著面積占用小、數(shù)據(jù)吞吐率高的優(yōu)點(diǎn),但不能有效支持分組密碼工作中目前已被廣泛使用的密碼分組鏈接CBC(Cipher Block Chaining)模式,影響算法實(shí)際應(yīng)用的安全性。
    第二類采用多核方案實(shí)現(xiàn)。Wang Maoyin[3]提出了面向不同安全等級(jí)的AES架構(gòu),Huang Wei[6]提出了低復(fù)雜性的多核異構(gòu)安全SoC平臺(tái)。雖然數(shù)據(jù)吞吐率較高,但這類方法在提高數(shù)據(jù)吞吐率的同時(shí)成倍地增加了電路面積,且仲裁邏輯的設(shè)計(jì)也會(huì)導(dǎo)致電路設(shè)計(jì)復(fù)雜性的增加。
    基于以上問題,本設(shè)計(jì)基于一種改進(jìn)的AES算法,在算法級(jí)對電路實(shí)現(xiàn)進(jìn)行優(yōu)化,將AES算法中字節(jié)代替變換與列混合變換進(jìn)行合并,采用查找表方式實(shí)現(xiàn),從而有效地縮短了關(guān)鍵路徑,提高了時(shí)鐘頻率,同時(shí)支持分組密碼CBC模式,提升了安全強(qiáng)度。
1 AES密碼算法簡介
    AES密碼算法是基于對稱密鑰密碼實(shí)現(xiàn)的分組密碼算法,分組長度為128 bit,密鑰長度為128 bit、192 bit或256 bit。對應(yīng)的輪數(shù)Nr分別為10、12和14。
    AES密碼算法在對明文進(jìn)行加密時(shí),經(jīng)過的變換依次為字節(jié)代替變換、行移位變換、列混合變換和輪密鑰加變換。
2 高速AES密碼算法硬件結(jié)構(gòu)設(shè)計(jì)
2.1 適用于CBC模式的硬件結(jié)構(gòu)選擇

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

    但在占用面積資源方面,采用全流水結(jié)構(gòu)時(shí),電路結(jié)構(gòu)中需要Nr個(gè)128 bit位寬的輪數(shù)據(jù)寄存器和Nr個(gè)AES運(yùn)算模塊,占用面積較大。采用循環(huán)迭代結(jié)構(gòu)實(shí)現(xiàn)時(shí),電路結(jié)構(gòu)中只需1個(gè)128 bit位寬的輪數(shù)據(jù)寄存器和1個(gè)AES運(yùn)算模塊通過硬連線進(jìn)行迭代就可實(shí)現(xiàn),占用面積較小。
    因此,為有效支持分組密碼CBC模式,同時(shí)考慮到資源占用問題,本設(shè)計(jì)采用循環(huán)迭代結(jié)構(gòu)來實(shí)現(xiàn)AES密碼算法。
2.2 整體架構(gòu)設(shè)計(jì)
    本設(shè)計(jì)的架構(gòu)設(shè)計(jì)主要分為(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í),數(shù)據(jù)直接與最后一輪密鑰相“異或”進(jìn)入輸出寄存器。


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

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

 

 

    在0.13 μm CMOS工藝下,LIN S Y[4]提出了同樣支持ECB、CBC模式的高數(shù)據(jù)吞吐率AES密碼芯片;HAMALAINENP[5]設(shè)計(jì)實(shí)現(xiàn)了小面積、低功耗的AES算法核,Yan Weiwei[6]實(shí)現(xiàn)了可重構(gòu)的AES算法,本設(shè)計(jì)在數(shù)據(jù)吞吐率方面較其均有顯著的提升。HODJAT A[1]和MATHEW S K[2]以流水線方式實(shí)現(xiàn)AES算法,雖然數(shù)據(jù)吞吐率較高,但不支持CBC模式,安全性較低。
    本設(shè)計(jì)基于改進(jìn)AES算法,在算法級(jí)對電路進(jìn)行優(yōu)化,將字節(jié)代替變換和列混合變換整合為一次查表完成,縮短了關(guān)鍵路徑,提高了最高時(shí)鐘頻率和數(shù)據(jù)吞吐率。同時(shí)采用輪間循環(huán)迭代結(jié)構(gòu)設(shè)計(jì),占用相對較少的面積。仿真結(jié)果證明,本設(shè)計(jì)在密碼處理速率上有較高的指標(biāo),在支持密鑰長度為128 bit、192 bit和256 bit AES算法的同時(shí),支持分組密碼工作中的ECB、CBC模式,可以有效滿足當(dāng)前人們對于芯片在通信網(wǎng)絡(luò)、數(shù)據(jù)存儲(chǔ)加密等應(yīng)用場景中的高速數(shù)據(jù)處理需求,并可以作為一個(gè)獨(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)載。