《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種應用于生物識別領(lǐng)域的AES算法
一種應用于生物識別領(lǐng)域的AES算法
2015年電子技術(shù)應用第4期
彭 海,,高俊雄,,王耘波
華中科技大學 光學與電子信息學院,, 湖北 武漢430074
摘要: 生物識別技術(shù)已廣受重視,,利用AES加密算法對生物識別過程中的特征模板進行加密可以大大提高生物識別技術(shù)的安全性。為提高AES加密算法的吞吐率,,使其更好地應用于生物識別領(lǐng)域,,以FPGA為實現(xiàn)主體,,采用串行緩存結(jié)構(gòu),,充分利用FPGA并行處理的特點,成功實現(xiàn)了一種大吞吐量的AES算法,。最后在Xilinx的XC7A200T芯片上對算法進行了驗證,,經(jīng)計算其理論吞吐量可以達到30.3 Gb/s。
關(guān)鍵詞: FPGA AES 生物識別 吞吐率
中圖分類號: TP309.7
文獻標識碼: A
文章編號: 0258-7998(2015)04-0116-03
中文引用格式:彭海,高俊雄,王耘波.一種應用于生物識別領(lǐng)域的AES算法[J].電子技術(shù)應用,2015,41(04):116-118
AES algorithm used in biometrics
Peng Hai,,Gao Junxiong,,Wang Yunbo
School of Optical and Electronic Information,Huazhong University of Science and Technology,,Wuhan 430074,,China
Abstract: Biometrics is now more and more important to many occasions, encrypting the templates which generated in the process of biometrics using the AES encryption algorithm can enhance the safety of the biometrics significantly. In this paper, an AES encryption algorithm is proposed,which could improve the throughput rate of AES, and make it better in applications. Based on FPGA and parallel processing,a high throughput rate is achieved and verified on the XC7A200T chip. The results are performed and discussed.
Key words : FPGA;AES,;biometrics,;throughput

 

0 引言

  生物識別技術(shù)方便、快捷,、安全可靠,,已被廣泛應用于部隊、政府機關(guān),、高檔小區(qū)等對安全系數(shù)要求較高的場合,,并且呈快速發(fā)展的趨勢。然而隨著生物識別技術(shù)的大量應用,,人們對生物識別技術(shù)的安全性和隱私問題的關(guān)注也越來越多[1],。生物識別技術(shù)一般對生物特征(如指紋、虹膜等)進行取樣,,提取其唯一特征并且轉(zhuǎn)化為特征模板,,根據(jù)特征模板進行匹配。特征模板就像生物識別技術(shù)里的“鑰匙”,,一旦被修改將直接影響其識別結(jié)果,。因此,采集模板時利用AES加密算法對模板數(shù)據(jù)進行加密,,進行識別時取出加密后的模板并將其解密,。這種以AES算法實現(xiàn)對模板數(shù)據(jù)的加密可大大提高生物識別的安全性,。生物識別系統(tǒng)在識別時往往要遍歷所有模板,而由于用戶基數(shù)龐大,,數(shù)據(jù)庫中一般存在大量的特征模板,,因此系統(tǒng)對解密的速度要求非常高。

  AES加密算法由美國國家標準與技術(shù)研究所(NIST)在2002年建立,,它可以使用128 bit,、192 bit或256 bit密鑰,并用128 bit(16 B)分組加密和解密數(shù)據(jù)?,F(xiàn)階段AES加密主要通過軟件編程或硬件邏輯實現(xiàn),。采用軟件編程實現(xiàn)的方法具有成本低、靈活的特點,,但軟件實現(xiàn)的AES易被修改,,且速度較慢;采用硬件邏輯實現(xiàn)的AES加密算法除了高效和安全外,,還保證了很高的速度,,所以在生物識別領(lǐng)域十分適用。本文主要論述了在FPGA硬件平臺下實現(xiàn)的一種大吞吐量256 bit密鑰的AES算法,,因AES加密與解密的過程基本相同,,故主要論述了AES算法的解密過程在FPGA上的實現(xiàn)。

1 AES算法簡介

  AES算法是基于置換和代替的,。置換是指數(shù)據(jù)的重新排列,,而代替是用一個單元數(shù)據(jù)替換另一個。圖1顯示了AES(256 bit)加密解密的完整流程,。

