盧愛芬
(廣州科技職業(yè)技術大學,信息工程學院, 廣東,廣州 510550)
射頻識別系統(tǒng)一般包含電子標簽、讀寫器、后臺服務器三者。其中,電子標簽因體積小、方便攜帶、易部署、成本不高、使用時間長等眾多優(yōu)勢,使射頻識別技術在很多領域中得到應用[1-3]。常見的電子標簽一般有2種類型:一種是自身攜帶電源,可主動發(fā)起認證;另一種是自身并沒有攜帶電源,無法主動發(fā)起認證,只能被動式響應讀寫器信息。現(xiàn)有的射頻識別系統(tǒng)中,大多數(shù)用的電子標簽還是屬于無電源類型的[4-6]。
射頻識別系統(tǒng)中經(jīng)典的通信模型是讀寫器與后臺服務器間有線鏈路實現(xiàn)交互,一般認為安全可靠;讀寫器與電子標簽間采用無線鏈路,因無線鏈路自身具備的開放性,使得消息易被攻擊者監(jiān)聽獲取,存在安全隱患[7-8]。在早期的射頻識別系統(tǒng)認證算法中,較多時候會采用經(jīng)典的密碼加密算法對所要發(fā)送信息進行加密,但現(xiàn)有的電子標簽因低成本因素,使得電子標簽計算能力受到嚴格限制,無法采用經(jīng)典加密算法[9-10]。
文獻[11]中采用簡單的異或運算、與運算實現(xiàn)信息加密,但協(xié)議無法抵抗攻擊者發(fā)起的物理攻擊,攻擊者物理攻擊成功后,可對標簽發(fā)起假冒攻擊。文獻[12]中采用物理不可克隆函數(shù)對信息加密,算法雖具備一定安全性,但因讀寫器端未存放前后輪會話共享密鑰,使得協(xié)議無法抗去同步化攻擊。文獻[13]中采用經(jīng)典的HASH函數(shù)實現(xiàn)信息加密,文獻[14]中算法對文獻[13]中算法進行了詳細安全性分析,指出文獻[13]中算法無法提供會話實體間雙向認證缺陷,同時算法還無法抗攻擊者發(fā)起的假冒攻擊安全缺陷。
針對現(xiàn)有大多數(shù)雙向認證算法或存在安全隱患或存在計算量大無法適用低成本RFID系統(tǒng)等不足,文中在結合眾多協(xié)議基礎之上,設計一個采用變形反比例函數(shù)實現(xiàn)加密的雙向認證算法。
本小節(jié)首先介紹算法中涉及的符號含義,然后給出文中算法加密用的變形反比例函數(shù)具體定義,最后給出算法。
R表示讀寫器;
T表示電子標簽;
ID_L表示電子標簽標識符左邊一半;
ID_R表示電子標簽標識符右邊一半;
ID表示電子標簽標識符;
K表示電子標簽與讀寫器間共享秘密值;
Knew表示電子標簽與讀寫器間當前共享秘密值;
Kold表示電子標簽與讀寫器間上輪共享秘密值;
Gf(x,y)表示變形反比例函數(shù);
a表示電子標簽產(chǎn)生的隨機數(shù);
b表示讀寫器產(chǎn)生的隨機數(shù);
&表示按位與運算;
⊕表示按位異或運算。
變形反比例函數(shù)按照如下方式定義:約定x、y都是長度為L位的二進制串;hm(x)、hm(y)分別表示二進制串x、y的漢明重量值;變形反比例函數(shù)一般形式如y=m/x+n。當hm(x)>hm(y)時,取hm(y)的值作為上述一般形式中m的值,取hm(x)的值作為上述一般形式中n的值,同時對參數(shù)y進行反比例函數(shù)加密計算。當hm(x)≤hm(y)時,取hm(y)的值作為上述一般形式中n的值,取hm(x)的值作為上述一般形式中m的值,同時對參數(shù)x進行反比例函數(shù)加密計算。為便于文中有關變形反比例函數(shù)描述,文中統(tǒng)一用符號Gf(x,y)表示。
即如下:
(1)
與文獻[15]一樣,做出如下約定:讀寫器與數(shù)據(jù)庫間采用有線方式交互消息,安全可靠,故將二者看成一個整體。文中算法在認證之前有一個初始化過程,初始化過程完成,R端儲存信息有ID_L、ID_R、K,T端儲存信息有ID_L、ID_R、K。具體流程如圖1所示。

