一種基于標(biāo)簽id的超輕量級rfid雙向認(rèn)證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及射頻識別技術(shù)領(lǐng)域,更具體地說,涉及一種基于標(biāo)簽ID的超輕量級 RFID雙向認(rèn)證方法。
【背景技術(shù)】
[0002] RFID(Radio Frequency Identification,射頻識別)是一種自動識別人或物的非 接觸式技術(shù),這種識別無需物理接觸或其它任何可見的接觸。如今,RFID系統(tǒng)廣泛應(yīng)用于供 應(yīng)鏈管理場合、數(shù)字圖書館管理場合、防偽造的電子護(hù)照系統(tǒng),甚至是構(gòu)建智能自組網(wǎng)絡(luò)環(huán) 境等等。
[0003] RFID系統(tǒng)包含有后端數(shù)據(jù)庫、讀寫器及標(biāo)簽三部分。后端數(shù)據(jù)庫和讀寫器之間的 通信信道,一般認(rèn)為是安全可靠的;讀寫器和標(biāo)簽之間的信道暴露在空氣中,極容易被監(jiān) 聽,進(jìn)一步的還可以對讀寫器或標(biāo)簽進(jìn)行偽造欺騙,因此需要為讀寫器和標(biāo)簽之間的通信 設(shè)計(jì)可靠的雙向認(rèn)證協(xié)議,用以保證整個RFID系統(tǒng)的安全性。
[0004] 為了降低標(biāo)簽的生產(chǎn)成本,在設(shè)計(jì)更加安全的雙向認(rèn)證協(xié)議時,同時也要考慮低 成本標(biāo)簽的有限計(jì)算能力和存儲空間。由于標(biāo)簽的大規(guī)模生產(chǎn),使得降低標(biāo)簽成本的需求 越來越突出。然而,標(biāo)簽成本的降低,往往需要在設(shè)計(jì)系統(tǒng)時犧牲一定的安全性。
[0005] 二代標(biāo)簽在2006年作為IS018000-6C標(biāo)準(zhǔn)被采納,并將應(yīng)用于主流的RFID系統(tǒng)。二 代標(biāo)簽包含一個偽隨機(jī)數(shù)產(chǎn)生器并使用循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check,CRC) 來保證信息的完整性。其存儲空間被劃分為四個部分:保留存儲區(qū)、產(chǎn)品電子編碼區(qū)(EPC)、 標(biāo)簽ID區(qū)和用戶區(qū)。二代標(biāo)簽通過電線接收來自閱讀器的供電。
[0006] 早期的認(rèn)證協(xié)議LMAP使用了簡單的異或(X0R)、與(AND)、或(0R)及模二加(+ )運(yùn) 算,有效的降低了標(biāo)簽的生產(chǎn)成本。LMAP協(xié)議后被稱為超輕量級認(rèn)證協(xié)議,然而,LAMP協(xié)議 并不完善,經(jīng)過研究發(fā)現(xiàn)存在安全漏洞。改進(jìn)的超輕量認(rèn)證協(xié)議SASI引入了左循環(huán)位移運(yùn) 算Rot(X,Y):將X循環(huán)左移wt(y)位,wt(y)為Y的漢明重量,通過Rot運(yùn)算提高了協(xié)議加密算 法的復(fù)雜程度,增強(qiáng)了認(rèn)證的安全性。然而后來又被指出該協(xié)議的輸出結(jié)果具有較大的偏 重性,導(dǎo)致標(biāo)簽的隱私性不強(qiáng)且易受跟蹤攻擊。此后,研究人員又引入MIXBITS函數(shù)提出了 Gossamer協(xié)議,但有學(xué)者分析發(fā)現(xiàn)其存在拒絕服務(wù)攻擊等安全缺陷。
[0007] 此外,現(xiàn)有認(rèn)證方法還存在以下不足:(一)在認(rèn)證過程中,標(biāo)簽需要產(chǎn)生隨機(jī)數(shù), 因此標(biāo)簽上必須安裝有隨機(jī)數(shù)產(chǎn)生器,隨機(jī)數(shù)產(chǎn)生器的存在使得標(biāo)簽門電路的個數(shù)增多, 導(dǎo)致實(shí)現(xiàn)成本增加;(二)標(biāo)簽與讀寫器之間傳輸?shù)男畔⑼ㄟ^明文傳輸,攻擊者很容易就可 獲取某些隱私,存在著嚴(yán)重的安全缺陷;(三)使用HASH函數(shù)、DES算法等運(yùn)算量大的算法進(jìn) 行加密運(yùn)算,整個認(rèn)證過程時間較長,使得標(biāo)簽的成本達(dá)不到超輕量級認(rèn)證協(xié)議的要求; (四)認(rèn)證過程中所涉及到的量較多,必然會導(dǎo)致計(jì)算量的增加,同時標(biāo)簽需要存放的信息 較多,必然使得標(biāo)簽端的存儲空間增大,從而導(dǎo)致標(biāo)簽的整體成本上升。
[0008] 基于上述原因,因此設(shè)計(jì)一種運(yùn)算量少、認(rèn)證時間短、有利于降低標(biāo)簽成本、安全 性能高的雙向認(rèn)證方法具有重大的實(shí)用價(jià)值。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的缺點(diǎn)與不足,提供一種基于標(biāo)簽ID、充分利 用標(biāo)簽和讀寫器之間共享的標(biāo)簽唯一的標(biāo)識符信息、運(yùn)算量少、認(rèn)證時間短、可降低標(biāo)簽成 本、安全性能高的超輕量級RFID雙向認(rèn)證方法。
[0010] 為了達(dá)到上述目的,本發(fā)明通過下述技術(shù)方案予以實(shí)現(xiàn):一種基于標(biāo)簽ID的超輕 量級RFID雙向認(rèn)證方法,其特征在于,包括如下步驟:
[0011] 第一步,讀寫器向標(biāo)簽發(fā)送認(rèn)證請求命令;
[0012]第二步,標(biāo)簽在接收到認(rèn)證請求命令后將標(biāo)識符前半部分值ID_L&送至讀寫器;
[0013] 第三步,讀寫器判斷接收到的標(biāo)識符前半部分值ID_L是否在儲存數(shù)據(jù)中存在相同 數(shù)值:
[0014] 若不存在,則判定標(biāo)簽偽造,認(rèn)證結(jié)束;
[0015] 若存在,則讀寫器調(diào)取與所述標(biāo)識符前半部分值對應(yīng)的標(biāo)識符ID'、標(biāo)識符 后半部分值ID_R'和共享密鑰K',并產(chǎn)生隨機(jī)數(shù)r;隨機(jī)數(shù)r、標(biāo)識符前半部分值ID_L'、標(biāo)識 符后半部分值ID_R'和共享密鑰K'的長度相同;讀寫器將標(biāo)識符后半部分值ID_R'和隨機(jī)數(shù) r加密形成數(shù)值A(chǔ);將標(biāo)識符ID'、標(biāo)識符后半部分值ID_R'、共享密鑰K'和隨機(jī)數(shù)r加密形成 數(shù)值B;讀寫器將數(shù)值A(chǔ)和數(shù)值B發(fā)送至標(biāo)簽;
[0016] 第四步,標(biāo)簽利用標(biāo)識符后半部分值10_1?解密數(shù)值A(chǔ)得到數(shù)值r';利用標(biāo)識符ID、 標(biāo)識符后半部分值ID_R、共享密鑰K和數(shù)值r '計(jì)算數(shù)值B ' ;判斷數(shù)值B和數(shù)值B '的大?。?[0017]若數(shù)值B矣數(shù)值B',則判定讀寫器偽造,認(rèn)證結(jié)束;
[0018]若數(shù)值B =數(shù)值B',則判定讀寫器合法;標(biāo)簽將標(biāo)識符ID、標(biāo)識符后半部分值ID_R、 共享密鑰K和數(shù)值r '加密形成數(shù)值D,并將數(shù)值D發(fā)送至讀寫器;
[0019] 第五步,讀寫器利用標(biāo)識符ID'、標(biāo)識符后半部分值ID_R'、共享密鑰K'和隨機(jī)數(shù)r 計(jì)算數(shù)值D ' ;判斷數(shù)值D和數(shù)值D '的大?。?br>[0020] 若數(shù)值D矣數(shù)值D',則判定標(biāo)簽偽造,認(rèn)證結(jié)束;
[0021 ]若數(shù)值D =數(shù)值D',則判定標(biāo)簽合法;讀寫器計(jì)算新的共享密鑰K'ne3W以實(shí)現(xiàn)共享密 鑰更新,并將新的共享密鑰K ' new和隨機(jī)數(shù)r加密形成數(shù)值E;讀寫器將數(shù)值E發(fā)送至標(biāo)簽;
[0022] 第六步,標(biāo)簽利用數(shù)值r'解密數(shù)值E來獲取新的共享密鑰Kne3W。
[0023] 優(yōu)選地,所述第三步中,讀寫器將標(biāo)識符后半部分值ID_R'和隨機(jī)數(shù)r加密形成數(shù) 值A(chǔ)是指:A=I1)_R' ?r;
[0024] 所述第四步中,標(biāo)簽利用標(biāo)識符后半部分值10_1?解密數(shù)值A(chǔ)得到數(shù)值r'是指: =A?ID_R〇
[0025] 所述第三步中,將標(biāo)識符ID'、標(biāo)識符后半部分值ID_R'、共享密鑰K'和隨機(jī)數(shù)r加 密形成數(shù)值B是指:B=CRC(Cro(K' | | ID-K,,ID')? (K,| | r));
[0026] 所述第四步中,利用標(biāo)識符ID、標(biāo)識符后半部分值ID_R、共享密鑰K和數(shù)值r'計(jì)算 數(shù)值B,是指:B? =CIC (Cro alilDJlJD) ? (K|lr? :))0
[0027] 所述第四步中,標(biāo)簽將標(biāo)識符ID、標(biāo)識符后半部分值ID_R、共享密鑰K和數(shù)值r'加 密形成數(shù)值 D 是指:D=(:R(_: (Cro (K, r,)||ID-R?ID);
[0028] 所述第五步中,讀寫器利用標(biāo)識符ID'、標(biāo)識符后半部分值ID_R'、共享密鑰Κ'和隨 機(jī)數(shù)r計(jì)算數(shù)值D'是指:D' =CRC(Cro(K,r')||ID_R0ID)。
[0029] 所述第五步中,讀寫器計(jì)算新的共享密鑰K'new以實(shí)現(xiàn)共享密鑰更新是指: K' 細(xì)=CRC (Cro (r/ID--R')ΦΚ')。
[0030] 所述第五步中,將新的共享密鑰K'new和隨機(jī)數(shù)r加密形成數(shù)值E是指: E=K' nes?r;
[0031 ]所述第六步中,標(biāo)簽利用數(shù)值r '解密數(shù)值E來獲取新的共享密鑰Kne3W是指: Kn"=r,ΘΕ。
[0032] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)與有益效果:
[0033] 1、本發(fā)明雙向認(rèn)證方法拋棄傳統(tǒng)的Hash運(yùn)算加密傳輸?shù)姆椒?,采用位運(yùn)算方法以 及循環(huán)校驗(yàn)碼方法對傳輸信息進(jìn)行加密,從而減少標(biāo)簽及讀寫器的運(yùn)算量,使通訊協(xié)議可 以達(dá)到超輕量級的級別,縮短認(rèn)證時間;
[0034] 2、本發(fā)明雙向認(rèn)證方法不同于傳統(tǒng)方法采用標(biāo)簽產(chǎn)生隨機(jī)數(shù)的方式,選擇由讀寫 器產(chǎn)生隨機(jī)數(shù),從而達(dá)到降低標(biāo)簽成本的目標(biāo);
[0035] 3、本發(fā)明雙向認(rèn)證方法充分利用標(biāo)簽和讀寫器之間共享的標(biāo)簽唯一的標(biāo)識符信 息,減少信息的引入和存放,將標(biāo)識符分成標(biāo)識符前半部分值和標(biāo)識符后半部分值兩個部 分進(jìn)行加密傳輸,作為雙向認(rèn)證的憑據(jù),從而降低標(biāo)簽的存儲成本;
[0036] 4、本發(fā)明雙向認(rèn)證方法拋棄以往在標(biāo)簽通過復(fù)雜計(jì)算來更新標(biāo)簽與讀寫器之間 共享密鑰的做法,而是在讀寫器計(jì)算新的共享密鑰,并將新共享密鑰通過簡單的加密傳輸 給標(biāo)簽,標(biāo)簽只需要進(jìn)行簡單的異或運(yùn)算即可得到新的共享密鑰,從而減少了標(biāo)簽的計(jì)算 量;
[0037] 5、本發(fā)明雙向認(rèn)證方法在標(biāo)簽與讀寫器之間傳輸?shù)男畔⒍际墙?jīng)過加密后再傳輸, 使攻擊者難以獲取有效信息,可有效提高安全性能。
【附圖說明】
[0038]圖1是本發(fā)明雙向認(rèn)證方法的流程圖;
[0039]圖2是本發(fā)明雙向認(rèn)證方法中交叉位運(yùn)算計(jì)算過程流程圖。
【具體實(shí)施方式】
[0040]下面結(jié)合附圖與【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的描述。
[0041 ] 實(shí)施例
[0042] 本實(shí)施例基于標(biāo)簽ID的超輕量級RFID雙向認(rèn)證方法,其流程如圖1所示,包括如下 步驟:
[0043]第一步,讀寫器向標(biāo)簽發(fā)送認(rèn)證請求命令;例如發(fā)送字符串"Hello"作為認(rèn)證請求 命令;
[0044]第二步,標(biāo)簽在接收到認(rèn)證請求命令后將標(biāo)識符前半部分值ID_L&送至讀寫器; 標(biāo)識符前半部分值ID_L是指儲存在標(biāo)簽中的標(biāo)識符ID的前半部分;
[0045]第三步,讀寫器判斷接收到的標(biāo)識符前半部分值ID_L是否在儲存數(shù)據(jù)中存在相同 數(shù)值:
[0046]若不存在,則判定標(biāo)簽偽造,認(rèn)證結(jié)束;
[0047]若存在,則讀寫器調(diào)取與所述標(biāo)識符前半部分值對應(yīng)的標(biāo)識符ID'、標(biāo)識符 后半部分值ID_R'和共享密鑰K',并產(chǎn)生隨機(jī)數(shù)r;隨機(jī)數(shù)r、標(biāo)識符前半部分值ID_L'、標(biāo)識 符后半部分值ID_R'和共享密鑰K'的長度相同;讀寫器將標(biāo)識符后半部分值ID_R'和