001.jpg

  AES加密算法把輸入的128 bit數(shù)據(jù)看成是一個名為State狀態(tài)矩陣的4×4的字節(jié)矩陣,。加密過程就是對State狀態(tài)矩陣進行多輪操作[2]。算法開始前首先構(gòu)造用于加密的兩個表,,一個是用于字節(jié)替換的S-box表,,另一個是用于產(chǎn)生輪密鑰的密鑰調(diào)度表。算法首先進行AddRoundKey(輪密鑰加),,即用密鑰調(diào)度表中的前4行對State矩陣進行異或操作,。然后是AES加密算法的主循環(huán),循環(huán)的次數(shù)由輸入密鑰的長度決定,,如密鑰位數(shù)為256 bit,,則循環(huán)總輪數(shù)為14輪。AES算法的加密主循環(huán)每輪對State狀態(tài)矩陣執(zhí)行4個不同的操作,,分別是SubBytes(字節(jié)替換),、ShiftRows(行移位變換)、MixColums(列混淆變換)和AddRoundKey(輪密鑰加),其中最后一輪不進行ShiftRows(行移位變換),。字節(jié)替換是指通過S盒對狀態(tài)矩陣進行替換,,行移位變換是指狀態(tài)矩陣的每一行進行循環(huán)移位,列混淆變換主要用到了GF28域上的乘法和加法運算,,而輪密鑰加是簡單的異或運算,。AES解密主循環(huán)是加密循環(huán)的逆過程,解密主循環(huán)中也有對應的逆變換:Inv_SubBytes(逆字節(jié)替換),、Inv_ShiftRows(逆行移位變換),、Inv_MixColumns(逆列混淆變換),這些變換均可看成加密主循環(huán)中4個變換的逆變換,。

2 AES算法的FPGA實現(xiàn)

  2.1 FPGA技術(shù)簡介

  現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)是美國Xilinx公司于1984年首次開發(fā)的一種通用型用戶可編程器件,。FPGA既具有門陣列器件的高集成度和通用性,又有可編程邏輯器件的靈活性,。

  FPGA結(jié)構(gòu)靈活,,其邏輯單元、可編程內(nèi)部連線和I/O單元都可由用戶編程,,可實現(xiàn)任何邏輯功能,滿足各種設計需求,。其速度快,、功耗低、通用性強的特點適用于復雜系統(tǒng)的設計[3],。FPGA技術(shù)還可以實現(xiàn)動態(tài)配置,、在線系統(tǒng)重構(gòu)(可以在系統(tǒng)運行的不同時刻,按需要改變電路的功能,,使系統(tǒng)具備多種空間相關(guān)或時間相關(guān)的任務)及硬件軟化,、軟件硬化等功能。

    2.2 使用FPGA實現(xiàn)AES算法

  2.2.1 系統(tǒng)的總體結(jié)構(gòu)


002.jpg

  根據(jù)AES算法輪操作的特點,,本文采取基本迭代與串行緩存相結(jié)合的方法,,系統(tǒng)總體實現(xiàn)框圖如圖2所示。通過14個AES解密模塊并行使用,,大大提高了吞吐率,,其中每個AES解密模塊采用基本迭代的方法,即所有輪次復用一個輪函數(shù),,每個時鐘周期完成一次輪操作,,14個時鐘周期完成一個分組運算。

  解密數(shù)據(jù)時,,首先讓密文數(shù)據(jù)依次進入串行緩存,,串行緩存的深度與AES算法的輪數(shù)相同(為14),進入串行緩存的數(shù)據(jù)依次進入AES解密模塊進行解密,。第一個時鐘周期,,讓密文數(shù)據(jù)進入Data_buffer1,然后啟動第一個AES解密模塊AES1,;第二個時鐘周期,讓新的密文數(shù)據(jù)進入Data_buffer2,,然后啟動第二個AES解密模塊AES2,;依此類推,往復循環(huán),。14個AES解密模塊的啟動順序如圖3所示,。

003.jpg

  每經(jīng)過14個時鐘周期,將每個AES解密模塊的結(jié)果依次移位輸出,。采用這種結(jié)構(gòu)實現(xiàn)的AES解密算法雖然消耗了不少FPGA的內(nèi)部資源,,但數(shù)據(jù)無需等待,可以源源不斷地進入解密模塊,,整個解密過程的速度僅僅取決于單個AES解密模塊的工作頻率與數(shù)據(jù)輸入的速率,,使得系統(tǒng)的吞吐率大大提高??紤]到FPGA內(nèi)部資源豐富,,可以犧牲部分資源來換取速度。

  2.2.2 AES解密模塊的實現(xiàn)