圖1 雙向認證算法
結合圖1可將文中基于變形反比例函數(shù)的雙向認證算法具體步驟描述如下。
步驟1 R向T發(fā)送ACK認證請求命令,開始認證過程。
步驟2 T產(chǎn)生隨機數(shù)a,計算得到消息A=a⊕ID_L、消息B=Gf(a,ID_L),并將ID_R、A、B發(fā)送給R。
步驟3 R將依據(jù)收到的ID_R在數(shù)據(jù)庫中查找是否存在該數(shù)據(jù)。未找到,則算法停止。找到,R可將與ID_R相關聯(lián)的信息全部取出來。先對A進行變形A⊕ID_L可得到隨機數(shù)a′,然后計算得到B′=Gf(a′,ID_L),接著對比B′與B的關系。
B與B′不等,算法終止;如果相等,說明T通過R的驗證。R開始產(chǎn)生一個隨機數(shù)b,計算得到消息C=a⊕b、消息D=Gf(a,b),并將C、D發(fā)送給T。
步驟4 T將對C進行變形處理C⊕a可得到隨機數(shù)b′,計算得到D′=Gf(a,b′),然后對比D′與D的值。
D與D′不等,算法終止;如果相等,說明T對R的驗證完成。T計算得到消息E=Gf(a⊕D,b),并將E發(fā)送給R。
步驟5 R計算得到E′,對比E′與E的大小關系。
E與E′不等,算法終止;如果相等,說明R完成對T的驗證。R計算得到消息F=Gf(a&b,K),開始更新信息,信息更新完成后,將F發(fā)送給R。
當*=old時,Knew=Gf(a,b⊕Kold)。
當*=new時,Kold=Knew、Knew=Gf(a,b⊕Knew)。
步驟6 T收到信息后,T計算得到F′,并比較F′與收到F的大小。
F與F′不等,算法終止。如果相等,表明R通過T的驗證。T開始更新信息K=Gf(a,b⊕K)。T信息更新完成后,則雙向認證完成。
雙向認證。通信實體間能夠對彼此的真?zhèn)芜M行驗證是算法最基本的安全需求。文中算法R與T間的雙向認證都分2次進行,在步驟3中,R通過A、B完成第一次對T的認證;在步驟5中,R再次通過E完成第二次對T的認證。在步驟4中,T則是通過C、D第一次完成對R的認證;在步驟6中,T將再次通過F完成第二次對R的認證。基于上述,文中算法可以實現(xiàn)通信實體間的雙向認證。
假冒攻擊。當攻擊者假冒成R時,攻擊者可以接收到合法T發(fā)送來的消息ID_R、A、B,但因攻擊者不知曉ID_L值,攻擊者無法從消息A、B中破解出有用的隱私信息,使得攻擊者計算的消息C、D值并不是正確的值;當T收到攻擊者發(fā)送來的C、D消息時,T只需要進行簡單的計算,即可識別出消息來源是攻擊者偽造的。當攻擊者假冒成T時,攻擊者會隨機選擇數(shù)據(jù)進行消息A、B的計算;當R收到攻擊者發(fā)送來的消息時,R對A、B進行簡單驗證,即可辨別出消息發(fā)送方是攻擊者偽造。基于上述,算法可以抵抗假冒攻擊。
重放攻擊。攻擊者竊聽當前會話過程,可以獲取當前會話過程中所有消息,在下一輪會話過程中重放當前竊聽所得消息,以企圖通過某會話實體驗證,從而達到破解隱私信息目的。文中算法采用信息加密過程中混入隨機數(shù)方法來解決攻擊者發(fā)起的重放攻擊,當攻擊者重放上輪消息時,本輪消息加密過程中用到的隨機數(shù)已發(fā)生變更,使得攻擊者重放的消息無法通過驗證。鑒于隨機數(shù)由隨機數(shù)發(fā)生器隨機產(chǎn)生,具有無法預測性,因此攻擊者無法預測下輪會話用到的隨機數(shù)。基于上述,文中算法可抵抗重放攻擊。
追蹤攻擊。文中算法所有消息都是加密之后在發(fā)送,攻擊者獲取的消息都是密文,無法直接破解出有用信息。信息加密通過混入隨機數(shù)方式,使得前后兩輪會話同一個會話實體計算所得消息值也是不同的,這樣攻擊者就無法從獲取的消息中分析出電子標簽的位置,無法實施追蹤攻擊。基于上述,文中算法可抵抗追蹤攻擊。
異步攻擊。文中算法在R一端存放有當前會話、上輪會話過程中R與T間的共享秘密值,以此來抵抗異步攻擊。具體在算法步驟5中,R會先用Knew來發(fā)起對T的驗證,驗證通過,可直接進行后續(xù)操作;若驗證失敗,則R會再次用Kold來發(fā)起對T的驗證。當且僅當,前后兩次對T的驗證都失敗,算法才會終止。基于上述,文中算法可抵抗異步攻擊。
后向安全。攻擊者想要從獲取的當前會話消息中分析部分隱私信息,然后用此信息再來逆推出上輪會話中部分隱私信息,該種攻擊方式稱為后向安全攻擊。文中協(xié)議在信息加密時候引入隨機數(shù),使得前后消息值不同;加之隨機數(shù)具有隨機性、前后無關聯(lián)性、互異性等特征,使得攻擊者無法從當前獲取消息逆推出上輪消息加密用到隱私信息。基于上述,文中算法具備后向安全性。
將本文算法與其他算法之間進行安全性對比分析結果如表1所示。在表1中,√表示能夠抵抗該種類型攻擊,×表示無法抵抗該種類型攻擊。

