簡碧園
(廣州科技職業(yè)技術學院 信息工程學院,廣東 廣州 510550)
一種RFID系統群組標簽密鑰無線生成算法
簡碧園
(廣州科技職業(yè)技術學院 信息工程學院,廣東 廣州 510550)
在 R FID 系統運用中,標簽與讀寫器之間進行雙向認證的時候,會涉及到共享密鑰?,F有的認證過程中用到的共享密鑰大多是事先設定好的,但該方式存在一定的安全缺陷。針對讀寫器為一組標簽生成一個共同的密鑰運用場景,提出了一種動態(tài)方式通過無線方法生成共享密鑰的算法,從而解決事先設置好密鑰而存在的安全缺陷問題。
無線射頻識別;交叉位運算;共享密鑰;字合成運算;群組標簽
RFID 系統一般包含讀寫器、標簽及后臺數據庫三部分。其中讀寫器與后臺數據庫之間的通信是通過有線方式完成的,該種通信方式一般認為是安全的;而讀寫器與標簽之間的通信則是通過無線方式來完成的,這種通信方式存在一定的安全隱患,一般認為不安全[1-3]。為了能夠在不安全的鏈路中進行通信,則在通信正式開始之前,標簽與讀寫器之間必須進行雙向認證,必須確保標簽及讀寫器的真?zhèn)我约罢_性[4-6]。
標簽與讀寫器兩者在雙向認證過程中會用到事先設計好的共享密鑰,但分析發(fā)現,事先設計好密鑰這種方式存在一定的安全隱患,攻擊者可能通過一定的方式獲取標簽中存在的隱私信息[7-8]。為了解決上述存在的安全問題,本文提出一種新的思想,即兩者之間用到的共享密鑰不用事先設置好的,而是通過動態(tài)方式無線生成,從而解決上面指出的安全問題。
2.1 符號解釋
R:讀寫器;
T:標簽;
Ti:編號為i的標簽;
i:標簽的編號;
n:群組標簽的數量;
ID_L:標簽的左半部分標識符;
ID_R:標簽的右半部分標識符;
IDi_L:標簽 Ti的左半部分標識符;
IDi_R:標簽 Ti的右半部分標識符;
rR:讀寫器產生的隨機數;
ri:標簽 Ti產生的隨機數;
K:讀寫器與群組標簽之間的一個共享群組密鑰;
Ki:讀寫器與標簽Ti之間計算群組共享密鑰生成因子;
Time:時間戳,位于讀寫器R端;
Cro():交叉位運算;
Syn():字合成運算;
⊕:異或運算;
&:與運算。
2.2 字合成運算的實現
設 X、Y 是兩個具有 L 位的二進制數 ,X=x1x2x3...xL,Y= y1y2y3...yL;其中,xi,yi取值范圍為{0,1},i=1,2,..L,Syn(X,Y)= YL-M+1YL-M+2···YLX1X2···XL-M;字合成運算 Syn(X,Y)是指由 X的前L-M位與Y的后M位組合而形成新的L位數組;其中M的設定為:M=Hw(Y),也可以為 M=L-Hw(Y);或者是 M= Hw(X),也可以為 M=L-Hw(X);或者是 M=Hd(X,Y),也可以為 M=L-Hd(X,Y);Hw(X)表示為X 的漢明重量,Hw(Y)表示為Y 的漢明重量,Hd(X,Y)表示為X 與 Y的漢明距離。
例 如 ,取 長 度 L=12,設 X=101001100011,Y= 100101101101,設定 M=Hw(Y)=7,則根據上述字合成運算的定義可以得到Syn(X,Y)=110110110100,具體運算過程如圖1所示。該運算只需要移位以及按位運算即可實現,從而可以有效地降低標簽的計算量和存儲空間,最終達到降低標簽成本的目的。上例中M可以根據需要設定其他不同的數值,在這里不再一一列出其實現過程。在運用過程中M的值要保密,以防攻擊者惡意攻擊。
圖1 字合成運算
2.3 交叉位運算的實現
設 X、Y 是兩個具有偶數位 L 位的二進制數,X=x1x2x3... xL,Y=y1y2y3...yL;其中,xi,yi取值范圍為{0,1},i=1,2,..L;交叉位運算 Cro(X,Y)是指由 X 的奇數位和 Y 的偶數位相互交叉形成新的L位數組;交叉位運算可在標簽中按如下方式實現:定義兩個指針p1和p2分別指向X和Y,當p1指向X的奇數位時,把此位置上的值賦予運算結果的偶數位;當p2指向Y的偶數位時,則把此位置上的指賦予運算結果的奇數位。例如,取長度 L=12,設 X=010010011000,Y=000110011001,則Cro(X,Y)=001001100110,如圖2所示。
圖2 交叉位運算計算過程流程圖
2.4 算法描述
讀寫器為一組標簽生成一個共同的組密鑰過程如下圖3,對圖中出現的符號A,B,K,Ki的說明:
A=IDi_L⊕ri;
圖3 群組標簽密鑰生成算法
群組標簽密鑰無線生成算法具體步驟如下:
(1)讀寫器向群組標簽廣播密鑰生成請求命令 Query,告知群組內所有標簽開始群組標簽密鑰無線生成算法,同時讀寫器端的時間戳Time開始啟動計時。
(2)組內標簽在接收到讀寫器發(fā)送來的信息后,標簽Ti首先生成一個長度為 L 位的隨機數 ri,接著用自己存放的IDi_L、自身生成的隨機數 ri分別計算 A 和 B 的值,最后將自身的 IDi_R、A、B 的值一并傳送給讀寫器作為響應信息。
(3)在時間戳Time結束之后,讀寫器將逐一比對接收到的 IDi_R與自身存放的信息是否完全一致。
若不完全一致,說明組內存在標簽沒有響應此次命令,此時讀寫器將再次向群組標簽廣播密鑰生成請求命令Query,告知群組內所有標簽開始群組標簽密鑰無線生成算法,同時讀寫器端的時間戳Time將再次開始啟動計時。在時間戳 Time再次結束計時之后,讀寫器將再次逐一比對接收到的 IDi_R與自身存放的信息是否完全一致。
若完全一致,說明組內所有標簽均已應答,可以開始進行密鑰生成算法。讀寫器找到與接收到的 IDi_R 相對應的IDi_L,接 著 用 接 收 到 的 A、與 接 收 到 的 IDi_R 相 對 應 的IDi_L 來計算 IDi_L⊕A,再計算 IDi_L&(IDi_L⊕A),同時比對接收到的 B 的值是否與 IDi_L&(IDi_L⊕A)的值相等。
如果兩者的值不相等,說明組內存在某些標簽是偽造的,密鑰生成算法立刻終止;如果兩者的值相等,則讀寫器可以通過計算得到正確的標簽 Ti生成的隨機數ri。
在讀寫器得到正確的標簽Ti生成的隨機數ri之后,讀寫器立刻生成一個長度為L 位的隨機數rR,然后讀寫器開始計算 K=Syn(r1,rR)⊕Syn(r2,rR)⊕┄⊕Syn(ri,rR)⊕┄⊕Syn(rn, rR)、計算 Ki=Cro(IDi_L,ri)⊕K,并將 K 作為一個共享群組密鑰,把Ki作為相對應標簽Ti計算密鑰生成因子。
(4)讀寫器將(IDi_R,Ki)發(fā)送給組內的所有標簽。
(5)組內標簽在接收到讀寫器發(fā)送來的信息后,開始比對接收到的 IDi_R 是否與自身的 ID_R 一致。
若不一致,則標簽就舍棄該消息,不做任何操作;若一致 ,標簽用自身存放的 IDi_L、自身生成的隨機數 ri來計算Cro(IDi_L,ri),然后計算 Cro(IDi_L,ri)⊕Ki,即可得到讀寫器與群組標簽之間的一個共享群組密鑰 K 的值,K=Cro (IDi_L,ri)⊕Ki,將 K 作為讀寫器與群組標簽之間的一個共享群組密鑰。
攻擊者通過監(jiān)聽一個完整的通信過程可以獲取所有的通信消息值,但這些信息都是密文,且計算過程中用到的信息 IDi_L、IDi_R、r1、r2對于攻擊者來說都是未知的。比如攻擊者對消息 A 進行強行破解攻擊,在 A=IDi_L⊕ri式子中,IDi_L 和 ri攻擊者都不知曉,且 IDi_L 在整個通信過程中沒有明文出現,隨機數ri是由讀寫器端隨機產生的且無法提前預測,因此攻擊者無法暴力破解出任何有用的隱私信息,同樣的道理,對于其他信息,攻擊者也是不能獲取任何有用的隱私信息,故該算法可以抵抗暴力破解攻擊。
攻擊者試圖通過截獲的通信信息來追蹤定位標簽的位置,但攻擊者無法成功。通信消息中都有用到隨機數,且隨機數是隨機產生,攻擊者更是無法提前預測知曉,因此通信消息的值每一輪都是不同的,從而導致攻擊者無法定位分析出標簽的具體位置,攻擊者也就沒辦法進行追蹤攻擊,故該算法可以抵抗追蹤攻擊。
為了解決標簽與讀寫器之間雙向認證過程中所用到的共享密鑰不用事先設置好的問題,本文提出了一種動態(tài)生成共享密鑰的算法。標簽與讀寫器在進行雙向認證之前,兩者之間通過若干次通信,采用無線的方式動態(tài)生成兩者之間用到的共享密鑰,從而保證后續(xù)認證的安全性以及可靠性。
[1] 張朝暉,劉悅,劉道微.基于標簽 ID 的 R FID 系統密鑰無線生成算法[J].計算機應用研究,2017,34(1):261-263,269.
[2] 魯 力.R FID 系 統密 鑰 無線 生 成[J].計 算機學 報,2015,38(4):822-832.
[3] 金永明,吳棋瀅等.基于 PR F 的 R FID 輕量級認證協議研究[J].計算機研究與發(fā)展,2014,51(7):1506-1514.
[4] 斯進,簡碧園,劉道微.R FID 系統密鑰無線生成算法[J].計算機工程與設計,2017,38(9).
[5] 陶源,周喜等 .基于 H a s h函數的移動雙 向認證協議 [J].計算機應用,2016,36(3):657-660.
[6]劉道微,凌捷,楊昕.一種改進的滿足后向隱私的 R FID 認證協議[J].計算機科學,2016,43(8):128-130,158.
[7] 金永明,吳棋瀅等.基于 PR F 的 R FID 輕量級認證協議研究[J].計算機研究與發(fā)展,2014,51(7):1506-1514.
[8]王少輝,劉素娟,陳丹偉.滿足后向隱私的可擴展 R FID 雙向認證方案[J].計算機研究與發(fā)展,2013,50(6):1276-1284.
AnAlgorithm for Generating Group Tag Key of RFID System in Wireless Way
Jian Biyuan
(Guangzhou Vocational College of Science and Technology,Guangzhou 510550,Guangdong)
In the application of RFID system,the mutual authentication between the tag and the reader involves the shared key. Most of the shared keys used in the authentication process are set in advance,but there are some security flaws.Aiming at the application scene that the reader generates a common key for a set of tags,this paper puts forward a shared key generation algorithm in dynamic and wireless way,to solve the problem of pre-setting the key.
RFID;Cro;shared key;Syn;tab grouping
TP393
A
1008-6609(2017)05-0035-03
簡碧園(1983-),男,廣東梅州人,碩士,講師,研究方向為計算機網絡、云計算技術及信息安全。
廣東省高等教育學會高職高專云計算與大數據專業(yè)委員會科研課題,項目編號:No.G D Y JSK T 16-16。