譚 洋 李建成 王宏義 蘇昌文 鄭妙霞
1(國防科學技術大學電子科學與工程學院 長沙 410073)2 (湘潭大學材料與光電物理學院 湖南湘潭 411100)
?
基于Grain-v1算法的國軍標安全認證協議
譚 洋1李建成1王宏義1蘇昌文1鄭妙霞2
1(國防科學技術大學電子科學與工程學院 長沙 410073)2(湘潭大學材料與光電物理學院 湖南湘潭 411100)
(tanyangnudt@126.com)
隨著RFID的安全問題日益嚴重,安全通信受到越來越多的關注.安全通信的前提是安全認證協議和安全加密算法.提出一種將Grain-v1算法與自主標準安全認證協議相結合的安全方案.討論了RFID國外標準和我國自主標準的優缺點,詳細闡述了自主標準雙向認證協議和安全通信協議的工作原理.考慮到流密碼資源開銷相對較少、硬件實現比較方便等優點,選取了Grain-v1流密碼算法,并詳細介紹了其算法原理, 分析內部狀態跳轉,設計硬件架構,結合軟件進行仿真調試.最后對Grain安全性問題及其改進進行了討論.
無線射頻識別;安全通信;認證協議;加密;流密碼
無線射頻識別(radio frequency identification, RFID)是一種非接觸的自動識別技術,通過利用電磁波的特性傳遞信息,能夠對單個物體對象進行機器的自動識別,可以在各種惡劣的環境中工作,極大地方便了人們對各類物體(包括人)的辨識和管理.目前該項技術已經廣泛應用于各種生產活動以及日常生活.例如物流管理、零售結算、門禁系統、公交卡、校園卡等,作為物聯網的關鍵技術,其在未來10年的發展必然是不可限量的[1].
隨著射頻識別系統應用被越來越廣泛地使用,該項技術的安全問題正逐步引起各方面的關注.在研究RFID射頻識別技術的過程中,安全威脅與隱私威脅已經在某種程度上限制了RFID技術的發展,安全和隱私問題亟待解決.目前RFID技術所采用的安全保護機制主要是物理安全機制和安全協議[2].比較常見的物理安全機制的方法有Kill命令、阻塞標簽、夾子標簽、假名標簽、靜電屏蔽等[3].使用物理安全機制需要增加額外設備或者讓標簽進行一定的改造,成本高而且有一定的局限性.安全協議相比較基于物理方法的硬件安全機制受到更多的關注,其主要通過認證協議和消息加密傳輸來保證數據安全性.
目前國內已見報道的Grain算法文獻多集中于對Grain_128算法的研究.文獻[4]設計了Grain-128硬件架構并在FPGA上進行實現;文獻[5]在相互認證機制中應用了Grain-128a算法;而文獻[6]采用的是其課題組自行研究的協議結合Grain-v1的一種方案.而針對國軍標協議與Grain-v1相結合的報道相對較少.
在超高頻RFID領域里,大部分標簽芯片采用的都是國外標準,其中ISOIEC 18000-6C(以下簡稱6C)被廣泛使用,6C僅僅提供了3種簡單的安全機制:Lock命令、安全狀態、口令保護[7].然而現有的安全機制僅能夠應對部分威脅,對于竊聽標簽信息的威脅完全起不到任何作用,因為標簽中重要、敏感的信息均沒有經過加密處理,而直接在無線信道中進行傳播,任何符合協議的讀寫器均能夠獲得該信息.例如,6C標準在保護數據上的措施是在執行寫入操作時將待操作的數據和一個16 b的隨機數進行異或運算后再傳輸,如果這個隨機數被截取下來,那么根據16 b的隨機數就很容易分析出要寫入標簽的信息,甚至冒充合法讀寫器對標簽的數據任意篡改[8].
鑒于6C的安全問題,具有我國自主知識產權的RFID標準:《軍用射頻識別空中接口第一部分:800900MHz》(以下簡稱自主標準)[9],該標準于2011年9月6日發布,10月1日正式實施.自主標準在安全問題上作了很大的優化,根據數據的保密級別的不同,對應不同的情況可以選擇工作在安全模式下或者非安全模式下.如果工作在安全模式下,讀寫器和標簽在通信之前必須遵循安全鑒別協議進行認證.自主標準通過認證協議和消息密文傳輸保證數據安全.安全鑒別通過后,數據明文被加密算法加密成密文傳輸.其安全性的保證主要在于讀寫器每次向標簽發起請求時都會產生一個隨機數,且隨機數的更新是動態的.基于該機制,使得惡意搜集、偽裝威脅和拒絕服務等攻擊很難奏效.
自主標準有3種認證協議,分別為標簽對讀寫器的單向鑒別協議、讀寫器對標簽的單向鑒別協議和讀寫器與標簽間雙向鑒別協議,本文主要研究雙向鑒別協議.讀寫器和標簽的雙向鑒別協議流程如圖1所示:

