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