Hummingbird加密算法的硬件架構(gòu)設(shè)計
摘要 Hummingbird加密算法是針對RFID標(biāo)簽等硬件受限系統(tǒng)的輕型加密算法。其已在不同平臺上得到了驗證。文中提出了一種針對Humming bird算法的硬件架構(gòu),與目前其他方法相比,在響應(yīng)時間基本相同的情況下,該硬件架構(gòu)所需的硬件資源更少。其采用Xilinx的低端Spart an-3系列FPGA芯片作為驗證平臺。實驗結(jié)果表明,該硬件架構(gòu)可較好地嵌入到硬件受限系統(tǒng)中,尤其是嵌入式系統(tǒng)。
關(guān)鍵詞 Hummingbird加密算法;FPGA;硬件實現(xiàn)
目前大多低配置的設(shè)備中均涉及到信息的傳遞,例如:智能卡、RFID標(biāo)簽等。若這些信息被非授權(quán)用戶獲取將帶來安全威脅。因此研究可嵌入此設(shè)備中的加密算法是必要的。當(dāng)前有多種加密標(biāo)準(zhǔn)算法,例如DES、AES等,但這些算法通常需要大量的硬件資源來實現(xiàn),同時響應(yīng)時間較長,并不適合資源受限的系統(tǒng)。
在眾多加密算法中,Hummingbird加密算法是Revere Security開發(fā)的一種輕型算法。由于其所需的硬件資源少、功耗低,被廣泛應(yīng)用于一些硬件資源受限的應(yīng)用場合,例如:RFID和簡易嵌入式系統(tǒng)等。Hummingbird加密算法易于軟件實現(xiàn),在不同的嵌入式平臺中均有相應(yīng)的實現(xiàn)和優(yōu)化方案。
目前有多種不同的硬件架構(gòu)被提出,以便使Hummingbird加密算法能適用于多種硬件資源受限的平臺。但這些方法所使用的硬件資源同樣較多,且加密速度較慢。針對這些問題,文中在基于FPGA硬件平臺下,提出了一種Hummingbird加密算法的硬件架構(gòu)。在響應(yīng)時間基本相同的情況下,該硬件架構(gòu)所占用的硬件資源相比其他的解決方案較少。
1 Hummingbird加密算法簡介
Hummingbird加密算法結(jié)合了基于塊和流的加密。整個加密過程包含兩部分:初始化過程和加密/解密過程。在Hummingbird算法中,使用16 bit的塊長度、256 bit的密鑰長度和80 bit的內(nèi)部狀態(tài)寄存器。
1.1 初始化過程
Hummingbird算法的初始化過程包括,初始化4個內(nèi)部狀態(tài)寄存器,同時計算LFSR的初始值。4個狀態(tài)寄存器RS1~RS4首先由16 bit的隨機數(shù)產(chǎn)生器產(chǎn)生。初始化過程中,4個狀態(tài)寄存器經(jīng)過4次的更新過程,而同時更新的結(jié)果則作為LFSR的初始值。初始化過程的流程如圖1(a)所示。
1.2 加密解密過程
在初始化過程后,明文首先與狀態(tài)寄存器RS1進行模216的加運算,然后再進行塊加密。在加密過程中,這些操作重復(fù)進行4輪,并得到最終的密文。其中,對應(yīng)的4個狀態(tài)寄存器也要經(jīng)過相應(yīng)的更新,同樣LFSR也進行更新。整個加密過程如圖1(b)所示。解密過程可參照加密過程的逆運算。
1.3 塊加密過程
Hummingbird加密算法采用4個相同的塊加密模塊,每個塊加密過程均是16 bit,密鑰為64 bit。其過程如圖2所示。塊加密過程中的S—Box如下表所示。當(dāng)中的線性變換過程定義如下
L(m)=m⊕(m×6)⊕(m×10) (1)
2 算法的FPGA硬件架構(gòu)實現(xiàn)
由于Hummingbird加密算法是一種輕型加密算法,主要針對硬件資源受限的平臺和應(yīng)用場合,因此,提出了一種硬件資源使用較少的FPGA架構(gòu)。
首先,對于塊加密過程,用4個時鐘周期來完成4輪的塊加密,由于每輪加密過程的密鑰均不同,因此需要一個選擇器來選擇正確的密鑰,塊加密過程的FPGA架構(gòu)如圖3所示。
在這一架構(gòu)中,需要5個異或器、8個S—Box、一個線性變換過程及兩個多路選擇器。Hummingbird加密算法FPGA架構(gòu)的頂層設(shè)計如圖4所示。
在頂層架構(gòu)中,塊加密的輸出首先被鎖存器鎖存,在初始化和每輪的加密過程反饋,以便更新狀態(tài)寄存器。由于初始狀態(tài)和每輪加密的狀態(tài)寄存器更新機制不同,因此需要數(shù)據(jù)選擇器來實現(xiàn)正確的更新,更新后的狀態(tài)寄存器在每輪加密過程中,分別輸入至塊加密過程。同時,由于初始化過程需要隨機數(shù)產(chǎn)生,因此,使用LFSR來實現(xiàn),以便節(jié)省硬件資源。
3 結(jié)果分析
文中使用Xilinx FPGA Spartan-3平臺,利用VetilogHDL來實現(xiàn)所提出的硬件架構(gòu)。將所提出的架構(gòu)和其他設(shè)計進行比較。文獻第一次提出了Hummingbird加密算法的FPGA實現(xiàn)架構(gòu),但其所需的硬件資源較多。文獻提出的方法雖然花費得硬件資源少,但速度較慢,同時需要更多的存儲器,實際所需的硬件資源并未減少。同時,文獻使用的是協(xié)處理器方法,并不能算作是硬件架構(gòu)。
在表2中,給出了本次的方法和文獻的性能比較。
表2所示,提出方法所需的硬件資源比文獻少25%,同時速度也提升了6%。而在表3中,給出了文中的方法和文獻的性能比較。
相比于文獻,提出方法雖然所需的Slices數(shù)量較多,卻無需存儲器,同時速度可提升約30%。
4 結(jié)束語
文中提出了一種有效針對Hummingbird加密算法的FPGA硬件實現(xiàn)。該硬件架構(gòu)相比其他方法可使用更少的硬件資源,同時速度上也優(yōu)于其他方法。因此該架構(gòu)可廣泛用于RFID等硬件資源受限的加密平臺中。