基于標(biāo)簽id的rfid系統(tǒng)密鑰生成方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及射頻識(shí)別技術(shù)領(lǐng)域,特別涉及一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成方法及裝置。
【背景技術(shù)】
[0002]在RFID系統(tǒng)中,標(biāo)簽根據(jù)自身的特點(diǎn)可以分為兩類,一類是無(wú)源被動(dòng)式標(biāo)簽,另一類是有源主動(dòng)式標(biāo)簽。前者因?yàn)槌杀据^低,再加之計(jì)算能力低和資源存儲(chǔ)有限等原因,因此不能實(shí)現(xiàn)基于常規(guī)加密算法(例如RSA、DES等)的安全認(rèn)證協(xié)議;同時(shí)因?yàn)闃?biāo)簽是無(wú)源的,因此該類標(biāo)簽只能從讀寫器信號(hào)獲得很少的能量進(jìn)行信息傳輸,從而會(huì)導(dǎo)致此類標(biāo)簽?zāi)軌蝽憫?yīng)所有提供能量的讀寫器訪問(wèn)。后者因?yàn)橛?jì)算能力和資源存儲(chǔ)等方面要優(yōu)于前者,因此該類標(biāo)簽可以使用動(dòng)態(tài)的驗(yàn)證密鑰來(lái)提升系統(tǒng)的安全性;正是因?yàn)橛?jì)算能力和存放空間的增大,而導(dǎo)致該類標(biāo)簽成本的急劇增加。其中在現(xiàn)實(shí)生活中,最常用的標(biāo)簽為無(wú)源被動(dòng)式標(biāo)簽,正是因?yàn)榇祟悩?biāo)簽可以使所有能夠?yàn)槠涮峁┠芰康淖x寫器都可以訪問(wèn)的因素,使得該類RFID系統(tǒng)中存在嚴(yán)重的安全缺陷,攻擊者可以偽裝成合法的讀寫器為標(biāo)簽提供能量,從而竊取合法標(biāo)簽的相關(guān)信息和敏感的隱私。
[0003]現(xiàn)有的RFID系統(tǒng)中,標(biāo)簽與讀寫器之間的共享密鑰,絕大多數(shù)都是事先設(shè)置好初始密鑰值。針對(duì)此種情況,攻擊者可以通過(guò)一些攻擊手段來(lái)獲得初始密鑰值,從而更進(jìn)一步獲取其他隱私的信息,因此這種方式產(chǎn)生的密鑰具有一定的安全缺陷。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的一個(gè)目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成方法,該方法解決了 RFID系統(tǒng)中標(biāo)簽與讀寫器之間共享密鑰不用事先設(shè)置好的問(wèn)題。
[0005]本發(fā)明的另一個(gè)目的在于提供一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成裝置,該裝置具有成本低、安全性高的優(yōu)點(diǎn)。
[0006]本發(fā)明的目的通過(guò)以下的技術(shù)方案實(shí)現(xiàn):一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成方法,該方法中讀寫器為一個(gè)標(biāo)簽生成一個(gè)共享密鑰,包括步驟:
[0007](I)讀寫器向標(biāo)簽發(fā)送一個(gè)密鑰生成請(qǐng)求命令;
[0008](2)標(biāo)簽在收到上述命令后,計(jì)算A=ID_Re ID_L,然后將A傳給讀寫器;其中ID_R表示標(biāo)識(shí)符后半部分值,ID_L表示標(biāo)識(shí)符前半部分值,e表示異或運(yùn)算;
[0009](3)讀寫器在接收到A后,通過(guò)自身存放的第i個(gè)標(biāo)簽的標(biāo)識(shí)符前半部分值IDi_I^P第i個(gè)標(biāo)簽的標(biāo)識(shí)符后半部分值IDi_R來(lái)計(jì)算IDi_R θ lDi_L,并將計(jì)算結(jié)果與接收到的A進(jìn)行比對(duì),若計(jì)算結(jié)果與接收到的A不相等,說(shuō)明標(biāo)簽是偽造的,通信立刻終止,否則,讀寫器就產(chǎn)生一個(gè)長(zhǎng)度為L(zhǎng)位的隨機(jī)數(shù)r,計(jì)算B= IDi_R e r和D = IDi_L ? r,并將B和D都傳給標(biāo)簽;最后計(jì)算k=[IDi_L| IDi_R |r]L,將k作為標(biāo)簽與讀寫器之間共享的密鑰;其中I |表示與運(yùn)算,[表示取運(yùn)算結(jié)果的前L位;
[0010](4)標(biāo)簽在收到讀寫器發(fā)送來(lái)的B和D以后,首先驗(yàn)證B Θ ID_R是否與De ID_L相等,若相等,說(shuō)明讀寫器是合法的,標(biāo)簽接著計(jì)算k=[ID_L| |ID_R| |r]L,并將k作為標(biāo)簽與讀寫器之間共享的密鑰;若不相等,說(shuō)明讀寫器是偽造的,通信馬上終止。
[0011]一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成裝置,包括:
[0012]請(qǐng)求命令生成模塊,用于控制讀寫器向標(biāo)簽發(fā)送一個(gè)密鑰生成請(qǐng)求命令;
[0013]標(biāo)簽驗(yàn)證值生成模塊,用于在標(biāo)簽收到上述命令后,計(jì)算A=ID_Re ID_L,然后將A傳給讀寫器;其中ID_R表示標(biāo)識(shí)符后半部分值,ID_L表示標(biāo)識(shí)符前半部分值,e表示異或運(yùn)算;
[0014]讀寫器驗(yàn)證模塊,用于在讀寫器接收到A后,通過(guò)自身存放的第i個(gè)標(biāo)簽的標(biāo)識(shí)符前半部分值IDi_L和第i個(gè)標(biāo)簽的標(biāo)識(shí)符后半部分值IDi_R來(lái)計(jì)算IDi_R θ lDi_L,并將計(jì)算結(jié)果與接收到的A進(jìn)行比對(duì),若計(jì)算結(jié)果與接收到的A不相等,說(shuō)明標(biāo)簽是偽造的,通信立刻終止,否則執(zhí)行讀寫器標(biāo)簽密鑰生成模塊;
[0015]讀寫器密鑰生成模塊,用于產(chǎn)生一個(gè)長(zhǎng)度為L(zhǎng)位的隨機(jī)數(shù)r,計(jì)算B=IDi_R^r和D=IDi_L e r,并將B和D都傳給標(biāo)簽;最后計(jì)算k= [ IDi_L | | IDi_R | | r]L,將k作為標(biāo)簽與讀寫器之間共享的密鑰;其中I I表示與運(yùn)算,[表示取運(yùn)算結(jié)果的前L位;
[0016]標(biāo)簽驗(yàn)證模塊,用于在標(biāo)簽收到讀寫器發(fā)送來(lái)的B和D以后,驗(yàn)證Bθ ID_R是否與D?ID_L相等,若相等,執(zhí)行標(biāo)簽密鑰生成模塊;否則,說(shuō)明讀寫器是偽造的,通信馬上終止;
[0017]標(biāo)簽密鑰生成模塊,用于計(jì)算k=[ID_L||ID_R| |r]L,并將k作為標(biāo)簽與讀寫器之間共享的密鑰。
[0018]一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成方法,該方法中讀寫器為一批標(biāo)簽分別生成不同的共享密鑰,包括步驟:
[0019](I)讀寫器向全組標(biāo)簽廣播一個(gè)密鑰生成請(qǐng)求命令;
[0020](2)標(biāo)簽Ti在收到上述命令后,計(jì)算M=ID_Re ID_L,然后將M傳給讀寫器;其中ID_R表示標(biāo)識(shí)符后半部分值,ID_L表示標(biāo)識(shí)符前半部分值,e表示異或運(yùn)算,i表示在這批標(biāo)簽中當(dāng)前標(biāo)簽的編號(hào);
[0021](3)讀寫器在收到M值之后,通過(guò)自身存放的第i個(gè)標(biāo)簽的標(biāo)識(shí)符前半部分值IDi_L和第i個(gè)標(biāo)簽的標(biāo)識(shí)符后半部分值IDi_R來(lái)計(jì)算IDi_R θ lDi_L,并判斷計(jì)算結(jié)果與收到的M是否相等,若不相等,說(shuō)明標(biāo)簽是偽造的,通信立刻終止;若相等,讀寫器就產(chǎn)生一個(gè)長(zhǎng)度為L(zhǎng)位的隨機(jī)數(shù)r,計(jì)算N=IDi_R ? r和Q=IDi_L ? r,并將(N,Q,i)都傳給標(biāo)簽,最后計(jì)算ki =[IDi_L IDi_R |r]L,將ki作為標(biāo)簽Ti與讀寫器之間共享的密鑰,其中I I表示與運(yùn)算,[]l表示取運(yùn)算結(jié)果的前L位;
[0022](4)標(biāo)簽Ti在接收到讀寫器發(fā)送來(lái)的(N,Q,i)之后,執(zhí)行下面步驟:
[0023](4-1)首先比對(duì)i是否與自身存放的相等,若不相等,標(biāo)簽就舍棄該消息;若相等,執(zhí)行步驟(4_2);
[0024](4-2)分別計(jì)算N? ID_R、Q? ID_L,判斷N? 10_1?是否等于Q? ID_L,若二者不相等,說(shuō)明讀寫器是偽造的,通信立刻終止,若相等,說(shuō)明讀寫器合法,執(zhí)行步驟(4-3);
[0025](4-3)計(jì)算1^=[10_1^| ID_R Ir]L,并將k作為標(biāo)簽Ti與讀寫器之間共享的密鑰。
[0026]一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成裝置,包括:
[0027]請(qǐng)求命令生成模塊,用于控制讀寫器向全組標(biāo)簽廣播一個(gè)密鑰生成請(qǐng)求命令;
[0028]標(biāo)簽驗(yàn)證值生成模塊,用于在標(biāo)簽Ti收到上述命令后,計(jì)算M=ID_ReID_L,然后將M傳給讀寫器;其中ID_R表示標(biāo)識(shí)符后半部分值,ID_L表示標(biāo)識(shí)符前半部分值,e表示異或運(yùn)算,i表示在這批標(biāo)簽中當(dāng)前標(biāo)簽的編號(hào);
[0029]讀寫器驗(yàn)證模塊,用于在讀寫器收到M值之后,通過(guò)自身存放的第i個(gè)標(biāo)簽的標(biāo)識(shí)符前半部分值IDi_L和第i個(gè)標(biāo)簽的標(biāo)識(shí)符后半部分值IDi_R來(lái)計(jì)算IDi_Re IDi_L,并判斷計(jì)算結(jié)果與收到的M是否相等,若不相等,說(shuō)明標(biāo)簽是偽造的,通信立刻終止;若相等,執(zhí)行讀寫器標(biāo)簽密鑰生成模塊;
[0030]讀寫器密鑰生成模塊,用于產(chǎn)生一個(gè)長(zhǎng)度為L(zhǎng)位的隨機(jī)數(shù)r,計(jì)算N=IDi_Rer和Q=IDi_L ? r,并將(N,Q,i)都傳給標(biāo)簽,最后計(jì)算ki = [IDi_L | | IDi_R | | r]L,將ki作為標(biāo)簽Ti與讀寫器之間共享的密鑰,其中I I表示與運(yùn)算,[表示取運(yùn)算結(jié)果的前L位;
[0031 ]標(biāo)簽第一驗(yàn)證模塊,用于在標(biāo)簽Ti接收到讀寫器發(fā)送來(lái)的(N,Q,i)之后,比對(duì)i是否與自身存放的相等,若不相等,標(biāo)簽就舍棄該消息;若相等,執(zhí)行標(biāo)簽第二驗(yàn)證模塊;
[0032]標(biāo)簽第二驗(yàn)證模塊,用于計(jì)算N? ID_R、Q? ID_L,判斷N? 10_1?是否等于Q? ID_L,若二者不相等,說(shuō)明讀寫器是偽造的,通信立刻終止,若相等,說(shuō)明讀寫器合法,執(zhí)行標(biāo)簽密鑰生成模塊;
[0033]標(biāo)簽密鑰生成模塊,用于計(jì)算k=[ID_L|ID_R |r]L,并將k作為標(biāo)簽Ti與讀寫器之間共享的密鑰。
[0034]一種基于標(biāo)簽ID的RFID系統(tǒng)密鑰生成方法,該方法中讀寫器為一組標(biāo)簽生成一個(gè)共同的組密鑰,包括步驟:
[0035](I)讀寫器首先向全組標(biāo)簽廣播一個(gè)密鑰生成請(qǐng)求命令,用來(lái)告知所有標(biāo)簽開(kāi)始進(jìn)行群組密鑰生成;
[0036](2)組內(nèi)標(biāo)簽收到該命令后,標(biāo)簽Ti將自身存放的IDi_R&送給讀寫器;
[0037](3)讀寫器在收到標(biāo)簽的回復(fù)之后,逐一對(duì)比收到的IDi_lU^自身儲(chǔ)存的信息是否完全一致,若不完全一致,說(shuō)明有標(biāo)簽沒(méi)有響應(yīng)此次命令,此時(shí)讀寫器將再次發(fā)送密鑰生成請(qǐng)求命令;若完全一致,說(shuō)明組內(nèi)所有標(biāo)簽均已應(yīng)答,開(kāi)始進(jìn)行密鑰生成,
[0038](4)讀寫器開(kāi)始計(jì)算k=IDl_L? ID2_L?.