劉道微
(廣州科技職業(yè)技術(shù)學(xué)院信息工程學(xué)院,廣東 廣州 510550)
基于字合成運(yùn)算的單標(biāo)簽密鑰無線生成算法
劉道微
(廣州科技職業(yè)技術(shù)學(xué)院信息工程學(xué)院,廣東 廣州 510550)
現(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫器之間認(rèn)證用到的共享密鑰都是事先設(shè)定好,但該做法存在一定的安全缺陷。為了解決該安全隱患,提出一種基于字合成運(yùn)算的密鑰無線動(dòng)態(tài)生成算法,該算法主要運(yùn)用在讀寫器為單個(gè)標(biāo)簽生成共享密鑰場景。算法采用標(biāo)簽與讀寫器各自生成的隨機(jī)數(shù)通過字合成運(yùn)算加密動(dòng)態(tài)生成共享密鑰,確保共享密鑰的安全性。通過安全性分析,可以得知該算法能夠有效抵抗假冒攻擊及暴力破解攻擊等攻擊方式。
無線射頻識(shí)別;共享密鑰;字合成運(yùn)算;單個(gè)標(biāo)簽
無線射頻識(shí)別技術(shù)(Radio Frequency Identification,RFID)是一種利用射頻信號(hào)實(shí)現(xiàn)的無接觸信息傳輸,并且通過所傳輸?shù)男畔磉_(dá)到識(shí)別的目的[1-2]。現(xiàn)有的無線射頻識(shí)別系統(tǒng)一般包括三部分:標(biāo)簽、讀寫器、后端數(shù)據(jù)庫,因其系統(tǒng)中的標(biāo)簽具有體積小、成本低、易攜帶等優(yōu)點(diǎn),RFID系統(tǒng)被運(yùn)用在各個(gè)領(lǐng)域中[3-4]。
在RFID系統(tǒng)中,標(biāo)簽與讀寫器之間經(jīng)常要進(jìn)行通信,兩者在通信之前存在一個(gè)雙向認(rèn)證過程,當(dāng)且僅當(dāng)雙向認(rèn)證成功之后,才會(huì)進(jìn)行后面的信息傳輸[5]。現(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫器之間進(jìn)行雙向認(rèn)證用到的共享密鑰都是事先設(shè)置好的,該方案或多或少存在一定的安全隱患。為了解決上述存在的安全問題,提出一種基于字合成運(yùn)算的動(dòng)態(tài)密鑰生成算法,該算法使用的具體場景是讀寫器為單個(gè)標(biāo)簽生成一個(gè)共享密鑰值。該算法中,共享密鑰不再是事先設(shè)置好,而是在認(rèn)證之前通過無線方式生成共享密鑰,共享密鑰最終是由讀寫器與標(biāo)簽各自生成的隨機(jī)數(shù)通過字合成運(yùn)算加密得到的,從而確保密鑰的安全。
RFID系統(tǒng)一般是由標(biāo)簽、讀寫器、后臺(tái)數(shù)據(jù)庫三部分構(gòu)成,其中讀寫器與后臺(tái)數(shù)據(jù)庫之間的通信是通過有線通信傳輸信道完成,而標(biāo)簽與讀寫器之間的通信則是通過無線通信信道完成,前者之間的通信一般認(rèn)為是安全可靠的,因此本文將讀寫器與后臺(tái)數(shù)據(jù)庫看成一個(gè)整體。讀寫器中存放如下信息:所有標(biāo)簽的編號(hào)n,所有標(biāo)簽的左右兩部分標(biāo)識(shí)符IDi_L、IDi_R,即(n,IDi_L,IDi_R);標(biāo)簽中存放如下信息:標(biāo)簽自身的編號(hào)i,標(biāo)簽自身的左右兩部分標(biāo)識(shí)符ID_L、ID_R,即(i,ID_L,ID_R)。
為了使算法具有一定的使用價(jià)值,規(guī)定該算法可以在如下場景中使用:假設(shè)標(biāo)簽與讀寫器之間共享的IDi_L與IDi_R是安全可靠的,且攻擊者事先不知曉該信息。
2.1 符號(hào)解釋
R:讀寫器;
T:標(biāo)簽;
Ti:編號(hào)為i的標(biāo)簽;
i:標(biāo)簽的編號(hào)(假設(shè)標(biāo)簽數(shù)量為n個(gè));
ID_L:標(biāo)簽的左半部分標(biāo)識(shí)符;
ID_R:標(biāo)簽的右半部分標(biāo)識(shí)符;
IDi_L:標(biāo)簽Ti的左半部分標(biāo)識(shí)符;
IDi_R:標(biāo)簽Ti的右半部分標(biāo)識(shí)符;
r1:讀寫器產(chǎn)生的隨機(jī)數(shù);
r2:標(biāo)簽產(chǎn)生的隨機(jī)數(shù);
Syn():字合成運(yùn)算;
⊕:異或運(yùn)算;
&:與運(yùn)算。
2.2 字合成運(yùn)算的實(shí)現(xiàn)
設(shè)X、Y是兩個(gè)具有L位的二進(jìn)制數(shù),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;字合成運(yùn)算Syn(X,Y)是指由X的前L-M位與Y的后M位組合而形成新的L位數(shù)組;其中M的設(shè)定為: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的漢明距離。
2.3 算法描述
讀寫器為一個(gè)標(biāo)簽生成一個(gè)共享密鑰過程如下圖1,對(duì)圖1中出現(xiàn)的符號(hào)A,B,D,E的說明:
A=IDi_L⊕r1;
B=IDi_R⊕r1;
D=IDi_L⊕r2;
E=IDi_R⊕r1⊕r2;
Ki=Syn(r1⊕r2,r1&r2)。

圖1 單個(gè)標(biāo)簽密鑰生成算法
單個(gè)標(biāo)簽密鑰無線生成算法具體步驟如下:
(1)讀寫器R向標(biāo)簽Ti發(fā)送密鑰生成請(qǐng)求命令Query,開始單個(gè)標(biāo)簽密鑰無線生成算法。
(2)標(biāo)簽Ti在接收到讀寫器R發(fā)送來的信息后,將自身存放的編號(hào)i發(fā)送給讀寫器R作為響應(yīng)信息。
(3)讀寫器R在接收到標(biāo)簽Ti發(fā)送來的信息后,先比對(duì)數(shù)據(jù)庫中是否存放與i相等的該編號(hào),若不存在,算法立刻終止;若存在,接著讀寫器R找到與編號(hào)i相對(duì)應(yīng)的IDi_L與IDi_R,然后讀寫器R生成一個(gè)長度為L位的隨機(jī)數(shù)r1,再用生成的隨機(jī)數(shù)r1、自身存放的與編號(hào)i相對(duì)應(yīng)的IDi_L與IDi_R分別來計(jì)算A和B的值,最后將A和B的值一并傳送給標(biāo)簽Ti。
(4)標(biāo)簽Ti在接收到讀寫器R發(fā)送來的信息后,首先標(biāo)簽Ti用接收到的A、自身存放的IDi_L來計(jì)算IDi_L⊕A,用接收到的B、自身存放的IDi_R來計(jì)算IDi_R⊕B,然后比對(duì)IDi_L⊕A的值與IDi_R⊕B的值是否相等。
若兩者的值不相等,說明讀寫器是偽造的,密鑰生成算法立刻終止;若兩者的值相等,即可通過計(jì)算得出隨機(jī)數(shù)r1的值,接著標(biāo)簽Ti生成一個(gè)長度為L位的隨機(jī)數(shù)r2,用生成的隨機(jī)數(shù)r2、計(jì)算得到的隨機(jī)數(shù)r1、自身存放的IDi_L與IDi_R分別來計(jì)算D和E的值,用生成的隨機(jī)數(shù)r2、計(jì)算得到的隨機(jī)數(shù)r1來計(jì)算Ki的值,并將Ki作為標(biāo)簽Ti與讀寫器R之間的共享生成密鑰值,最后將D和E的值一并傳送給讀寫器R。
(5)讀寫器R在接收到標(biāo)簽Ti發(fā)送來的信息后,首先讀寫器R用接收到的D、自身存放的IDi_L來計(jì)算IDi_L⊕D,用接收到的E、自身存放的IDi_R、自身生成的隨機(jī)數(shù)r1來計(jì)算IDi_R⊕r1⊕E,然后比對(duì)IDi_L⊕D的值與IDi_R⊕r1⊕E的值是否相等。
若兩者的值不相等,說明標(biāo)簽Ti是偽造的,密鑰無線生成算法立刻終止;若兩者的值相等,即可通過計(jì)算得到隨機(jī)數(shù)r2的值,接著讀寫器R用自身生成的隨機(jī)數(shù)r1、計(jì)算得到的隨機(jī)數(shù)r2來計(jì)算Ki的值,并將Ki作為標(biāo)簽Ti與讀寫器R之間的共享生成密鑰值。到此標(biāo)簽Ti與讀寫器R之間的共享密鑰通過無線生成的方法完成,單個(gè)標(biāo)簽密鑰無線生成算法結(jié)束。
現(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫器之間用到的共享密鑰都是事先設(shè)置好的,但該方法存在一定的安全風(fēng)險(xiǎn)。針對(duì)該安全風(fēng)險(xiǎn),提出一種動(dòng)態(tài)生成密鑰的算法,該算法主要運(yùn)用在讀寫器為單個(gè)標(biāo)簽生成共享密鑰。通過該算法可以使得標(biāo)簽與讀寫器之間的共享密鑰不需要在事先設(shè)置好,而是在兩者認(rèn)證之前先通過該算法動(dòng)態(tài)生成共享密鑰。標(biāo)簽端與讀寫器端各生成一個(gè)隨機(jī)數(shù),兩個(gè)隨機(jī)數(shù)通過字合成運(yùn)算加密方法生成共享密鑰,從而保證共享密鑰的安全性。
[1]魯力.RFID系統(tǒng)密鑰無線生成[J].計(jì)算機(jī)學(xué)報(bào),2015,38(4):822-832.
[2]張朝暉,劉悅,劉道微.基于標(biāo)簽ID的RFID系統(tǒng)密鑰無線生成算法[J].計(jì)算機(jī)應(yīng)用研究,2017,34(1):261-263,269.
[3]斯進(jìn),簡碧園,劉道微.RFID系統(tǒng)密鑰無線生成算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2017,38(9).
[4]金永明,吳棋瀅,石志強(qiáng)等.基于PRF的RFID輕量級(jí)認(rèn)證協(xié)議研究[J].計(jì)算機(jī)研究與發(fā)展,2014,51(7):1506-1514.
[5]王少輝,劉素娟,陳丹偉.滿足后向隱私的可擴(kuò)展RFID雙向認(rèn)證方案[J].計(jì)算機(jī)研究與發(fā)展,2013,50(6):1276-1284.
A Single Tag Key Generation Algorithm Based on Syn
Liu Daowei
(Guangzhou VocationalCollegeof Science and Technology,Guangzhou 510006,Guangdong)
In the existing RFID system,the shared key which is used in the authentication between tag and reader is set in advance,but there are some security flaws in the system.In order to solve the security problem,this paper proposes a new key w ireless dynamic generation algorithm based on Syn.The algorithm uses the random number generated by the tag and the reader to generate the shared key dynamically through the Syn operation to ensure the security of the shared key.Through the security analysis,it can be found that the algorithm can effectively resist the attackssuch as impersonation attack and brute force attack
RFID;shared key;Syn;single tag
TP393
A
1008-6609(2017)06-0029-02
劉道微(1989-),男,湖北襄陽人,碩士,研究方向?yàn)樾畔踩cRFID系統(tǒng)通信安全。