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