熊永平
(廣州科技職業技術大學,信息工程學院, 廣東,廣州 510550)
射頻識別技術是一種能夠不需要與特定商品有接觸即可讀出商品中信息的技術[1-2]。一個經典的射頻識別系統至少含有電子標簽、讀寫器、后臺服務器三者,因電子標簽具有體積小、方便攜帶、安裝簡單、成本便宜等優勢,使得射頻識別系統在很多領域中都可以見到其身影,比如:門禁系統等[3-5]。
由于電子標簽體積小、成本低,因此電子標簽一端的計算能力受到嚴重制約,使得電子標簽通信過程中無法采用經典加密算法對信息加密[6-7]。為了確保隱私信息安全性,必須在各方面受限制的電子標簽一端設計出適用于低成本無源標簽中的安全協議,該方面的研究是一個非常具有挑戰性的課題。
伴隨著科技發展,人們需求增加,經常會將多個電子標簽用來標記同一個商品或物體,此時就需要給出多個電子標簽同時存在的證據證明。比如,JUELS等[8]給出了一個具體實例,用2個電子標簽分別標記藥品和藥品說明書,同時他們還給出了2個電子標簽同時存在的證明協議。然而對協議進行分析,發現該協議存在諸多不足,比如協議無法提供前向安全性、無法抵抗假冒攻擊等。
SUNDARESAN等[9]提出了一個組證明協議,該協議具備一定的安全性,但仍無法抵抗去同步化攻擊,同時該協議對系統的通信負荷量較大,缺乏推廣實用價值。KANG等[10]給出了一個組證明協議,但它無法滿足前向安全性,使得攻擊者可以通過竊聽獲取的當前會話中分析出上輪會話消息攜帶的隱私信息,從而造成隱私信息的泄露。
ZHOU等[11]設計的組證明協議雖然具備較低的計算量,同時也具備一定的安全性,但協議仍無法抵抗攻擊者的前向分析攻擊。SHI等[12]設計了一個具有隱私保護的組證明協議,協議能夠同時證明多標簽存在,具備一定使用價值,但協議存在一些缺陷,比如:電子標簽一端將產生多個隨機數,增加電子標簽計算量,且多個隨機數是否真有必要產生還有待商榷;電子標簽的標識符本應該是確定不會發生變動的。但在這個協議過程中,電子標簽的標識符每次會話結束之前將會進行一次更新操作,該操作正確性仍有待商榷。同時對該協議進行安全分析,協議存在隱私泄露安全缺陷,rj由明文傳輸,再加之gmj消息,攻擊者可以窮舉出gmj消息里面加密用到的隱私信息gid;當攻擊者有了gid隱私信息之后,可假冒發起其他攻擊,進而獲取更多隱私信息。
鑒于現有協議僅能證明單個標簽存在或計算量大或安全缺陷問題,本文給出一種采用線性函數加密實現的能夠同時證明多標簽存在的證明協議。本文將在下一章節中給出線性函數的具體構造實現步驟,第四節給出本文協議具體加密步驟,后續章節將從不同角度對本文設計協議進行理論及仿真實驗方面的安全性分析及性能對比分析,從而多角度說明本文協議具備較高的安全性能。
本文協議為進一步減少會話實體的計算量,不再使用傳統的加密算法或哈希函數等,采用線性函數,線性函數的構造具體如下。
線性函數構造的一般形式為y=Ax+B,線性函數統一用f(x,y)表示。其中,x、y是2個需要加密的參數,上面公式中的A是加密參數y的漢明權值,同時公式中的B是加密參數x的漢明權值。按照上述方法即可構造出統一模型的線性函數,同時每次需要加密的參數不同,將會使得上面公式中A和B的值也不同,處于變動狀態,每次的線性函數具體形態又有差別,增加了攻擊者破解難度。其中,約定加密參數x、y的長度是等長的且都為l位長度。
為便于對構造線性函數的理解,取l=6、x=001101、y=000100,則可以得到A=1、B=3,再根據上述構造線性函數方法可以得到f(x,y)=Ax+B=1×x+3=x+3,然后將需要加密的x=001101、y=000100的值代入上述線性函數進行運算,即可得到加密之后的結果為
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。即,加密參數x=001101、y=000100時,得到A=1、B=3、線性函數為f(x,y)=Ax+B=1×x+3=x+3,加密結果為001101。
與其他經典協議[13-14]一樣,給出如下約定:電子標簽與讀寫器間信息交換線路不可靠,讀寫器與后臺服務器間信息交換線路可靠。
標簽組存在證明協議中涉及符號較多,下面給出部分符號表示的含義。
DB:后臺服務器。
T:電子標簽。
R:讀寫器。
Tj:第j個電子標簽。