圖1 雙向認證流程
協議具體過程如下:

雙向鑒別通過之后需要按照安全通信協議進行通信[10],圖2為安全通信協議的流程圖:

圖2 安全通信協議
具體協議過程如下:
讀寫器和標簽通過雙向認證后便可以按照安全通信協議流程進行通信,讀寫器生成隨機數RNr,使用雙向認證協議中產生的會話密鑰SK,利用加密算法將隨機數和相關命令加密成密文,發送給標簽.標簽收到命令后,使用SK解密來自讀寫器的數據,根據命令執行對應操作,并產生隨機數RNt,如果產生響應數據或需要返回數據,便使用SK將響應數據和隨機數RNt加密返回給讀寫器.讀寫器與標簽的隨機數是動態更新的,即每一次通信命令的隨機數都不一樣,該機制能夠很好地抵抗跟蹤、重放攻擊等安全威脅.
流密碼是當前主流算法之一,與傳統的分組密碼算法相比,在RFID系統實際應用中更具優勢,這是因為RFID讀寫器發送給標簽的每條指令長度都不相同,同時標簽返回給讀寫器的每條數據內容也不盡相同,如果采用固定輸入、輸出長度的分組密碼算法,那么當分組長度過長時,分組中多余的長度沒有使用而造成浪費;當分組長度過短時,則需要多次使用加密算法進行處理,造成功耗和時鐘周期上的浪費.流密碼算法可以對每個字符進行處理,而且不會受到數據長度的限制[11].
Grain算法是eSTREAM計劃的最終候選算法之一,是由瑞典學者Hell,Johansson和Meier共同提交的面向硬件實現的二進制同步流密碼.Grain算法有3個版本:Grain-v0,Grain-v1[12]和Grain-128[13].3個版本的結構基本相同,其中Grain-v0和Grain-v1的LFSR和NFSR均為80 b,內部狀態共160 b;Grain-128的LFSR和NFSR均為128 b,內部狀態均為256 b.使用Grain-v1能夠滿足RFID眾多應用的安全等級,使用Grain-128則需要增加額外的門數和功耗,故本文采用Grain-v1算法.
Grain-v1加密算法主要思想是:按位設計、基于線性反饋移位寄存器、較小的附加函數、在提供額外硬件條件下可以加快速度.該算法主要包括3個部分:一個LFSR(線性反饋移位寄存器)、一個NFSR(非線性反饋移位寄存器)和一個非線性布爾函數.LFSR和NFSR均為80 b,內部狀態為160 b.實現過程為NFSR和LFSR按位異或,非線性布爾函數的輸出再反饋到2個移位寄存器中.其主要原理如圖3所示:

圖3 Grain-v1算法結構
整個密鑰流產生的主要步驟可以分為以下3個階段:
1) 初始態預置.在NFSR中置入80 b密鑰,在LFSR前64 b中置入64 b初始化向量,后16 b初始化為全1狀態(LFSR不能被初始化為全0狀態).
2) 密鑰流初始化階段.初態預置完畢后,密鑰流生成器按照初始化算法運行160步,在運行過程中輸出函數的值并不作為密鑰流輸出,而是分別反饋到2個移位寄存器中去.
3) 密鑰流產生階段.每運行一個周期就產生一位密鑰流(可以用更多的硬件資源來換取速度),同時2個移位寄存器內部狀態也發生改變.
Grain-v1算法的電路控制是通過一個狀態機來實現的.整個算法電路由3個狀態組成:S0,S1和S2,其中S0為算法電路初始化中的密鑰和初始向量加載階段,S1為電路初始化運行階段,S2為密鑰產生輸出階段.當電路復位以后的第1個時鐘周期,電路進入S0狀態,開始從外部讀入80 b密鑰和64 b初始向量并存儲于相應的寄存器中;然后控制電路產生初始化控制信號,電路進入S1狀態,計數器count開始控制計數;當計數器計數周期達到160個時鐘周期時,電路進入S2狀態,開始產生密鑰輸出,如圖4所示:

