齊 寧 明顯誠
(吉林電子信息職業(yè)技術(shù)學(xué)院 吉林 吉林 132000) 2(重慶理工大學(xué)工程訓(xùn)練與經(jīng)管實(shí)驗(yàn)中心 重慶 400054)
進(jìn)入21世紀(jì)之后,隨著科技的快速發(fā)展,射頻識別(Radio Frequency Identification,RFID)技術(shù)得到了廣泛的運(yùn)用[1]。一個(gè)經(jīng)典的射頻識別系統(tǒng)至少有電子標(biāo)簽、讀寫器、服務(wù)器三者,在該系統(tǒng)中,一般情況下,讀寫器固定不變動,電子標(biāo)簽處于不斷變動位置狀態(tài),服務(wù)器也處于固定狀態(tài)[2-3]。
在射頻識別系統(tǒng)中,電子標(biāo)簽與讀寫器之間會話采用無線方式實(shí)現(xiàn),存在易被攻擊者竊聽的風(fēng)險(xiǎn),一般認(rèn)定為不安全;讀寫器與服務(wù)器之間一般采用光纖或同軸電纜等有線方式實(shí)現(xiàn)會話,一般認(rèn)定為安全可靠[4-5]。要在不安全的鏈路上交換信息,同時(shí)還需要確保用戶隱私信息的安全性,就必須設(shè)計(jì)協(xié)議來解決上述問題。
隨著人們需求的增加,在涉及到用電子標(biāo)簽標(biāo)記某個(gè)商品的時(shí)候,很多時(shí)候單個(gè)標(biāo)簽無法滿足標(biāo)記某個(gè)商品的情況發(fā)生,比如:在醫(yī)療領(lǐng)域中,某種藥品在進(jìn)行標(biāo)記時(shí),其中需要一個(gè)標(biāo)簽用于標(biāo)記藥品基本信息,比如:藥品名稱、藥品生產(chǎn)日期等;同時(shí)還需要一個(gè)標(biāo)簽用于標(biāo)記該藥品的使用方法,即用于標(biāo)記該藥品的說明書[6-8]。在遇到上述情況時(shí),需要同時(shí)證明兩個(gè)標(biāo)簽的同時(shí)存在,但現(xiàn)有的大多數(shù)協(xié)議無法滿足上述情況。本文設(shè)計(jì)一種協(xié)議適用于上述可證明多標(biāo)簽同時(shí)存在情況。
本文給出基于反比例函數(shù)加密算法的具體構(gòu)造和實(shí)現(xiàn)方法,加密過程中巧妙用到加密參數(shù)自身漢明重量參數(shù),即可減少參數(shù)引入、降低存儲空間的同時(shí),增加攻擊者破解難度,提高協(xié)議安全性。數(shù)據(jù)庫一端通過存儲前后兩輪認(rèn)證密鑰,來抵抗攻擊者發(fā)起的異步攻擊。對設(shè)計(jì)的協(xié)議進(jìn)行多角度分析,協(xié)議可一次實(shí)現(xiàn)多標(biāo)簽同時(shí)存在的證明,能夠抵抗重放、異步、追蹤等常見類型的攻擊,同時(shí)計(jì)算量可適用于現(xiàn)有低成本計(jì)算量的系統(tǒng)中。
文獻(xiàn)[9]里提出一個(gè)組證明協(xié)議,具體是用2個(gè)標(biāo)簽分別來標(biāo)記藥品和說明書。因協(xié)議提出較早,協(xié)議設(shè)計(jì)過程中未考慮更多安全隱私,導(dǎo)致協(xié)議無法抵抗定位攻擊、重放攻擊等攻擊類型。
文獻(xiàn)[10]中給出一個(gè)組證明協(xié)議,協(xié)議雖能夠具備較好的安全性,但協(xié)議因選擇加密算法為物理不可克隆函數(shù),需進(jìn)行的計(jì)算次數(shù)及計(jì)算量較大,協(xié)議推廣受限,同時(shí)協(xié)議僅適用于證明單組標(biāo)簽存在。
文獻(xiàn)[11]中設(shè)計(jì)了一個(gè)組證明協(xié)議,協(xié)議雖聲稱可以提供多組標(biāo)簽存在進(jìn)行證明,但深入分析協(xié)議僅能對一組標(biāo)簽存在進(jìn)行證明。文獻(xiàn)[12]中給出一個(gè)證明協(xié)議,作者對協(xié)議分析,表明協(xié)議具備較高安全性。
文獻(xiàn)[13]中對文獻(xiàn)[12]中協(xié)議進(jìn)行了分析,指出文獻(xiàn)[12]中協(xié)議并不安全,分析指出文獻(xiàn)[12]中協(xié)議存在隱私泄露安全不足,同時(shí)文獻(xiàn)[13]中提出一個(gè)組證明協(xié)議。對文獻(xiàn)[13]的協(xié)議進(jìn)行分析,協(xié)議采用連接運(yùn)算,攻擊者竊聽消息后,可以分析出部分信息數(shù)值,再結(jié)合隨機(jī)數(shù)明文傳送,攻擊者可以分析出部分隱私信息,因此文獻(xiàn)[13]中協(xié)議也同樣存在隱私信息泄露問題。
本文介紹了組證明協(xié)議產(chǎn)生的背景,分析了部分經(jīng)典組證明協(xié)議,指出其中優(yōu)勢及不足之處,最后給出一個(gè)基于反比例函數(shù)實(shí)現(xiàn)加密的組證明協(xié)議。本文協(xié)議設(shè)計(jì)時(shí)為盡可能降低計(jì)算量,先設(shè)計(jì)一種基于能夠按位運(yùn)算實(shí)現(xiàn)的反比例函數(shù)加密算法,能夠降低計(jì)算量的同時(shí),確保隱私信息安全性。
本文反比例函數(shù)具體是按照如下方式實(shí)現(xiàn)對需要傳送的信息進(jìn)行加密:x、y是需要傳送的信息,A是需要傳送信息y自身的漢明重量值、B是需要傳送信息x自身的漢明重量值。
DB:服務(wù)器;
R:讀寫器;
T:標(biāo)簽;
Ti:標(biāo)號為i的標(biāo)簽;
Ki:DB與Ti之間共享密鑰值;
IDSi:Ti的假名;
IDi:Ti的標(biāo)識符;
gid:Ti所在的標(biāo)簽組編號;
xi:Ti產(chǎn)生的隨機(jī)數(shù);
y:DB產(chǎn)生的隨機(jī)數(shù);
⊕:異或運(yùn)算;
&:與運(yùn)算;
h():反比例函數(shù)運(yùn)算。
RFID組證明協(xié)議的流程如圖1所示。
圖1 RFID組證明協(xié)議流程
結(jié)合圖1中流程可將本文協(xié)議具體步驟闡述如下:
(1) R向可通信范圍內(nèi)的所有T發(fā)送hello消息,開啟組證明協(xié)議。
(3) R在收到所有消息后,將收到的消息轉(zhuǎn)發(fā)給DB。
(5) R在收到消息后,將收到的消息廣播給通信范圍內(nèi)的所有T。
上述DB在更新信息時(shí)需要分兩種情況進(jìn)行討論,具體信息如下:
(11) R收到信息后,將接收到的信息廣播給仍處于活躍狀態(tài)下的T。
(1) 前向安全性。攻擊者通過獲取當(dāng)前會話消息分析出下輪會話用到的消息,攻擊者無法成功。協(xié)議加密過程中有隨機(jī)數(shù)的加入,使得前后兩次會話消息之間無關(guān)聯(lián);隨機(jī)數(shù)隨機(jī)產(chǎn)生,攻擊者無法從當(dāng)前會話用到的隨機(jī)數(shù)預(yù)測下次加密用到的隨機(jī)數(shù)。故協(xié)議具備前向安全性。
(2) 后向安全性。攻擊者通過獲取當(dāng)前會話消息逆推出上輪會話中隱私信息,攻擊者仍無法成功。協(xié)議設(shè)計(jì)中所有消息加密時(shí)必須混入隨機(jī)數(shù),隨機(jī)數(shù)具備隨機(jī)性、互異性、無法預(yù)測性,因此攻擊者無法逆推出上輪會話用到的隱私信息。故協(xié)議具備后向安全性。
(3) 存在證明正確性。協(xié)議在步驟(10)中,首先會對標(biāo)簽進(jìn)行驗(yàn)證,只有當(dāng)所有標(biāo)簽通過驗(yàn)證之后,服務(wù)器才會開始對處于激活狀態(tài)下的標(biāo)簽存在的證明正確性再次進(jìn)行驗(yàn)證。服務(wù)器一端是通過消息a、b對處于激活狀態(tài)下的標(biāo)簽進(jìn)行存在證明正確性驗(yàn)證,依據(jù)文中對a、b消息的計(jì)算由來可發(fā)現(xiàn),任何假冒的標(biāo)簽都不可能通過前面若干步驟復(fù)雜的計(jì)算及驗(yàn)證階段。故協(xié)議能夠確保標(biāo)簽存在證明正確性。
(4) 隱私信息安全性。攻擊者想從竊聽的消息中分析出用戶的部分或全部隱私信息,攻擊者無法成功。協(xié)議所有加密過程中一定保證至少有兩個(gè)參量攻擊者處于無法獲取或知曉狀態(tài),假定每個(gè)參量的長度都為32位,則攻擊者想要獲取某個(gè)加密消息里面兩個(gè)隱私信息正確性的概率為1/2×1/2×…×1/2=1/264,幾乎為零。故協(xié)議具備確保隱私信息的安全性。
(5) 異步攻擊。協(xié)議在服務(wù)器一端存放有前后兩次會話用到的標(biāo)簽的假名、標(biāo)簽與服務(wù)器之間共享密鑰值用以抵抗攻擊者發(fā)起的異步攻擊。結(jié)合協(xié)議步驟描述中的步驟(10)可以看出,服務(wù)器一端對接收到的消息會先用當(dāng)前的假名、共享密鑰值對消息進(jìn)行驗(yàn)證。若失敗,服務(wù)器一端將會再次用上輪的標(biāo)簽假名、共享密鑰值對消息再次進(jìn)行驗(yàn)證。通過上面一種機(jī)制,可以恢復(fù)服務(wù)器與標(biāo)簽之間的一致性。故協(xié)議能夠抵抗異步攻擊。
(6) 重放攻擊。攻擊者通過某些手段獲取上輪會話消息,在當(dāng)前會話過程中攻擊者重放上輪消息以企圖通過服務(wù)器或標(biāo)簽一端的認(rèn)證,進(jìn)而獲取隱私信息,但攻擊者無法成功。協(xié)議上輪與本輪加密消息值根本不會相同,因?yàn)榧用軙r(shí)混入隨機(jī)數(shù),使得攻擊者獲取的上輪消息僅能適用于上輪會話,根本不適用其他會話過程。故協(xié)議能夠抵抗重放攻擊。
將本文協(xié)議與其他經(jīng)典協(xié)議在標(biāo)簽一端的計(jì)算量、是否適用于多組標(biāo)簽存在證明等角度進(jìn)行對比分析,對比分析的結(jié)果如表1所示。
表1 本文協(xié)議與其他協(xié)議的對比
在表1中出現(xiàn)部分符號的含義如下:Ja表示產(chǎn)生隨機(jī)數(shù)的時(shí)間復(fù)雜度;Jb表示反比例函數(shù)加密的時(shí)間復(fù)雜度;Jc表示按位運(yùn)算的時(shí)間復(fù)雜度;Jd表示哈希函數(shù)加密的時(shí)間復(fù)雜度;Je表示物理不可克隆函數(shù)加密的時(shí)間復(fù)雜度;Jf表示模運(yùn)算算法加密的時(shí)間復(fù)雜度;Jg表示偽隨機(jī)函數(shù)的時(shí)間復(fù)雜度。在上述運(yùn)算中,Jb表示反比例函數(shù)是可以基于按位運(yùn)算實(shí)現(xiàn),Jc表示按位運(yùn)算本身就是按位運(yùn)算,其他運(yùn)算均不是基于按位運(yùn)算實(shí)現(xiàn),因此運(yùn)算量不屬于同一個(gè)級別。按照劃分,反比例函數(shù)及按位運(yùn)算的計(jì)算可屬于超輕量級,其他運(yùn)算的計(jì)算屬于輕量級。
結(jié)合本文表1及上述兩段文字描述可以看出,本文協(xié)議能夠減少通信實(shí)體計(jì)算量,且計(jì)算量要少于對比的所有其他協(xié)議,同時(shí)本文協(xié)議還適用于多組標(biāo)簽存在的證明,能夠彌補(bǔ)部分協(xié)議僅能證明單組標(biāo)簽存在證明的不足。結(jié)合第4節(jié)對協(xié)議安全性的分析可以得知,本文協(xié)議具備較高的安全性,能夠抵抗常見類型的攻擊,可以彌補(bǔ)其他協(xié)議存在的安全不足缺陷問題。
分析近些年經(jīng)典的證明協(xié)議,指出協(xié)議存在僅能證明單標(biāo)簽或單組標(biāo)簽存在不足,設(shè)計(jì)一種可以證明多組標(biāo)簽同時(shí)存在的組證明協(xié)議。協(xié)議并未采用傳統(tǒng)的加密算法或基于HASH函數(shù)的加密算法,而是采用一種構(gòu)造的反比例函數(shù)進(jìn)行加密,構(gòu)造的反比例函數(shù)可基于位運(yùn)算實(shí)現(xiàn),使得協(xié)議整體計(jì)算量得到一定幅度上降低;協(xié)議加密過程中,為確保隱私信息的安全,采用假名替代真實(shí)標(biāo)識符的方式進(jìn)行會話。將協(xié)議與其他經(jīng)典協(xié)議進(jìn)行安全及性能角度方面的比較分析,表明本文設(shè)計(jì)協(xié)議能夠彌補(bǔ)其他協(xié)議存在的不能證明多標(biāo)簽存在的缺陷,同時(shí)計(jì)算量、角度也優(yōu)于其他協(xié)議。