gid:電子標簽所在的標簽組的編號。
x:后臺服務器產生的隨機數。
rj:第j個電子標簽產生的隨機數。
Hello:開始會話消息。
f(x,y):線性函數。
⊕:異或運算。
&:與運算。
與標簽組存在證明協議示意圖如圖1所示。

圖1 標簽組存在證明協議示意圖
結合圖1可將標簽組存在證明協議步驟描述如下。
步驟1:讀寫器向電子標簽發送Hello消息,激活會話范圍內的所有電子標簽。


步驟3:讀寫器收到信息后,將Aj、gmj轉發給后臺服務器。

不等,協議停止。

步驟5:讀寫器收到信息后,將B、E轉發給電子標簽。
步驟6:電子標簽收到信息后,先對E變形得到x′,再將x′及gid結合線性函數計算得到B′,接著比較B與B′值。
不等,則該電子標簽進入休眠狀態。
等,后臺服務器通過電子標簽的驗證,該電子標簽繼續保持激活狀態(即活躍狀態)。然后電子標簽計算得到消息Fj、Gj,并將Fj、Gj發送給讀寫器。

步驟7:讀寫器在收到所有電子標簽信息后,將所有收到的Fj結合線性函數計算得到mp,并將mp發送給所有還處于活躍狀態的電子標簽。
其中,mp=f(F1⊕F2⊕…⊕Fn,F1&F2&…&Fn),其中,n表示電子標簽的總個數。
步驟8:處于活躍狀態的電子標簽收到信息后,用自身的Kj對收到的信息mp結合線性函數進行簽名加密得到mpj,并將mpj發送給讀寫器。
其中,mpj=f(mp,mp⊕Kj)。
步驟9:讀寫器收到所有處于活躍狀態的電子標簽發送來的信息后,對所有的mpj結合線性函數進行加密計算得到p,然后將接收到的信息及計算所得信息整理得到消息gp,并將gp發送給后臺服務器。
其中,p=f(mp1&mp2&…&mpn,mp1⊕mp2⊕…⊕mpn)、gp={(F1,G1),(F2,G2),…,(Fn,Gn),mp,p},n表示電子標簽的總個數。
步驟10:后臺服務器先對處于活躍狀態的電子標簽進行驗證,判斷是否有假冒的電子標簽。待所有處于活躍狀態的電子標簽全部通過驗證后,后臺服務器在對處于活躍狀態的電子標簽存在的正確性進行驗證。
(1) 后臺服務器先對處于活躍狀態的電子標簽進行驗證
(2) 后臺服務器在對處于活躍狀態的電子標簽存在的正確性進行證明驗證


不等,該電子標簽則舍棄收到的信息,不做任何操作。