圖4 算法電路狀態機
根據上面所述的Grain-v1算法原理,具體的實現的算法模塊框圖如圖5所示.

圖5 算法模塊
模塊共有7個端口.其中,clk,rst,en,key,iv為算法原理要求的輸入端,o_vld和z為輸出端口.其中rst,en,o_vld分別為算法模塊的復位信號、使能信號和輸出有效信號,使整個算法模塊能夠真正嵌入到RFID標簽芯片中使用.
在模塊的5個輸入端口中,clk表示時鐘信號;key和iv分別表示80 b密鑰和64 b初始向量;rst表示模塊復位信號,當rst=1時開始加載密鑰和初始化向量.en為模塊使能信號,當en=1時模塊能正常工作,en=0時模塊關斷.
模塊的2個輸出端口中,o_vld表示輸出有效信號,z表示輸出密鑰流.當o_vld=1時表示輸出有效,此時標簽就可以使用z作為加解密的密鑰流.
本文設計的Grain-v1算法主要是通過數字電路來實現,在作綜合時發現絕大部分功耗來源于動態功耗,動態功耗主要來源于電源電壓、等效電容和工作頻率.本文在降低動態功耗方面做了以下幾項工作:
在工作頻率方面,自主標準對反向鏈路頻率允差有苛刻規定,為了達到時鐘精度要求,時鐘頻率需大于1.60 MHz[14],本文選取1.92 MHz作為模塊工作頻率.Grain-v1算法開始運行到產生密鑰流至少需要240個時鐘周期,即算法模塊產生密鑰所需的時間為125 μs,符合實際應用時間(300 μs)的要求.
動態功耗與工作電壓的平方成正比[15],降低工作電壓能大大降低動態功耗.但由于過低的工作電壓可能造成半導體器件無法正常工作.綜合考慮,本文設計的模塊使用1.0 V的工作電壓.
使用門控時鐘技術,設計的算法中加入了en(使能信號),目的是為了當不需要該模塊工作時,通過門控信號把輸入到該電路的時鐘關閉,這將大大降低電路的動態功耗.
控制邏輯中的有限狀態機的賦值對功耗大小影響很大,不同的有限狀態機的賦值可以產生完全不同的隨機邏輯.在確定的原始輸入概率下可獲得狀態之間轉換的概率(如從S1到S2轉換的概率).通過使轉換概率高的狀態間變化位數少,使得狀態機工作時總跳變位數最小化.
操作數隔離是指在某個組合邏輯的輸出在下一個周期不需要時,可以在該周期對其進行控制關斷,密鑰流輸出z只有在S2階段才有效,因此在S0和S1階段并不需要輸出z,也就是不需要使用z_tmp(內部變量)對z進行賦值,避免其進行無用的運算,進而降低功耗.
本文實現的算法每個時鐘周期輸出1 b密鑰流,雖然速度較慢,但功耗和占用面積小,符合在RFID標簽上集成應用的要求.根據文獻[12]所述,通過簡單增加硬件開銷能夠成倍地提升算法輸出的吞吐量.假設t為算法速度提高的倍數,為了實現這一特性,需要增加t-1倍的g(x),f(x)和及預輸出函數,算法最高可以支持t=16 b周期的密鑰流輸出,但是模塊功耗和占用面積相應地會有成倍的增加,如表1所示:

