趙 維,黃開(kāi)臣,羅永紅
(中國(guó)航空工業(yè)西安航空計(jì)算技術(shù)研究所第5研究室,陜西西安 710068)
目前大多低配置的設(shè)備中均涉及到信息的傳遞,例如:智能卡、RFID標(biāo)簽等[1-2]。若這些信息被非授權(quán)用戶獲取將帶來(lái)安全威脅。因此研究可嵌入此設(shè)備中的加密算法是必要的。當(dāng)前有多種加密標(biāo)準(zhǔn)算法,例如DES、AES等,但這些算法通常需要大量的硬件資源來(lái)實(shí)現(xiàn),同時(shí)響應(yīng)時(shí)間較長(zhǎng),并不適合資源受限的系統(tǒng)[3]。
在眾多加密算法中,Hummingbird加密算法是Revere Security開(kāi)發(fā)的一種輕型算法。由于其所需的硬件資源少、功耗低,被廣泛應(yīng)用于一些硬件資源受限的應(yīng)用場(chǎng)合,例如:RFID和簡(jiǎn)易嵌入式系統(tǒng)等。Hummingbird加密算法易于軟件實(shí)現(xiàn),在不同的嵌入式平臺(tái)中均有相應(yīng)的實(shí)現(xiàn)和優(yōu)化方案。
目前有多種不同的硬件架構(gòu)被提出[4-7],以便使Hummingbird加密算法能適用于多種硬件資源受限的平臺(tái)。但這些方法所使用的硬件資源同樣較多,且加密速度較慢。針對(duì)這些問(wèn)題,文中在基于FPGA硬件平臺(tái)下,提出了一種Hummingbird加密算法的硬件架構(gòu)。在響應(yīng)時(shí)間基本相同的情況下,該硬件架構(gòu)所占用的硬件資源相比其他的解決方案較少。
Hummingbird加密算法結(jié)合了基于塊和流的加密。整個(gè)加密過(guò)程包含兩部分:初始化過(guò)程和加密/解密過(guò)程。在Hummingbird算法中,使用16 bit的塊長(zhǎng)度、256 bit的密鑰長(zhǎng)度和80 bit的內(nèi)部狀態(tài)寄存器。
Hummingbird算法的初始化過(guò)程包括,初始化4個(gè)內(nèi)部狀態(tài)寄存器,同時(shí)計(jì)算LFSR的初始值。4個(gè)狀態(tài)寄存器RS1~RS4首先由16 bit的隨機(jī)數(shù)產(chǎn)生器產(chǎn)生。初始化過(guò)程中,4個(gè)狀態(tài)寄存器經(jīng)過(guò)4次的更新過(guò)程,而同時(shí)更新的結(jié)果則作為L(zhǎng)FSR的初始值。初始化過(guò)程的流程如圖1(a)所示。
在初始化過(guò)程后,明文首先與狀態(tài)寄存器RS1進(jìn)行模216的加運(yùn)算,然后再進(jìn)行塊加密。在加密過(guò)程中,這些操作重復(fù)進(jìn)行4輪,并得到最終的密文。其中,對(duì)應(yīng)的4個(gè)狀態(tài)寄存器也要經(jīng)過(guò)相應(yīng)的更新,同樣LFSR也進(jìn)行更新。整個(gè)加密過(guò)程如圖1(b)所示。解密過(guò)程可參照加密過(guò)程的逆運(yùn)算。
圖1 Hummingbird加密算法流程
Hummingbird加密算法采用4個(gè)相同的塊加密模塊,每個(gè)塊加密過(guò)程均是16 bit,密鑰為64 bit。其過(guò)程如圖2所示。塊加密過(guò)程中的S-Box如下表所示。當(dāng)中的線性變換過(guò)程定義如下
由于Hummingbird加密算法是一種輕型加密算法,主要針對(duì)硬件資源受限的平臺(tái)和應(yīng)用場(chǎng)合,因此,提出了一種硬件資源使用較少的FPGA架構(gòu)。
圖2 塊加密過(guò)程
表1 塊加密中的S-Box
首先,對(duì)于塊加密過(guò)程,用4個(gè)時(shí)鐘周期來(lái)完成4輪的塊加密,由于每輪加密過(guò)程的密鑰均不同,因此需要一個(gè)選擇器來(lái)選擇正確的密鑰,塊加密過(guò)程的FPGA架構(gòu)如圖3所示。
圖3 塊加密過(guò)程的FPGA實(shí)現(xiàn)
在這一架構(gòu)中,需要5個(gè)異或器、8個(gè)S-Box、一個(gè)線性變換過(guò)程及兩個(gè)多路選擇器。Hummingbird加密算法FPGA架構(gòu)的頂層設(shè)計(jì)如圖4所示。
圖4 Hummingbird加密算法FPGA實(shí)現(xiàn)的頂層架構(gòu)
在頂層架構(gòu)中,塊加密的輸出首先被鎖存器鎖存,在初始化和每輪的加密過(guò)程反饋,以便更新?tīng)顟B(tài)寄存器。由于初始狀態(tài)和每輪加密的狀態(tài)寄存器更新機(jī)制不同,因此需要數(shù)據(jù)選擇器來(lái)實(shí)現(xiàn)正確的更新,更新后的狀態(tài)寄存器在每輪加密過(guò)程中,分別輸入至塊加密過(guò)程。同時(shí),由于初始化過(guò)程需要隨機(jī)數(shù)產(chǎn)生,因此,使用LFSR來(lái)實(shí)現(xiàn),以便節(jié)省硬件資源。
文中使用Xilinx FPGA Spartan-3平臺(tái),利用Verilog HDL來(lái)實(shí)現(xiàn)所提出的硬件架構(gòu)。將所提出的架構(gòu)和其他設(shè)計(jì)進(jìn)行比較[4-5]。文獻(xiàn)[4]第一次提出了Hummingbird加密算法的FPGA實(shí)現(xiàn)架構(gòu),但其所需的硬件資源較多。文獻(xiàn)[5]提出的方法雖然花費(fèi)得硬件資源少,但速度較慢,同時(shí)需要更多的存儲(chǔ)器,實(shí)際所需的硬件資源并未減少。同時(shí),文獻(xiàn)[5]使用的是協(xié)處理器方法,并不能算作是硬件架構(gòu)。
在表2中,給出了本次的方法和文獻(xiàn)[4]的性能比較。
表2 與文獻(xiàn)[4]的性能比較
表2所示,提出方法所需的硬件資源比文獻(xiàn)[4]少25%,同時(shí)速度也提升了6%。而在表3中,給出了文中的方法和文獻(xiàn)[5]的性能比較。
表3 與文獻(xiàn)[5]的性能比較
相比于文獻(xiàn)[5],提出方法雖然所需的Slices數(shù)量較多,卻無(wú)需存儲(chǔ)器,同時(shí)速度可提升約30%。
文中提出了一種有效針對(duì)Hummingbird加密算法的FPGA硬件實(shí)現(xiàn)。該硬件架構(gòu)相比其他方法可使用更少的硬件資源,同時(shí)速度上也優(yōu)于其他方法。因此該架構(gòu)可廣泛用于RFID等硬件資源受限的加密平臺(tái)中。
[1]范文兵,葛崢,王耀.超高頻RFID系統(tǒng)設(shè)計(jì)與仿真[J].計(jì)算機(jī)工程,2010,36(17):90-92.
[2]肖夢(mèng)琴,沈翔,楊玉慶,等.Hummingbird算法在射頻識(shí)別標(biāo)簽中的應(yīng)用[J].計(jì)算機(jī)工程,2011,37(17):78-80.
[3]DZUNG D,NAEDELE M,VON T P,et al.Security for industrial communication system [J].Proceedings of the IEEE,2005(6):571-580.
[4]FAN X,GONG G,LAUFFENBURGER K,et al.FPGA implementations oftheHummingbird cryptographic algorithm[C].Italy:IEEE International Symposium on Hardware-O-riented Security and Trust(HOST),2010.
[5]SMAIL S.Enhanced FPGA implementation of the Hummingbird cryptographic algorithm[M].UK:Sonylike Press,2005.
[6]THOMAS E,SANDEEP K,CHRISTOF P,et al.A survey of lightweight-cryptography implementations [J].IEEE Design & Test of Computers,2007,24(6):522-533.
[7]FAN X,HU H,GONG G,et al.Lightweight implementation of Hummingbird cryptographic algorithm on 4-bit microcontrollers[C].Torento:The 1st International Workshop on RFID Security and Cryptography 2009(RISC'09),2009:838-844.