表1 不同算法間安全性對比
本文選擇電子標簽作為性能分析對象,選擇電子標簽為對象的因素有:電子標簽滿足低成本要求,使得電子標簽計算能力及存儲空間嚴重受到制約。從電子標簽一端的計算量及存儲量角度出發(fā),將本文算法與其他算法進行性能比較,分析結果如表2所示。
對表2中出現(xiàn)的符號所表示的含義解釋如下:AND符號表示按位與運算、OXR符號表示按位異或運算、PUF符號表示物理不可克隆函數(shù)、HASH符號表示哈希函數(shù)、Gf符號表示變形反比例函數(shù)、L符號表示會話消息長度。
在上述不同的運算算法中,不同的算法自身具備的計算量大小不同,其中AND、XOR、Gf三種運算都是基于按位運算實現(xiàn),因此三者都屬于超輕量級的運算;而PUF、HASH兩種運算則是屬于輕量級的運算。基于上述,本文算法與文獻[11]中算法在電子標簽一端的計算量應是大致相當;本文算法在電子標簽一端的計算量要優(yōu)于文獻[12-14]中電子標簽一端的計算量。

表2 不同算法間性能對比
從電子標簽一端的存儲量角度分析,本文算法電子標簽一端需要存放的信息有:ID、K、a,因此存儲量大小為3L。與其他算法相比較,要少于其他算法電子標簽一端存儲開銷。
綜合表2中計算量、存儲量角度分析,文中算法雖與文獻[11]中電子標簽一端計算量相當,但存儲量角度有減少,且文中算法可以彌補文獻[11]中算法存在的安全不足;文中算法計算量要少于文獻[12-14]中電子標簽計算量,具備推廣優(yōu)勢,同時文中算法可以彌補上述文獻中算法存在的安全漏洞。
本文給出一個基于變形反比例函數(shù)實現(xiàn)的雙向認證算法。算法采用變形反比例函數(shù)實現(xiàn)對信息加密,根據(jù)變形反比例函數(shù)定義可得,算法計算量能夠達到超輕量級別;同時變形反比例函數(shù)充分利用加密參數(shù)自身漢明重量參數(shù),能夠減少參量的引入,從而可降低存儲量。文中最后從多個角度對文中算法進行了詳細的安全分析,表明文中算法可抵抗重放攻擊、異步攻擊、假冒攻擊等常見類型的攻擊,具備較高的安全性能;性能對比角度,表明文中算法具備低計算量特征,能夠在現(xiàn)有低成本RFID系統(tǒng)中推廣使用。