李 浪,鄒 祎,賀位位,李仁發(fā)
?
EPCBC密碼算法的FPGA優(yōu)化實現研究
李 浪1,2,鄒 祎1,賀位位3,李仁發(fā)2
(1. 衡陽師范學院計算機系 湖南衡陽 421002; 2. 湖南大學信息科學與工程學院 長沙 410082; 3. 電子科技大學計算機科學與工程學院 成都 611731)
針對資源約束的智能卡加密需要小面積實現的問題,對EPCBC加密算法從硬件上實現面積優(yōu)化進行了如下研究:1) 相同運算只實現一次,主程序調用32次完成加密;2) 對S盒變換和密鑰變換使用同一寄存器,從而節(jié)省寄存器數量;3) 把密文輪操作和密鑰更新放在一個模塊中。通過FPGA優(yōu)化結果表明,EPCBC密碼算法實現面積大幅度減小,優(yōu)化率達到56%,同時加密運算性能也沒有降低,從而為開發(fā)受資源約束的智能卡密碼硬件提供可行方案。
面積優(yōu)化; EPCBC加密算法; FPGA; Verilog HDL
隨著物聯網的應用深入,如何在射頻識別(radio frequency identification, RFID)等智能卡上實現有效加密算法成為研究熱點。物聯網上的密碼算法實現要求盡可能小的面積實現,它面向資源約束,同時又要保證加密效率。輕量級密碼算法正是在這種應用背景下發(fā)展起來的,從文獻[1]提出的PRESENT輕量級密碼算法開始,文獻[2]提出了PUFFIN算法、文獻[3]提出了MIBS算法、文獻[4-5]提出了PICCOLO和LED密碼算法,其中LED被稱為超輕量級密碼算法,文獻[6]提出了輕量級密碼算法EPCBC。
EPCBC密碼算法采用類PRESENT的構造方法,兩個算法加密結構上相同,主要區(qū)別在于EPCBC對密鑰更新部分進行了改變。密鑰長度為96位,特別適用于物聯網RFID的加密實現, 其加密效率優(yōu)于AES和PRESENT密碼算法。
AES等主流加密算法已有大量研究成果[7],但目前國內外對EPCBC相關研究還非常少,因此對EPCBC密碼算法的硬件優(yōu)化研究具有一定的價值,可更好地促進EPCBC在面向資源約束的智能卡上加密實際應用[8-11]。
EPCBC密碼算法有(48,96)和(96,96)兩種實現形式。(48,96)對應分組長度為48位,密鑰長度為96位;(96,96)對應分組長度為96位,密鑰長度為96位,兩種實現的加密運算都是32輪次。EPCBC密碼的內部結構與PRESENT相似,只是分組長度、密鑰更新、置換函數和查找表次數有區(qū)別。
EPCBC主要包括輪密鑰加(AddKey)、S盒變換(SubCell)、P置換(Exchange)操作;同時對密鑰key進行S盒變換(SubCell)、p置換(Exchange)操作、與輪數異或。本文以EPCBC(96,96)為對象進行優(yōu)化研究。
密碼算法硬件實現有速度優(yōu)先和面積優(yōu)先兩種優(yōu)化方法。
2.1 速度優(yōu)先
速度優(yōu)先方法一般采用全流水進行密碼算法實現。EPCBC密碼32輪運算中每輪運算的操作相同,若不考慮芯片面積的占用,可將32個輪運算模塊均以硬件實現。在這種優(yōu)化方法下,每一個數據塊完成一次EPCBC輪運算后,立即開始下一級流水線計算。不考慮其他因素,此流水線方式在每個時鐘周期有32個數據塊同時串行處理,使得整個加密運算沒有額外的等待時間。速度優(yōu)先方法使數據處理速度比非流水線提高32倍,但它需要大量的硬件資源,即芯片實現面積增大。
2.2 面積優(yōu)先
與速度優(yōu)先方法相比,面積優(yōu)先算法則是在硬件上相同功能模塊只實現一次,然后重復調用。具體到EPCBC密碼算法時,即在硬件上密鑰加、S盒變換和P置換只實現一次,然后通過主程序重復調用32次完成32輪運算。該方法可極大地降低硬件開銷。
EPCBC作為輕量級加密算法,面向資源約束的智能卡加密應用。本文主要考慮面積優(yōu)先實現EPCBC密碼,具體的優(yōu)化方法如下:
1) 在硬件上相同運算只實現一次,主程序調用32次完成加密;
2) 同一個模塊對明文S盒變換和密鑰變換使用同一寄存器,從而節(jié)省寄存器數量;
3) 模塊中所有語句并行執(zhí)行,把對密文輪操作和密鑰更新放在同一模塊中,不會影響加密速度,不用保存密鑰更新中間結果。在不影響加密速度的基礎上,有效地節(jié)省寄存器數量;
4) 通過計數器cnt控制模塊EPCBCRound調用的次數,實現加密過程;
5) 整個EPCBC密碼算法都采用assign賦值實現,時鐘信號控制計算器更新,完成加密只需32個時鐘周期。
3.1 EPCBCround核心部分優(yōu)化
核心部分優(yōu)化主要實現了上述優(yōu)化方法中的1)、2)、3)、5)點。一輪EPCBC運算的優(yōu)化方法用Verilog HDL語言描述如下:
module EPCBCRound(res,Up_k,state,key,r);
input [4:0] r;
input [95:0] key,state;
output[95:0] Up_k,res;
wire [95:0] Up_k,res;
reg [3:0] sbox[0:15] ;
initial begin
sbox[0]=12;sbox[1]=5;sbox[2]= 6; sbox[3]=11;
sbox[4]=9;sbox[5]=0;sbox[6]=10; sbox[7]=13;
sbox[8]=3;sbox[9]=14; sbox[10]=15;sbox[11]= 8;
sbox[12]=4;sbox[13]=7;sbox[14]= 1;sbox[15]= 2;
end
wire [95:0] temp,s_k,s_res;
assign temp = state ^key ; //AddKey
SubCell(key)
SubCell(state)
Exchange(state)
Exchange(key)
endmodule
仿真軟件采用modelsim 6.1f,EPCBCRound仿真結果數據如表1所示。
表1 EPCBCRound仿真結果
表中,test/r為算法輪數測試信號;數值00為第一輪測試運算;test/state為明文測試信號;test/key為密鑰測試信號;test/res為輸出結果信號(密文);test/Up_k為密鑰更新信號。
3.2 EPCBC主程序優(yōu)化
EPCBC模塊中,采用資源優(yōu)先方式,實現上述優(yōu)化方法的第4)。核心優(yōu)化用Verilog HDL語言描述如下:
module EPCBC(res,state,key,clk);
input clk;
input [95:0] state,key;
output [95:0] res;
reg ready=1;
reg switch=1;
reg [7:0] cnt=8'hff;
reg [95:0] res, k;
wire [95:0] t_res,t_k;
always @(posedge clk) begin
cnt <= (cnt^31)? cnt+1: cnt;
ready <= (cnt^31)? 1:0;
switch <= ready? 1:0;
res<=ready? (cnt^8'hff) ?t_res:state ) :((switch)?res^k:res);
k<= ready ? ( (cnt^8'hff) ?t_k : key) : k;
end
EPCBCRound ER(t_res,t_k,res,k,cnt[4:0]);
Endmodule
EPCBC算法采用assign賦值實現,時鐘信號控制計算器更新,完成加密只需32個時鐘周期。使用EPCBC密碼的原始測試數據進行仿真實驗驗證。
輸入明文:0123456789ABCDEF01234567
密鑰:0123456789ABCDEF01234567
EPCBC仿真實驗結果如表2所示。
表2 EPCBC仿真實驗結果
表中,test/clk為時鐘測試信號;test/state為明文測試信號;test/key為密鑰測試信號;test/res為輸出結果信號(密文)。從實驗結果看可出優(yōu)化后加密運算結果是正確的。
對優(yōu)化前后的EPCBC(96,96)進行了FPGA實現,通過ISE 13.2對EPCBC綜合下載進行性能分析,FPGA型號為xilinx virtex-5 LX50T。優(yōu)化前的EPCBC密碼算法FPGA實現面積如表3所示,優(yōu)化后的EPCBC密碼算法FPGA實現面積如表4所示。
表3 優(yōu)化前的EPCBC密碼算法FPGA實現面積
表4 優(yōu)化后的EPCBC密碼算法FPGA實現面積
表3和表4反映了EPCBC在實現FPGA時各部分的面積占用數。其中,Slice為EPCBC在FPGA上實現時的基本面積單元;LUT為EPCBC在FPGA上的表面積占用單元,第一行與第二行數值相加即為EPCBC的FPGA實現面積。
根據表3可計算EPCBC密碼算法優(yōu)化前面積為17 801 Slices,根據表4可計算優(yōu)化后面積為10 036 Slices,優(yōu)化效率達到56%。EPCBC面積優(yōu)化效果如圖1所示??煽闯鰞?yōu)化后的EPCBC在面積資源占用上相比優(yōu)化前有較大優(yōu)勢,特別適合資源約束的RFID加密應用實現。
圖1 EPCBC面積優(yōu)化效果圖
優(yōu)化后的EPCBC密碼算法工作頻率如下所示:
time summary:
Timing errors:0 score:0(Setup/Max:0,Hold:0)
Constraints cover 416717 paths,16 nets,and 29917 connections
Design statistics:
Minimum period: 9.971ns(Maximum frequency:100.291MHz)
Maximum path delay from/to any node: 4.340ns
Maximum net delay: 0.835ns
Analysis completed Fri Aug 23 10:53:03 2013
可看出系統(tǒng)時鐘周期為9.971 ns。由此可得出優(yōu)化后的EPCBC密碼算法吞吐率為:
=96/9.971=9.627 Gb/s (1)
式中,表示EPCBC密碼算法的分組長度,單位為bit;表示時鐘周期。
可見,面積優(yōu)化后的EPCBC密碼算法加密效率仍然較高,即在面積優(yōu)化的同時保證了EPCBC的加密速度。
本文對EPCBC輕量級密碼算法進行了面向面積優(yōu)化的FPGA實現,優(yōu)化方法不但有效降低了EPCBC密碼的實現面積,同時實驗結果表明其性能仍然得到了保證。后續(xù)工作將會對其安全性和效率展開進一步分析。
[1] BOGDANOV A, KNUDSEN LR, LEANDER G, et al. Present: an ultra-lightweight block cipher[C]//Proceedings of Cryptographic Hardware and Embedded Systems 2007. Vienna, Austria: Springer, 2007.
[2] CHENG H, HEYS H, WANG C. Puffin: a novel compact block cipher targeted to embedded digital systems[C] //Proceedings of the 11th EUROMICRO Conference on Digital System Design Architectures Methods and Tools. Parma, Italy: IEEE, 2008.
[3] IZADI M, SADEGHIYAN B, SADEGHIAN S, et al. MIBS: a new lightweight block cipher[C]//Proceedings of the Cryptology and Network Security 2009. Ishikawa, Japan: Springer, 2009.
[4] SHIBUTANI K, ISOBE T, HIWATARI H, et al. Piccolo: an ultra-lightweight block cipher[C]//Proceedings of the Cryptographic Hardware and Embedded Systems 2011. Nara, Japan: Springer, 2011.
[5] GUO J, PEYRIN T, POSCHMANN A, et al. The LED block cipher[C]//Proceedings of the Cryptographic Hardware and Embedded Systems 2011. Nara, Japan: Springer, 2011.
[6] YAP H, KHOO K, POSCHMANN A, et al. EPCBC-a block cipher suitable for electronic product code encryption[C]// Proceedings of the Cryptology and Network Security 2011. Sanya, China: Springer, 2011.
[7] GOOD T, BENAISSA M. AES on FPGA from the fastest to the smallest[C]//Proceedings of Cryptographic Hardware and Embedded Systems 2005. Edinburgh, UK: Springer, 2005.
[8] XINMIAO Z, PARHI K. High-speed VLSI architectures for the AES algorithm[J]. IEEE Transactions on Very Large Scale Integration(VLSI) Systems, 2007, 12(9): 957-967.
[9] LI C Y, CHIEN C F, HONG J H. An efficient area-delay product design for mixcolumns/invmixcolumns in AES[C]// Proceedings of the 2008 IEEE Computer Society Annual Symposium on VLSI. Montpellier, France: IEEE, 2008.
[10] KUNDI DS, AZIZ A, IKRAM N. Resource efficient implementation of T-Boxes in AES on virtex-5 FPGA[J]. Information Processing Letters, 2010, 110(10): 373-377.
[11] LI Zhen-rong, ZHUANG Yi-qi, ZHANG Chao, et al. Low-power and area-optimized VLSI implementation of AES coprocessor for Zigbee system[J]. The Journal of China Universities of Posts and Telecommunications, 2009, 16(3): 89-94.
編 輯 葉 芳
Research on FPGA optimal implementation of EPCBC Cipher
LI Lang1,2, ZOU Yi1, HE Wei-wei3, and LI Ren-fa2
(1. Department of Computer Science, Hengyang Normal University Hengyang Hunan 421002; 2. College of Information Science and Engineering, Hunan University Changsha 410082; 3. School of Computer Science & Engineering, University of Electronic Science and Technology Chengdu 611731)
In order to achieve small area implementation of encryption in resource-constrained smart cards, we studied the hardware optimal implementation of electronic product code block cipher(EPCBC) encryption algorithm. Firstly, each operation is accomplished only once, and the main program calls the 32 times to complete the encryption. Secondly, the same register is used in the S-box and key transformation so that the number of required registers is reduced. Thirdly, the cipher round operation and key update are put in the same module. Through field programmable gate array(FPGA) the experimental results show that the implementation area of EPCBC is greatly reduced, the optimization efficiency rate reaches 56%, and the encryption performance is not decreased so as to provide practical solutions for resource-constrained cryptographic smart cards.
area optimization; EPCBC cipher; FPGA; Verilog HDL
TP309
A
10.3969/j.issn.1001-0548.2015.01.016
2013-09-25;
2014-11-02
國家自然科學基金(61173036); 湖南省自然科學基金(2015JJ4011); 湖南省博士后基金(897203005)
李浪(1972-),男,博士,教授,主要從事嵌入式系統(tǒng)與信息安全方面的研究.