劉宗妹 徐金成
(廣東司法警官職業(yè)學(xué)院信息管理系 廣東 廣州 510520)
射頻識(shí)別系統(tǒng)[1-2]因其自身特有的屬性特點(diǎn),在公交卡系統(tǒng)等各個(gè)領(lǐng)域中均有涉及[3]。典型的RFID系統(tǒng)由標(biāo)簽、讀卡器、數(shù)據(jù)庫(kù)組成,其中讀卡器與數(shù)據(jù)庫(kù)之間采用較為安全的有限方式通信,一般認(rèn)定為可靠,因此常將二者看作一個(gè)整體以便于研究及建模型[4-5]。
標(biāo)簽在運(yùn)用過(guò)程中,標(biāo)簽的歸屬者會(huì)經(jīng)常發(fā)生變更,一個(gè)經(jīng)典的運(yùn)用鏈如下:嵌有標(biāo)簽的商品由生產(chǎn)商生產(chǎn)出來(lái),未出場(chǎng)之前,商品的歸屬者是生產(chǎn)商;批發(fā)商從生產(chǎn)商購(gòu)買(mǎi)商品后,商品的歸屬者由生產(chǎn)商變更為批發(fā)商;當(dāng)零售商從批發(fā)購(gòu)買(mǎi)商品后,商品的歸屬者由批發(fā)商變更為零售商;最終消費(fèi)者會(huì)從零售商手上買(mǎi)得該商品,商品的歸屬者由零售商又變更為消費(fèi)者[6-8]。在上述歸屬者變更過(guò)程中,存放在標(biāo)簽中的隱私信息需要保證其安全性,同時(shí)也需要確保信息的前向安全性和后向安全性[9-11]。
為能夠保障標(biāo)簽在其生命過(guò)程中歸屬者變化時(shí),隱私信息的安全性,文獻(xiàn)[12]中基于SQUASH提出一種超輕量級(jí)所有權(quán)轉(zhuǎn)移協(xié)議,同時(shí)聲稱(chēng)能夠抵抗去同步化等攻擊。文獻(xiàn)[13]中對(duì)文獻(xiàn)[12]的安全性提出了質(zhì)疑,分析了協(xié)議并不具備抵抗攻擊者發(fā)起的異步攻擊能力,并提出了一個(gè)超輕量級(jí)協(xié)議,但該協(xié)議的安全性仍有待全面的系統(tǒng)驗(yàn)證,同時(shí)該協(xié)議無(wú)法滿(mǎn)足重放攻擊。文獻(xiàn)[14]提出一種協(xié)議,但分析后發(fā)現(xiàn),協(xié)議因使用隨機(jī)數(shù)的明文傳送,使得協(xié)議存在一定的缺陷,無(wú)法抵抗假冒攻擊。文獻(xiàn)[15]同樣利用二次剩余設(shè)計(jì)一種協(xié)議,協(xié)議主要存在的問(wèn)題在于每次通信完成后,通信實(shí)體并沒(méi)有對(duì)認(rèn)證用到的共享密鑰進(jìn)行更新, 從而無(wú)法提供追蹤攻擊的抵抗能力。
鑒于現(xiàn)有的大多數(shù)所有權(quán)協(xié)議存在如下缺陷:1) 通信過(guò)程復(fù)雜;2) 通信協(xié)議中,通信實(shí)體的計(jì)算量大;3) 通信協(xié)議自身具備的安全缺陷,無(wú)法提供安全性。在分析眾多協(xié)議基礎(chǔ)之上,本文給出一種所有權(quán)協(xié)議。協(xié)議基于二次剩余和置換再交叉運(yùn)算對(duì)信息加密,對(duì)于較為重要的隱私信息基于二次剩余進(jìn)行加密,增大攻擊者的破解難度,其他信息采用置換再交叉運(yùn)算進(jìn)行加密,這樣使得在確保信息安全的前提下, 也可以滿(mǎn)足降低計(jì)算量的要求。
對(duì)協(xié)議中出現(xiàn)的符號(hào)進(jìn)行如下說(shuō)明:
Sold:標(biāo)簽原所有者;
Snew:標(biāo)簽新所有者;
Ti:第i個(gè)標(biāo)簽;
Sold_ID:Sold的標(biāo)識(shí)符;
Snew_ID:Snew的標(biāo)識(shí)符;
TID_L:Ti標(biāo)識(shí)符的左半部分;
TID_R:Ti標(biāo)識(shí)符的右半部分;
p1、q1:Sold隨機(jī)選擇的兩個(gè)大素?cái)?shù);
n1:p1和q1的乘積,即n1=p1×q1;
p2、q2:Snew隨機(jī)選擇的兩個(gè)大素?cái)?shù);
n2:p2和q2的乘積,即n2=p2×q2;
Kold:Sold與Ti之間共享的密鑰;
Knew:Snew與Ti之間共享的密鑰;
r1、r2、r3:Ti產(chǎn)生的三個(gè)隨機(jī)數(shù);
r4:Snew產(chǎn)生的隨機(jī)數(shù);
⊕:按位異或運(yùn)算;
&:按位與運(yùn)算;
Rep-Rec(X,Y):置換再交叉運(yùn)算;
X2modn:模運(yùn)算。
置換再交叉運(yùn)算在文中用符號(hào)Rep-Rec(X,Y) (Replacement and Re-cross Operation)表示,其具體定義如下:X、Y、Z均表示長(zhǎng)度為偶數(shù)L位的二進(jìn)制序列;指針P1、P2分別指向二進(jìn)制序列X、Y;HW(X)表示二進(jìn)制序列X的漢明重量。
指針P1、P2分別指向二進(jìn)制序列X、Y的第一位,然后開(kāi)始進(jìn)行遍歷操作,當(dāng)指針P1所指向二進(jìn)制序列X的第i位為0時(shí),指針P2所指向二進(jìn)制序列Y的第i位數(shù)值進(jìn)行取反操作,即0變1、1變0;當(dāng)指針P1所指向二進(jìn)制序列X的第i位為1時(shí),指針P2所指向二進(jìn)制序列Y的第i位數(shù)值不變。依照上述操作可得到二進(jìn)制序列Z,即完成置換操作。
HW(X)表示二進(jìn)制序列X的漢明重量、HW(Y)表示二進(jìn)制序列Y的漢明重量、HW(X-Y)表示HW(X)與HW(Y)的差值絕對(duì)值。根據(jù)HW(X)、HW(Y)兩者具體數(shù)值大小關(guān)系進(jìn)行不同的運(yùn)算。具體地,當(dāng)HW(X)≥HW(Y)時(shí),將二進(jìn)制序列Z的左邊HW(X-Y)位、二進(jìn)制序列Z的右邊L-HW(X-Y)位進(jìn)行交換,即可得到的Rep-Rec(X,Y)值;當(dāng)HW(X) 為更好地描述出置換再交叉運(yùn)算的實(shí)現(xiàn),結(jié)合例子進(jìn)行解釋。此處取L=12,X=0001 1101 1111,Y=1101 1000 0001,則HW(X)=8,HW(Y)=5,HW(X-Y)=3,Z=0011 1010 0001,Rep-Rec(X,Y)=1101 0000 1001,如圖1所示。此處取L=12,X=1001 1101 0010,Y=1101 1111 0001,則HW(X)=6,HW(Y)=8,HW(X-Y)=2,Z=1011 1101 1100,Rep-Rec(X,Y)=0010 1111 0111,如圖2所示。 圖1 置換再交叉運(yùn)算(HW(X)≥HW(Y)) 圖2 置換再交叉運(yùn)算(HW(X) 所有權(quán)轉(zhuǎn)移協(xié)議共分為兩個(gè)階段:初始化階段;所有權(quán)轉(zhuǎn)移階段。 (1) 初始化階段。所有權(quán)轉(zhuǎn)移協(xié)議開(kāi)始之前,Sold隨機(jī)選擇p1、q1大素?cái)?shù),計(jì)算兩者的積,同時(shí)賦值給n1。將事先計(jì)算好的B的值,同時(shí)存放在Sold、Snew、Ti三者中。Sold中存放Sold_ID、Kold;Snew中存放Snew_ID;Ti中存放Sold_ID、Kold、Snew_ID。 (2) 所有權(quán)轉(zhuǎn)移階段。對(duì)圖3中字符進(jìn)行解釋?zhuān)?/p> A=n1⊕Sold_ID; B=Rep-Rec (TID_L⊕TID_R,TID_L&TID_R); B′=Rep-Rec (Knew⊕x,Knew&x); D=B⊕Sold_ID⊕r1; D″=D4modn′1; E=Snew_ID⊕r2; F=Sold_ID⊕r1; G=B⊕r′1; H=Rep-Rec(G⊕n2⊕r′2,G&n2&r′2); M=n2⊕Snew_ID; N=Kold⊕r3; N′=N2modn2; N″=N4modn2; P=Rep-Rec(N⊕n2,N&n2); Q=Knew⊕x; L=r4⊕x; V=Rep-Rec(r4⊕Q,r4&Q)。 所有權(quán)轉(zhuǎn)移協(xié)議如圖3所示。 圖3 所有權(quán)轉(zhuǎn)移協(xié)議 步驟1Sold用n1、Sold_ID來(lái)計(jì)算A的值,將A及Query指令傳送給Ti。 步驟2Ti收到信息后,先計(jì)算A⊕Sold_ID得到n′1,在生成r1、r2隨機(jī)數(shù),并用B、Sold_ID、r1計(jì)算D的值,用D、n′1計(jì)算D″的值,用Snew_ID、r2計(jì)算E的值,用Sold_ID、r1計(jì)算F的值,最后將(D″,E,F(xiàn))傳送給Sold。 步驟3Sold收到信息后,先計(jì)算F⊕Sold_ID得到隨機(jī)數(shù)r′1,用n1和D″通過(guò)二次剩余定理的方法,解出D的值,這里用D′表示,即Sold會(huì)解出以n為模的D2的D的值,利用p和q獲得D2的值。 比對(duì)D′⊕r′1與B⊕Sold_ID的值。若不相等,Ti驗(yàn)證不通過(guò),協(xié)議終止;若相等,說(shuō)明D′=D、r′1=r1,Sold用B、r′1來(lái)計(jì)算G的值,最后將(G,E)傳送給Snew。 步驟4Snew收到信息后,先隨機(jī)生成p2、q2大素?cái)?shù),并計(jì)算n2=p2q2,接著計(jì)算E⊕Snew_ID得到隨機(jī)數(shù)r′2,然后用G、n2、r′2計(jì)算H的值,用n2、Snew_ID計(jì)算M的值,最后將(H,G,M)傳送給Ti。 步驟5Ti收到信息后,先計(jì)算M⊕Snew_ID得到n′2,接著用r1、B、n′2、r2來(lái)計(jì)算H′的值,即: H′=Rep-Rec((B⊕r1)⊕n′2⊕r2, (B⊕r1)&n′2&r2)。 比對(duì)H′與H的值。若相等,說(shuō)明n2′=n2,r′2=r2,接著Ti生成r3隨機(jī)數(shù),用Kold、r3來(lái)計(jì)算N的值,用N、n′2分別計(jì)算N′、N″的值,用N、n′2來(lái)計(jì)算P的值,最后將(N″,P)傳送給Snew;若不相等,協(xié)議終止。 步驟6Snew收到信息后,先用二次剩余定理解出以n′2為模的N2的解,這里用x表示該解,同時(shí)利用p2和q2為模,識(shí)別N2的值。在用x、n2來(lái)計(jì)算P′的值,即: P′=Rep-Rec(x⊕n2,x&n2) 比對(duì)P′與P的值。若不相等,協(xié)議終止;若相等,說(shuō)明x=N′,生成r4隨機(jī)數(shù),生成新的共享密鑰Knew,用Knew、x計(jì)算Q的值,用x、r4計(jì)算L的值,用r4、Q計(jì)算V的值,用x、Knew來(lái)計(jì)算B′的值,并更新信息:Snew_ID=r4、B=B′,最后將(L,Q,V)傳送給Ti。 步驟7Ti收到信息后,先計(jì)算Q⊕N′得到新的共享密鑰K′new,計(jì)算L⊕N′得到r′4隨機(jī)數(shù),用r′4、Q來(lái)計(jì)算V′的值,即: V′=Rep-Rec(r′4⊕Q,r′4&Q) 比對(duì)V′與V的值。若不相等,協(xié)議終止;若相等,說(shuō)明r′4=r4,用N′、K′new來(lái)計(jì)算B′的值,Ti更新信息:Knew=Q⊕N′,r4=L⊕N′,B=B′。此時(shí)Ti和Snew之間的密鑰保持一致,所有權(quán)完成轉(zhuǎn)移。 協(xié)議與其他此類(lèi)協(xié)議比較所具備的優(yōu)勢(shì)如下:在抵抗攻擊者發(fā)動(dòng)攻擊方面,采用二次剩余對(duì)發(fā)送信息加密,在數(shù)學(xué)領(lǐng)域中,大素?cái)?shù)的分解一直是無(wú)法破解的難題,因此采用二次剩余加密,能夠增大攻擊者的破解難度。在保證信息安全的前提下,要盡可能地降低系統(tǒng)的計(jì)算量,因此設(shè)計(jì)出一種基于超輕量級(jí)的采用按位運(yùn)算實(shí)現(xiàn)的置換再交叉運(yùn)算對(duì)部分信息進(jìn)行加密,能夠滿(mǎn)足降低系統(tǒng)的計(jì)算量。 本文協(xié)議采用基于GNY邏輯形式化語(yǔ)言對(duì)協(xié)議進(jìn)行邏輯形式化推理[16]。 (1) 協(xié)議形式化描述。 協(xié)議流程如下: Msg1:Sold→Ti:Query、A。 Msg2:Ti→Sold:D″、E、F。 Msg3:Sold→Snew:G、E。 Msg4:Snew→Ti:H、G、M。 Msg5:Ti→Snew:N″、P。 Msg6:Snew→Ti:L、Q、V。 用GNY形式邏輯語(yǔ)言規(guī)范以上協(xié)議,描述如下: Msg1:Ti<*Query、A; Msg2:Sold<* {D″、E、F}; Msg3:Snew<*{G、E}; Msg4:Ti<*{H、G、M}; Msg5:Snew<*{N″、P}; Msg6:Ti<*{L、Q、V}。 (2) 協(xié)議初始化假設(shè)。 協(xié)議假設(shè)如下:Snew、Ti、Sold表示主體。 Sup1:(Sold_ID、Snew_ID、Knew、Kold、TID、r1、r2、r3、B)∈Ti; Sup2:(p2、q2、n2、r4、Snew_ID、Knew)∈Sold; Sup3:(Sold_ID、Kold、p1、q1、n1)∈Snew; Sup4:Sold|≡#(r1、r2、r3、r4); Sup5:Ti|≡#(r1、r2、r3、r4); Sup6:Snew|≡#(r1、r2、r3、r4); (3) 協(xié)議證明目標(biāo)。 目標(biāo)的證明公式如下: Goal1:Ti|≡Sold|~#{A}; Goal2:Sold|≡Ti|~#{D″、E、F}; Goal3:Snew|≡Sold|~#{G、E}; Goal4:Ti|≡Snew|~#{H、G、M}; Goal5:Snew|≡Ti|~#{N″、P}; Goal6:Ti|≡Snew|~#{L、Q、V}。 (4) 協(xié)議證明過(guò)程。 因協(xié)議證明目標(biāo)Goal2:Sold|≡Ti|~#{D″、E、F};Goal3:Snew|≡Sold|~#{G、E};Goal4:Ti|≡Snew|~#{H、G、M};Goal5:Snew|≡Ti|~#{N″、P};Goal6:Ti|≡Snew|~#{L、Q、V}的證明過(guò)程與協(xié)議證明目標(biāo)Goal1:Ti|≡Sold|~#{A}證明過(guò)程相似,以協(xié)議證明目標(biāo)Goal1為例。 ∴ {A}∈Ti ∴Sold=#{A} ∴ {A}∈Sold ∴Sold|≡ #{A} ∴Ti|=Sold~{A} ∵ 新鮮性定義以及推導(dǎo)出來(lái)的Sold=#{A}、Ti|=Sold~{A} ∴ Goal1:Ti|≡Sold|~#{A}得證明。 本文協(xié)議與其他協(xié)議進(jìn)行安全性比較結(jié)果如表1所示。 表1 協(xié)議之間的安全性比較 性能分析部分選擇標(biāo)簽為對(duì)象,標(biāo)簽原所有者和標(biāo)簽新所有者中均包含數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)具備強(qiáng)大的存儲(chǔ)空間和計(jì)算能力,因此不作為性能分析的對(duì)象。以標(biāo)簽為對(duì)象時(shí),主要關(guān)注于標(biāo)簽一端的計(jì)算量,因?qū)τ诂F(xiàn)有的無(wú)源低成本計(jì)算量的標(biāo)簽來(lái)說(shuō),標(biāo)簽具備的計(jì)算能力受到嚴(yán)格的限制。本文協(xié)議與其他此類(lèi)協(xié)議進(jìn)行性能分析如表2所示。 表2 協(xié)議之間的性能比較 對(duì)于表2中符號(hào)進(jìn)行下面的含義約定:用a表示二次剩余加密方法的計(jì)算量;用b表示產(chǎn)生隨機(jī)數(shù)的計(jì)算量;用c表示按位運(yùn)算(按位運(yùn)算一般包含按位或運(yùn)算、按位異或運(yùn)算、按位與運(yùn)算、左移運(yùn)算、右移運(yùn)算);用d表示置換再交叉運(yùn)算加密方法的計(jì)算量。 在上述不同的運(yùn)算中,計(jì)算量最大的是二次剩余,次之的是隨機(jī)數(shù)的產(chǎn)生計(jì)算量,置換再交叉運(yùn)算及按位運(yùn)算均屬于超輕量級(jí)的運(yùn)算。現(xiàn)有的文獻(xiàn)已證明:超輕量級(jí)的運(yùn)算進(jìn)行次數(shù)的多與少,對(duì)協(xié)議的計(jì)算量所帶來(lái)的影響可以忽略。 以本文協(xié)議中3a的產(chǎn)生為例說(shuō)明標(biāo)簽一端的計(jì)算量的計(jì)算方法。1) 第一次用到二次剩余。標(biāo)簽一端在步驟2中計(jì)算D″的時(shí)候,會(huì)第一次用到二次剩余。2) 第二次用到二次剩余。標(biāo)簽一端在步驟5中計(jì)算N′的時(shí)候,會(huì)第二次用到二次剩余。3) 第三次用到二次剩余。標(biāo)簽一端在步驟5中計(jì)算N″的時(shí)候,會(huì)第三次用到二次剩余?;谏鲜龇治?,本文協(xié)議標(biāo)簽一端一共會(huì)有三次用到二次剩余加密方法對(duì)信息進(jìn)行,因此是3a。從表2中,計(jì)算量角度出發(fā)協(xié)議進(jìn)行性能比較分析,可以得出本文協(xié)議與文獻(xiàn)[14-15]中的協(xié)議計(jì)算量相當(dāng),但本文協(xié)議能夠彌補(bǔ)文獻(xiàn)[14-15]中的協(xié)議存在的安全缺陷問(wèn)題,因此本文協(xié)議仍具備一定的使用價(jià)值。 標(biāo)簽在其生命周期中,標(biāo)簽的歸屬者經(jīng)常發(fā)生變更,為確保標(biāo)簽所有權(quán)的完整性,設(shè)計(jì)一種標(biāo)簽所有權(quán)轉(zhuǎn)移協(xié)議。為能夠抵抗攻擊者發(fā)起的攻擊模型,協(xié)議采用二次剩余定理對(duì)傳送的部分信息進(jìn)行加密,基于數(shù)學(xué)難題大數(shù)分解的二次剩余定理,具備較高的安全性;在保證安全的前提下,為盡可能降低系統(tǒng)的計(jì)算量,采用置換再交叉運(yùn)算對(duì)傳送的另一部分信息進(jìn)行加密,置換再交叉運(yùn)算基于位運(yùn)算實(shí)現(xiàn),能夠極大程度上降低系統(tǒng)的計(jì)算量。對(duì)協(xié)議基于GNY邏輯形式化推理,推理出協(xié)議具備的安全性;將協(xié)議與其他協(xié)議進(jìn)行性能分析,比對(duì)出協(xié)議具備低計(jì)算量的屬性。1.3 協(xié)議步驟
2 安全性分析
3 性能分析
4 結(jié) 語(yǔ)