劉道微
(廣州科技職業(yè)技術(shù)學(xué)院信息工程學(xué)院,廣東 廣州 510550)
基于字合成運(yùn)算的單標(biāo)簽密鑰無(wú)線(xiàn)生成算法
劉道微
(廣州科技職業(yè)技術(shù)學(xué)院信息工程學(xué)院,廣東 廣州 510550)
現(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫(xiě)器之間認(rèn)證用到的共享密鑰都是事先設(shè)定好,但該做法存在一定的安全缺陷。為了解決該安全隱患,提出一種基于字合成運(yùn)算的密鑰無(wú)線(xiàn)動(dòng)態(tài)生成算法,該算法主要運(yùn)用在讀寫(xiě)器為單個(gè)標(biāo)簽生成共享密鑰場(chǎng)景。算法采用標(biāo)簽與讀寫(xiě)器各自生成的隨機(jī)數(shù)通過(guò)字合成運(yùn)算加密動(dòng)態(tài)生成共享密鑰,確保共享密鑰的安全性。通過(guò)安全性分析,可以得知該算法能夠有效抵抗假冒攻擊及暴力破解攻擊等攻擊方式。
無(wú)線(xiàn)射頻識(shí)別;共享密鑰;字合成運(yùn)算;單個(gè)標(biāo)簽
無(wú)線(xiàn)射頻識(shí)別技術(shù)(Radio Frequency Identification,RFID)是一種利用射頻信號(hào)實(shí)現(xiàn)的無(wú)接觸信息傳輸,并且通過(guò)所傳輸?shù)男畔?lái)達(dá)到識(shí)別的目的[1-2]?,F(xiàn)有的無(wú)線(xiàn)射頻識(shí)別系統(tǒng)一般包括三部分:標(biāo)簽、讀寫(xiě)器、后端數(shù)據(jù)庫(kù),因其系統(tǒng)中的標(biāo)簽具有體積小、成本低、易攜帶等優(yōu)點(diǎn),RFID系統(tǒng)被運(yùn)用在各個(gè)領(lǐng)域中[3-4]。
在RFID系統(tǒng)中,標(biāo)簽與讀寫(xiě)器之間經(jīng)常要進(jìn)行通信,兩者在通信之前存在一個(gè)雙向認(rèn)證過(guò)程,當(dāng)且僅當(dāng)雙向認(rèn)證成功之后,才會(huì)進(jìn)行后面的信息傳輸[5]?,F(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫(xiě)器之間進(jìn)行雙向認(rèn)證用到的共享密鑰都是事先設(shè)置好的,該方案或多或少存在一定的安全隱患。為了解決上述存在的安全問(wèn)題,提出一種基于字合成運(yùn)算的動(dòng)態(tài)密鑰生成算法,該算法使用的具體場(chǎng)景是讀寫(xiě)器為單個(gè)標(biāo)簽生成一個(gè)共享密鑰值。該算法中,共享密鑰不再是事先設(shè)置好,而是在認(rèn)證之前通過(guò)無(wú)線(xiàn)方式生成共享密鑰,共享密鑰最終是由讀寫(xiě)器與標(biāo)簽各自生成的隨機(jī)數(shù)通過(guò)字合成運(yùn)算加密得到的,從而確保密鑰的安全。
RFID系統(tǒng)一般是由標(biāo)簽、讀寫(xiě)器、后臺(tái)數(shù)據(jù)庫(kù)三部分構(gòu)成,其中讀寫(xiě)器與后臺(tái)數(shù)據(jù)庫(kù)之間的通信是通過(guò)有線(xiàn)通信傳輸信道完成,而標(biāo)簽與讀寫(xiě)器之間的通信則是通過(guò)無(wú)線(xiàn)通信信道完成,前者之間的通信一般認(rèn)為是安全可靠的,因此本文將讀寫(xiě)器與后臺(tái)數(shù)據(jù)庫(kù)看成一個(gè)整體。讀寫(xiě)器中存放如下信息:所有標(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ī)定該算法可以在如下場(chǎng)景中使用:假設(shè)標(biāo)簽與讀寫(xiě)器之間共享的IDi_L與IDi_R是安全可靠的,且攻擊者事先不知曉該信息。
2.1 符號(hào)解釋
R:讀寫(xiě)器;
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:讀寫(xiě)器產(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 算法描述
讀寫(xiě)器為一個(gè)標(biāo)簽生成一個(gè)共享密鑰過(guò)程如下圖1,對(duì)圖1中出現(xiàn)的符號(hào)A,B,D,E的說(shuō)明:
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)簽密鑰無(wú)線(xiàn)生成算法具體步驟如下:
(1)讀寫(xiě)器R向標(biāo)簽Ti發(fā)送密鑰生成請(qǐng)求命令Query,開(kāi)始單個(gè)標(biāo)簽密鑰無(wú)線(xiàn)生成算法。
(2)標(biāo)簽Ti在接收到讀寫(xiě)器R發(fā)送來(lái)的信息后,將自身存放的編號(hào)i發(fā)送給讀寫(xiě)器R作為響應(yīng)信息。
(3)讀寫(xiě)器R在接收到標(biāo)簽Ti發(fā)送來(lái)的信息后,先比對(duì)數(shù)據(jù)庫(kù)中是否存放與i相等的該編號(hào),若不存在,算法立刻終止;若存在,接著讀寫(xiě)器R找到與編號(hào)i相對(duì)應(yīng)的IDi_L與IDi_R,然后讀寫(xiě)器R生成一個(gè)長(zhǎng)度為L(zhǎng)位的隨機(jī)數(shù)r1,再用生成的隨機(jī)數(shù)r1、自身存放的與編號(hào)i相對(duì)應(yīng)的IDi_L與IDi_R分別來(lái)計(jì)算A和B的值,最后將A和B的值一并傳送給標(biāo)簽Ti。
(4)標(biāo)簽Ti在接收到讀寫(xiě)器R發(fā)送來(lái)的信息后,首先標(biāo)簽Ti用接收到的A、自身存放的IDi_L來(lái)計(jì)算IDi_L⊕A,用接收到的B、自身存放的IDi_R來(lái)計(jì)算IDi_R⊕B,然后比對(duì)IDi_L⊕A的值與IDi_R⊕B的值是否相等。
若兩者的值不相等,說(shuō)明讀寫(xiě)器是偽造的,密鑰生成算法立刻終止;若兩者的值相等,即可通過(guò)計(jì)算得出隨機(jī)數(shù)r1的值,接著標(biāo)簽Ti生成一個(gè)長(zhǎng)度為L(zhǎng)位的隨機(jī)數(shù)r2,用生成的隨機(jī)數(shù)r2、計(jì)算得到的隨機(jī)數(shù)r1、自身存放的IDi_L與IDi_R分別來(lái)計(jì)算D和E的值,用生成的隨機(jī)數(shù)r2、計(jì)算得到的隨機(jī)數(shù)r1來(lái)計(jì)算Ki的值,并將Ki作為標(biāo)簽Ti與讀寫(xiě)器R之間的共享生成密鑰值,最后將D和E的值一并傳送給讀寫(xiě)器R。
(5)讀寫(xiě)器R在接收到標(biāo)簽Ti發(fā)送來(lái)的信息后,首先讀寫(xiě)器R用接收到的D、自身存放的IDi_L來(lái)計(jì)算IDi_L⊕D,用接收到的E、自身存放的IDi_R、自身生成的隨機(jī)數(shù)r1來(lái)計(jì)算IDi_R⊕r1⊕E,然后比對(duì)IDi_L⊕D的值與IDi_R⊕r1⊕E的值是否相等。
若兩者的值不相等,說(shuō)明標(biāo)簽Ti是偽造的,密鑰無(wú)線(xiàn)生成算法立刻終止;若兩者的值相等,即可通過(guò)計(jì)算得到隨機(jī)數(shù)r2的值,接著讀寫(xiě)器R用自身生成的隨機(jī)數(shù)r1、計(jì)算得到的隨機(jī)數(shù)r2來(lái)計(jì)算Ki的值,并將Ki作為標(biāo)簽Ti與讀寫(xiě)器R之間的共享生成密鑰值。到此標(biāo)簽Ti與讀寫(xiě)器R之間的共享密鑰通過(guò)無(wú)線(xiàn)生成的方法完成,單個(gè)標(biāo)簽密鑰無(wú)線(xiàn)生成算法結(jié)束。
現(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫(xiě)器之間用到的共享密鑰都是事先設(shè)置好的,但該方法存在一定的安全風(fēng)險(xiǎn)。針對(duì)該安全風(fēng)險(xiǎn),提出一種動(dòng)態(tài)生成密鑰的算法,該算法主要運(yùn)用在讀寫(xiě)器為單個(gè)標(biāo)簽生成共享密鑰。通過(guò)該算法可以使得標(biāo)簽與讀寫(xiě)器之間的共享密鑰不需要在事先設(shè)置好,而是在兩者認(rèn)證之前先通過(guò)該算法動(dòng)態(tài)生成共享密鑰。標(biāo)簽端與讀寫(xiě)器端各生成一個(gè)隨機(jī)數(shù),兩個(gè)隨機(jī)數(shù)通過(guò)字合成運(yùn)算加密方法生成共享密鑰,從而保證共享密鑰的安全性。
[1]魯力.RFID系統(tǒng)密鑰無(wú)線(xiàn)生成[J].計(jì)算機(jī)學(xué)報(bào),2015,38(4):822-832.
[2]張朝暉,劉悅,劉道微.基于標(biāo)簽ID的RFID系統(tǒng)密鑰無(wú)線(xiàn)生成算法[J].計(jì)算機(jī)應(yīng)用研究,2017,34(1):261-263,269.
[3]斯進(jìn),簡(jiǎn)碧園,劉道微.RFID系統(tǒng)密鑰無(wú)線(xiàn)生成算法[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]王少輝,劉素娟,陳丹偉.滿(mǎn)足后向隱私的可擴(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áng)人,碩士,研究方向?yàn)樾畔踩cRFID系統(tǒng)通信安全。