譚 洋 李建成 王宏義 蘇昌文 鄭妙霞
1(國防科學(xué)技術(shù)大學(xué)電子科學(xué)與工程學(xué)院 長沙 410073)2 (湘潭大學(xué)材料與光電物理學(xué)院 湖南湘潭 411100)
?
基于Grain-v1算法的國軍標(biāo)安全認(rèn)證協(xié)議
譚 洋1李建成1王宏義1蘇昌文1鄭妙霞2
1(國防科學(xué)技術(shù)大學(xué)電子科學(xué)與工程學(xué)院 長沙 410073)2(湘潭大學(xué)材料與光電物理學(xué)院 湖南湘潭 411100)
(tanyangnudt@126.com)
隨著RFID的安全問題日益嚴(yán)重,安全通信受到越來越多的關(guān)注.安全通信的前提是安全認(rèn)證協(xié)議和安全加密算法.提出一種將Grain-v1算法與自主標(biāo)準(zhǔn)安全認(rèn)證協(xié)議相結(jié)合的安全方案.討論了RFID國外標(biāo)準(zhǔn)和我國自主標(biāo)準(zhǔn)的優(yōu)缺點,詳細(xì)闡述了自主標(biāo)準(zhǔn)雙向認(rèn)證協(xié)議和安全通信協(xié)議的工作原理.考慮到流密碼資源開銷相對較少、硬件實現(xiàn)比較方便等優(yōu)點,選取了Grain-v1流密碼算法,并詳細(xì)介紹了其算法原理, 分析內(nèi)部狀態(tài)跳轉(zhuǎn),設(shè)計硬件架構(gòu),結(jié)合軟件進(jìn)行仿真調(diào)試.最后對Grain安全性問題及其改進(jìn)進(jìn)行了討論.
無線射頻識別;安全通信;認(rèn)證協(xié)議;加密;流密碼
無線射頻識別(radio frequency identification, RFID)是一種非接觸的自動識別技術(shù),通過利用電磁波的特性傳遞信息,能夠?qū)蝹€物體對象進(jìn)行機器的自動識別,可以在各種惡劣的環(huán)境中工作,極大地方便了人們對各類物體(包括人)的辨識和管理.目前該項技術(shù)已經(jīng)廣泛應(yīng)用于各種生產(chǎn)活動以及日常生活.例如物流管理、零售結(jié)算、門禁系統(tǒng)、公交卡、校園卡等,作為物聯(lián)網(wǎng)的關(guān)鍵技術(shù),其在未來10年的發(fā)展必然是不可限量的[1].
隨著射頻識別系統(tǒng)應(yīng)用被越來越廣泛地使用,該項技術(shù)的安全問題正逐步引起各方面的關(guān)注.在研究RFID射頻識別技術(shù)的過程中,安全威脅與隱私威脅已經(jīng)在某種程度上限制了RFID技術(shù)的發(fā)展,安全和隱私問題亟待解決.目前RFID技術(shù)所采用的安全保護(hù)機制主要是物理安全機制和安全協(xié)議[2].比較常見的物理安全機制的方法有Kill命令、阻塞標(biāo)簽、夾子標(biāo)簽、假名標(biāo)簽、靜電屏蔽等[3].使用物理安全機制需要增加額外設(shè)備或者讓標(biāo)簽進(jìn)行一定的改造,成本高而且有一定的局限性.安全協(xié)議相比較基于物理方法的硬件安全機制受到更多的關(guān)注,其主要通過認(rèn)證協(xié)議和消息加密傳輸來保證數(shù)據(jù)安全性.
目前國內(nèi)已見報道的Grain算法文獻(xiàn)多集中于對Grain_128算法的研究.文獻(xiàn)[4]設(shè)計了Grain-128硬件架構(gòu)并在FPGA上進(jìn)行實現(xiàn);文獻(xiàn)[5]在相互認(rèn)證機制中應(yīng)用了Grain-128a算法;而文獻(xiàn)[6]采用的是其課題組自行研究的協(xié)議結(jié)合Grain-v1的一種方案.而針對國軍標(biāo)協(xié)議與Grain-v1相結(jié)合的報道相對較少.
在超高頻RFID領(lǐng)域里,大部分標(biāo)簽芯片采用的都是國外標(biāo)準(zhǔn),其中ISOIEC 18000-6C(以下簡稱6C)被廣泛使用,6C僅僅提供了3種簡單的安全機制:Lock命令、安全狀態(tài)、口令保護(hù)[7].然而現(xiàn)有的安全機制僅能夠應(yīng)對部分威脅,對于竊聽標(biāo)簽信息的威脅完全起不到任何作用,因為標(biāo)簽中重要、敏感的信息均沒有經(jīng)過加密處理,而直接在無線信道中進(jìn)行傳播,任何符合協(xié)議的讀寫器均能夠獲得該信息.例如,6C標(biāo)準(zhǔn)在保護(hù)數(shù)據(jù)上的措施是在執(zhí)行寫入操作時將待操作的數(shù)據(jù)和一個16 b的隨機數(shù)進(jìn)行異或運算后再傳輸,如果這個隨機數(shù)被截取下來,那么根據(jù)16 b的隨機數(shù)就很容易分析出要寫入標(biāo)簽的信息,甚至冒充合法讀寫器對標(biāo)簽的數(shù)據(jù)任意篡改[8].
鑒于6C的安全問題,具有我國自主知識產(chǎn)權(quán)的RFID標(biāo)準(zhǔn):《軍用射頻識別空中接口第一部分:800900MHz》(以下簡稱自主標(biāo)準(zhǔn))[9],該標(biāo)準(zhǔn)于2011年9月6日發(fā)布,10月1日正式實施.自主標(biāo)準(zhǔn)在安全問題上作了很大的優(yōu)化,根據(jù)數(shù)據(jù)的保密級別的不同,對應(yīng)不同的情況可以選擇工作在安全模式下或者非安全模式下.如果工作在安全模式下,讀寫器和標(biāo)簽在通信之前必須遵循安全鑒別協(xié)議進(jìn)行認(rèn)證.自主標(biāo)準(zhǔn)通過認(rèn)證協(xié)議和消息密文傳輸保證數(shù)據(jù)安全.安全鑒別通過后,數(shù)據(jù)明文被加密算法加密成密文傳輸.其安全性的保證主要在于讀寫器每次向標(biāo)簽發(fā)起請求時都會產(chǎn)生一個隨機數(shù),且隨機數(shù)的更新是動態(tài)的.基于該機制,使得惡意搜集、偽裝威脅和拒絕服務(wù)等攻擊很難奏效.
自主標(biāo)準(zhǔn)有3種認(rèn)證協(xié)議,分別為標(biāo)簽對讀寫器的單向鑒別協(xié)議、讀寫器對標(biāo)簽的單向鑒別協(xié)議和讀寫器與標(biāo)簽間雙向鑒別協(xié)議,本文主要研究雙向鑒別協(xié)議.讀寫器和標(biāo)簽的雙向鑒別協(xié)議流程如圖1所示:
圖1 雙向認(rèn)證流程
協(xié)議具體過程如下:
雙向鑒別通過之后需要按照安全通信協(xié)議進(jìn)行通信[10],圖2為安全通信協(xié)議的流程圖:
圖2 安全通信協(xié)議
具體協(xié)議過程如下:
讀寫器和標(biāo)簽通過雙向認(rèn)證后便可以按照安全通信協(xié)議流程進(jìn)行通信,讀寫器生成隨機數(shù)RNr,使用雙向認(rèn)證協(xié)議中產(chǎn)生的會話密鑰SK,利用加密算法將隨機數(shù)和相關(guān)命令加密成密文,發(fā)送給標(biāo)簽.標(biāo)簽收到命令后,使用SK解密來自讀寫器的數(shù)據(jù),根據(jù)命令執(zhí)行對應(yīng)操作,并產(chǎn)生隨機數(shù)RNt,如果產(chǎn)生響應(yīng)數(shù)據(jù)或需要返回數(shù)據(jù),便使用SK將響應(yīng)數(shù)據(jù)和隨機數(shù)RNt加密返回給讀寫器.讀寫器與標(biāo)簽的隨機數(shù)是動態(tài)更新的,即每一次通信命令的隨機數(shù)都不一樣,該機制能夠很好地抵抗跟蹤、重放攻擊等安全威脅.
流密碼是當(dāng)前主流算法之一,與傳統(tǒng)的分組密碼算法相比,在RFID系統(tǒng)實際應(yīng)用中更具優(yōu)勢,這是因為RFID讀寫器發(fā)送給標(biāo)簽的每條指令長度都不相同,同時標(biāo)簽返回給讀寫器的每條數(shù)據(jù)內(nèi)容也不盡相同,如果采用固定輸入、輸出長度的分組密碼算法,那么當(dāng)分組長度過長時,分組中多余的長度沒有使用而造成浪費;當(dāng)分組長度過短時,則需要多次使用加密算法進(jìn)行處理,造成功耗和時鐘周期上的浪費.流密碼算法可以對每個字符進(jìn)行處理,而且不會受到數(shù)據(jù)長度的限制[11].
Grain算法是eSTREAM計劃的最終候選算法之一,是由瑞典學(xué)者Hell,Johansson和Meier共同提交的面向硬件實現(xiàn)的二進(jìn)制同步流密碼.Grain算法有3個版本:Grain-v0,Grain-v1[12]和Grain-128[13].3個版本的結(jié)構(gòu)基本相同,其中Grain-v0和Grain-v1的LFSR和NFSR均為80 b,內(nèi)部狀態(tài)共160 b;Grain-128的LFSR和NFSR均為128 b,內(nèi)部狀態(tài)均為256 b.使用Grain-v1能夠滿足RFID眾多應(yīng)用的安全等級,使用Grain-128則需要增加額外的門數(shù)和功耗,故本文采用Grain-v1算法.
Grain-v1加密算法主要思想是:按位設(shè)計、基于線性反饋移位寄存器、較小的附加函數(shù)、在提供額外硬件條件下可以加快速度.該算法主要包括3個部分:一個LFSR(線性反饋移位寄存器)、一個NFSR(非線性反饋移位寄存器)和一個非線性布爾函數(shù).LFSR和NFSR均為80 b,內(nèi)部狀態(tài)為160 b.實現(xiàn)過程為NFSR和LFSR按位異或,非線性布爾函數(shù)的輸出再反饋到2個移位寄存器中.其主要原理如圖3所示:
圖3 Grain-v1算法結(jié)構(gòu)
整個密鑰流產(chǎn)生的主要步驟可以分為以下3個階段:
1) 初始態(tài)預(yù)置.在NFSR中置入80 b密鑰,在LFSR前64 b中置入64 b初始化向量,后16 b初始化為全1狀態(tài)(LFSR不能被初始化為全0狀態(tài)).
2) 密鑰流初始化階段.初態(tài)預(yù)置完畢后,密鑰流生成器按照初始化算法運行160步,在運行過程中輸出函數(shù)的值并不作為密鑰流輸出,而是分別反饋到2個移位寄存器中去.
3) 密鑰流產(chǎn)生階段.每運行一個周期就產(chǎn)生一位密鑰流(可以用更多的硬件資源來換取速度),同時2個移位寄存器內(nèi)部狀態(tài)也發(fā)生改變.
Grain-v1算法的電路控制是通過一個狀態(tài)機來實現(xiàn)的.整個算法電路由3個狀態(tài)組成:S0,S1和S2,其中S0為算法電路初始化中的密鑰和初始向量加載階段,S1為電路初始化運行階段,S2為密鑰產(chǎn)生輸出階段.當(dāng)電路復(fù)位以后的第1個時鐘周期,電路進(jìn)入S0狀態(tài),開始從外部讀入80 b密鑰和64 b初始向量并存儲于相應(yīng)的寄存器中;然后控制電路產(chǎn)生初始化控制信號,電路進(jìn)入S1狀態(tài),計數(shù)器count開始控制計數(shù);當(dāng)計數(shù)器計數(shù)周期達(dá)到160個時鐘周期時,電路進(jìn)入S2狀態(tài),開始產(chǎn)生密鑰輸出,如圖4所示:
圖4 算法電路狀態(tài)機
根據(jù)上面所述的Grain-v1算法原理,具體的實現(xiàn)的算法模塊框圖如圖5所示.
圖5 算法模塊
模塊共有7個端口.其中,clk,rst,en,key,iv為算法原理要求的輸入端,o_vld和z為輸出端口.其中rst,en,o_vld分別為算法模塊的復(fù)位信號、使能信號和輸出有效信號,使整個算法模塊能夠真正嵌入到RFID標(biāo)簽芯片中使用.
在模塊的5個輸入端口中,clk表示時鐘信號;key和iv分別表示80 b密鑰和64 b初始向量;rst表示模塊復(fù)位信號,當(dāng)rst=1時開始加載密鑰和初始化向量.en為模塊使能信號,當(dāng)en=1時模塊能正常工作,en=0時模塊關(guān)斷.
模塊的2個輸出端口中,o_vld表示輸出有效信號,z表示輸出密鑰流.當(dāng)o_vld=1時表示輸出有效,此時標(biāo)簽就可以使用z作為加解密的密鑰流.
本文設(shè)計的Grain-v1算法主要是通過數(shù)字電路來實現(xiàn),在作綜合時發(fā)現(xiàn)絕大部分功耗來源于動態(tài)功耗,動態(tài)功耗主要來源于電源電壓、等效電容和工作頻率.本文在降低動態(tài)功耗方面做了以下幾項工作:
在工作頻率方面,自主標(biāo)準(zhǔn)對反向鏈路頻率允差有苛刻規(guī)定,為了達(dá)到時鐘精度要求,時鐘頻率需大于1.60 MHz[14],本文選取1.92 MHz作為模塊工作頻率.Grain-v1算法開始運行到產(chǎn)生密鑰流至少需要240個時鐘周期,即算法模塊產(chǎn)生密鑰所需的時間為125 μs,符合實際應(yīng)用時間(300 μs)的要求.
動態(tài)功耗與工作電壓的平方成正比[15],降低工作電壓能大大降低動態(tài)功耗.但由于過低的工作電壓可能造成半導(dǎo)體器件無法正常工作.綜合考慮,本文設(shè)計的模塊使用1.0 V的工作電壓.
使用門控時鐘技術(shù),設(shè)計的算法中加入了en(使能信號),目的是為了當(dāng)不需要該模塊工作時,通過門控信號把輸入到該電路的時鐘關(guān)閉,這將大大降低電路的動態(tài)功耗.
控制邏輯中的有限狀態(tài)機的賦值對功耗大小影響很大,不同的有限狀態(tài)機的賦值可以產(chǎn)生完全不同的隨機邏輯.在確定的原始輸入概率下可獲得狀態(tài)之間轉(zhuǎn)換的概率(如從S1到S2轉(zhuǎn)換的概率).通過使轉(zhuǎn)換概率高的狀態(tài)間變化位數(shù)少,使得狀態(tài)機工作時總跳變位數(shù)最小化.
操作數(shù)隔離是指在某個組合邏輯的輸出在下一個周期不需要時,可以在該周期對其進(jìn)行控制關(guān)斷,密鑰流輸出z只有在S2階段才有效,因此在S0和S1階段并不需要輸出z,也就是不需要使用z_tmp(內(nèi)部變量)對z進(jìn)行賦值,避免其進(jìn)行無用的運算,進(jìn)而降低功耗.
本文實現(xiàn)的算法每個時鐘周期輸出1 b密鑰流,雖然速度較慢,但功耗和占用面積小,符合在RFID標(biāo)簽上集成應(yīng)用的要求.根據(jù)文獻(xiàn)[12]所述,通過簡單增加硬件開銷能夠成倍地提升算法輸出的吞吐量.假設(shè)t為算法速度提高的倍數(shù),為了實現(xiàn)這一特性,需要增加t-1倍的g(x),f(x)和及預(yù)輸出函數(shù),算法最高可以支持t=16 b周期的密鑰流輸出,但是模塊功耗和占用面積相應(yīng)地會有成倍的增加,如表1所示:
表1 不同倍數(shù)下的面積與吞吐率
在本文研究中,Grain-v1算法采用Verilog HDL語言編寫,并在Synopsys公司的NC Verilog仿真軟件中進(jìn)行了仿真調(diào)試.仿真的關(guān)鍵信號的時序波形如圖6所示:
圖6中,state信號表示模塊所處的工作狀態(tài),分別是S0,S1和S2狀態(tài);key[79:0]表示輸入密鑰key位數(shù)是80 b,IV[63:0]則表示輸入的初始化向量iv位數(shù)是64 b.當(dāng)o_vld為1時表示密鑰流輸出z是有效的.為了能夠更加直觀地觀察仿真數(shù)據(jù),將密鑰輸出流z由串行轉(zhuǎn)為并行,即每產(chǎn)生4 b串行密鑰流就相應(yīng)生成一個4 b的并行數(shù)據(jù),對應(yīng)的便是out_memory,這樣能夠更好地觀察波形.從仿真結(jié)果可以看出,根據(jù)文獻(xiàn)[12]給出的測試向量進(jìn)行測試,用來仿真Grain加密模塊的功能是否正確.當(dāng)輸入測試向量80 b密鑰key全為0,且64 b初始化向量iv也全為0時,輸出為“7B978CF36846E5F4EE0B”,該值與理論值相符.由仿真結(jié)果可知,整個算法運行需要240個時鐘周期,所以,當(dāng)時鐘頻率為1.92 MHz時,密鑰流產(chǎn)生所需的時間為125 μs,符合實際應(yīng)用的要求.
Grain-v1算法以其硬件開銷小算法架構(gòu)簡單等特性使得其在加密方面有著廣泛的應(yīng)用,然而根據(jù)一些文獻(xiàn)研究,其安全性能也存在一些漏洞,文獻(xiàn)[16]是對流密碼的安全性進(jìn)行分析;文獻(xiàn)[17]提出了一種新的對Grain-v1差分攻擊方法;文獻(xiàn)[18]提出了密鑰恢復(fù)攻擊,并提出了一種改進(jìn)設(shè)計;文獻(xiàn)[19]則提出了改進(jìn)NFSR的反饋函數(shù)并將LFSR設(shè)計成NFSR,重新設(shè)計反饋函數(shù)中的抽頭(即反饋函數(shù)中的幾個參數(shù)),從而在增加少量硬件開銷的情況下極大地提高了算法被破解的難度.還有文獻(xiàn)利用立方攻擊對算法安全性進(jìn)行了分析.
本文介紹了一種可在UHF RFID標(biāo)簽芯片上集成使用的加密算法Grain-v1,并且對國軍標(biāo)雙向認(rèn)證協(xié)議和安全通信協(xié)議進(jìn)行了介紹,提出了一種結(jié)合Grain-v1算法和國軍標(biāo)協(xié)議相結(jié)合的一種方案.針對Grain-v1算法,詳細(xì)闡述了其算法原理和工作過程,分析內(nèi)部狀態(tài)跳轉(zhuǎn),設(shè)計硬件架構(gòu),結(jié)合軟件進(jìn)行仿真調(diào)試 .最后對其安全性問題及其改進(jìn)方法進(jìn)行了討論.該方案的提出彌補了自主標(biāo)準(zhǔn)與安全加密算法相結(jié)合的空白,并且能夠很好地應(yīng)用在UHF RFID標(biāo)簽芯片上,使得標(biāo)簽芯片具有安全功能.
[1]Klaus F. RFID Handbook: Fundamentals and Applications in Contactless Smart Cards, Radio Frequency Identification and Near-field Communication[M]. 3rd ed. New York: Wiley, 2010
[2]Juels A. RFID security and privacy: A research survey[J]. IEEE Journal on Selected Areas in Communications, 2006, 24(2): 381-394
[3]Juels A, Rivest R L, Szydlo M. The blocker tag: Selective blocking of RFID tags for consumer privacy[C]Proc of the 10th ACM Conf on Computer and Communications Security. New York: ACM, 2003: 103-111
[4]邵軻. RFID標(biāo)簽加密算法設(shè)計及FPGA實現(xiàn)[D]. 上海: 公安部第三研究所防偽技術(shù)事業(yè)部, 2012
[5]趙蓮清. 基于Grain-128a算法的RFID安全機制[D]. 北京: 華北電力大學(xué), 2013
[6]樓赟程. 基于Grain-v1 的RFID 安全認(rèn)證協(xié)議[D]. 上海: 上海交通大學(xué) 2012
[8]Qin Qin, Li Cong, Cai Lei, et al. Design of security tag baseband based on PRESENT algorithm[J].Computer Engineering, 2015, 41(3): 110-115
[9]李建成, 王宏義, 等. 軍用射頻識別空中接口第1部分:800900 MHz參數(shù)[S]. 總裝備部, 國防科學(xué)技術(shù)大學(xué), 2011
[10]Thornton F, Haines B, Das A M, et al. RFID Security[M]. New York: Syngress Publishing,2006
[11]Stinson D S. 密碼學(xué)原理與實踐[M]. 馮登國譯. 北京: 電子工業(yè)出版社, 2009
[12]Hell M, Johansson T, Meier W. Grain—A stream sipher for sonstrained environments[J]. Proceedings of the International Journal of Wireless & Mobile Computing, 2007, 2(1): 86-93
[13]Hell M, Johansson T, Maximov A, et al. A stream cipher proposal Grain-128[C]Proc of 2006 IEEE Int Symp on Information Theory. Piscataway, NJ: IEEE, 2006: 1614-1618
[14]李聰, 谷曉忱, 李建成, 等. 一種對時鐘偏差不敏感的無源RFID 標(biāo)簽編解碼算法[J]. 國防科技大學(xué)學(xué)報, 2013, 35(3): 126-131
[15]林豐成, 竺紅衛(wèi), 李立. 數(shù)字集成電路設(shè)計與技術(shù)[M]. 北京: 科學(xué)出版社, 2008
[16]王璐. 流密碼算法Grain的安全性研究[D]. 西安: 西安電子科技大學(xué), 2011
[17]王璐, 胡予濮, 張振廣. 一種針對Grain-v1的新差分錯誤攻擊[J]. 計算機科學(xué), 2011, 38(8): 80-82
[18]楊文峰. 流密碼Grain-v1的密鑰恢復(fù)攻擊及其改進(jìn)[D]. 西安: 西安電子科技大學(xué), 2010
[19]李雪峰. 基于RFID系統(tǒng)認(rèn)證協(xié)議與加密算法的研究[D]. 上海: 東華大學(xué), 2009
譚 洋
碩士研究生,主要研究方向為RFID電子標(biāo)簽數(shù)字基帶設(shè)計和安全加密算法.
tanyangnudt@126.com
李建成
教授,碩士生導(dǎo)師,主要研究方向為專用集成電路設(shè)計及系統(tǒng)應(yīng)用等.
lijc_hh@126.com
王宏義
講師,主要研究方向為射頻識別技術(shù)及應(yīng)用等.
wanghongyi2011@163.com
蘇昌文
工程師,主要研究方向為ASIC設(shè)計.
suchangwen001@126.com
鄭妙霞
碩士研究生,主要研究方向為RFID電子標(biāo)簽芯片數(shù)字基帶設(shè)計.
miaoxiazheng@126.com
Security Authentication Protocol Based on Grain-v1 in National Military Standard
Tan Yang1, Li Jiancheng1, Wang Hongyi1, Su Changwen1, and Zheng Miaoxia2
1(CollegeofElectronicScienceandEngineering,NationalUniversityofDefenseTechnology,Changsha410073)2(SchoolofMaterialsandOptoelectronicsPhysics,XiangtanUniversity,Xiangtan,Hunan411100)
As the security problems in RFID become more and more serious, secure communication is receiving more and more attention. The premise of secure communication is security authentication protocol and security encryption. The paper proposes the security mechanism combining Grain-v1 algorithm and security authentication protocol in homegrown standard. This paper discusses the advantages and disadvantages of both foreign standards and homegrown standard about RFID, and we explain bidirectional authentication protocol and secure communication protocol in detail. Taking the use of less resource and easier implementation into consideration, we choose Grain-v1 stream cipher and illustrate its algorithm principle, analyze the changes of internal state and design hardware architecture, this paper implements simulation and debugging on software. At last, we discuss the grain’s security safety and its improvement.
radio frequency identification (RFID); secure communication; authentication protocol; encryption; stream cipher
2016-05-29
湖南省重大科技專項基金項目(2010FJ1005)
TP309