表1 不同倍數下的面積與吞吐率
在本文研究中,Grain-v1算法采用Verilog HDL語言編寫,并在Synopsys公司的NC Verilog仿真軟件中進行了仿真調試.仿真的關鍵信號的時序波形如圖6所示:
圖6中,state信號表示模塊所處的工作狀態,分別是S0,S1和S2狀態;key[79:0]表示輸入密鑰key位數是80 b,IV[63:0]則表示輸入的初始化向量iv位數是64 b.當o_vld為1時表示密鑰流輸出z是有效的.為了能夠更加直觀地觀察仿真數據,將密鑰輸出流z由串行轉為并行,即每產生4 b串行密鑰流就相應生成一個4 b的并行數據,對應的便是out_memory,這樣能夠更好地觀察波形.從仿真結果可以看出,根據文獻[12]給出的測試向量進行測試,用來仿真Grain加密模塊的功能是否正確.當輸入測試向量80 b密鑰key全為0,且64 b初始化向量iv也全為0時,輸出為“7B978CF36846E5F4EE0B”,該值與理論值相符.由仿真結果可知,整個算法運行需要240個時鐘周期,所以,當時鐘頻率為1.92 MHz時,密鑰流產生所需的時間為125 μs,符合實際應用的要求.
Grain-v1算法以其硬件開銷小算法架構簡單等特性使得其在加密方面有著廣泛的應用,然而根據一些文獻研究,其安全性能也存在一些漏洞,文獻[16]是對流密碼的安全性進行分析;文獻[17]提出了一種新的對Grain-v1差分攻擊方法;文獻[18]提出了密鑰恢復攻擊,并提出了一種改進設計;文獻[19]則提出了改進NFSR的反饋函數并將LFSR設計成NFSR,重新設計反饋函數中的抽頭(即反饋函數中的幾個參數),從而在增加少量硬件開銷的情況下極大地提高了算法被破解的難度.還有文獻利用立方攻擊對算法安全性進行了分析.
本文介紹了一種可在UHF RFID標簽芯片上集成使用的加密算法Grain-v1,并且對國軍標雙向認證協議和安全通信協議進行了介紹,提出了一種結合Grain-v1算法和國軍標協議相結合的一種方案.針對Grain-v1算法,詳細闡述了其算法原理和工作過程,分析內部狀態跳轉,設計硬件架構,結合軟件進行仿真調試 .最后對其安全性問題及其改進方法進行了討論.該方案的提出彌補了自主標準與安全加密算法相結合的空白,并且能夠很好地應用在UHF RFID標簽芯片上,使得標簽芯片具有安全功能.
[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標簽加密算法設計及FPGA實現[D]. 上海: 公安部第三研究所防偽技術事業部, 2012
[5]趙蓮清. 基于Grain-128a算法的RFID安全機制[D]. 北京: 華北電力大學, 2013
[6]樓赟程. 基于Grain-v1 的RFID 安全認證協議[D]. 上海: 上海交通大學 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參數[S]. 總裝備部, 國防科學技術大學, 2011
[10]Thornton F, Haines B, Das A M, et al. RFID Security[M]. New York: Syngress Publishing,2006
[11]Stinson D S. 密碼學原理與實踐[M]. 馮登國譯. 北京: 電子工業出版社, 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 標簽編解碼算法[J]. 國防科技大學學報, 2013, 35(3): 126-131
[15]林豐成, 竺紅衛, 李立. 數字集成電路設計與技術[M]. 北京: 科學出版社, 2008
[16]王璐. 流密碼算法Grain的安全性研究[D]. 西安: 西安電子科技大學, 2011
[17]王璐, 胡予濮, 張振廣. 一種針對Grain-v1的新差分錯誤攻擊[J]. 計算機科學, 2011, 38(8): 80-82
[18]楊文峰. 流密碼Grain-v1的密鑰恢復攻擊及其改進[D]. 西安: 西安電子科技大學, 2010
[19]李雪峰. 基于RFID系統認證協議與加密算法的研究[D]. 上海: 東華大學, 2009

譚 洋
碩士研究生,主要研究方向為RFID電子標簽數字基帶設計和安全加密算法.
tanyangnudt@126.com

李建成
教授,碩士生導師,主要研究方向為專用集成電路設計及系統應用等.
lijc_hh@126.com

王宏義
講師,主要研究方向為射頻識別技術及應用等.
wanghongyi2011@163.com

蘇昌文
工程師,主要研究方向為ASIC設計.
suchangwen001@126.com

鄭妙霞
碩士研究生,主要研究方向為RFID電子標簽芯片數字基帶設計.
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