(1) 信息隱私性
隱私的信息主要是指重要的信息,比如電子標簽與后臺服務器間共享密鑰等。本文一個完整的會話過程中涉及隱私信息的消息比較多,比如有Aj、gmj、Fj、Gj等,攻擊者想要從上述任何一個消息中獲取正確的完整的隱私信息是很困難的。設定通信消息長度為32個比特,則攻擊者正確獲取隱私信息的概率為1/232,幾乎為零。因此協議可以確保信息的隱私安全性。
(2) 前向安全性
所有會話消息加密過程中,不論是基于線性函數方式加密,還是普通方式加密,整個加密過程中均有隨機數的加入。前后兩輪通信中加密用到的隨機數不可能相同,且隨機數間無關聯性,因此攻擊者無法通過當前獲取的消息逆推出上輪會話中隱私信息,協議具備前向安全性。
(3) 去同步化攻擊
(4) 重放攻擊
將截獲上輪會話消息,在當前會話中釋放,以通過某個實體認證,但本文協議攻擊者無法成功。消息加密過程中混入隨機數,隨機數產生器可以確保產生的隨機數具備互異性,使得前后兩輪加密消息結果不同。當攻擊者重放上輪消息,當前消息值以發生變更,因此協議能夠提供重放攻擊安全性。
(5) 假冒攻擊
本文協議每個實體在進行具體步驟之前,都會先對接收到的信息進行驗證,當且僅當消息來源通過消息接收方驗證之后,接收方才會進行后續步驟。比如,本文協議后臺數據庫可以通過消息Aj、gmj來驗證電子標簽的真假等。
(6) 標簽組存在正確性
攻擊者有可能充當電子標簽響應后臺服務器的消息,向后臺數據發送信息,企圖通過后臺服務器的驗證,從而獲取部分隱私信息,因此驗證電子標簽的存在必須要保證其正確性。本文協議在步驟10中,先對電子標簽進行驗證,當且僅當所有電子標簽全部通過驗證之后,后臺服務器將再次通過mp′、p′消息驗證存在證據的正確性。攻擊者充當的電子標簽想要通過前后各種驗證,其通過的概率為1/232×1/232×1/232×1/232=1/2128(假定每個消息長度均為32個比特,攻擊者需要確保4個消息值全部正確才可以通過驗證,因此是4個1/232相乘),幾乎為零。
協議安全性對比結果見表1所示。

表1 各協議間安全對比
相對于電子標簽來說,讀寫器及后臺服務器具備強大的計算能力及搜索查詢能力,因此這里只選擇電子標簽為對象進行性能角度的討論分析,具體是從電子標簽一端的計算量、一個完整會話過程的通信量、電子標簽一端的存儲量出發分析討論。具體見表2。

表2 多個協議之間性能對比分析
在表2中,約定協議所有需要存放的參數長度都為l,所有會話消息長度也為l,從而可以得到表2中各個協議中通信量大小、存儲量大小情況。rand符號代表產生隨機數的計算量;f符號代表線性函數的計算量;bit符號代表位運算的計算量(常見的位運算有與運算、異或運算、連接運算等);hash符號代表哈希函數的計算量;prng符號代表偽隨機函數的計算量;ecc符號代表橢圓曲線加密的計算量;mod符號代表模運算的計算量。
綜合對表2分析,電子標簽一端的存儲量角度出發,本文協議與其他協議在存儲量角度大小相差不大。再從一個完整會話的通信量角度分析,雖每個協議一個完整會話通行量不盡相同,但都相差不大,有協議比本文協議通信量小的,也有協議通信量比本文協議通信量大的,整體而言相當。最后從電子標簽一端的計算量角度分析,本文協議用到的加密算法是構造出來的線性函數加密算法,其計算量小于其他算法。同時根據第三節有關線性函數的構造說明可以得知,線性函數具體實現時是可以基于位運算實現的,從而實現加密算法的超輕量級運算量,因此,從該點出發,本文協議在電子標簽端的計算量得到一定幅度的降低,優于其他協議。
本文給出的協議為能夠降低整體計算量,摒棄采用哈希函數等加密算法,采用線性函數對信息進行加密;同時為減少參量引入,及降低存儲空間,線性函數加密過程中巧妙結合加密參數自身固有的漢明權值,在滿足上述要求的同時還可以增加攻擊者破解難度。對設計協議的安全性和性能進行綜合性對比分析,本文協議在提供較高安全性的同時,還可以滿足當前低成本計算受限系統環境。