0 引言
射頻識(shí)別技術(shù)(Radio Frequency Identification,RFID)是一種高效而實(shí)用的識(shí)別技術(shù),它通過無(wú)線電波在讀寫器和標(biāo)簽之間傳遞信息,實(shí)現(xiàn)對(duì)物體的跟蹤和識(shí)別。RFID系統(tǒng)主要由標(biāo)簽、讀寫器和后端數(shù)據(jù)庫(kù)系統(tǒng)構(gòu)成。標(biāo)簽可接收數(shù)據(jù),也可將數(shù)據(jù)發(fā)送給讀寫器。讀寫器負(fù)責(zé)處理并捕捉標(biāo)簽的數(shù)據(jù),并將數(shù)據(jù)傳送給后端數(shù)據(jù)庫(kù)系統(tǒng)。讀寫器在標(biāo)簽和后端系統(tǒng)中發(fā)揮中介作用。這種非接觸性技術(shù)在帶來(lái)便利的同時(shí),也存在很多安全隱患,如物體的位置跟蹤及標(biāo)簽信息泄露等。RFID安全保密問題日益?zhèn)涫荜P(guān)注,很多學(xué)者提出了安全認(rèn)證協(xié)議,如基于密鑰矩陣的RFID安全協(xié)議、Key值更新隨機(jī)Hash鎖對(duì)RFID安全隱私的加強(qiáng)、基于輕量級(jí)加密技術(shù)建立物聯(lián)網(wǎng)感知層信息安全的解決方案等。這些算法在一定程度上可抵御攻擊,有一定的安全性,但也存在同步問題及運(yùn)算量大、對(duì)重放攻擊不具有免疫性等缺陷。
視覺密碼VCS(Visual Cryptography Scheme)是一種新型的密碼技術(shù),具有解密簡(jiǎn)單、計(jì)算量小、滿足無(wú)條件安全等優(yōu)勢(shì)。它由Naor和Shamir在1994年的歐洲密碼學(xué)會(huì)議上提出[1]。其基本思想是將秘密圖像編碼到n個(gè)影子圖像(分享圖像)中,并將影子圖像分別賦給n個(gè)參與者,解密時(shí)只需k(k≤n)個(gè)參與者將影子圖像疊加起來(lái),就可通過視覺辨認(rèn)出秘密信息[1-3]。文獻(xiàn)[4]提出了一個(gè)基于布爾操作的(2, n)門限視覺密碼方案,加密時(shí)將秘密圖像分享為n個(gè)分享圖像,解密時(shí)取任意兩個(gè)分享圖像進(jìn)行異或運(yùn)算即可恢復(fù)秘密圖像。文獻(xiàn)[5]分析了物聯(lián)網(wǎng)架構(gòu)中感知層存在的安全漏洞,提出了視覺密碼的身份認(rèn)證方案。該方案雖采用了視覺密碼運(yùn)算簡(jiǎn)單的特點(diǎn),但其在認(rèn)證過程中只實(shí)現(xiàn)了單向認(rèn)證,即對(duì)標(biāo)簽的認(rèn)證,而沒有實(shí)現(xiàn)對(duì)讀寫器的認(rèn)證。另外,由于認(rèn)證過程中認(rèn)證信息始終不變,所以方案不能抵御位置跟蹤、重放等攻擊。文獻(xiàn)[6]利用視覺密碼實(shí)現(xiàn)了雙向身份認(rèn)證,然而在認(rèn)證過程中以明文傳送,算法很難抵御假冒攻擊,一旦被俘獲算法也不能保證前向性安全。鑒于現(xiàn)有認(rèn)證協(xié)議的缺陷,本文利用視覺密碼構(gòu)造一種新的RFID認(rèn)證協(xié)議,使用視覺密碼實(shí)現(xiàn)標(biāo)簽與讀寫器間的認(rèn)證,并在認(rèn)證后更新標(biāo)簽中的影子圖像,彌補(bǔ)現(xiàn)有認(rèn)證協(xié)議運(yùn)算量大、安全性差的不足。
1 視覺密碼
1.1 基本原理
(k,n)的視覺密碼方案將一幅秘密圖像P加密成n幅影子圖像,解密時(shí)只需將k(k≤n)個(gè)影子圖像重疊起來(lái)就能恢復(fù)秘密信息。加密基本原理是對(duì)秘密圖像P中的每個(gè)像素進(jìn)行n次處理,P中每個(gè)像素在影子圖像中對(duì)應(yīng)m個(gè)黑白子像素(m稱為像素?cái)U(kuò)展度),對(duì)P中所有像素都作此處理后就得到n幅影子圖像。若為P中每個(gè)像素的加密構(gòu)建一個(gè)n*m的布爾矩陣A=(Aij)n*m,則Aij=0表示對(duì)于秘密圖像中某一個(gè)像素,它在第i個(gè)分享者的第j個(gè)子像素的顏色為白色;Aij=1表示它在第i個(gè)分享者的第j個(gè)子像素的顏色為黑色。矩陣A的第i行為秘密圖像p中一個(gè)像素在影子圖像中對(duì)應(yīng)的子像素。對(duì)A中第j列的所有元素作或運(yùn)算,其值W(v)稱為該像素塊的漢明重量。
解密時(shí)將k個(gè)影子圖像重疊,計(jì)算每個(gè)像素塊的漢明重量,當(dāng)W(v)≥d時(shí),圖像中該像素點(diǎn)為黑色;W(v) 1.2 二值圖像的(2,2)視覺密碼分解
以一幅黑白二值圖像p分解為2幅影子圖像為例來(lái)說(shuō)明視覺密碼方案的基本原理,分解時(shí)用公式(1)作加密矩陣(H0和H1分別表示秘密圖像中白色像素和黑色像素的加密矩陣),像素?cái)U(kuò)展度m=2。具體步驟如下:(1)對(duì)于P中的每一個(gè)像素pxy進(jìn)行擴(kuò)展,擴(kuò)展方法:若pxy為白色,則從集合H0中等概率挑出一個(gè)矩陣來(lái)對(duì)該像素加密;矩陣中的一行即為像素pxy在影子圖像中對(duì)應(yīng)的像素塊。若pxy為黑色,則從集合H1中等概率挑出一個(gè)矩陣來(lái)對(duì)該像素進(jìn)行加密。
(2)重復(fù)上述操作,直至P中所有像素都被加密為止。
解密步驟如下:
①選擇參數(shù)d和a;疊加2個(gè)影子圖像,計(jì)算疊加圖像中每個(gè)像素塊的漢明重量W(v);
②漢明重量W(v)≥d時(shí),恢復(fù)圖像中該像素點(diǎn)為黑色;W(v) ③重復(fù)上述過程即可得恢復(fù)圖像。
2 基于視覺密碼的RFID認(rèn)證協(xié)議
2.1 預(yù)置信息
在基于視覺密碼的RFID認(rèn)證協(xié)議中,后臺(tái)數(shù)據(jù)庫(kù)為每個(gè)標(biāo)簽存儲(chǔ)一條記錄(ID、S1、Rr、Pointer),ID是標(biāo)簽的唯一標(biāo)識(shí)符,Rr是系統(tǒng)生成的隨機(jī)數(shù),由Rr構(gòu)造一幅黑白二值圖像P;S1是對(duì)P作(2,2)視覺密碼分解所得的影子圖像。Pointer是數(shù)據(jù)記錄關(guān)聯(lián)指針,其作用是保證認(rèn)證過程中的同步安全。標(biāo)簽中存儲(chǔ)ID標(biāo)識(shí)符和標(biāo)簽對(duì)應(yīng)的另一個(gè)影子圖像S2。讀寫器含有隨機(jī)數(shù)發(fā)生器,并為每個(gè)標(biāo)簽存儲(chǔ)一條記錄(Hash(ID||R)、ID),Hash(ID||R)是標(biāo)簽ID與隨機(jī)數(shù)的哈希值。后端系統(tǒng)和標(biāo)簽共用Hash()和Ard(),Hash()是哈希函數(shù),Ard()為貓臉變換函數(shù),用來(lái)對(duì)影子圖像進(jìn)行加密與恢復(fù)。 初始化時(shí),為每個(gè)標(biāo)簽隨機(jī)生成一幅二值圖像P,使用視覺密碼將P分解為影子圖像S1和S2,將這些信息分別存入后臺(tái)系統(tǒng)和標(biāo)簽中,如圖1所示。
2.2 協(xié)議認(rèn)證過程
(1)讀寫器向標(biāo)簽發(fā)送認(rèn)證請(qǐng)求Query和隨機(jī)數(shù)R后,更新讀寫器中記錄的Hash(ID||R)值。
(2)標(biāo)簽計(jì)算Hash(ID||R),對(duì)影子圖像S2加密,將信息Hash(ID||R)和EN(S2)發(fā)送給讀寫器。
(3)讀寫器以Hash(ID||R)為索引搜索表中的記錄,若找到則將記錄中的ID和EN(S2)轉(zhuǎn)發(fā)給后端系統(tǒng);否則,會(huì)話結(jié)束。
(4)后臺(tái)以ID為索引搜索數(shù)據(jù)庫(kù)。若找到,取出記錄中的S1與解密后的S2作視覺密碼運(yùn)算得到恢復(fù)圖像P`,系統(tǒng)檢測(cè)P`中的信息與Rr是否一致,一致則對(duì)標(biāo)簽通過認(rèn)證。后端系統(tǒng)隨機(jī)生成新的隨機(jī)數(shù)Rrnew和對(duì)應(yīng)的二值圖像Pnew,對(duì)Pnew作視覺密碼分解得到新的影子圖像S1new、S2new,生成隨機(jī)數(shù)R,并計(jì)算Hash(ID||R),將Hash(ID||R)、R和EN(S2new)發(fā)送給讀寫器。讀寫器收到后轉(zhuǎn)發(fā)給標(biāo)簽。若P`中檢測(cè)的信息與Rr的信息不一致,則會(huì)話結(jié)束。
(5)數(shù)據(jù)庫(kù)檢查當(dāng)前記錄j中的Pointer值,若Pointer=0,則再添加一條新的記錄k:(ID、S1new、Rrnew、j),并將記錄j中的Pointer值改為k。若Pointer!=0,則找到第Pointer所指的記錄,將其內(nèi)容修改為(ID、S1new、Rrnew、j)。
(6)標(biāo)簽收到Hash(ID||R)、R和EN(S2new)后,標(biāo)簽計(jì)算Hash(ID||R),并與收到的Hash(ID||R)進(jìn)行比對(duì),比對(duì)成功則讀寫器認(rèn)證通過,標(biāo)簽對(duì)EN(S2new)解密后更新影子圖像S2,否則會(huì)話結(jié)束。標(biāo)簽與讀寫器間的認(rèn)證過程如圖2所示。
3 協(xié)議安全性分析
3.1 雙向身份驗(yàn)證分析
標(biāo)簽與讀寫器間的雙向身份驗(yàn)證是設(shè)計(jì)安全協(xié)議時(shí)需考慮的首要問題,本文只有合法的標(biāo)簽才擁有正確的影子圖像S2,S2與其對(duì)應(yīng)的S1重疊后恢復(fù)的信息才與Rr的信息吻合;若標(biāo)簽是偽造的,則其恢復(fù)的信息與Rr的信息不一致。所以利用S2可實(shí)現(xiàn)讀寫器對(duì)標(biāo)簽身份的認(rèn)證。協(xié)議中S2以密文的方式傳送,所以即便傳送的信息泄露,攻擊者也無(wú)法得到S2的任何信息。此外,當(dāng)后端系統(tǒng)通過對(duì)標(biāo)簽的認(rèn)證時(shí),協(xié)議會(huì)生成新的影子圖像S2new、計(jì)算標(biāo)簽ID與隨機(jī)數(shù)R的哈希值,并將Hash(ID||R)、R和EN(S2new)發(fā)送給標(biāo)簽,標(biāo)簽通過Hash(ID||R)的計(jì)算比較,實(shí)現(xiàn)標(biāo)簽對(duì)閱讀器的認(rèn)證。最后,在整個(gè)協(xié)議過程中,ID不在讀寫器和標(biāo)簽間傳輸,所以攻擊者無(wú)法獲得正確的ID,除非標(biāo)簽從物理上被攻破。認(rèn)證時(shí)標(biāo)簽要發(fā)送Hash(ID)、EN(S2),僅持有正確的Hash(ID)是毫無(wú)用處的??傮w來(lái)講,協(xié)議能夠安全可靠地實(shí)現(xiàn)讀寫器與標(biāo)簽間的雙向認(rèn)證。
3.2 不可跟蹤性分析
射頻識(shí)別認(rèn)證協(xié)議必須考慮的另一個(gè)問題是標(biāo)簽的位置跟蹤。本協(xié)議含有反位置跟蹤設(shè)計(jì)。每次認(rèn)證獲通過后,標(biāo)簽都會(huì)更新影子圖像S2,且隨機(jī)數(shù)R的值也在更新變化,所以標(biāo)簽對(duì)讀寫器的每次回答(Hash(ID||R)和EN(S2))是不同的,從而實(shí)現(xiàn)了標(biāo)簽的反跟蹤。
3.3 前向性和同步性安全分析
假設(shè)某標(biāo)簽被攻擊者攻破并獲得密鑰,攻擊者將得到正在使用的影子圖像S2。但由于每次驗(yàn)證通過后,系統(tǒng)都會(huì)隨機(jī)產(chǎn)生二值圖像P來(lái)更新標(biāo)簽中的影子圖像S2,這些影子圖像間無(wú)任何關(guān)聯(lián),所以即使當(dāng)前S2被竊取,也無(wú)法從現(xiàn)有的值推算出之前的S2,不可獲得標(biāo)簽的歷史活動(dòng)記錄。
協(xié)議對(duì)標(biāo)簽的認(rèn)證獲通過后,數(shù)據(jù)庫(kù)為更新的S2new建立新記錄,同時(shí)保留舊的S2對(duì)應(yīng)的記錄。若S2new更新不成功,標(biāo)簽仍能使用舊的S2實(shí)現(xiàn)與讀寫器的身份驗(yàn)證,這樣就防止了S2更新時(shí)可能出現(xiàn)的異常情況。
3.4 其它性能分析
標(biāo)簽中只存儲(chǔ)標(biāo)簽ID和影子圖像S2,一次認(rèn)證過程需2次哈希運(yùn)算和1次加密、解密運(yùn)算,降低了標(biāo)簽的存儲(chǔ)空間、運(yùn)算復(fù)雜度。因此這在低成本的標(biāo)簽上較易實(shí)現(xiàn)。每次認(rèn)證時(shí)后臺(tái)數(shù)據(jù)庫(kù)在2N(N為標(biāo)簽的個(gè)數(shù))條記錄中搜索,進(jìn)行1次哈希運(yùn)算,產(chǎn)生2個(gè)隨機(jī)數(shù),作一次視覺密碼的加、解密運(yùn)算,且視覺密碼的加解密運(yùn)算量較小,所以本方法延時(shí)短、速度快,效率高。
3.5 與其它協(xié)議性能比較
表1為本協(xié)議與文獻(xiàn)[5]、[6]協(xié)議的比較。表中VCS為視覺密碼加密或解密,H表示哈希運(yùn)算,R表示產(chǎn)生隨機(jī)數(shù)操作的次數(shù),EN為對(duì)稱加密算法,DE為對(duì)稱解密算法。
4 結(jié)語(yǔ)
本協(xié)議通過對(duì)隨機(jī)二值圖像作視覺密碼分解,把分解后的影子圖像分別存儲(chǔ)在標(biāo)簽和后臺(tái)系統(tǒng)中,認(rèn)證時(shí)對(duì)影子圖像作視覺密碼解密,然后用提取的恢復(fù)圖像信息與Rr作比較,若信息一致,則標(biāo)簽的認(rèn)證通過,否則會(huì)話結(jié)束。視覺密碼的加密、解密過程簡(jiǎn)單,運(yùn)算量小,標(biāo)簽端存儲(chǔ)的數(shù)據(jù)少、運(yùn)算量不大,復(fù)雜運(yùn)算主要在運(yùn)算能力和存儲(chǔ)能力較強(qiáng)的后臺(tái)數(shù)據(jù)庫(kù)和讀寫器中進(jìn)行。該算法具有成本低,延時(shí)短,安全性高等特點(diǎn),在實(shí)現(xiàn)雙向認(rèn)證的基礎(chǔ)上能有效抵御位置跟蹤、竊聽、非法讀取等攻擊。
責(zé)任編輯:ct
評(píng)論
查看更多