熊永平
(廣州科技職業(yè)技術(shù)大學,信息工程學院, 廣東,廣州 510550)
射頻識別技術(shù)是一種能夠不需要與特定商品有接觸即可讀出商品中信息的技術(shù)[1-2]。一個經(jīng)典的射頻識別系統(tǒng)至少含有電子標簽、讀寫器、后臺服務(wù)器三者,因電子標簽具有體積小、方便攜帶、安裝簡單、成本便宜等優(yōu)勢,使得射頻識別系統(tǒng)在很多領(lǐng)域中都可以見到其身影,比如:門禁系統(tǒng)等[3-5]。
由于電子標簽體積小、成本低,因此電子標簽一端的計算能力受到嚴重制約,使得電子標簽通信過程中無法采用經(jīng)典加密算法對信息加密[6-7]。為了確保隱私信息安全性,必須在各方面受限制的電子標簽一端設(shè)計出適用于低成本無源標簽中的安全協(xié)議,該方面的研究是一個非常具有挑戰(zhàn)性的課題。
伴隨著科技發(fā)展,人們需求增加,經(jīng)常會將多個電子標簽用來標記同一個商品或物體,此時就需要給出多個電子標簽同時存在的證據(jù)證明。比如,JUELS等[8]給出了一個具體實例,用2個電子標簽分別標記藥品和藥品說明書,同時他們還給出了2個電子標簽同時存在的證明協(xié)議。然而對協(xié)議進行分析,發(fā)現(xiàn)該協(xié)議存在諸多不足,比如協(xié)議無法提供前向安全性、無法抵抗假冒攻擊等。
SUNDARESAN等[9]提出了一個組證明協(xié)議,該協(xié)議具備一定的安全性,但仍無法抵抗去同步化攻擊,同時該協(xié)議對系統(tǒng)的通信負荷量較大,缺乏推廣實用價值。KANG等[10]給出了一個組證明協(xié)議,但它無法滿足前向安全性,使得攻擊者可以通過竊聽獲取的當前會話中分析出上輪會話消息攜帶的隱私信息,從而造成隱私信息的泄露。
ZHOU等[11]設(shè)計的組證明協(xié)議雖然具備較低的計算量,同時也具備一定的安全性,但協(xié)議仍無法抵抗攻擊者的前向分析攻擊。SHI等[12]設(shè)計了一個具有隱私保護的組證明協(xié)議,協(xié)議能夠同時證明多標簽存在,具備一定使用價值,但協(xié)議存在一些缺陷,比如:電子標簽一端將產(chǎn)生多個隨機數(shù),增加電子標簽計算量,且多個隨機數(shù)是否真有必要產(chǎn)生還有待商榷;電子標簽的標識符本應該是確定不會發(fā)生變動的。但在這個協(xié)議過程中,電子標簽的標識符每次會話結(jié)束之前將會進行一次更新操作,該操作正確性仍有待商榷。同時對該協(xié)議進行安全分析,協(xié)議存在隱私泄露安全缺陷,rj由明文傳輸,再加之gmj消息,攻擊者可以窮舉出gmj消息里面加密用到的隱私信息gid;當攻擊者有了gid隱私信息之后,可假冒發(fā)起其他攻擊,進而獲取更多隱私信息。
鑒于現(xiàn)有協(xié)議僅能證明單個標簽存在或計算量大或安全缺陷問題,本文給出一種采用線性函數(shù)加密實現(xiàn)的能夠同時證明多標簽存在的證明協(xié)議。本文將在下一章節(jié)中給出線性函數(shù)的具體構(gòu)造實現(xiàn)步驟,第四節(jié)給出本文協(xié)議具體加密步驟,后續(xù)章節(jié)將從不同角度對本文設(shè)計協(xié)議進行理論及仿真實驗方面的安全性分析及性能對比分析,從而多角度說明本文協(xié)議具備較高的安全性能。
本文協(xié)議為進一步減少會話實體的計算量,不再使用傳統(tǒng)的加密算法或哈希函數(shù)等,采用線性函數(shù),線性函數(shù)的構(gòu)造具體如下。
線性函數(shù)構(gòu)造的一般形式為y=Ax+B,線性函數(shù)統(tǒng)一用f(x,y)表示。其中,x、y是2個需要加密的參數(shù),上面公式中的A是加密參數(shù)y的漢明權(quán)值,同時公式中的B是加密參數(shù)x的漢明權(quán)值。按照上述方法即可構(gòu)造出統(tǒng)一模型的線性函數(shù),同時每次需要加密的參數(shù)不同,將會使得上面公式中A和B的值也不同,處于變動狀態(tài),每次的線性函數(shù)具體形態(tài)又有差別,增加了攻擊者破解難度。其中,約定加密參數(shù)x、y的長度是等長的且都為l位長度。
為便于對構(gòu)造線性函數(shù)的理解,取l=6、x=001101、y=000100,則可以得到A=1、B=3,再根據(jù)上述構(gòu)造線性函數(shù)方法可以得到f(x,y)=Ax+B=1×x+3=x+3,然后將需要加密的x=001101、y=000100的值代入上述線性函數(shù)進行運算,即可得到加密之后的結(jié)果為
f(x,y)=f(001101、000100)=(001101)2+(3)10=(13)10+(3)10=(16)10=(010000)2=010000。
其中,(001101)2表示二進制的001101,(3)10表示十進制的3。即,加密參數(shù)x=001101、y=000100時,得到A=1、B=3、線性函數(shù)為f(x,y)=Ax+B=1×x+3=x+3,加密結(jié)果為001101。
與其他經(jīng)典協(xié)議[13-14]一樣,給出如下約定:電子標簽與讀寫器間信息交換線路不可靠,讀寫器與后臺服務(wù)器間信息交換線路可靠。
標簽組存在證明協(xié)議中涉及符號較多,下面給出部分符號表示的含義。
DB:后臺服務(wù)器。
T:電子標簽。
R:讀寫器。
Tj:第j個電子標簽。
gid:電子標簽所在的標簽組的編號。
x:后臺服務(wù)器產(chǎn)生的隨機數(shù)。
rj:第j個電子標簽產(chǎn)生的隨機數(shù)。
Hello:開始會話消息。
f(x,y):線性函數(shù)。
⊕:異或運算。
&:與運算。
與標簽組存在證明協(xié)議示意圖如圖1所示。
圖1 標簽組存在證明協(xié)議示意圖
結(jié)合圖1可將標簽組存在證明協(xié)議步驟描述如下。
步驟1:讀寫器向電子標簽發(fā)送Hello消息,激活會話范圍內(nèi)的所有電子標簽。
步驟3:讀寫器收到信息后,將Aj、gmj轉(zhuǎn)發(fā)給后臺服務(wù)器。
不等,協(xié)議停止。
步驟5:讀寫器收到信息后,將B、E轉(zhuǎn)發(fā)給電子標簽。
步驟6:電子標簽收到信息后,先對E變形得到x′,再將x′及gid結(jié)合線性函數(shù)計算得到B′,接著比較B與B′值。
不等,則該電子標簽進入休眠狀態(tài)。
等,后臺服務(wù)器通過電子標簽的驗證,該電子標簽繼續(xù)保持激活狀態(tài)(即活躍狀態(tài))。然后電子標簽計算得到消息Fj、Gj,并將Fj、Gj發(fā)送給讀寫器。
步驟7:讀寫器在收到所有電子標簽信息后,將所有收到的Fj結(jié)合線性函數(shù)計算得到mp,并將mp發(fā)送給所有還處于活躍狀態(tài)的電子標簽。
其中,mp=f(F1⊕F2⊕…⊕Fn,F1&F2&…&Fn),其中,n表示電子標簽的總個數(shù)。
步驟8:處于活躍狀態(tài)的電子標簽收到信息后,用自身的Kj對收到的信息mp結(jié)合線性函數(shù)進行簽名加密得到mpj,并將mpj發(fā)送給讀寫器。
其中,mpj=f(mp,mp⊕Kj)。
步驟9:讀寫器收到所有處于活躍狀態(tài)的電子標簽發(fā)送來的信息后,對所有的mpj結(jié)合線性函數(shù)進行加密計算得到p,然后將接收到的信息及計算所得信息整理得到消息gp,并將gp發(fā)送給后臺服務(wù)器。
其中,p=f(mp1&mp2&…&mpn,mp1⊕mp2⊕…⊕mpn)、gp={(F1,G1),(F2,G2),…,(Fn,Gn),mp,p},n表示電子標簽的總個數(shù)。
步驟10:后臺服務(wù)器先對處于活躍狀態(tài)的電子標簽進行驗證,判斷是否有假冒的電子標簽。待所有處于活躍狀態(tài)的電子標簽全部通過驗證后,后臺服務(wù)器在對處于活躍狀態(tài)的電子標簽存在的正確性進行驗證。
(1) 后臺服務(wù)器先對處于活躍狀態(tài)的電子標簽進行驗證
(2) 后臺服務(wù)器在對處于活躍狀態(tài)的電子標簽存在的正確性進行證明驗證
不等,該電子標簽則舍棄收到的信息,不做任何操作。
(1) 信息隱私性
隱私的信息主要是指重要的信息,比如電子標簽與后臺服務(wù)器間共享密鑰等。本文一個完整的會話過程中涉及隱私信息的消息比較多,比如有Aj、gmj、Fj、Gj等,攻擊者想要從上述任何一個消息中獲取正確的完整的隱私信息是很困難的。設(shè)定通信消息長度為32個比特,則攻擊者正確獲取隱私信息的概率為1/232,幾乎為零。因此協(xié)議可以確保信息的隱私安全性。
(2) 前向安全性
所有會話消息加密過程中,不論是基于線性函數(shù)方式加密,還是普通方式加密,整個加密過程中均有隨機數(shù)的加入。前后兩輪通信中加密用到的隨機數(shù)不可能相同,且隨機數(shù)間無關(guān)聯(lián)性,因此攻擊者無法通過當前獲取的消息逆推出上輪會話中隱私信息,協(xié)議具備前向安全性。
(3) 去同步化攻擊
(4) 重放攻擊
將截獲上輪會話消息,在當前會話中釋放,以通過某個實體認證,但本文協(xié)議攻擊者無法成功。消息加密過程中混入隨機數(shù),隨機數(shù)產(chǎn)生器可以確保產(chǎn)生的隨機數(shù)具備互異性,使得前后兩輪加密消息結(jié)果不同。當攻擊者重放上輪消息,當前消息值以發(fā)生變更,因此協(xié)議能夠提供重放攻擊安全性。
(5) 假冒攻擊
本文協(xié)議每個實體在進行具體步驟之前,都會先對接收到的信息進行驗證,當且僅當消息來源通過消息接收方驗證之后,接收方才會進行后續(xù)步驟。比如,本文協(xié)議后臺數(shù)據(jù)庫可以通過消息Aj、gmj來驗證電子標簽的真假等。
(6) 標簽組存在正確性
攻擊者有可能充當電子標簽響應后臺服務(wù)器的消息,向后臺數(shù)據(jù)發(fā)送信息,企圖通過后臺服務(wù)器的驗證,從而獲取部分隱私信息,因此驗證電子標簽的存在必須要保證其正確性。本文協(xié)議在步驟10中,先對電子標簽進行驗證,當且僅當所有電子標簽全部通過驗證之后,后臺服務(wù)器將再次通過mp′、p′消息驗證存在證據(jù)的正確性。攻擊者充當?shù)碾娮訕撕炏胍ㄟ^前后各種驗證,其通過的概率為1/232×1/232×1/232×1/232=1/2128(假定每個消息長度均為32個比特,攻擊者需要確保4個消息值全部正確才可以通過驗證,因此是4個1/232相乘),幾乎為零。
協(xié)議安全性對比結(jié)果見表1所示。
表1 各協(xié)議間安全對比
相對于電子標簽來說,讀寫器及后臺服務(wù)器具備強大的計算能力及搜索查詢能力,因此這里只選擇電子標簽為對象進行性能角度的討論分析,具體是從電子標簽一端的計算量、一個完整會話過程的通信量、電子標簽一端的存儲量出發(fā)分析討論。具體見表2。
表2 多個協(xié)議之間性能對比分析
在表2中,約定協(xié)議所有需要存放的參數(shù)長度都為l,所有會話消息長度也為l,從而可以得到表2中各個協(xié)議中通信量大小、存儲量大小情況。rand符號代表產(chǎn)生隨機數(shù)的計算量;f符號代表線性函數(shù)的計算量;bit符號代表位運算的計算量(常見的位運算有與運算、異或運算、連接運算等);hash符號代表哈希函數(shù)的計算量;prng符號代表偽隨機函數(shù)的計算量;ecc符號代表橢圓曲線加密的計算量;mod符號代表模運算的計算量。
綜合對表2分析,電子標簽一端的存儲量角度出發(fā),本文協(xié)議與其他協(xié)議在存儲量角度大小相差不大。再從一個完整會話的通信量角度分析,雖每個協(xié)議一個完整會話通行量不盡相同,但都相差不大,有協(xié)議比本文協(xié)議通信量小的,也有協(xié)議通信量比本文協(xié)議通信量大的,整體而言相當。最后從電子標簽一端的計算量角度分析,本文協(xié)議用到的加密算法是構(gòu)造出來的線性函數(shù)加密算法,其計算量小于其他算法。同時根據(jù)第三節(jié)有關(guān)線性函數(shù)的構(gòu)造說明可以得知,線性函數(shù)具體實現(xiàn)時是可以基于位運算實現(xiàn)的,從而實現(xiàn)加密算法的超輕量級運算量,因此,從該點出發(fā),本文協(xié)議在電子標簽端的計算量得到一定幅度的降低,優(yōu)于其他協(xié)議。
本文給出的協(xié)議為能夠降低整體計算量,摒棄采用哈希函數(shù)等加密算法,采用線性函數(shù)對信息進行加密;同時為減少參量引入,及降低存儲空間,線性函數(shù)加密過程中巧妙結(jié)合加密參數(shù)自身固有的漢明權(quán)值,在滿足上述要求的同時還可以增加攻擊者破解難度。對設(shè)計協(xié)議的安全性和性能進行綜合性對比分析,本文協(xié)議在提供較高安全性的同時,還可以滿足當前低成本計算受限系統(tǒng)環(huán)境。