004.jpg

  AES解密前,,首先要進行密鑰擴展,。密鑰擴展是將初始密鑰作為種子密鑰,經(jīng)過字節(jié)代換,、字節(jié)移位,、輪常數(shù)計算、字節(jié)異或等過程,,計算產(chǎn)生14輪迭代所需的輪密鑰,。密鑰擴展實現(xiàn)框圖如圖4。有文獻提出計算密鑰時密鑰擴展和加密過程同步執(zhí)行,,這樣做會節(jié)約FPGA的存儲器資源,。但考慮到密鑰不需要經(jīng)常更換,而且FPGA存儲器資源豐富,,有足夠的空間存放子密鑰,,所以本文決定在解密前先進行密鑰擴展,然后將產(chǎn)生子密鑰存放在RAM中,,根據(jù)使用需要從RAM中讀取密鑰,。這種方法易于實現(xiàn),且靈活性強,產(chǎn)生好的密鑰調(diào)度表在種子密鑰不變的情況下都可以供其他模塊使用,。

  密鑰擴展完成后,,就可以開始進行解密。256 bit的AES解密過程總共需要14輪,除最后一輪外每輪需要進行字節(jié)替換,、逆行移位,、輪密鑰加、逆列混淆等4個操作,,最后一輪不需要進行輪密鑰加,。其實現(xiàn)框圖如圖5所示。

005.jpg

  逆行移位(Inv_ShiftRow)采用簡單的組合邏輯即可實現(xiàn),;逆字節(jié)替換(Inv_SubBytes)利用FPGA內(nèi)部的分布式RAM實現(xiàn),,將逆S_BOX的值預先存入到RAM中,在進行逆字節(jié)替換時,,以字節(jié)的高4位和低4位作為地址即可讀出要替換的值,,這樣既避免了復雜的組合邏輯,又提高了系統(tǒng)的運行頻率,;輪密鑰加(AddKey)為簡單的異或運算,;逆列混淆(Inv_MixCol)的實現(xiàn)采用了將復雜的GF28域乘法逐次分解為基礎的GF28域乘法的方法,使整個過程易于在FPGA中實現(xiàn),。

3 實驗結(jié)果


006.jpg


  本設計在Xilinx公司的XC7A200T-2芯片上進行驗證,,圖6給出了系統(tǒng)的在Isim仿真環(huán)境下的仿真圖。

  輸入密文為16進制數(shù)8960494b9049fceabf456751cab-7a28e,,密鑰為16進制數(shù)1f1e1d1c1b1a1918171615141312-

  11100f0e0d0c0b0a09080706050403020100,,14個周期后輸出解密后的明文為16進制數(shù)ffeeddccbbaa998877665544-33221100。經(jīng)驗證,,該解密過程完全正確。

  在ISE13.6環(huán)境下代碼在綜合后頻率可達到236.9 MHz,,由于采用串行緩存的方法,,數(shù)據(jù)可以持續(xù)加密,無需等待上一個數(shù)據(jù)加密完,。經(jīng)計算理論吞吐量可以達到30.3 Gb/s,,完全適用于各個應用場合的需要。

4 結(jié)論

  采用FPGA實現(xiàn)AES算法可以大幅度提高加密解密速度,,并且具有開發(fā)周期短,、易于實現(xiàn)的特點;采用本方法實現(xiàn)的AES算法雖然占用了較多的FPGA資源,,但加密解密速度得到大大的提高,,吞吐量可達到30.3 Gb/s,完全滿足現(xiàn)行生物識別技術(shù)的要求,,能廣泛應用于虹膜識別技術(shù)及指紋識別技術(shù)等領(lǐng)域,,應用前景廣闊。

  參考文獻

  [1] 趙洋.生物識別系統(tǒng)中的模板安全分析[J].中國安防,2012,,3(3):99-104.

  [2] DANMEN J,,RIIJMEN V.AES proposal:rijndael.AES algo-rithm submission.[EB/OL](1999-09-03)[2014-12-23].http://www.nist.gov/aes.

  [3] Clive Max Maxfield.FPGA設計指南:器件、工具和流程[M].北京:人民郵電出版社,,2007.


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