文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)04-0126-04
射頻識別技術(shù)RFID(Radio Frequency Identification)是一種非接觸的自動識別技術(shù),可應(yīng)用于商品和證件的防偽、供應(yīng)鏈管理、圖書管理、航空包裹管理和門禁等多個領(lǐng)域。歐美國家在RFID標(biāo)準(zhǔn)的建立、相關(guān)軟硬件技術(shù)的開發(fā)與應(yīng)用上處于領(lǐng)先地位。相比之下,國內(nèi)RFID市場尚處于前期宣傳預(yù)熱階段,相關(guān)產(chǎn)業(yè)發(fā)展還較為落后,許多安全方面的技術(shù)依賴于國外廠商。
RFID的低成本與安全性一直以來是一對矛盾,為了使RFID得到更廣泛的應(yīng)用,降低成本是唯一的途徑。但成本的降低使得高安全性的措施難以在RFID標(biāo)簽上實現(xiàn),安全得不到保證同樣制約著RFID的推廣。此外功耗也是需要嚴(yán)格控制的一方面,尤其對于無電源供給、僅僅依靠閱讀器電磁場提供能量的無源標(biāo)簽更是如此。同時,低功耗的要求也限制了RFID標(biāo)簽的運(yùn)算能力。
因此,要在RFID標(biāo)簽資源受限的環(huán)境中設(shè)計出安全有效的安全技術(shù)解決方案,傳統(tǒng)的高強(qiáng)度加密算法已不再適用。本文采用一種新的流密碼算法結(jié)合相互認(rèn)證技術(shù)為RFID系統(tǒng)中標(biāo)簽與閱讀器的通信過程提供安全保障,并在FPGA上實現(xiàn)了密碼算法。
1 RFID系統(tǒng)簡介
RFID系統(tǒng)由標(biāo)簽(Tag)、閱讀器(Reader)和后臺服務(wù)器(Back-End Server)三部分構(gòu)成。標(biāo)簽由耦合元件及芯片組成,用于存放識別信息,通常根據(jù)是否有自帶電源分為有源標(biāo)簽和無源標(biāo)簽。閱讀器通過無線信道讀取標(biāo)簽中的信息,有的閱讀器還可以往標(biāo)簽中寫入數(shù)據(jù)。后臺服務(wù)器保存了標(biāo)簽和閱讀器的所有信息,通過與閱讀器交互實現(xiàn)對整個RFID系統(tǒng)的管理。
工作時,無源標(biāo)簽進(jìn)入閱讀器產(chǎn)生的磁場時憑借感應(yīng)電流所獲得的能量發(fā)送出存儲在芯片中的產(chǎn)品信息;而有源標(biāo)簽則是主動發(fā)送某一頻率的電磁波。閱讀器接收到信號并解碼后,將數(shù)據(jù)送到后臺服務(wù)器進(jìn)行相關(guān)處理。
2 RFID系統(tǒng)的安全方案
RFID利用開放的無線電環(huán)境通信,因此容易受到攻擊。通常攻擊的方式分為被動攻擊和主動攻擊。其中截獲信息的攻擊稱為被動攻擊,例如試圖非法獲取標(biāo)簽中重要數(shù)據(jù)信息等,對應(yīng)被動攻擊的主要技術(shù)手段是加密。更改、偽造信息和拒絕用戶使用資源的攻擊手段稱為主動攻擊,對應(yīng)主動攻擊的重要技術(shù)是認(rèn)證[1]。
RFID安全問題的特殊性還在于標(biāo)簽受限的計算能力,典型標(biāo)簽的電流只有15 mA,門陣列只有7 500~15 000個,其中可用于安全和隱私保護(hù)的門電路數(shù)量限制在5 000以內(nèi),這使得許多優(yōu)秀的密碼算法無法在標(biāo)簽上實現(xiàn)。因此尋找一種適合于RFID系統(tǒng)使用的密碼算法是本文討論的重點(diǎn)之一。
2.1 相互認(rèn)證技術(shù)
認(rèn)證技術(shù)用于解決閱讀器與標(biāo)簽之間的互相認(rèn)證問題。即標(biāo)簽應(yīng)確認(rèn)閱讀器的身份,防止存儲數(shù)據(jù)未經(jīng)許可被讀出或重寫;而閱讀器也要確認(rèn)應(yīng)答器的身份,以防止讀入偽造數(shù)據(jù)。相互認(rèn)證過程如圖1所示,具體步驟如下:
(1) 閱讀器發(fā)送查詢口令給標(biāo)簽,標(biāo)簽產(chǎn)生一個隨機(jī)數(shù)RB1傳回給閱讀器作為回應(yīng)。
(2)閱讀器產(chǎn)生一個隨機(jī)數(shù)RA,使用共享的密鑰K和共同的加密算法EK對RA及RB1加密,即算出數(shù)據(jù)塊1=EK(RA,RB1),并將數(shù)據(jù)塊1發(fā)送給標(biāo)簽。
(3) 標(biāo)簽將數(shù)據(jù)塊1解密,把獲得的隨機(jī)數(shù)RB1′與RB1作比較,如果一致,則標(biāo)簽可以確認(rèn)通信雙方的密鑰是一致的,即標(biāo)簽完成了對閱讀器的認(rèn)證。
(4) 標(biāo)簽另行產(chǎn)生一個隨機(jī)數(shù)RB2,并發(fā)送另一個加密數(shù)據(jù)塊2給閱讀器,數(shù)據(jù)塊2=EK(RB2,RA)。
(5) 閱讀器將數(shù)據(jù)塊2解密后,檢查原先發(fā)送RA的與接收到的RA′是否一致,若一致則閱讀器證明了雙方共有的密鑰是一致的,即完成了閱讀器對標(biāo)簽的認(rèn)證。
綜上所述,相互認(rèn)證技術(shù)有如下安全特性:
(1) 閱讀器與標(biāo)簽之間的通信數(shù)據(jù)經(jīng)過加密,在攻擊者不知道密鑰和密碼算法的前提下,即使截獲密文,也無法解密獲取明文內(nèi)容。
(2) 同時加密兩個隨機(jī)數(shù),避免已知明文攻擊。
(3) 閱讀器與標(biāo)簽之間通信的數(shù)據(jù)是隨機(jī)變化的,攻擊者無法根據(jù)歷史數(shù)據(jù)跟蹤用戶位置,有效地保護(hù)了用戶的位置隱私。
(4) 由于每次通信都有隨機(jī)數(shù)參與,攻擊者無法預(yù)料到下一次通信的內(nèi)容,因此無法通過截獲到的數(shù)據(jù)進(jìn)行重放攻擊。
2.2 Grain-128a
2004年,歐洲啟動eSTREAM計劃,目的是尋找能夠廣泛使用的流密碼算法。候選的算法分為軟件組和硬件組,軟件組的算法要求運(yùn)行速度優(yōu)于AES(Advanced Encryption Standard)算法,硬件組的算法要求在有限的硬件資源環(huán)境(例如RFID)下至少有一方面明顯超越AES算法[2]。Grain-128a的前身Grain v1是硬件組最終獲選的4個算法之一。Grain v1支持長度為80的密鑰,但考慮到在現(xiàn)代計算機(jī)的運(yùn)算能力下,這一密鑰長度的算法不能有效地抵抗窮舉攻擊,故將密鑰長度增加到128,并將改進(jìn)后的算法命名為Grain-128[3]。Grain-128a是在Grain-128的基礎(chǔ)上發(fā)展而來的。與Grain-128相比,Grain-128a能夠抵抗自發(fā)表以來各種針對Grain-128的攻擊。值得一提的是,除了最近Itai Dinur和Adi Shamir提出的Dynamic Cube攻擊[4],其他攻擊都沒能對Grain-128造成有效威脅。此外,Grain-128a能夠支持認(rèn)證機(jī)制。
2.2.1 Grain-128a的性能分析
同Grain v1及Grain-128一樣,Grain-128a設(shè)計面向資源受限的硬件環(huán)境,即要求非常低的資源消耗和功率消耗。參考文獻(xiàn)[4]從eSTREAM第二階段的候選算法中選出8個適于硬件實現(xiàn)的算法(其中含有最終獲選的4個算法)以及AES算法從功耗、吞吐量、速度等方面進(jìn)行對比分析,分析結(jié)果證實了Grain系列算法各方面的優(yōu)異性能。得益于Grain在功耗、面積上的突出表現(xiàn),推薦在低端的RFID系統(tǒng)上應(yīng)用Grain v1及Grain-128。Grain-128a在Grain-128的基礎(chǔ)上僅作了少量更改,保留了Grain-128的優(yōu)勢并且增強(qiáng)了安全性能,因此本文選擇Grain-128a作為認(rèn)證過程中的密碼算法。
3 算法測試與仿真
Grain-128a在Xilinx公司的ISE開發(fā)平臺上使用VHDL編程實現(xiàn),器件選用Spartan3E系列的FPGA芯片xc3s500e-4-pq208,使用ISE自帶的綜合器進(jìn)行綜合。算法大約需要3 000個門陣列,時鐘頻率能夠達(dá)到176 MHz,每個時鐘周期輸出2位數(shù)據(jù),輸出N位的密鑰流(包含密鑰輸入及初始化過程)僅需要(65+128+N/2)個時鐘周期,如果在125 kHz的RFID系統(tǒng)上使用, 加密或解密1 024位的數(shù)據(jù)大約需要5 ms,能夠滿足實際需求。
本文利用參考文獻(xiàn)[6]中給出的測試向量集對算法進(jìn)行測試,仿真結(jié)果如圖5、圖6所示。
將仿真結(jié)果與測試向量集里的密鑰流進(jìn)行對比,驗證了算法的正確性。
作為eSTREAM的獲選密碼算法,Grain-128a在安全性上無疑處于高水平,而對硬件資源的低需求則使它即使是在射頻標(biāo)簽上也能有上佳表現(xiàn)。本文針對RFID系統(tǒng)的特點(diǎn),提出一種結(jié)合Grain-128a密碼算法與相互認(rèn)證技術(shù)的安全方案,設(shè)計了一種安全、低成本與低功耗的RFID系統(tǒng)。
參考文獻(xiàn)
[1] 單承贛,單玉峰,姚磊. 射頻識別(RFID)原理與應(yīng)用[M].北京:電子工業(yè)出版社,2008:128-143.
[2] The eSTREAM Portfolio[EB/OL].[2008-04-15].http://www.ecrypt.eu.org/stream/portfolio.pdf.
[3] HELL M, JOHANSSON T, MAXIMOV A,et al. A stream cipher proposal Grain-128[R]. Seattle: IEEE International Symposium on Information Theory, 2006:1614-1618.
[4] DINUR I, SHAMIR A. Breaking Grain-128 with dynamic cube attacks[R]. Lyngby: FSE, 2011.
[5] GOOD T, BENAISSA M. Hardware results for selected stream cipher candidates[R]. Bochum: SASC, 2007.
[6] AGREN M, HELL M, JOHANSSON T, et al. A new version of Grain-128 with Authentication[R]. Lyngby: ECRYPT Workshop on Symmetric Encryption, 2011.