盧 愛(ài) 芬
(廣州科技職業(yè)技術(shù)大學(xué)信息工程學(xué)院 廣東 廣州 510550)
射頻識(shí)別技術(shù)出現(xiàn)在20世紀(jì),由于當(dāng)時(shí)科技等因素,未能廣泛得到運(yùn)用[1]。進(jìn)入21世紀(jì)后,不斷有新科技產(chǎn)生,諸如云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、區(qū)塊鏈等技術(shù)的運(yùn)用,也逐漸帶動(dòng)射頻識(shí)別技術(shù)再次推廣[2-3]。
一個(gè)典型的RFID系統(tǒng)一般包含標(biāo)簽、讀卡器、服務(wù)器,其中電子標(biāo)簽在其一生使用過(guò)程中,歸屬者可能經(jīng)常發(fā)生變更[4-5]。一個(gè)典型的嵌有電子標(biāo)簽的物品歸屬者變更例子如下:嵌有電子標(biāo)簽的商品在未出廠之前,商品的歸屬者是廠商;待批發(fā)商從廠商手中購(gòu)買(mǎi)走該批商品,商品的歸屬者由廠商變更為批發(fā)商;當(dāng)零售商又從批發(fā)商手中購(gòu)買(mǎi)走商品,則商品的歸屬者再次由批發(fā)商變更為零售商;最后消費(fèi)者從零售商那里買(mǎi)到該商品,商品的歸屬者最終變更為消費(fèi)者[6-7]。在商品歸屬者變更過(guò)程中,原來(lái)的歸屬者不能去訪(fǎng)問(wèn)當(dāng)前歸屬者存放在商品中的隱私信息,相對(duì)應(yīng)的,當(dāng)前歸屬者亦不能訪(fǎng)問(wèn)原來(lái)的歸屬者存放在商品中的隱私信息,為能夠確保用戶(hù)存放在商品中隱私信息的安全,需要用到所有權(quán)轉(zhuǎn)移算法[8-9]。
文獻(xiàn)[10]最先給出所有權(quán)轉(zhuǎn)移概念,同時(shí)提出一個(gè)所有權(quán)轉(zhuǎn)移算法,該算法基于傳統(tǒng)的對(duì)稱(chēng)密碼體制對(duì)信息進(jìn)行加解密,同時(shí)算法中引入TTP進(jìn)行相關(guān)信息的更新操作,不僅增加了通信的復(fù)雜度,而且算法存在去同步化攻擊安全隱患。文獻(xiàn)[11]中基于樹(shù)設(shè)計(jì)一個(gè)所有權(quán)轉(zhuǎn)移算法,具備一定安全需求,但仍無(wú)法抵抗攻擊者的跟蹤攻擊,無(wú)法推廣。文獻(xiàn)[12]中同樣引入可信第三方,使用TTP來(lái)掌握相關(guān)共享秘密值的更新操作,對(duì)算法分析,算法無(wú)法提供前向安全的安全需求,攻擊者可以利用前向安全分析獲取隱私信息。文獻(xiàn)[13]中利用哈希函數(shù)及對(duì)稱(chēng)加密算法給出一個(gè)所有權(quán)轉(zhuǎn)移算法,算法除了存在計(jì)算量大問(wèn)題外,算法還無(wú)法提供后向隱私信息的安全,攻擊者可以發(fā)動(dòng)異步攻擊,迫使通信實(shí)體之間失去一致性。文獻(xiàn)[14]基于優(yōu)化的Rabin加密算法設(shè)計(jì)一個(gè)所有權(quán)轉(zhuǎn)移算法,對(duì)使用的優(yōu)化的Rabin加密算法分析,發(fā)現(xiàn)其本質(zhì)就是模運(yùn)算,對(duì)于計(jì)算受限制的標(biāo)簽來(lái)說(shuō),模運(yùn)算計(jì)算量有些超出標(biāo)簽的計(jì)算能力,無(wú)法推廣。同時(shí)對(duì)算法本身進(jìn)行分析,發(fā)現(xiàn)算法本身存在多余的計(jì)算步驟。
鑒于現(xiàn)有的較多經(jīng)典算法存在安全不足或計(jì)算量大或無(wú)法滿(mǎn)足要求等缺陷,本文在結(jié)合眾多算法的基礎(chǔ)之上給出一種改進(jìn)的所有權(quán)轉(zhuǎn)移算法。本文算法在保證安全的情況,秉著盡可能降低標(biāo)簽及其他通信實(shí)體計(jì)算量的理念,引入創(chuàng)新型設(shè)計(jì)的遍歷異或運(yùn)算實(shí)現(xiàn)對(duì)信息的加解密,遍歷異或運(yùn)算采用位運(yùn)算的方式實(shí)現(xiàn),能夠?qū)⒂?jì)算量提升到超輕量級(jí)的級(jí)別。同時(shí)盡量?jī)?yōu)化算法的通信過(guò)程,避免出現(xiàn)冗余的計(jì)算步驟。對(duì)算法從安全和計(jì)算量角度分析,算法能夠提供較好的安全需求,同時(shí)相對(duì)于原算法而言,計(jì)算量有較大幅度的降低。
文獻(xiàn)[14]基于Rabin算法給出一個(gè)標(biāo)簽所有權(quán)轉(zhuǎn)移算法,算法具體步驟可以見(jiàn)文獻(xiàn)[14]中描述,此處不再贅述。對(duì)算法進(jìn)行分析,該算法主要存在兩個(gè)不足之處,詳細(xì)分析如下:
1) 原算法在第五步驟中,標(biāo)簽原所有者對(duì)標(biāo)簽進(jìn)行驗(yàn)證過(guò)程中,標(biāo)簽原所有者通過(guò)E和F兩個(gè)消息即可實(shí)現(xiàn)標(biāo)簽原所有者對(duì)標(biāo)簽的驗(yàn)證,但算法在對(duì)E和F進(jìn)行計(jì)算驗(yàn)證之后,將再次對(duì)D進(jìn)行驗(yàn)證,完全沒(méi)有必要多此一舉。
2) 原算法在第七步驟中,標(biāo)簽對(duì)標(biāo)簽新所有者進(jìn)行驗(yàn)證過(guò)程中,標(biāo)簽通過(guò)H和G兩個(gè)消息即可實(shí)現(xiàn)標(biāo)簽對(duì)標(biāo)簽新所有者的驗(yàn)證,但算法在對(duì)H和G進(jìn)行計(jì)算驗(yàn)證之后,將再次對(duì)P進(jìn)行驗(yàn)證,完全沒(méi)有必要多此一舉。
基于上述兩個(gè)不足之處,還引出其他問(wèn)題,問(wèn)題一:整個(gè)通信過(guò)程中,標(biāo)簽發(fā)送給標(biāo)簽原所有者消息沒(méi)必要發(fā)送D、E、F三個(gè),只需要發(fā)送兩個(gè)消息即可;標(biāo)簽新所有者發(fā)送給標(biāo)簽消息沒(méi)必要發(fā)送H、G、P三個(gè),只需要發(fā)送兩個(gè)消息即可,使得整個(gè)通信過(guò)程中通信量增大。問(wèn)題二:標(biāo)簽一端因需要計(jì)算D、E、F三個(gè)消息,使得標(biāo)簽的計(jì)算量增大;同時(shí)標(biāo)簽對(duì)標(biāo)簽新所有者的驗(yàn)證也因H、G、P三個(gè)消息而增大了計(jì)算量,兩處計(jì)算極大地增加了標(biāo)簽一端的計(jì)算量。
基于上述,文中改進(jìn)的算法避免出現(xiàn)冗余的計(jì)算步驟,從而盡可能降低標(biāo)簽一端的計(jì)算量;同時(shí)改進(jìn)的算法采用計(jì)算量更低的遍歷異或運(yùn)算實(shí)現(xiàn)對(duì)信息的加密,更進(jìn)一步降低標(biāo)簽一端的計(jì)算量。
遍歷異或運(yùn)算(Ergodic XOR operation,EXO(X,Y))按照如下方式實(shí)現(xiàn):
(1)X、Y、Z均表示二進(jìn)制序列,長(zhǎng)度取值均為L(zhǎng)位。
(2)Wt(X)、Wt(Y)分別表示二進(jìn)制序列X、Y的漢明重量。
(3)Px、Py分別表示指向二進(jìn)制序列X、Y的指針。
(4) 當(dāng)Wt(X) (5) 當(dāng)Wt(X)≥Wt(Y)時(shí),對(duì)二進(jìn)制序列X、Y同時(shí)從第一位開(kāi)始遍歷,指針Px指向二進(jìn)制序列X的第i位Xi時(shí),指針Py指向二進(jìn)制序列Y的第i位Yi,如果Yi=1,則Xi和Yi進(jìn)行異或運(yùn)算,并將運(yùn)算結(jié)果放置于二進(jìn)制序列Z的第i位上,得到Zi;如果Yi=0,則直接將二進(jìn)制序列X的第i位Xi的值放置于二進(jìn)制序列Z的第i位上,得到Zi。 通過(guò)下面兩個(gè)例子來(lái)說(shuō)明遍歷異或運(yùn)算的實(shí)現(xiàn)。取值L=12位,X=011000000100,Y=101011010101,則可以得到Wt(X)=3、Wt(Y)=7,滿(mǎn)足Wt(X) 圖1 EXO(X,Y) Wt(X) 再次取值L=12位,X=101111100101,Y=011000011000,則可以得到Wt(X)=8、Wt(Y)=4,滿(mǎn)足Wt(X)≥Wt(Y)條件,根據(jù)(5)中操作步驟,可得到遍歷異或運(yùn)算最終結(jié)果為EXO(X,Y)=Z=110111111101。具體可以見(jiàn)圖2所示。 圖2 EXO(X,Y) Wt(X)≥Wt(Y) 算法中涉及到的符號(hào)含義如下: SN:標(biāo)簽所有權(quán)新所有者; SO:標(biāo)簽所有權(quán)原所有者; T:標(biāo)簽; State:標(biāo)簽所有權(quán)歸屬標(biāo)志位,當(dāng)State=0時(shí),表示標(biāo)簽所有權(quán)當(dāng)前歸屬于SO;當(dāng)State=1時(shí),表示標(biāo)簽所有權(quán)當(dāng)前歸屬于SN。 a:SO產(chǎn)生的隨機(jī)數(shù); b:T產(chǎn)生的隨機(jī)數(shù); c:SN產(chǎn)生的隨機(jī)數(shù); IDL:T的標(biāo)識(shí)符左半部分; IDR:T的標(biāo)識(shí)符右半部分; KO:T與SO之間的共享秘密值; KN:T與SN之間的共享秘密值; ⊕:異或運(yùn)算; EXO(X,Y):遍歷異或運(yùn)算。 本文算法與其他算法一致[15-16],SN與SO之間通信鏈路安全,SO與T之間通信鏈路不安全,SN與T之間通信鏈路不安全。所有權(quán)轉(zhuǎn)移算法開(kāi)始之前,SN存放信息有IDL、IDR、KN;SO存放信息有IDL、IDR、KO;T存放信息有IDL、IDR、KN、KO。 改進(jìn)的所有權(quán)轉(zhuǎn)移算法示意圖如圖3所示。 圖3 改進(jìn)的所有權(quán)轉(zhuǎn)移算法 結(jié)合圖3,本文算法具體步驟如下: (1)SO向T發(fā)送Request命令,開(kāi)啟所有權(quán)轉(zhuǎn)移過(guò)程。 (2)T收到信息,當(dāng)前State=0,表明標(biāo)簽所有權(quán)當(dāng)前歸屬于SO所有。T將IDR發(fā)送給SO。 (3)SO收到信息,在數(shù)據(jù)庫(kù)中查找是否有與IDR相等的參數(shù)。沒(méi)有,算法結(jié)束;有,先產(chǎn)生隨機(jī)數(shù)a,再調(diào)用與IDR相對(duì)應(yīng)的IDL的值,分別計(jì)算Ne、Nf,并將Ne、Nf發(fā)送給T。其中Ne=a⊕IDL、Nf=EXO(a,KO)。 (4)T收到信息,通過(guò)Ne計(jì)算得到隨機(jī)數(shù)a′,將a′、KO結(jié)合計(jì)算得到Nf′,比較Nf與Nf′的值。若不等,T驗(yàn)證SO失敗,算法結(jié)束。若相等,表明a′=a,T產(chǎn)生隨機(jī)數(shù)b,分別計(jì)算Ng、Nh,并將Ng、Nh發(fā)送給SO。其中a′=Ne⊕IDL、Nf′=EXO(Ne⊕IDL,KO)、Ng=b⊕KO、Nh=EXO(b,a)。 (5)SO收到信息,通過(guò)Ng計(jì)算得到隨機(jī)數(shù)b′,將b′、a結(jié)合計(jì)算得到Nh′,比較Nh與Nh′的值。若不等,SO驗(yàn)證T失敗,算法結(jié)束。若相等,表明b′=b,SO通過(guò)安全信道將信息b、IDR發(fā)送給SN。其中b′=Ng⊕KO、Nh′=EXO(Ng⊕KO,a)。 (6)SN收到信息,產(chǎn)生隨機(jī)數(shù)c,分別計(jì)算Ni、Nj,并將Ni、Nj發(fā)送給T。其中Ni=c⊕IDL、Nj=EXO(KN,c)。 (7)T收到信息,通過(guò)Ni計(jì)算得到隨機(jī)數(shù)c′,將c′、KN結(jié)合計(jì)算得到Nj′,比較Nj與Nj′的值。若不等,T驗(yàn)證SN失敗,算法結(jié)束。若相等,表明c′=c,T計(jì)算Nk,并將Nk發(fā)送給SN。其中c′=Ni⊕IDL、Nj′=EXO(KN,Ni⊕IDL)、Nk=EXO(c,b)。 (8)SN收到信息,通過(guò)相同的運(yùn)算規(guī)則計(jì)算得到Nk′,比對(duì)Nk′與Nk的值。若不等,SN驗(yàn)證T失敗,算法結(jié)束。若相等,SN計(jì)算Nn,并將Nn發(fā)送給T。其中Nk′=EXO(c,b)、Nn=EXO(b,KN)。 (9)T收到信息,通過(guò)相同的運(yùn)算規(guī)則計(jì)算得到Nn′,比對(duì)Nn′與Nn的值。若不等,T驗(yàn)證SN失敗,算法結(jié)束。若相等,T將標(biāo)志位State的值由0置換為1,表明現(xiàn)在標(biāo)簽的所有權(quán)歸屬于SN,到此標(biāo)簽的所有權(quán)轉(zhuǎn)移順利結(jié)束。其中Nn′=EXO(b,KN)。 本文算法在減少系統(tǒng)會(huì)話(huà)參數(shù)量之后,仍能保障信息的安全性,通過(guò)如下各不同角度對(duì)算法進(jìn)行安全性分析。 (1) 所有權(quán)排他轉(zhuǎn)移。所有權(quán)排他轉(zhuǎn)移指的是算法完成之后,標(biāo)簽所有權(quán)歸屬于SN,而非歸屬于SO。本文算法通過(guò)T一端的標(biāo)志位State來(lái)標(biāo)記標(biāo)簽所有權(quán)當(dāng)前歸屬于誰(shuí)所有。算法沒(méi)有開(kāi)始之前,State=0,表明所有權(quán)歸屬于SO,當(dāng)且僅當(dāng)SO、SN、T三者之間通過(guò)彼此之間的認(rèn)證之后,標(biāo)簽一端的標(biāo)志位State的值才會(huì)發(fā)生變化,由0變?yōu)?,當(dāng)State=1時(shí),表示標(biāo)簽所有權(quán)當(dāng)前歸屬于SN。本文算法中,SN與T之間用到KN作為共享秘密值,SO與T之間用到KO作為共享秘密值,KN與KO的值不一樣,且SO不知曉KN的值,因此SO就無(wú)法假冒SN通過(guò)T的驗(yàn)證,從而無(wú)法修改標(biāo)簽一端標(biāo)志位的值,因此,本文算法能夠保障所有權(quán)排他轉(zhuǎn)移安全。 (2) 目標(biāo)標(biāo)簽轉(zhuǎn)移。標(biāo)簽所有權(quán)轉(zhuǎn)移過(guò)程中涉及到很多標(biāo)簽的隱私信息,因此必須確保轉(zhuǎn)移的標(biāo)簽是目標(biāo)標(biāo)簽,而非其他標(biāo)簽。本文算法通過(guò)通信實(shí)體之間的認(rèn)證來(lái)確保轉(zhuǎn)移的標(biāo)簽就是目標(biāo)標(biāo)簽,具體的如下:SO通過(guò)算法中的步驟(3)、步驟(5)確定是目標(biāo)標(biāo)簽身份;SN通過(guò)算法中的步驟(8)確定是目標(biāo)標(biāo)簽身份。攻擊者缺少必要的認(rèn)證信息,無(wú)法假冒目標(biāo)標(biāo)簽進(jìn)行通信。因此,本文算法能夠確保轉(zhuǎn)移的標(biāo)簽即為目標(biāo)標(biāo)簽。 (3) 定位攻擊。本文算法標(biāo)簽在發(fā)送消息的時(shí)候,所有信息加密過(guò)程中含有隨機(jī)數(shù),其中Ng和Nh中含有隨機(jī)數(shù)a和b,Nk中含有隨機(jī)數(shù)c和b,使得每次通信過(guò)程中Ng、Nh、Nk的值都是不同的。當(dāng)攻擊者截獲上述消息時(shí),攻擊者也無(wú)法定位標(biāo)簽的位置。因此,本文算法可以確保標(biāo)簽的位置安全。 (4) 暴力攻擊。攻擊者對(duì)截獲的消息進(jìn)行窮舉的方式進(jìn)行破解,該種攻擊方式可稱(chēng)之為暴力攻擊。攻擊者通過(guò)監(jiān)聽(tīng)一個(gè)完整的消息交換過(guò)程,可以獲取IDR、Ne、Nf、Ng、Nh、Ni、Nj、Nk、Nn信息,攻擊者可以根據(jù)竊聽(tīng)的消息對(duì)其中任何一個(gè)或幾個(gè)發(fā)起暴力攻擊。選擇Ne、Nf為例進(jìn)行分析,其他消息暴力攻擊分析方式相一致,不再闡述。 首先攻擊者獲取的Ne、Nf是加密之后的密文,設(shè)定攻擊者知曉Ne、Nf加密的運(yùn)算法則,即攻擊者知曉Ne是由SO產(chǎn)生的隨機(jī)數(shù)a與IDL進(jìn)行異或運(yùn)算所得。攻擊者可對(duì)Ne進(jìn)行變形,變形之后得到a′=Ne⊕IDL。接著攻擊者再將變形之后得到的數(shù)據(jù)代入Nf中,可得到Nf′ =EXO(a′,KO) =EXO(Ne⊕IDL,KO)。在整個(gè)變形或計(jì)算過(guò)程中,涉及到的參數(shù)有a、IDL、KO,其中a可由Ne和IDL變形得到,因此在最后變形得到的Nf′中實(shí)則有IDL、KO兩個(gè)參數(shù)值攻擊者不知曉。再結(jié)合本文遍歷異或運(yùn)算加密算法的定義可知,攻擊者同時(shí)也不知道Ne⊕IDL、KO漢明重量值,因此,于攻擊者而言,有四個(gè)參數(shù)值不知道,故攻擊者對(duì)消息Ne、Nf發(fā)起的暴力攻擊是失敗的。 (5) 假冒攻擊。會(huì)話(huà)系統(tǒng)中共有三個(gè)會(huì)話(huà)實(shí)體,攻擊者可假冒其中任何一個(gè)實(shí)體與其他實(shí)體進(jìn)行會(huì)話(huà)。此處選擇攻擊者假冒成電子標(biāo)簽與標(biāo)簽所有權(quán)原歸屬者、新所有者進(jìn)行消息交換進(jìn)行分析。 當(dāng)攻擊者假冒成電子標(biāo)簽與標(biāo)簽所有權(quán)原歸屬者進(jìn)行會(huì)話(huà)時(shí),攻擊者想要通過(guò)SO的驗(yàn)證,則攻擊者必須獲取合法的IDR值。當(dāng)然攻擊者可以竊聽(tīng)上輪會(huì)話(huà)獲取該消息值,可以通過(guò)SO的第一次驗(yàn)證;當(dāng)攻擊者通過(guò)SO的第一次驗(yàn)證之后,SO會(huì)進(jìn)行一系列操作之后向攻擊者發(fā)送合法的Ne、Nf消息,但SO收到后無(wú)法正確地解密得到SO產(chǎn)生的隨機(jī)數(shù)a。當(dāng)攻擊者無(wú)法解密得到正確的a時(shí),攻擊者只能隨機(jī)選擇一個(gè)數(shù)值充當(dāng)a,進(jìn)行后續(xù)的加密操作得到錯(cuò)誤的消息Ng、Nh。當(dāng)SO再次收到攻擊者發(fā)送來(lái)的消息,并對(duì)攻擊者再次驗(yàn)證時(shí),攻擊者是無(wú)法通過(guò)SO的第二次驗(yàn)證的。原因在于:攻擊者并不知曉IDL的值,因此無(wú)法解密出正確的a,就無(wú)法用正確的a加密得到正確的消息Ng、Nh值?;谏鲜?攻擊者假冒電子標(biāo)簽向SO發(fā)起假冒攻擊以失敗告終。 當(dāng)攻擊者假冒成電子標(biāo)簽與標(biāo)簽所有權(quán)新歸屬者進(jìn)行會(huì)話(huà)時(shí),攻擊者想要通過(guò)SN的驗(yàn)證,則攻擊者必須計(jì)算得到正確的Nk消息(攻擊者當(dāng)然可以通過(guò)竊聽(tīng)的方式獲取正在會(huì)話(huà)的Nk消息,并在下一輪會(huì)話(huà)時(shí)偽裝成標(biāo)簽向SN發(fā)送該消息,但攻擊者是無(wú)法成功的,具體原因可見(jiàn)下面一點(diǎn)的有關(guān)“重放攻擊”的分析。)。既然攻擊者無(wú)法通過(guò)竊聽(tīng)在重放方式通過(guò)SN的驗(yàn)證,那攻擊者只能先破解計(jì)算正確Nk消息所需要的隨機(jī)數(shù)c的值。攻擊者無(wú)法通過(guò)竊聽(tīng)的消息中破解出SN產(chǎn)生的隨機(jī)數(shù)c的值,同時(shí)攻擊者也根本無(wú)法得到真正電子標(biāo)簽隨機(jī)產(chǎn)生的隨機(jī)數(shù)b的值,因此攻擊者根本無(wú)法計(jì)算得到正確的Nk值。攻擊者只能隨機(jī)選擇兩個(gè)數(shù)作為上述參數(shù)的值進(jìn)行計(jì)算,當(dāng)SN收到消息只需進(jìn)行簡(jiǎn)單計(jì)算,即可驗(yàn)證攻擊者假冒?;谏鲜?攻擊者假冒電子標(biāo)簽向SN發(fā)起假冒攻擊以失敗告終。 (6) 重放攻擊。攻擊者通過(guò)竊聽(tīng)當(dāng)前會(huì)話(huà)完整過(guò)程,可以獲取該輪會(huì)話(huà)的所有消息,然后在下次會(huì)話(huà)過(guò)程中,攻擊者假冒其中一個(gè)實(shí)體向其他實(shí)體發(fā)送截獲上輪消息,以企圖通過(guò)其他實(shí)體的驗(yàn)證,進(jìn)而進(jìn)行獲取隱私信息,該種攻擊方式可稱(chēng)之為重放攻擊。抵抗重放攻擊最為常用的方法便是在每輪消息加密過(guò)程中都混入隨機(jī)數(shù)。通過(guò)加密消息過(guò)程中混入隨機(jī)數(shù)方法抵抗攻擊者發(fā)起的重放攻擊原因有如下:其一,隨機(jī)數(shù)一般由隨機(jī)數(shù)產(chǎn)生器隨機(jī)產(chǎn)生,所得到隨機(jī)數(shù)具有隨機(jī)性,使得攻擊者根本無(wú)法預(yù)測(cè)下輪會(huì)話(huà)加密用到隨機(jī)數(shù)的值;其二,隨機(jī)數(shù)產(chǎn)生器得到的隨機(jī)數(shù)還具備互異性,即不會(huì)產(chǎn)生重復(fù)的隨機(jī)數(shù),這樣使得前后每輪會(huì)話(huà)加密時(shí)混入的隨機(jī)數(shù)一定不同,則每輪會(huì)話(huà)加密得到的同一個(gè)消息數(shù)值每次也不同。本文協(xié)議所有攻擊者竊聽(tīng)獲取的消息在加密時(shí)都混入隨機(jī)數(shù),因此,基于上述,本文算法能夠抵抗攻擊者發(fā)起的重放攻擊。 將本文算法同文獻(xiàn)[11-14]中算法進(jìn)行相同環(huán)境下仿真實(shí)驗(yàn)。選擇某個(gè)時(shí)間段內(nèi),上述不同算法面對(duì)攻擊者發(fā)起的來(lái)自不同角度網(wǎng)絡(luò)攻擊進(jìn)行仿真實(shí)驗(yàn),因此選取的時(shí)間節(jié)點(diǎn)為1 000秒、2 000秒、3 000秒、4 000秒、5 000秒、6 000秒、7 000秒、8 000秒、9 000秒、10 000秒;并在每個(gè)時(shí)間節(jié)點(diǎn)進(jìn)行仿真實(shí)驗(yàn)時(shí),為提高仿真實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確性,每個(gè)時(shí)間節(jié)點(diǎn)進(jìn)行仿真實(shí)驗(yàn)次數(shù)不低于500次,同時(shí)記錄這500次仿真實(shí)驗(yàn)數(shù)據(jù),最后求取這500次實(shí)驗(yàn)數(shù)據(jù)的平均值作為最終的仿真實(shí)驗(yàn)結(jié)果,如圖4所示。 圖4 不同算法間網(wǎng)絡(luò)攻擊成功次數(shù)對(duì)比 從圖4中可以分析得到,相對(duì)于文獻(xiàn)[11-13]中算法而言,文獻(xiàn)[14]中算法及本文算法面對(duì)相同仿真環(huán)境時(shí),攻擊者發(fā)起的網(wǎng)絡(luò)攻擊成功次數(shù)得到大幅度的減少,表明本文算法及文獻(xiàn)[14]中算法安全性提高很多。但同時(shí)也可以看出,本文算法在每個(gè)時(shí)間節(jié)點(diǎn)統(tǒng)計(jì)的仿真實(shí)驗(yàn)數(shù)據(jù)均少于文獻(xiàn)[14]中算法數(shù)據(jù),表明本文算法具備比文獻(xiàn)[14]中算法更好的安全性能。 原所有者和新所有者包含讀卡器及服務(wù)器具備強(qiáng)大的計(jì)算能力和存儲(chǔ)空間,因此僅選擇標(biāo)簽為對(duì)象進(jìn)行性能角度分析。本文算法與其他經(jīng)典算法之間性能比較如表1所示。 表1 算法之間性能對(duì)比 表1中各符號(hào)含義如下,QPUF表示物理不可克隆函數(shù)的計(jì)算量,QW表示按位運(yùn)算的計(jì)算量(按位運(yùn)算常見(jiàn)的有按位異或運(yùn)算、按位與運(yùn)算等),QHASH表示哈希函數(shù)的計(jì)算量,QEK、QDK、QFT都表示變形或改進(jìn)后的哈希函數(shù)的計(jì)算量,QL表示左移運(yùn)算的計(jì)算量,QR表示右移運(yùn)算的計(jì)算量,QRABIN表示優(yōu)化之后的Rabin算法的計(jì)算量,QEXO表示遍歷異或運(yùn)算的計(jì)算量。L表示算法通信過(guò)程中每個(gè)消息的長(zhǎng)度均為L(zhǎng)長(zhǎng)度,S表示算法通信過(guò)程中類(lèi)似于Request命名指令占用長(zhǎng)度。 在上述運(yùn)算中,屬于超輕量級(jí)運(yùn)算的有按位運(yùn)算、遍歷異域運(yùn)算、左移運(yùn)算、右移運(yùn)算,其他都不屬于超輕量級(jí)運(yùn)算。相對(duì)于超輕量級(jí)運(yùn)算來(lái)說(shuō),其他運(yùn)算的計(jì)算量遠(yuǎn)遠(yuǎn)多于超輕量級(jí)運(yùn)算的計(jì)算量。上述比較的文獻(xiàn)中,除了本文算法用到的運(yùn)算均屬于超輕量級(jí),其他文獻(xiàn)中的算法或多或少均使用到非超輕量級(jí)的運(yùn)算,因此從標(biāo)簽一端的計(jì)算量角度出發(fā),本文算法在計(jì)算量方面有較大程度上的減少。整個(gè)算法的通信過(guò)程中通信量大小與其他文獻(xiàn)中的算法通信量相當(dāng),但本文算法能夠彌補(bǔ)其他算法存在的安全缺陷,仍具備一定的優(yōu)勢(shì),有一定的推廣價(jià)值。 針對(duì)原算法存在計(jì)算多余缺陷,設(shè)計(jì)出一個(gè)改進(jìn)的所有權(quán)轉(zhuǎn)移算法。改進(jìn)的算法在減少計(jì)算的同時(shí)亦能保證會(huì)話(huà)的安全性;本文算法并未沿用原算法中Rabin算法對(duì)信息加密,而是采用自創(chuàng)的遍歷異或運(yùn)算算法對(duì)信息加密,能夠一定程度上減少系統(tǒng)整體的計(jì)算量;對(duì)算法本身進(jìn)行分析,可以提供用戶(hù)的安全需求;本文算法通過(guò)標(biāo)簽端標(biāo)志位State值來(lái)顯示當(dāng)前標(biāo)簽所有權(quán)歸屬,只有通過(guò)嚴(yán)格的認(rèn)證之后,標(biāo)志位值才會(huì)發(fā)生變更,確保了所有權(quán)的唯一性。對(duì)本文算法進(jìn)行安全和計(jì)算量角度的比對(duì)分析,本文算法在減少計(jì)算量和通信量的情況,能夠提供較好的安全性,滿(mǎn)足當(dāng)前RFID系統(tǒng)對(duì)安全和計(jì)算量的要求。1.3 算法符號(hào)含義
1.4 算法實(shí)現(xiàn)
2 算法安全性
3 算法性能
4 結(jié) 語(yǔ)