本發(fā)明涉及射頻識別技術(shù)領(lǐng)域,更具體地說,涉及一種移動射頻識別的雙向認(rèn)證方法及移動射頻識別系統(tǒng)。
背景技術(shù):
射頻識別(Radio Frequency Identification,RFID)技術(shù)是一種非接觸式的自動識別技術(shù),通過射頻信號自動識別目標(biāo)對象,具有易部署、快捷的優(yōu)點(diǎn),已經(jīng)廣泛應(yīng)用于倉庫管理、供應(yīng)鏈管理、智能感知等領(lǐng)域。通常,RFID系統(tǒng)一般由標(biāo)簽、讀寫器和后端服務(wù)器組成。標(biāo)簽上具有唯一的電子編碼,用來存儲需要識別、傳輸?shù)男畔?,讀寫器通過射頻信號識別標(biāo)簽上的電子編碼,將識別得到的信息傳輸給后端服務(wù)器。
在移動RFID系統(tǒng)中,讀寫器是可移動的,標(biāo)簽、讀寫器和后端服務(wù)器之間均是通過無線連接的方式實(shí)現(xiàn)信息識別、傳輸?shù)?。由于無線連接具有開放性,三者間通過無線傳輸?shù)男畔⑷菀资艿焦?,從而泄露用戶的隱私,通信安全性較差。
因此,如何提高移動RFID系統(tǒng)的通信安全性,是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供了一種移動射頻識別的雙向認(rèn)證方法及移動射頻識別系統(tǒng),以實(shí)現(xiàn)提高移動射頻識別系統(tǒng)的通信安全性的目的。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種移動射頻識別的雙向認(rèn)證方法,適用于包括標(biāo)簽、讀寫器和后端服務(wù)器的移動射頻識別系統(tǒng),所述移動射頻識別系統(tǒng)的雙向認(rèn)證方法包括:
S1:所述讀寫器將預(yù)先產(chǎn)生的第一隨機(jī)數(shù)r和認(rèn)證請求發(fā)送給所述標(biāo)簽;
S2:所述標(biāo)簽接收到所述第一隨機(jī)數(shù)r和所述認(rèn)證請求后,基于標(biāo)簽假名 IDS和所述第一隨機(jī)數(shù)r生成第二隨機(jī)數(shù)x=MIXBITS(IDS,r),并對所述第二隨機(jī)數(shù)x進(jìn)行加密,得到加密信息M1=IDS⊕x,并利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第一驗(yàn)證信息P=(P1,P2),其中P1,P2為所述第一驗(yàn)證消息P的左右兩部分,每部分長度為l,并將消息組合一(P1,M1)發(fā)送給所述讀寫器;
S3:所述讀寫器接收到消息組合一(P1,M1)后,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第二驗(yàn)證信息Q=(P3,P4),其中P3,P4為所述第二驗(yàn)證消息Q的左右兩部分,每部分長度為l,并將消息組合二(P1,P3,M1,r)發(fā)送給所述后端服務(wù)器;
S4:所述后端服務(wù)器接收到消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器中存儲的讀寫器身份標(biāo)識IDR、讀寫器密鑰KR或者上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第三驗(yàn)證信息Q'=(P3',P4'),其中P3',P4'為所述第三驗(yàn)證信息Q'的左右兩部分,每部分長度為l,或者Q”=(P3”,P4”),其中P3”,P4”為所述第三驗(yàn)證信息Q”的左右兩部分,每部分長度為l,其中(P3”,P4”)基于上一輪讀寫器密鑰KRold生成,驗(yàn)證所述讀寫器是否合法,如果合法,則更新所述讀寫器的密鑰庫,并基于預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算第二隨機(jī)數(shù)x,基于所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和所述第二隨機(jī)數(shù)x利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第四驗(yàn)證信息P'=(P1',P2'),其中P1',P2'為P'的左右兩部分,每部分長度為l,或者P”=(P1”,P2”),其中P1”,P2”為P”的左右兩部分,每部分長度為l,驗(yàn)證所述標(biāo)簽是否合法,如果合法,則更新所述標(biāo)簽的密鑰庫,并將第五驗(yàn)證信息發(fā)送給所述讀寫器,所述第五驗(yàn)證信息為(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”);否則,判定認(rèn)證失敗,終止通信;
S5:所述讀寫器接收到所述第五驗(yàn)證信息后,基于所述第五驗(yàn)證信息中的P4'或者P4”判斷所述后端服務(wù)器是否合法,如果合法,則更新所述讀寫器的密鑰庫,并將所述第五驗(yàn)證信息中的P2'或者P2”發(fā)送給所述標(biāo)簽;否則,判定認(rèn)證失敗,終止通信;
S6:所述標(biāo)簽基于接收到的P2'或者P2”判斷所述后端服務(wù)器是否合法,如果合法,則判定所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間的雙向認(rèn)證成 功,更新所述標(biāo)簽的密鑰庫;否則,判定認(rèn)證失敗,終止通信。
優(yōu)選的,步驟S4具體包括:所述后端服務(wù)器收到消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器中存儲的讀寫器身份標(biāo)識IDR、讀寫器密鑰KR和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)),并判斷P3'是否等于P3,如果等于,則判定所述讀寫器合法,并對讀寫器的密鑰庫進(jìn)行更新,得到讀寫器更新密鑰KR',KR'=IDR⊕(KR>>l/2);
如果不等于,則基于所述后端服務(wù)器中存儲的讀寫器身份標(biāo)識IDR、上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判斷P3”是否等于P3,若等于,則判定所述讀寫器合法,并更新讀寫器的密鑰庫:KR=KRold,KR'=IDR⊕(KR>>l/2);若P3”不等于P3,則判定所述讀寫器不合法,通信立即終止;
當(dāng)P3'等于P3時,利用所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4')發(fā)送給所述讀寫器;若不等于,則利用所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4')發(fā)送給所述讀寫器;若P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
當(dāng)P3”等于P3時,利用所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS', IDS'=x⊕(IDS>>l/2),并將(P2',P4”)發(fā)送給所述讀寫器;若不等于,則利用所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4”)發(fā)送給所述讀寫器;如果P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
其中,Cro代表交叉位運(yùn)算,CRC代表循環(huán)校驗(yàn)函數(shù),⊕代表異或運(yùn)算,l=128bits。
優(yōu)選的,步驟S5具體包括:所述讀寫器接收到所述第五驗(yàn)證信息后,判定P4'是否和P4相等,如果P4'等于P4,則判定所述后端服務(wù)器合法,更新讀寫器密鑰:KR'=IDR⊕(KR>>l/2),并將P2'發(fā)送給所述標(biāo)簽;如果P4”等于P4,則判定所述后端服務(wù)器合法,更新讀寫器密鑰:KR=KRold,KR'=IDR⊕(KR>>l/2),并將P2”發(fā)送給所述標(biāo)簽,如果P4'或P4”均與P4不相等,則判定所述后端服務(wù)器不合法,通信終止。
優(yōu)選的,步驟S6具體包括:所述標(biāo)簽接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,則判定所述后端服務(wù)器合法,并判定所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間的雙向認(rèn)證成功,更新標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,則判定所述后端服務(wù)器合法,并判定所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間的雙向認(rèn)證成功,進(jìn)行數(shù)據(jù)更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2,則判定此次雙向認(rèn)證失敗。
優(yōu)選的,所述預(yù)先產(chǎn)生的第一隨機(jī)數(shù)r的過程,具體包括:
利用隨機(jī)數(shù)生成器生成第一隨機(jī)數(shù)r。
一種移動射頻識別系統(tǒng),包括:標(biāo)簽、讀寫器和后端服務(wù)器,其中:
所述讀寫器,用于將預(yù)先產(chǎn)生的第一隨機(jī)數(shù)r和認(rèn)證請求發(fā)送給所述標(biāo)簽,及接收到標(biāo)簽反饋的消息組合一(P1,M1)后,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第二驗(yàn)證信息Q=(P3,P4),其中P3,P4為所述第二驗(yàn)證消息Q的左右兩部分,每部分長度為l,并將消息組合二(P1,P3,M1,r)發(fā) 送給所述后端服務(wù)器;和用于接收到所述后端服務(wù)器反饋的第五驗(yàn)證信息后,所述第五驗(yàn)證信息為(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”),基于收到的P4'或者P4”判斷所述后端服務(wù)器是否合法,如果合法,則更新所述讀寫器的密鑰庫,并將P2'或者P2”發(fā)送給所述標(biāo)簽;否則,判定認(rèn)證失敗,終止通信;
所述后端服務(wù)器,用于接收到所述讀寫器發(fā)送的消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器中存儲的讀寫器身份標(biāo)識IDR、讀寫器密鑰KR或者上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第三驗(yàn)證信息Q'=(P3',P4')或者Q”=(P3”,P4”),其中(P3”,P4”)基于上一輪讀寫器密鑰KRold生成,驗(yàn)證所述讀寫器是否合法,如果合法,則更新所述讀寫器的密鑰庫,并基于預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算第二隨機(jī)數(shù)x,基于所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和所述第二隨機(jī)數(shù)x利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第四驗(yàn)證信息P'=(P1',P2'),其中P1',P2'為P'的左右兩部分,每部分長度為l,或者P'=(P1”,P2”),其中P1”,P2”為P”的左右兩部分,每部分長度為l,驗(yàn)證所述標(biāo)簽是否合法,如果合法,則更新所述標(biāo)簽的密鑰庫,并將第五驗(yàn)證信息發(fā)送給所述讀寫器;否則,判定認(rèn)證失敗,終止通信;
所述標(biāo)簽,用于接收到所述讀寫器發(fā)送的第一隨機(jī)數(shù)r和所述認(rèn)證請求后,基于標(biāo)簽假名IDS和所述第一隨機(jī)數(shù)r生成第二隨機(jī)數(shù)x=MIXBITS(IDS,r),并對所述第二隨機(jī)數(shù)x進(jìn)行加密,得到加密信息M1=IDS⊕x,并利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第一驗(yàn)證信息P=(P1,P2),其中P1,P2為所述第一驗(yàn)證消息P的左右兩部分,每部分長度為l,并將消息組合一(P1,M1)發(fā)送給所述讀寫器;基于接收到的P2'或者P2”判斷所述后端服務(wù)器是否合法,如果合法,則判定所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間的雙向認(rèn)證成功,更新所述標(biāo)簽的密鑰庫;否則,判定認(rèn)證失敗,終止通信。
優(yōu)選的,所述后端服務(wù)器,具體用于,在收到消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器中存儲的讀寫器身份標(biāo)識IDR、讀寫器密鑰KR和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)), 并判斷P3'是否等于P3,如果等于,則判定所述讀寫器合法,并對讀寫器的密鑰庫進(jìn)行更新,得到讀寫器更新密鑰KR',KR'=IDR⊕(KR>>l/2);
如果不等于,則基于所述后端服務(wù)器中存儲的讀寫器身份標(biāo)識IDR、上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判斷P3”是否等于P3,若等于,則判定所述讀寫器合法,并更新讀寫器的密鑰庫:KR=KRold,KR'=IDR⊕(KR>>l/2);若P3”不等于P3,則判定所述讀寫器不合法,通信立即終止;
當(dāng)P3'等于P3時,利用所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4')發(fā)送給所述讀寫器;若不等于,則利用所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4')發(fā)送給所述讀寫器;若P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
當(dāng)P3”等于P3時,利用所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4”)發(fā)送給所述讀寫器;若不等于,則利用所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判 斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4”)發(fā)送給所述讀寫器;如果P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
其中,Cro代表交叉位運(yùn)算,CRC代表循環(huán)校驗(yàn)函數(shù),⊕代表異或運(yùn)算,l=128bits。
優(yōu)選的,所述讀寫器接收到所述后端服務(wù)器反饋的第五驗(yàn)證信息后,判定P4'是否和P4相等,如果P4'等于P4,則判定所述后端服務(wù)器合法,更新讀寫器密鑰:KR'=IDR⊕(KR>>l/2),并將P2'發(fā)送給所述標(biāo)簽;如果P4”等于P4,則判定所述后端服務(wù)器合法,更新讀寫器密鑰:KR=KRold,KR'=IDR⊕(KR>>l/2),并將P2”發(fā)送給所述標(biāo)簽,如果P4'或P4”均與P4不相等,則判定所述后端服務(wù)器不合法,通信終止。
優(yōu)選的,所述標(biāo)簽接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,則判定所述后端服務(wù)器合法,并判定所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間的雙向認(rèn)證成功,更新標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,則判定所述后端服務(wù)器合法,并判定所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間的雙向認(rèn)證成功,進(jìn)行數(shù)據(jù)更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2,則判定此次雙向認(rèn)證失敗。
優(yōu)選的,所述讀寫器還包括:隨機(jī)數(shù)生成器;
所述隨機(jī)數(shù)生成器,用于生成第一隨機(jī)數(shù)r。
從上述技術(shù)方案可以看出,本發(fā)明提供了一種移動射頻識別的雙向認(rèn)證方法及移動射頻識別系統(tǒng),其中,所述移動射頻識別的雙向認(rèn)證方法通過在所述讀寫器內(nèi)部產(chǎn)生第一隨機(jī)數(shù)r發(fā)送給所述標(biāo)簽開始雙向認(rèn)證過程,在之后的所述讀寫器、所述標(biāo)簽和所述后端服務(wù)器之間的雙向認(rèn)證過程中,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法加密它們之間傳輸?shù)男畔?,同時在認(rèn)證成功后及時更新所述標(biāo)簽和所述讀寫器各自的密鑰庫,有效地隱藏了所述標(biāo)簽和讀寫器的身份信息,保護(hù)了讀寫器與標(biāo)簽的隱私信息。并且由于交叉位運(yùn)算和循環(huán)校驗(yàn)算法的計(jì)算量小,運(yùn)算速度快,在保證雙向認(rèn)證的目的的前提下,有效地提高了雙向認(rèn)證的效率。
另外,在整個雙向認(rèn)證過程中,大部分的計(jì)算量在所述后端服務(wù)器進(jìn)行, 減小了標(biāo)簽端的計(jì)算量,從而降低了標(biāo)簽的計(jì)算成本,并且所述標(biāo)簽只需要進(jìn)行簡單的數(shù)據(jù)運(yùn)算而不需要隨機(jī)數(shù)發(fā)生器,有效地降低了對所述標(biāo)簽的硬件要求,從而進(jìn)一步降低了所述標(biāo)簽的成本。
進(jìn)一步的,在所述標(biāo)簽、所述讀寫器和所述后端服務(wù)器之間進(jìn)行的驗(yàn)證信息的傳輸過程中,只進(jìn)行部分驗(yàn)證信息的傳輸,從而使敵手無法獲取隱私信息,進(jìn)而確保雙向認(rèn)證的通信安全。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請的一個實(shí)施例提供的一種移動射頻識別的雙向認(rèn)證方法的流程示意圖;
圖2為本申請的一個具體實(shí)施例提供的一種交叉位算法的流程示意圖;
圖3為本申請的一個實(shí)施例提供的一種第五驗(yàn)證信息與第三驗(yàn)證信息及第四驗(yàn)證信息的關(guān)系示意圖;
圖4為本申請的一個實(shí)施例提供的一種MIXBITS函數(shù)的算法流程示意圖;
圖5為本申請的一個實(shí)施例提供的一種移動射頻識別系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請實(shí)施例提供了一種移動射頻識別的雙向認(rèn)證方法,如圖1所示,適用于包括標(biāo)簽T、讀寫器R和后端服務(wù)器S的移動射頻識別系統(tǒng),所述移動射頻識別系統(tǒng)的雙向認(rèn)證方法包括:
S1:所述讀寫器R將預(yù)先產(chǎn)生的第一隨機(jī)數(shù)r和認(rèn)證請求發(fā)送給所述標(biāo)簽T;
S2:所述標(biāo)簽T接收到所述第一隨機(jī)數(shù)r和所述認(rèn)證請求后,基于標(biāo)簽假名IDS和所述第一隨機(jī)數(shù)r生成第二隨機(jī)數(shù)x=MIXBITS(IDS,r),并對所述第二隨機(jī)數(shù)x進(jìn)行加密,得到加密信息M1=IDS⊕x,并利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第一驗(yàn)證信息P=(P1,P2),其中P1,P2為所述第一驗(yàn)證消息P的左右兩部分,每部分長度為l),并將消息組合一(P1,M1)發(fā)送給所述讀寫器R;
S3:所述讀寫器R接收到消息組合一(P1,M1)后,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第二驗(yàn)證信息Q=(P3,P4),其中P3,P4為所述第二驗(yàn)證消息Q的左右兩部分,每部分長度為l,并將消息組合二(P1,P3,M1,r)發(fā)送給所述后端服務(wù)器S;
S4:所述后端服務(wù)器S接收到消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器S中存儲的讀寫器R身份標(biāo)識IDR,讀寫器密鑰KR或者上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第三驗(yàn)證信息Q'=(P3',P4'),其中P3',P4'為所述第三驗(yàn)證信息Q'的左右兩部分,每部分長度為l,或者Q”=(P3”,P4”),其中P3”,P4”為所述第三驗(yàn)證信息Q”的左右兩部分,每部分長度為l,其中(P3”,P4”)基于上一輪讀寫器密鑰KRold生成,驗(yàn)證所述讀寫器R是否合法,如果合法,則更新所述讀寫器R的密鑰庫,并基于預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算第二隨機(jī)數(shù)x,基于所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和所述第二隨機(jī)數(shù)x利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第四驗(yàn)證信息P'=(P1',P2'),其中P1',P2'為P'的左右兩部分,每部分長度為l,或者P”=(P1”,P2”),其中P1”,P2”為P”的左右兩部分,每部分長度為l,驗(yàn)證所述標(biāo)簽T是否合法,如果合法,則更新所述標(biāo)簽T的密鑰庫,并將第五驗(yàn)證信息發(fā)送給所述讀寫器R,所述第五驗(yàn)證信息為(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”);否則,判定認(rèn)證失敗,終止通信;
S5:所述讀寫器R接收到所述第五驗(yàn)證信息后,基于所述第五驗(yàn)證信息中的P4'或者P4”判斷所述后端服務(wù)器S是否合法,如果合法,則更新所述讀 寫器R的密鑰庫,并將所述第五驗(yàn)證信息中的P2'或者P2”發(fā)送給所述標(biāo)簽T;否則,判定認(rèn)證失敗,終止通信;
S6:所述標(biāo)簽T基于接收到的P2'或者P2”判斷所述后端服務(wù)器S是否合法,如果合法,則判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證成功,更新所述標(biāo)簽T的密鑰庫;否則,判定認(rèn)證失敗,終止通信。
其中,l=128bits。在本實(shí)施例中,所述移動射頻識別的雙向認(rèn)證方法通過在所述讀寫器R內(nèi)部產(chǎn)生第一隨機(jī)數(shù)r發(fā)送給所述標(biāo)簽T開始雙向認(rèn)證過程,在之后的所述讀寫器R、所述標(biāo)簽T和所述后端服務(wù)器S之間的雙向認(rèn)證過程中,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法加密它們之間傳輸?shù)男畔?,同時在認(rèn)證成功后及時更新所述標(biāo)簽T和所述讀寫器R各自的密鑰庫,有效地隱藏了所述標(biāo)簽T和讀寫器R的身份信息,保護(hù)了讀寫器R與標(biāo)簽T的隱私信息。并且由于交叉位運(yùn)算和循環(huán)校驗(yàn)算法的計(jì)算量小,運(yùn)算速度快,在保證雙向認(rèn)證的目的的前提下,有效地提高了雙向認(rèn)證的效率。
另外,在整個雙向認(rèn)證過程中,大部分的計(jì)算量在所述后端服務(wù)器S進(jìn)行,減小了標(biāo)簽T的計(jì)算量,從而降低了標(biāo)簽T的計(jì)算成本,并且所述標(biāo)簽T只需要進(jìn)行簡單的數(shù)據(jù)運(yùn)算而不需要隨機(jī)數(shù)發(fā)生器,有效地降低了對所述標(biāo)簽的硬件要求,從而進(jìn)一步降低了所述標(biāo)簽T的成本。
進(jìn)一步的,在所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間進(jìn)行的驗(yàn)證信息的傳輸過程中,只進(jìn)行部分驗(yàn)證信息的傳輸,從而使敵手無法獲取隱私信息,進(jìn)而確保雙向認(rèn)證的通信安全。
在上述實(shí)施例的基礎(chǔ)上,在本申請的一個具體實(shí)施例中,步驟S4具體包括:所述后端服務(wù)器S收到消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器S中存儲的讀寫器R身份標(biāo)識IDR、讀寫器密鑰KR和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)),并判斷P3'是否等于P3,如果等于,則判定所述讀寫器R合法,并對讀寫器R的密鑰庫進(jìn)行更新,得到讀寫器R更新密鑰KR',KR'=IDR⊕(KR>>l/2);
如果不等于,則基于所述后端服務(wù)器S中存儲的讀寫器R身份標(biāo)識IDR、上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判斷P3”是否等于P3,若等于,則判 定所述讀寫器R合法,并更新讀寫器R的密鑰庫:KR=KRold,KR'=IDR⊕(KR>>l/2);如果P3”不等于P3,則判定所述讀寫器R不合法,通信立即終止;
當(dāng)P3'等于P3時,利用所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4')發(fā)送給所述讀寫器R;若不等于,則利用所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4')發(fā)送給所述讀寫器R;若P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
當(dāng)P3”等于P3時,利用所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4”)發(fā)送給所述讀寫器R;若不等于,則利用所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4”)發(fā)送給所述讀寫器R;如果P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
其中,Cro代表交叉位運(yùn)算,CRC代表循環(huán)校驗(yàn)函數(shù),⊕代表異或運(yùn)算,l=128bits。
為了更清楚的對交叉位運(yùn)算進(jìn)行說明,本申請的一個具體實(shí)施例對交叉位運(yùn)算進(jìn)行了詳細(xì)說明,具體地,設(shè)X和Y為兩個具有偶數(shù)位L位的二進(jìn)制數(shù),X=X1X2…XL,Y=Y1Y2…YL,其中,Xi,Yi的取值范圍為0或1,i=1,2…L;對X和Y進(jìn)行交叉位運(yùn)算是指由X的奇數(shù)位和Y的偶數(shù)位相互交叉形成新的L位數(shù)組;具體運(yùn)算過程中:定義兩個指針P1和P2分別指向X和Y,當(dāng)P1指向X的奇數(shù)位時,把此位置上的值賦予運(yùn)算結(jié)果的偶數(shù)位;當(dāng)P2指向Y的偶數(shù)位時,將此位置上的值賦予運(yùn)算結(jié)果的奇數(shù)位。如圖2所示,例如取L=10,設(shè)X=1100101100,Y=0101101011,則Cro(X,Y)=1110010110。
為了更清楚的說明在本實(shí)施例中所述后端服務(wù)器S具體生成哪一種第五驗(yàn)證信息,下面將以圖示進(jìn)行說明,如圖3所示,在圖3中示出了第三驗(yàn)證信息、第四驗(yàn)證信息到第五驗(yàn)證信息的生成關(guān)系,其中,兩種第三驗(yàn)證信息分別基于KR和KRold生成,兩種第四驗(yàn)證信息分別基于IDS和IDSold生成,那么基于第三驗(yàn)證信息和第四驗(yàn)證信息的第五驗(yàn)證信息就會存在四種可能,具體對應(yīng)關(guān)系如圖3。
那么在上述實(shí)施例的基礎(chǔ)上,在本申請的一個實(shí)施例中,相應(yīng)的,步驟S5具體包括:所述讀寫器R接收到所述后端服務(wù)器S反饋的第五驗(yàn)證信息后,判定P4'是否和P4相等,如果P4'等于P4,則判定所述后端服務(wù)器S合法,更新讀寫器密鑰:KR'=IDR⊕(KR>>l/2),并將P2'發(fā)送給所述標(biāo)簽T;如果P4”等于P4,則判定所述后端服務(wù)器S合法,更新讀寫器密鑰:KR=KRold,KR'=IDR⊕(KR>>l/2),并將P2”發(fā)送給所述標(biāo)簽T,如果P4'或P4”均與P4不相等,則判定所述后端服務(wù)器不合法,通信終止。
相應(yīng)的,步驟S6具體包括:所述標(biāo)簽T接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,則判定所述后端服務(wù)器S合法,并判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證成功,更新標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,則判定所述后端服務(wù)器S合法,并判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證成功,進(jìn)行數(shù)據(jù)更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2, 則判定所述后端服務(wù)器S不合法,并判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證失敗。
在上述實(shí)施例的基礎(chǔ)上,在本申請的一個優(yōu)選實(shí)施例中,所述預(yù)先產(chǎn)生的第一隨機(jī)數(shù)r的過程,具體包括:
利用隨機(jī)數(shù)生成器生成第一隨機(jī)數(shù)r。
需要說明的是,在本實(shí)施例中,利用隨機(jī)數(shù)生成器生成第一隨機(jī)數(shù)r而不用隨機(jī)數(shù)生成函數(shù)MIXBITS(X,Y)生成第一隨機(jī)數(shù)r的原因是:如果所述讀寫器R通過MIXBITS(X,Y)函數(shù)來生成第一隨機(jī)數(shù)r,則代入其中的參數(shù)X和Y相對應(yīng)的值為所述讀寫器R的身份標(biāo)識IDR和密鑰KR,而后需要將所述第一隨機(jī)數(shù)r發(fā)送給所述標(biāo)簽T,從而有可能會存在泄漏所述讀寫器R的信息的問題。因此在本實(shí)施例中優(yōu)選采用隨機(jī)數(shù)生成器生成第一隨機(jī)數(shù)r。
在上述實(shí)施例的基礎(chǔ)上,在本申請的又一個優(yōu)選實(shí)施例中,所述基于標(biāo)簽假名IDS和所述第一隨機(jī)數(shù)r生成第二隨機(jī)數(shù)x,具體包括:
基于所述標(biāo)簽假名IDS和所述第一隨機(jī)數(shù)r,利用隨機(jī)數(shù)生成函數(shù)MIXBITS生成第二隨機(jī)數(shù)x。具體的x=MIXBITS(IDS,r)。
需要說明的是,在本實(shí)施例中,所述標(biāo)簽T利用隨機(jī)數(shù)生成函數(shù)MIXBITS生成所述第二隨機(jī)數(shù)x,而不采用隨機(jī)數(shù)生成器生成第二隨機(jī)數(shù)x的原因是:
由于第二隨機(jī)數(shù)x的生成參數(shù)中包括了一個不確定的第一隨機(jī)數(shù)r,則不會存在讀寫器R利用MIXBITS函數(shù)生成第一隨機(jī)數(shù)r時存在的身份信息泄露的問題。并且,利用所述隨機(jī)數(shù)生成函數(shù)MIXBITS生成所述第二隨機(jī)數(shù)x,只需要將MIXBITS函數(shù)功能嵌到標(biāo)簽T里面即可實(shí)現(xiàn),而不需要內(nèi)置隨機(jī)數(shù)生成器,進(jìn)一步降低了所述標(biāo)簽T的成本。同時,由于本實(shí)施例中的標(biāo)簽假名是通過所述標(biāo)簽T產(chǎn)生的隨機(jī)數(shù)進(jìn)行更新,而每次認(rèn)證中的標(biāo)簽T所產(chǎn)生的隨機(jī)數(shù)均不同,一端標(biāo)簽T的所有權(quán)發(fā)生轉(zhuǎn)移,舊擁有者不能獲得標(biāo)簽T的新的身份信息,從而無法訪問該標(biāo)簽T,進(jìn)而保證所述標(biāo)簽T的所有權(quán)轉(zhuǎn)移的安全性。利用MIXBITS函數(shù)生成隨機(jī)數(shù)的具體過程如圖4所示。
經(jīng)過安全性分析,所述移動射頻識別系統(tǒng)能夠抵抗追蹤攻擊、重放攻擊、假冒攻擊、中間人攻擊、去同步化攻擊、暴力破解攻擊等惡意攻擊,同時實(shí)現(xiàn)所述標(biāo)簽T和讀寫器R的匿名性和標(biāo)簽T所有權(quán)轉(zhuǎn)移的安全性。在計(jì)算量方面,由于將大部分計(jì)算過程都轉(zhuǎn)移到所述后端服務(wù)器S中,所述標(biāo)簽T只通過 MIXBITS函數(shù)保持?jǐn)?shù)據(jù)的隨機(jī)性,使標(biāo)簽T具有不需要隨機(jī)數(shù)產(chǎn)生器也能產(chǎn)生隨機(jī)數(shù)的功能,降低了所述標(biāo)簽T的硬件成本。
相應(yīng)的,本申請還提供了一種移動射頻識別系統(tǒng),如圖5所示,包括:標(biāo)簽T、讀寫器R和后端服務(wù)器S;其中,
所述讀寫器R,用于將預(yù)先產(chǎn)生的第一隨機(jī)數(shù)r和認(rèn)證請求發(fā)送給所述標(biāo)簽T,及接收到標(biāo)簽T反饋的消息組合一(P1,M1)后,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第二驗(yàn)證信息Q=(P3,P4),其中P3,P4為所述第二驗(yàn)證消息Q的左右兩部分,每部分長度為l,并將消息組合二(P1,P3,M1,r)發(fā)送給所述后端服務(wù)器S;和用于接收到所述后端服務(wù)器S反饋的第五驗(yàn)證信息后,所述第五驗(yàn)證信息為(P2',P4')或(P2”,P4')或(P2',P4”)或(P2”,P4”),基于收到的P4'或者P4”判斷所述后端服務(wù)器S是否合法,如果合法,則更新所述讀寫器R的密鑰庫,并將P2'或者P2”發(fā)送給所述標(biāo)簽T;否則,判定認(rèn)證失敗,終止通信;
所述后端服務(wù)器S,用于接收到所述讀寫器R發(fā)送的消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器S中存儲的讀寫器R身份標(biāo)識IDR、讀寫器密鑰KR或者上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第三驗(yàn)證信息Q'=(P3',P4')或者Q”=(P3”,P4”),其中(P3”,P4”)基于上一輪讀寫器密鑰KRold生成,驗(yàn)證所述讀寫器R是否合法,如果合法,則更新所述讀寫器R的密鑰庫,并基于預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算第二隨機(jī)數(shù)x,基于所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS或者上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和所述第二隨機(jī)數(shù)x利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第四驗(yàn)證信息P'=(P1',P2'),其中P1',P2'為P'的左右兩部分,每部分長度為l,或者P'=(P1”,P2”),其中P1”,P2”為P”的左右兩部分,每部分長度為l,驗(yàn)證所述標(biāo)簽T是否合法,如果合法,則更新所述標(biāo)簽T的密鑰庫,并將第五驗(yàn)證信息發(fā)送給所述讀寫器R;否則,判定認(rèn)證失敗,終止通信;
所述標(biāo)簽T,用于接收到所述讀寫器R發(fā)送的第一隨機(jī)數(shù)r和所述認(rèn)證請求后,基于標(biāo)簽假名IDS和所述第一隨機(jī)數(shù)r生成第二隨機(jī)數(shù)x,并對所述第二隨機(jī)數(shù)x進(jìn)行加密,得到M1,并利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法生成第一 驗(yàn)證信息P=(P1,P2),其中P1,P2為所述第一驗(yàn)證消息P的左右兩部分,每部分長度為l,并將消息組合一(P1,M1)發(fā)送給所述讀寫器R;基于接收到的P2'或者P2”判斷所述后端服務(wù)器S是否合法,如果合法,則判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證成功,更新所述標(biāo)簽T的密鑰庫;否則,判定認(rèn)證失敗,終止通信。
在本實(shí)施例中,l=128bits,所述移動射頻識別系統(tǒng)通過在所述讀寫器R內(nèi)部產(chǎn)生第一隨機(jī)數(shù)r發(fā)送給所述標(biāo)簽T開始雙向認(rèn)證過程,在之后的所述讀寫器R、所述標(biāo)簽T和所述后端服務(wù)器S之間的雙向認(rèn)證過程中,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法加密它們之間傳輸?shù)男畔?,同時在認(rèn)證成功后及時更新所述標(biāo)簽T和所述讀寫器R各自的密鑰庫,有效地隱藏了所述標(biāo)簽T和讀寫器R的身份信息,保護(hù)了讀寫器R與標(biāo)簽T的隱私信息。并且由于交叉位運(yùn)算和循環(huán)校驗(yàn)算法的計(jì)算量小,運(yùn)算速度快,在保證雙向認(rèn)證的目的的前提下,有效地提高了雙向認(rèn)證的效率。
另外,在整個雙向認(rèn)證過程中,大部分的計(jì)算量在所述后端服務(wù)器S進(jìn)行,減小了標(biāo)簽T的計(jì)算量,從而降低了標(biāo)簽T的計(jì)算成本,并且所述標(biāo)簽T只需要進(jìn)行簡單的數(shù)據(jù)運(yùn)算而不需要隨機(jī)數(shù)發(fā)生器,有效地降低了對所述標(biāo)簽的硬件要求,從而進(jìn)一步降低了所述標(biāo)簽T的成本。
進(jìn)一步的,在所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間進(jìn)行的驗(yàn)證信息的傳輸過程中,只進(jìn)行部分驗(yàn)證信息的傳輸,從而使敵手無法獲取隱私信息,進(jìn)而確保雙向認(rèn)證的通信安全。
在上述實(shí)施例的基礎(chǔ)上,在本申請的一個具體實(shí)施例中,所述后端服務(wù)器S具體用于,在收到消息組合二(P1,P3,M1,r)后,基于所述后端服務(wù)器S中存儲的讀寫器R身份標(biāo)識IDR、讀寫器密鑰KR和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q'=(P3',P4')=Cro(KR,CRC(IDR⊕r)),并判斷P3'是否等于P3,如果等于,則判定所述讀寫器R合法,并對讀寫器R的密鑰庫進(jìn)行更新,得到讀寫器R更新密鑰KR',KR'=IDR⊕(KR>>l/2);
如果不等于,則基于所述后端服務(wù)器S中存儲的讀寫器R身份標(biāo)識IDR、上一輪讀寫器密鑰KRold和所述第一隨機(jī)數(shù)r生成第三驗(yàn)證信息Q”=(P3”,P4”)=Cro(KRold,CRC(IDR⊕r)),并判斷P3”是否等于P3,若等于,則判定所述讀寫器R合法,并更新讀寫器R的密鑰庫:KR=KRold, KR'=IDR⊕(KR>>l/2);如果P3”不等于P3,則判定所述讀寫器R不合法,通信立即終止;
當(dāng)P3'等于P3時,利用所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4')發(fā)送給所述讀寫器R;若不等于,則利用所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4')發(fā)送給所述讀寫器R;若P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
當(dāng)P3”等于P3時,利用所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS和所述加密信息M1計(jì)算x=M1⊕IDS,基于所述后端服務(wù)器S中預(yù)先存儲的標(biāo)簽假名IDS、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P'=(P1',P2')=Cro(x,CRC(IDS⊕r)),并判斷P1'是否等于P1,若等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名,得到更新的標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2),并將(P2',P4”)發(fā)送給所述讀寫器R;若不等于,則利用所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold和所述加密信息M1計(jì)算x=M1⊕IDSold,基于所述后端服務(wù)器S中預(yù)先存儲的上一輪標(biāo)簽假名IDSold、所述第一隨機(jī)數(shù)r和x生成第四驗(yàn)證信息P”=(P1”,P2”)=Cro(x,CRC(IDS⊕r)),并判斷P1”是否等于P1,如果等于,則判定所述標(biāo)簽T合法,并更新標(biāo)簽假名:IDS=IDSold,IDS'=x⊕(IDS>>l/2),并將(P2”,P4”)發(fā)送給所述讀寫器R;如果P1”不等于P1,則判定所述標(biāo)簽不合法,通信立即終止;
其中,Cro代表交叉位運(yùn)算,CRC代表循環(huán)校驗(yàn)函數(shù),⊕代表異或運(yùn)算,l=128bits。
為了更清楚的對交叉位運(yùn)算進(jìn)行說明,本申請的一個具體實(shí)施例對交叉位運(yùn)算進(jìn)行了詳細(xì)說明,具體地,設(shè)X和Y為兩個具有偶數(shù)位L位的二進(jìn)制數(shù),X=X1X2…XL,Y=Y1Y2…YL,其中,Xi,Yi的取值范圍為0或1,i=1,2…L;對X和Y進(jìn)行交叉位運(yùn)算是指由X的奇數(shù)位和Y的偶數(shù)位相互交叉形成新的L位數(shù)組;具體運(yùn)算過程中:定義兩個指針P1和P2分別指向X和Y,當(dāng)P1指向X的奇數(shù)位時,把此位置上的值賦予運(yùn)算結(jié)果的偶數(shù)位;當(dāng)P2指向Y的偶數(shù)位時,將此位置上的值賦予運(yùn)算結(jié)果的奇數(shù)位。如圖2所示,例如取L=10,設(shè)X=1100101100,Y=0101101011,則Cro(X,Y)=1110010110。
為了更清楚的說明在本實(shí)施例中所述后端服務(wù)器S具體生成哪一種第五驗(yàn)證信息,下面將以圖示進(jìn)行說明,如圖3所示,在圖3中示出了第三驗(yàn)證信息、第四驗(yàn)證信息到第五驗(yàn)證信息的生成關(guān)系,其中,兩種第三驗(yàn)證信息分別基于KR和KRold生成,兩種第四驗(yàn)證信息分別基于IDS和IDSold生成,那么基于第三驗(yàn)證信息和第四驗(yàn)證信息的第五驗(yàn)證信息就會存在四種可能,具體對應(yīng)關(guān)系如圖3。
那么在上述實(shí)施例的基礎(chǔ)上,在本申請的一個實(shí)施例中,相應(yīng)的,所述讀寫器R接收到所述后端服務(wù)器S反饋的第五驗(yàn)證信息后,判定P4'是否和P4相等,如果P4'等于P4,則判定所述后端服務(wù)器S合法,更新讀寫器密鑰:KR'=IDR⊕(KR>>l/2),并將P2'發(fā)送給所述標(biāo)簽T;如果P4”等于P4,則判定所述后端服務(wù)器S合法,更新讀寫器密鑰:KR=KRold,KR'=IDR⊕(KR>>l/2),并將P2”發(fā)送給所述標(biāo)簽T,如果P4'或P4”均與P4不相等,則判定所述后端服務(wù)器不合法,通信終止。
相應(yīng)的,所述標(biāo)簽T接收到P2'或者P2”后,判定P2'或者P2”是否等于P2,如果P2'等于P2,則判定所述后端服務(wù)器S合法,并判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證成功,更新標(biāo)簽假名IDS',IDS'=x⊕(IDS>>l/2);如果P2”等于P2,則判定所述后端服務(wù)器S合法,并判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證成功,進(jìn)行數(shù)據(jù)更新:IDS=IDSold,IDS'=x⊕(IDS>>l/2);如果P2'或者P2”均不等于P2,則判定所述后端服務(wù)器S不合法,并判定所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間的雙向認(rèn)證失敗。
在上述實(shí)施例的基礎(chǔ)上,在本申請的一個優(yōu)選實(shí)施例中,所述讀寫器R還包括:隨機(jī)數(shù)生成器;
所述隨機(jī)數(shù)生成器,用于生成第一隨機(jī)數(shù)r。
需要說明的是,在本實(shí)施例中,所述讀寫器R利用隨機(jī)數(shù)生成器生成第一隨機(jī)數(shù)r而不用隨機(jī)數(shù)生成函數(shù)MIXBITS(X,Y)生成第一隨機(jī)數(shù)r的原因是:如果所述讀寫器R通過MIXBITS(X,Y)函數(shù)來生成第一隨機(jī)數(shù)r,則代入其中的參數(shù)X和Y相對應(yīng)的值為所述讀寫器R的身份標(biāo)識IDR和密鑰KR,而后需要將所述第一隨機(jī)數(shù)r發(fā)送給所述標(biāo)簽T,從而有可能會存在泄漏所述讀寫器R的信息的問題。因此在本實(shí)施例中優(yōu)選采用隨機(jī)數(shù)生成器生成第一隨機(jī)數(shù)r。
在上述實(shí)施例的基礎(chǔ)上,在本申請的又一個優(yōu)選實(shí)施例中,所述標(biāo)簽T通過隨機(jī)數(shù)生成函數(shù)MIXBITS生成第二隨機(jī)數(shù)x,x=MIXBITS(IDS,r),IDS為所述標(biāo)簽假名、r表示所述第一隨機(jī)數(shù)。
需要說明的是,在本實(shí)施例中,所述標(biāo)簽T利用隨機(jī)數(shù)生成函數(shù)MIXBITS生成所述第二隨機(jī)數(shù)x,而不采用隨機(jī)數(shù)生成器生成第二隨機(jī)數(shù)x的原因是:
由于第二隨機(jī)數(shù)x的生成參數(shù)中包括了一個不確定的第一隨機(jī)數(shù)r,則不會存在讀寫器R利用MIXBITS函數(shù)生成第一隨機(jī)數(shù)r時存在的身份信息泄露的問題。并且,利用所述隨機(jī)數(shù)生成函數(shù)MIXBITS生成所述第二隨機(jī)數(shù)x,只需要將MIXBITS函數(shù)功能嵌到標(biāo)簽T里面即可實(shí)現(xiàn),而不需要內(nèi)置隨機(jī)數(shù)生成器,進(jìn)一步降低了所述標(biāo)簽T的成本。同時,由于本實(shí)施例中的標(biāo)簽假名是通過所述標(biāo)簽T產(chǎn)生的隨機(jī)數(shù)進(jìn)行更新,而每次認(rèn)證中的標(biāo)簽T所產(chǎn)生的隨機(jī)數(shù)均不同,一端標(biāo)簽T的所有權(quán)發(fā)生轉(zhuǎn)移,舊擁有者不能獲得標(biāo)簽T的新的身份信息,從而無法訪問該標(biāo)簽T,進(jìn)而保證所述標(biāo)簽T的所有權(quán)轉(zhuǎn)移的安全性。具體地,利用MIXBITS函數(shù)生成隨機(jī)數(shù)的具體過程如圖4所示。
經(jīng)過安全性分析,所述移動射頻識別系統(tǒng)能夠抵抗追蹤攻擊、重放攻擊、假冒攻擊、中間人攻擊、去同步化攻擊、暴力破解攻擊等惡意攻擊,同時實(shí)現(xiàn)所述標(biāo)簽T和讀寫器R的匿名性和標(biāo)簽T所有權(quán)轉(zhuǎn)移的安全性。在計(jì)算量方面,由于將大部分計(jì)算過程都轉(zhuǎn)移到所述后端服務(wù)器S中,所述標(biāo)簽T只通過MIXBITS函數(shù)保持?jǐn)?shù)據(jù)的隨機(jī)性,使標(biāo)簽T具有不需要隨機(jī)數(shù)產(chǎn)生器也能產(chǎn)生隨機(jī)數(shù)的功能,降低了所述標(biāo)簽T的硬件成本。
綜上所述,本申請實(shí)施例提供了一種移動射頻識別的雙向認(rèn)證方法及移 動射頻識別系統(tǒng),其中,所述移動射頻識別的雙向認(rèn)證方法通過在所述讀寫器R內(nèi)部產(chǎn)生第一隨機(jī)數(shù)r發(fā)送給所述標(biāo)簽T開始雙向認(rèn)證過程,在之后的所述讀寫器R、所述標(biāo)簽T和所述后端服務(wù)器S之間的雙向認(rèn)證過程中,利用交叉位運(yùn)算和循環(huán)校驗(yàn)算法加密它們之間傳輸?shù)男畔?,同時在認(rèn)證成功后及時更新所述標(biāo)簽T和所述讀寫器R各自的密鑰庫,有效地隱藏了所述標(biāo)簽T和讀寫器R的身份信息,保護(hù)了讀寫器R與標(biāo)簽T的隱私信息。并且由于交叉位運(yùn)算和循環(huán)校驗(yàn)算法的計(jì)算量小,運(yùn)算速度快,在保證雙向認(rèn)證的目的的前提下,有效地提高了雙向認(rèn)證的效率。
另外,在整個雙向認(rèn)證過程中,大部分的計(jì)算量在所述后端服務(wù)器S進(jìn)行,減小了標(biāo)簽T的計(jì)算量,從而降低了標(biāo)簽T的計(jì)算成本,并且所述標(biāo)簽T只需要進(jìn)行簡單的數(shù)據(jù)運(yùn)算而不需要隨機(jī)數(shù)發(fā)生器,有效地降低了對所述標(biāo)簽的硬件要求,從而進(jìn)一步降低了所述標(biāo)簽T的成本。
進(jìn)一步的,在所述標(biāo)簽T、所述讀寫器R和所述后端服務(wù)器S之間進(jìn)行的驗(yàn)證信息的傳輸過程中,只進(jìn)行部分驗(yàn)證信息的傳輸,從而使敵手無法獲取隱私信息,進(jìn)而確保雙向認(rèn)證的通信安全。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。