羅韶杰,張立臣
(廣東工業(yè)大學計算機學院, 廣州 510006)
RFID(Radio Frequency Identification)是一種利用無線射頻通信方式實現(xiàn)的非接觸式的能夠自動識別特定實體的技術(shù)。RFID系統(tǒng)包括后臺數(shù)據(jù)庫、標簽、讀寫器三種實體組成,因系統(tǒng)中的標簽具有耐磨損、成本低、壽命長、易攜帶等優(yōu)點,現(xiàn)RFID系統(tǒng)已被廣泛應用于物流、交通運輸、門禁系統(tǒng)等各行各業(yè)中[1]。因讀寫器與標簽之間采用無線方式進行傳輸信息,使得鏈路易受到信號干擾、通信消息被攻擊者竊聽等缺陷,RFID系統(tǒng)的安全性和隱私問題成為其更進一步的推廣的限制因素。
RFID系統(tǒng)中的標簽會在其生命周期中,標簽的所有權(quán)會經(jīng)常發(fā)生變化,相對應的標簽內(nèi)部存放的數(shù)據(jù)信息也在不斷更換。因此需確保標簽所有權(quán)在不斷變更過程中具備一定的安全要求:(1)所有權(quán)轉(zhuǎn)移協(xié)議要能夠抵抗較為常見的攻擊方式,比如,重放攻擊、去同步化攻擊等;(2)待標簽的所有權(quán)發(fā)生變化之后,標簽的原所有者便失去控制和訪問標簽隱私信息的權(quán)限,從而保證標簽新所有者的隱私安全性;(3)標簽的新所有者在確定獲取標簽的所有權(quán)之后,新所有者不能根據(jù)已有的信息推導出原所有者的隱私信息,用以來保護標簽原所有者的隱私安全性[2-3]。
Saito等[4]提出一種所有權(quán)轉(zhuǎn)移協(xié)議,協(xié)議基于可信第三方(TTP),協(xié)議雖然很好地解決了標簽所有權(quán)歸屬問題,但可信第三方的引入,使得整個系統(tǒng)的成本增加,且通信量也增加。Molnar等[5]給出一種所有權(quán)轉(zhuǎn)移協(xié)議,協(xié)議通過“假名”的方法來確保隱私信息不被泄露,該協(xié)議的實現(xiàn)需要引入一個共同的可信中心(TC),可信中心的引入,會導致系統(tǒng)成本的增加,同時可信中心在監(jiān)管不當?shù)那闆r下,容易造成隱私信息外泄。Song等人首先在文獻[6]中設計出一種所有權(quán)轉(zhuǎn)移協(xié)議,協(xié)議利用對稱加密的思想、HASH函數(shù)加密的算法對通信消息進行加密,一定程度上優(yōu)化了協(xié)議的計算復雜度。因文獻[6]中協(xié)議存在一定安全缺陷,Song等又在文獻[7]中設計出一種基于文獻[6]改進的協(xié)議方案,但改進后的方案仍存在無法抵抗攻擊者的去同步化攻擊缺陷。Kapoor等[8]詳細分析了Song等人設計出的方案存在的安全性不足問題,提出一種輕量級別的所有權(quán)轉(zhuǎn)移協(xié)議,其協(xié)議的創(chuàng)新點之處在于:新所有者的密鑰是隨機產(chǎn)生的。Munilla等[9]對Kapoor等提出的協(xié)議進行了嚴謹?shù)臄?shù)學推理,得出所提協(xié)議不適用于日常生活中的實際場景中,并同時Munilla等人利用噪聲標簽來替換可信第三方(TTP)的機制,提出一種新的輕量級別的所有權(quán)轉(zhuǎn)移協(xié)議。Doss.R等[10]提出一種所有權(quán)轉(zhuǎn)移協(xié)議,所提協(xié)議基于二次剩余定理來完成對信息的加密,二次剩余定理背景來源于數(shù)學中大數(shù)分解問題,具備較高的安全性,使得協(xié)議安全性很高;但協(xié)議所能適應的范疇僅僅只有無源標簽,使得協(xié)議的應用受到極大的限制。文獻[11]中提出一個所有權(quán)轉(zhuǎn)移協(xié)議,該協(xié)議基于Rabin算法實現(xiàn)對信息的加密,優(yōu)化之后的Rabin算法具有較低的計算量特征,使得文獻[11]中的協(xié)議具備輕量級的特征。文獻[12]中詳細分析了文獻[11]中所提方案的不足之處。文獻[12]中指出,攻擊者通過三次完整的竊聽、重放、假冒等手段,最終可使得標簽新所有者與標簽之間的共享密鑰失去同步性,得出文獻[11]中所提協(xié)議無法抵抗重放攻擊和去同步化攻擊的結(jié)論。并在分析之后,在文獻[12]中給出一個改進的協(xié)議。
對文獻[12]中的協(xié)議進行分析發(fā)現(xiàn),該協(xié)議仍舊存在一定的不足及可改進之處,仍有改進的空間,本文提出一種基于共享密鑰的所有權(quán)轉(zhuǎn)移協(xié)議。本文所提協(xié)議采用簡單的位運算對傳輸消息進行加密,降低通信實體的計算復雜度;協(xié)議中,為確保標簽所有權(quán)歸屬的唯一性,引入歸屬權(quán)標志位變量,根據(jù)變量當前的值,唯一確定標簽的所有權(quán)歸屬;為減少通信實體的存儲空間,同時也為減少變量的引入,將通信實體之間的共享密鑰作為一參數(shù)進行計算。通過安全性分析,說明所提協(xié)議具備所有權(quán)轉(zhuǎn)移所需的安全需求;性能分析,說明所提協(xié)議能夠減少通信實體計算復雜度。
結(jié)合圖1,文獻[12]協(xié)議的步驟可簡述如下。
步驟1標簽原所有者向標簽發(fā)出所有權(quán)轉(zhuǎn)移協(xié)議申請。
步驟2標簽計算M,同時將ID_L和M作為響應信息發(fā)送給標簽原所有者。
步驟3標簽原所有者查找ID_L是否存在。若不存在,協(xié)議結(jié)束。若存在,取出相對應的量,計算M′,然后比對M′與M。若相等,計算N和P,并將N和P發(fā)送標簽;若不相等,協(xié)議結(jié)束。
步驟4標簽對N和P進行驗證。驗證結(jié)果為真,計算Q,且將Q發(fā)送給標簽原所有者;驗證結(jié)果為假,協(xié)議結(jié)束。
步驟5標簽原所有者將Q、r1、IDi_L發(fā)送給標簽新所有者。
步驟6標簽新所有者查找IDi_L是否存在。若不存在,協(xié)議結(jié)束。若存在,取出相對應的量,并計算出X和Y,同時將X和Y的值發(fā)送給標簽。
步驟7標簽對X和Y進行驗證。驗證結(jié)果為真,開始更新信息,所有權(quán)轉(zhuǎn)移協(xié)議順利結(jié)束;驗證結(jié)果為假,協(xié)議結(jié)束,所有權(quán)轉(zhuǎn)移協(xié)議失敗。
圖1 文獻[12]的所有權(quán)轉(zhuǎn)移協(xié)議
文獻[12]協(xié)議中存在的不足:(1)協(xié)議無法確保數(shù)據(jù)r1的新鮮性。數(shù)據(jù)r1的更新操作是在協(xié)議開始之時利用賦值操作,即:r1=r_x來實現(xiàn),故通信過程中,當標簽在接收到驗證消息以后,即便是r_x立即動態(tài)刷新,也仍然無法確保r1的及時更新。因為攻擊者可在標簽動態(tài)刷新r_x之后,將r_x賦值給r1之前,阻塞該過程,從而使得協(xié)議無法確保數(shù)據(jù)r1的新鮮性。(2)協(xié)議存在安全缺陷。攻擊者通過竊聽兩輪完整的通信過程,便可在第三輪通信過程中假冒標簽發(fā)起攻擊,通過重放消息Q的方式,可截獲得到消息X、Y。阻塞合法標簽新所有者發(fā)送給標簽的信息,攻擊者將截獲的消息X、Y重放的方式發(fā)送給標簽,標簽將會進行反復認證通過,且進行信息更新,兩輪操作之后,導致標簽與新數(shù)據(jù)庫兩端的共享密鑰失去同步性,攻擊者的去同步化攻擊成功。
本文改進協(xié)議與文獻[12]中的協(xié)議對比,不同之處在于:
1) 改進的協(xié)議未采用Rabin加密算法對傳輸信息進行加密,而是采用字合成運算及交叉位運算進行加密;
2) 現(xiàn)有的文獻中,對于Rabin加密算法進行優(yōu)化后,其計算量最多也只能達到輕量級的級別,而字合成運算及交叉位運算的本質(zhì)屬于按位運算,該運算屬于超輕量級的級別,因此改進的協(xié)議在計算量方面較文獻[12]改進較大;
3) 改進的協(xié)議引入標簽所有權(quán)歸屬權(quán)標志位參量,能夠唯一確定歸屬權(quán);
4) 改進的協(xié)議能夠彌補文獻[12]中存在的安全缺陷,具體彌補方式參見文章安全性分析章節(jié)。
本文協(xié)議與其他此類RFID標簽所有權(quán)轉(zhuǎn)移協(xié)議一樣,做出如下假定[13-14]:1)標簽與標簽原所有者S_old之間通過無線方式通信,該鏈路不安全,易被攻擊者攻擊;2)標簽與標簽新所有者S_new之間通過無線方式通信,該鏈路不安全,易被攻擊者攻擊;3)標簽原所有者S_old與標簽新所有者S_new之間通過有線方式通信,該鏈路安全,不易被攻擊者攻擊;4)標簽、標簽原所有者S_old、標簽新所有者S_new中存放的信息是安全的,且攻擊者無法獲??;5)協(xié)議開始之前,標簽一端存放以下信息:(K,IDt,IDS,F(xiàn)LAG),標簽新所有者S_new一端存放以下信息:(S,IDt,IDS),標簽原所有者S_old一端存放以下信息:(K,IDS,IDt)。
設X、Y是兩個具有L位的二進制數(shù),X=x1x2x3…xL,Y=y1y2y3…yL。其中,xi、yi取值范圍為{0,1},i=1,2,…,L,Syn(X,Y)=YL-M+1YL-M+2…YLX1X2…XL-M。字合成運算Syn(X,Y)是指由X的前L-M位與Y的后M位組合而形成新的L位數(shù)組;其中M的設定為:M=Hw(Y),也可以為M=L-Hw(Y),Hw(Y)表示為Y的漢明重量。有關(guān)字合成運算更多規(guī)定可參考文獻[15]。圖2給出了一個字合成運算例子。
圖2 字合成運算檢測
交叉位運算Cro(X,Y)是指由X的奇數(shù)位和Y的偶數(shù)位相互交叉形成新的L位數(shù)組。交叉位運算可在標簽中按如下方式實現(xiàn):定義兩個指針p1和p2分別指向X和Y,當p1指向X的奇數(shù)位時,把此位置上的值賦予運算結(jié)果的偶數(shù)位;當p2指向Y的偶數(shù)位時,則把此位置上的值賦予運算結(jié)果的奇數(shù)位。有關(guān)交叉位運算更多規(guī)定可參考文獻[16]。圖3給出了一個交叉位運算例子。
圖3 交叉位運算
表1給出所有權(quán)轉(zhuǎn)移協(xié)議符號所表示的含義。
表1 符號說明
所有權(quán)轉(zhuǎn)移協(xié)議過程如圖4所示。
圖4 所有權(quán)轉(zhuǎn)移協(xié)議框圖
圖4中出現(xiàn)的公式解釋如表2所示。
表2 公式解釋
結(jié)合圖4,所有權(quán)轉(zhuǎn)移協(xié)議步驟描述如下:
步驟1標簽原所有者S_old向標簽發(fā)送所有權(quán)轉(zhuǎn)移請求。
步驟2標簽在接收到標簽原所有者S_old發(fā)送來的消息后,標簽首先查閱歸屬權(quán)標志位FLAG的值,當前FLAG=0,表示標簽原所有者擁有標簽的所有權(quán),標簽可進行后續(xù)操作。標簽將IDS發(fā)送給標簽原所有者S_old。
步驟3標簽原所有者S_old在接收到標簽發(fā)送來的消息后,查找是否存在IDS=IDS_old或IDS=IDS_new,若未找到,協(xié)議終止;反之,進行如下操作。
1) 標簽原所有者S_old中的線性反饋移位寄存器LFSR通過初始化得到三個隨機數(shù),依次記作:x,y,z。其中后續(xù)操作中,隨機數(shù)x、y由MIXBITS函數(shù)實時進行刷新。
2) 利用找到的與IDS相對應的IDt、K及1)中生成的隨機數(shù)x、y、z,計算得到M1、M2、M3、M4。
3) 標簽原所有者S_old將M1、M2、M3、M4發(fā)送給標簽。
其中有關(guān)M1、M2、M3、M4的計算公式見表2。
步驟4標簽在接收到標簽原所有者S_old發(fā)送來的消息后,標簽按照如下操作來驗證標簽原所有者S_old的真?zhèn)巍?/p>
1) 用自身存放的標識符IDt,自身存放的共享密鑰K,接收到的M1,計算得到隨機數(shù)x。即:x=Syn(IDt_L,K_R)⊕M1。
2) 用自身存放的標識符IDt,自身存放的共享密鑰K,接收到的M2,計算得到隨機數(shù)y。即:y=Cro(K_L,IDt_R)⊕M2。
3) 用自身存放的標識符IDt,自身存放的共享密鑰K,接收到的M3,計算得到隨機數(shù)z。即:z=Syn(K_L,IDt_R)⊕Cro(IDt_L,K_R)⊕M3。
4) 用1)計算得到的隨機數(shù)x,用2)計算得到的隨機數(shù)y,用3)計算得到的隨機數(shù)z,用自身存放的標識符IDt,自身存放的共享密鑰K,計算得到M4′。
5) 比對計算到的的M4′與接收到的M4是否相等。若不想等,表明標簽原所有者S_old是偽造的,協(xié)議終止;反之,標簽原所有者S_old通過標簽的驗證,并進行第6)步。
6) 標簽用1)計算得到的隨機數(shù)x,用2)計算得到的隨機數(shù)y,用3)計算得到的隨機數(shù)z,用自身存放的標識符IDt,自身存放的共享密鑰K,計算得到M5。
7) 標簽將M5發(fā)送給標簽原所有者S_old。其中有關(guān)M5的計算公式見表2。
步驟5標簽原所有者S_old在接收到標簽發(fā)送來的消息后,標簽原所有者S_old進行如下操作。
1) 自身產(chǎn)生的隨機數(shù)x、y、z,自身存放的IDt、K,計算得到M5′。然后比對計算得到的M5′與接收到的M5是否相等。若不相等,表明標簽是偽造的,協(xié)議終止;反之,表明標簽通過標簽原所有者S_old的真?zhèn)悟炞C,并進行第2)步。
2) 標簽原所有者S_old開始更新隨機數(shù)x、y,即:x=MIXBITS(x,IDt⊕K)、y=MIXBITS(y,IDt&K)。
3) 標簽原所有者S_old開始更新共享密鑰,即:K_old=K,K=K_new。
4) 標簽原所有者S_old告知標簽新所有者S_new開始進行所有權(quán)轉(zhuǎn)移操作,且將〈IDS、z〉一并發(fā)送給標簽新所有者S_new。
步驟6標簽新所有者S_new在接收到標簽原所有者S_old發(fā)送來的消息后,標簽新所有者S_new進行如下操作。
1) 標簽新所有者S_new產(chǎn)生一個隨機數(shù),記作t。
2) 用接收到的隨機數(shù)z,自身生成的隨機數(shù)t,計算得到標簽與標簽新所有者S_new之間的共享密鑰S,即S=MIXBITS(t,z)。
3) 用自身存放的IDt,接收到的隨機數(shù)z,自身生成的隨機數(shù)t,計算可得到M6。用自身存放的IDt,接收到的隨機數(shù)z,計算得到的共享密鑰S,計算可得到M7。用自身生成的隨機數(shù)t,計算得到的共享密鑰S,計算可得到M8。
4) 更新標簽的假名標識符,即:IDS_new=IDS⊕t。
5) 標簽新所有者S_new將〈M6、M7、M8〉一并發(fā)送給標簽。
其中有關(guān)M6、M7、M8的計算公式見表2。
步驟7標簽在接收到標簽新所有者S_new發(fā)送來的消息后,標簽進行如下操作。
1) 用自身存放的標識符IDt,之前計算得到的隨機數(shù)z,接收到的M6,計算可以得到隨機數(shù)t,即:t=M6⊕Syn(IDt,z)。
2) 用自身存放的標識符IDt,之前計算得到的隨機數(shù)z,接收到的M7,計算可以得到共享密鑰S,即:S=M7⊕Cro(IDt,z)。
3) 標簽用1)計算得到的隨機數(shù)t,用2)計算得到的共享密鑰S,計算可以得到M8′。然后比對計算得到M8′與接收到的M8是否相等,若不相等,表明標簽新所有者S_new是偽造的,協(xié)議終止;反之,標簽新所有者S_new通過標簽的真?zhèn)悟炞C,進行第4)步。
4) 標簽開始更新自身的標識符假名,更新標簽與標簽新所有者S_new之間的共享密鑰,即:IDS_new=IDS⊕t,K=M7⊕Cro(IDt,z)。
5) 標簽將歸屬權(quán)標志位FLAG的值由0置為1,即FLAG=1,表示所有權(quán)當前不再歸屬原所有者,而是歸屬于標簽新所有者S_new所有。到此,所有權(quán)轉(zhuǎn)移順利結(jié)束。
改進的所有權(quán)轉(zhuǎn)移協(xié)議具體流程如圖5。
圖5 所有權(quán)轉(zhuǎn)移協(xié)議的流程
去同步化攻擊也稱作異步攻擊,是指攻擊者通過某種手段使得通信實體之間相互認證用到的共享密鑰失去一致性,從而導致通信實體之間無法完成下次認證及通信。本文協(xié)議中,標簽原所有者S_old中不僅存放有當前標簽的標識符假名IDS信息,同時也存放上一次通信過程中用到的標簽的標識符假名IDS_old信息,因此即便是調(diào)用當前標簽的標識符假名IDS信息比對失敗,也可以調(diào)用上一次通信過程中用到的標簽的標識符假名IDS_old信息再次進行比對,從而抵抗住攻擊者的去同步化攻擊。
所有權(quán)唯一性是指標簽的所有權(quán)歸屬者必須唯一確定,不存在任何的不確定性。本文協(xié)議中,引入歸屬權(quán)標識位FLAG變量完成該任務。協(xié)議開始之前,歸屬權(quán)標識位FLAG變量的值為0,表明當前標簽的所有權(quán)歸屬者為標簽原所有者S_old擁有,使得標簽新所有者S_new無法訪問標簽。在所有權(quán)協(xié)議轉(zhuǎn)移結(jié)束之時,標簽中的歸屬權(quán)標識位FLAG變量的值為設置為1,表示所有權(quán)轉(zhuǎn)移完成,且當前標簽的所有權(quán)歸屬者為標簽新所有者S_new擁有,同時標簽原所有者S_old已失去訪問標簽的權(quán)限。整個過程中,標簽中的歸屬權(quán)標識位FLAG變量的值要么為0,要么為1,不可能存在其他狀態(tài),使得標簽的所有權(quán)歸屬清晰且明確。故協(xié)議能夠確保所有權(quán)的唯一性。
重放攻擊是指攻擊者通過竊聽某一輪完整的通信過程在獲取通信消息之后,重放某通信信息,以破解隱私信息。本文協(xié)議中,在不安全的通信實體鏈路中均采用密文傳輸機制,攻擊者即便是截獲通信消息,獲取的也只是密文;其次,傳輸信息加密過程中均混入隨機數(shù),且不同的隨機數(shù)短時間內(nèi)不會重復出現(xiàn),加之隨機數(shù)的難預測性,使得前后兩次通信消息并不一樣,攻擊者無法通過重放上一輪的信息破解出有用信息。因此協(xié)議可以抵抗攻擊者的重放攻擊。
協(xié)議中有三個通信實體,因此攻擊者可以假冒其中任一個通信實體。下面將一一進行討論。
當攻擊者假冒標簽時,攻擊者偽裝成標簽向標簽原所有者S_old發(fā)送消息,企圖蒙混過關(guān),但攻擊者缺少關(guān)鍵隱私信息,比如:缺少標簽的標識符IDt,缺少標簽與標簽原所有者S_old之間共享密鑰K,使得攻擊者根本無法計算出隨機數(shù)x、y、z,從而更進一步無法計算出通信消息M5的正確值。在協(xié)議第五步驟中,標簽原所有者S_old通過簡單的計算,便可以識別出標簽的真?zhèn)?,攻擊者偽裝成標簽失敗。因此協(xié)議可以抵擋攻擊者偽裝成標簽發(fā)起的假冒攻擊。
當攻擊者偽裝成標簽原所有者S_old時,向標簽發(fā)送信息,攻擊者可以自己隨意生成隨機數(shù)x、y、z,進一步隨機選取IDt、K的值進行計算得到M1、M2、M3、M4,并一起發(fā)送給標簽。攻擊者這樣進行假冒攻擊,無法獲取任何有用隱私信息,因為標簽在第四步驟中對M1、M2、M3、M4進行驗證過程中,會識別出攻擊者的偽造的身份。攻擊者缺少正確的IDt、K的值,就無法計算出正確的M1、M2、M3、M4的值。當標簽一旦識別出攻擊者假冒身份之后,協(xié)議立刻終止。因此協(xié)議可以抵抗攻擊者偽裝成標簽原所有者S_old發(fā)起的假冒攻擊。
當攻擊者偽裝成標簽新所有者S_new時,向標簽發(fā)送信息,攻擊者因為缺少正確的標簽的標識符IDt,使得攻擊者無法正確計算出M6、M7、M8的值。當攻擊者把錯誤的M6、M7、M8傳輸給標簽之后,標簽在步驟七中,通過簡單的計算便可識別出攻擊者的真?zhèn)?。因此協(xié)議可以抵抗攻擊者偽裝成標簽新所有者S_new發(fā)起的假冒攻擊。
攻擊者可以通過監(jiān)聽一個完整的通信過程,獲取所有的通信信息,企圖采用窮舉的方式暴力的破解出一些有用的隱私信息。本文協(xié)議能夠抵抗攻擊者這種暴力的破解攻擊,原因如下:(1)本文協(xié)議中,但凡涉及到不安全的通信鏈路,在傳輸數(shù)據(jù)時,都是傳輸密文,而非明文傳輸;(2)通信信息不僅僅只是密文傳輸,且信息在加密過程中混入隨機數(shù),使得前后兩次的通信信息值是不完全一致的,更進一步增大攻擊者的破解難度;(3)所有傳輸?shù)耐ㄐ判畔⒃诩用苓^程中,都至少有兩個量,對于攻擊者來說,是不可能知曉的,比如:在公式M1=x⊕Syn(IDt_L,K_R)中,攻擊者對于公式里面的三個變量都是不知道,無法采用窮舉的方式進行破解。因此協(xié)議可以抵抗攻擊者發(fā)起的暴力破解攻擊。
本文采用BAN邏輯對文章中所提的認證協(xié)議進行形式化證明,證明過程中做出如下規(guī)定:標簽新所有者S_new與標簽原所有者S_old兩個通信實體中都含有讀寫器,將標簽原所有者S_old中的讀寫器用R1符號表示,將標簽新所有者S_new中的讀寫器用R2符號表示,標簽用T符號表示,證明過程如下。
消息①R1→T:REQUEST;
消息②T→R1:IDS;
消息③R1→T:M1,M2,M3,M4;
消息④T→R1:M5;
消息⑤R1→R2:IDS,z;
消息⑥R2→T:M6,M7,M8。
P13:R1|≡#(x),標簽原所有者S_old中的讀寫器相信隨機數(shù)x的新鮮性。
P14:T|≡#(x),標簽相信隨機數(shù)x的新鮮性。
P15:R2|≡#(x),標簽新所有者S_new中的讀寫器相信隨機數(shù)x的新鮮性。
P16:R1|≡#(y),標簽原所有者S_old中的讀寫器相信隨機數(shù)y的新鮮性。
P17:T|≡#(y),標簽相信隨機數(shù)y的新鮮性。
P18:R2|≡#(y),標簽新所有者S_new中的讀寫器相信隨機數(shù)y的新鮮性。
P19:T|≡R1|?M1,標簽相信標簽原所有者S_old中的讀寫器對消息M1的管轄權(quán)。
P20:T|≡R1|?M2,標簽相信標簽原所有者S_old中的讀寫器對消息M2的管轄權(quán)。
P21:T|≡R1|?M3,標簽相信標簽原所有者S_old中的讀寫器對消息M3的管轄權(quán)。
P22:T|≡R1|?M4,標簽相信標簽原所有者S_old中的讀寫器對消息M4的管轄權(quán)。
P23:T|≡R2|?M6,標簽相信標簽新所有者S_new中的讀寫器對消息M6的管轄權(quán)。
P24:T|≡R2|?M7,標簽相信標簽新所有者S_new中的讀寫器對消息M7的管轄權(quán)。
P25:T|≡R2|?M8,標簽相信標簽新所有者S_new中的讀寫器對消息M8的管轄權(quán)。
P26:R1|≡T|?M5,標簽原所有者S_old中的讀寫器相信標簽對消息M5的管轄權(quán)。
G1:T|≡M1,標簽相信消息M1。
G2:T|≡M2,標簽相信消息M2。
G3:T|≡M3,標簽相信消息M3。
G4:T|≡M4,標簽相信消息M4。
G5:T|≡M6,標簽相信消息M6。
G6:T|≡M7,標簽相信消息M7。
G7:T|≡M8,標簽相信消息M8。
G8:R1|≡M5,標簽原所有者S_old中的讀寫器相信消息M5。
由假設P14及消息新鮮性法則⊕(如果一個消息的一部分是新鮮的,則整個消息也是新鮮的),得T|≡#(M1)。
由已經(jīng)推導出來的T|≡R1|~M1、T|≡#(M1)及隨機數(shù)驗證法則⊕,得到T|≡R1|≡M1。
運用上述條件和法則,同理可證得G2至G8。此處不再贅述。
本文協(xié)議與其他此類RFID標簽所有權(quán)轉(zhuǎn)移協(xié)議進行性能分析,分析對象為標簽,性能分析主要包括標簽一端的計算量、標簽一端的存儲空間大小等。性能分析結(jié)果如表3所示。
表3 性能分析結(jié)果
對表3中的符號進行具體含義說明,說明如下:ph1表示交叉位運算的計算量;ph2表示字合成運算的計算量;ph3表示HASH函數(shù)操作的計算量;ph4表示位運算的計算量(異或運算、與運算均、移位運算屬于按位運算,因位運算屬于超輕量級的計算,計算量非常小,因此可將異或運算的計算量、與運算的計算量、移位運算的計算量看成是等量的計算量,用一個相同的符號表示);ph5表示MIXBITS函數(shù)操作的計算量;ph6表示Rabin加密算法操作的計算量;ph7表示生成隨機數(shù)操作的計算量。約定共享密鑰S(或K)、標簽的標識符IDt、標簽的標識符假名IDS的長度均為l、歸屬權(quán)標志位FLAG只需要1位就可以。
因本文協(xié)議中,標簽一端事先需要存放的信息有:共享密鑰K、標簽的標識符IDt、標簽的標識符假名IDS、歸屬權(quán)標志位FLAG,因此標簽一端的存儲空間大小為(3l+1)即可滿足需求。本文協(xié)議與其他協(xié)議比較,標簽一端滿足低成本的要求。
在ph1、ph2、ph3、ph4、ph5、ph6、ph7中,計算量由大到小依次排列的順序是:ph3、ph6、ph5、ph7、ph2、ph1、ph4。其中ph4屬于超輕量級的計算,相對于ph6、ph3來說,ph4的計算量要遠遠少于ph6、ph3的計算量,因此ph4的操作次數(shù)多幾次,對整體的計算量影響幾乎可忽略。ph2、ph1是采用移位的方式進行的計算,計算量也不大,兩者的計算量相錯不大,且小于ph6、ph3的計算量。
從表3中,本文協(xié)議與其他所有權(quán)轉(zhuǎn)移協(xié)議進行計算量比較,本文協(xié)議摒棄計算量較大的哈希函數(shù)及Rabin算法加密方法,采用交叉位運算、字合成運算、按位運算進行加密,基于上述分析,本文協(xié)議標簽端的計算量要少于其他協(xié)議的計算量,達到降低標簽一端計算量的目標;同時本文協(xié)議能夠彌補其他協(xié)議存在的安全隱患問題。
為進一步解釋清楚表中計算量相關(guān)數(shù)據(jù)得來原因,此處選擇本協(xié)議作為研究對象,進行詳細展開講解;同時考慮到篇幅因素,這里選擇對本協(xié)議ph2表示字合成運算的計算量的5次數(shù)據(jù)進行詳細講解。詳細過程描述如下:
第2.2節(jié)步驟四的1)中,在計算隨機數(shù)x的時候,第一次用到ph2表示字合成運算。x=Syn(IDt_L,K_R)⊕M1。
第2.2節(jié)步驟四的3)中,在計算隨機數(shù)z的時候,第二次用到ph2表示字合成運算。z=Syn(K_L,IDt_R)⊕Cro(IDt_L,K_R)⊕M3。
第2.2節(jié)步驟四的6)中,在計算M5′的時候,第三次用到ph2表示字合成運算。M5′=Syn(x,IDt)&Cro(K,y)&z。
第2.2節(jié)步驟七的1)中,在計算隨機數(shù)t的時候,第四次用到ph2表示字合成運算。t=M6⊕Syn(IDt,z)。
第2.2節(jié)步驟七的3)中,在計算M8′的時候,第五次用到ph2表示字合成運算。M8′=Syn(t,S)&Cro(t,S)。
1) 針對現(xiàn)有的所有權(quán)轉(zhuǎn)移協(xié)議進行分析,指出協(xié)議存在的安全缺陷,并在此基礎(chǔ)之上設計出一種改進的所有權(quán)轉(zhuǎn)移協(xié)議。
2) 改進的協(xié)議為降低標簽端的存儲空間,將標簽的標識符IDt作為計算中一個參量,從而減少其他參數(shù)的引入;改進的協(xié)議為確保所有權(quán)具備唯一確定性,引入歸屬權(quán)標志位FLAG變量,根據(jù)歸屬權(quán)標志位FLAG變量的值唯一確定所有權(quán)歸屬問題;改進的協(xié)議中采用字合成運算、交叉位運算對傳輸信息進行加密,能夠有效減少通信實體的計算量。
3) 安全性分析部分表明本文協(xié)議具備完整的安全需求,性能分析部分表明本文協(xié)議具備低成本、低計算量的要求。