專利名稱:基于單向函數(shù)的動態(tài)口令讀寫控制的rfid的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及RFID技術(shù),具體涉及RFID的讀寫控制技術(shù)。
背景技術(shù):
射頻識別(RFID,I adio Frequency Identification)是一種非接觸式的自動識別技術(shù),其基本原理是利用射頻信號和空間耦合傳輸特性,實(shí)現(xiàn)對被識物體的自動識別。RFID 系統(tǒng)一般由讀寫器和電子標(biāo)簽組成,電子標(biāo)簽存儲相關(guān)物體的各種數(shù)據(jù)信息,讀寫器在一定的范圍內(nèi)以無接觸的方式將電子標(biāo)簽中的數(shù)據(jù)信息讀取出來(即讀操作),并可將處理后的數(shù)據(jù)信息再寫入電子標(biāo)簽中(即寫操作)。RFID作為一種新興的技術(shù),目前已經(jīng)被廣泛應(yīng)用于倉儲管理、停車場管理、防盜系統(tǒng)、動物管理等方面。隨著RFID技術(shù)的進(jìn)一步發(fā)展,RFID應(yīng)用的領(lǐng)域會越來越廣泛,其中許多領(lǐng)域?qū)?shù)據(jù)的安全性有著嚴(yán)格的要求,因此,人們對RFID系統(tǒng)的數(shù)據(jù)安全性也越來越重視。目前,RFID的讀寫控制都是在讀寫器與電子標(biāo)簽經(jīng)過身份認(rèn)證之后進(jìn)行的,當(dāng)讀寫器與電子標(biāo)簽相互通過身份認(rèn)證后,讀寫器只要向電子標(biāo)簽發(fā)送讀指令或?qū)懼噶睿藭r, 電子標(biāo)簽也不會再次對讀寫器進(jìn)行指令認(rèn)證,讀寫器即可讀取或修改電子標(biāo)簽上的數(shù)據(jù)信息,因此,現(xiàn)有的RFID系統(tǒng)的安全性較差,容易被不法分子所破解,修改電子標(biāo)簽上的數(shù)據(jù)信息,造成一定的經(jīng)濟(jì)損失。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提出一種安全性高的基于單向函數(shù)的動態(tài)口令讀寫控制的RFID。為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案如下
一種基于單向函數(shù)的動態(tài)口令讀寫控制的RFID,包括讀寫器A及電子標(biāo)簽B,其特征在于,讀寫器A、電子標(biāo)簽B均內(nèi)置有真隨機(jī)數(shù)發(fā)生器、基于單向函數(shù)的動態(tài)口令模塊,且讀寫器A、電子標(biāo)簽B存儲有相同的秘密信息;讀寫器A與電子標(biāo)簽B當(dāng)且僅當(dāng)相互通過身份認(rèn)證后,才能進(jìn)行以下步驟讀寫器A與電子標(biāo)簽B雙方協(xié)商隨機(jī)初始值,隨機(jī)初始值以 randomdata表示,并令讀寫器A當(dāng)前云力態(tài)口令passwordA=randomdata,電子標(biāo)簽B當(dāng)前云力態(tài)口令passwordB=randomdata, randomdata是由真隨機(jī)數(shù)發(fā)生器生成,此時,passwordA禾口 password的值均為初始動態(tài)口令的值,然后按照以下步驟進(jìn)行讀操作或?qū)懖僮鳎?讀寫器A與電子標(biāo)簽B進(jìn)行寫操作
(1)設(shè)讀寫器A上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdA (若讀寫器A首次進(jìn)行寫操作時,則passWOrdA為randomdata),讀寫器A運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令 password/ =OneffayFunc(passwordA, s_message);
(2)讀寫器A向電子標(biāo)簽B發(fā)送寫指令,所述寫指令的數(shù)據(jù)函數(shù)為WriteData (password/,offsetw,data,Ienw);
(3)電子標(biāo)簽B接收到寫指令;
(4)設(shè)電子標(biāo)簽B上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdB(若電子標(biāo)簽B首次進(jìn)行寫操作時,則paSSWordB為randomdata),電子標(biāo)簽B運(yùn)行動態(tài)口令模塊,生成新的動態(tài) □令 passwordB,=OneffayFunc (passwordB, s_message);
(5)電子標(biāo)簽B 對 password/ 與 passwordB'的值進(jìn)行比對,若 password/=passwordB,, 則執(zhí)行寫指令,Qffsetff為電子標(biāo)簽B執(zhí)行本次寫指令時的起始偏移量,data為讀寫器A要向電子標(biāo)簽B寫入的數(shù)據(jù),Ienw為讀寫器A要向電子標(biāo)簽B寫入的數(shù)據(jù)的長度;否則忽略該寫指令;
讀寫器A與電子標(biāo)簽B進(jìn)行讀操作
(1)設(shè)讀寫器A上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdA(若讀寫器A首次進(jìn)行讀操作時,則passWOrdA為randomdata),讀寫器A運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令 password/ =OneffayFunc(passwordA, s_message);
(2)讀寫器A向電子標(biāo)簽B發(fā)送讀指令,所述讀指令的數(shù)據(jù)函數(shù)為ReadData (password/,offsetR,lenE);
(3)電子標(biāo)簽B接收到讀指令;
(4)設(shè)電子標(biāo)簽B上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdB(若電子標(biāo)簽B首次進(jìn)行讀操作時,則paSSWordB為randomdata),電子標(biāo)簽B運(yùn)行動態(tài)口令模塊,生成新的動態(tài) □令 passwordB,=OneffayFunc (passwordB, s_message);
(5)電子標(biāo)簽B 對 password/ 與 passwordB'的值進(jìn)行比對,若 password/=passwordB,, 則執(zhí)行讀指令,offsetK為電子標(biāo)簽B執(zhí)行本次讀指令時的起始偏移量,讀寫器A向電子標(biāo)簽B讀出的數(shù)據(jù)的長度;否則忽略該讀指令;
其中,
s_message為讀寫器A、電子標(biāo)簽B的秘密信息;
OneffayFunc (passwordA, s_message)為單向函數(shù)模塊使 passwordA 在 s_message 的作用下進(jìn)行一次單向函數(shù)運(yùn)算;
OneWayFunc (passwordB, s—message)為單向函數(shù)模塊使 passwordB 在 s—message 的作用下進(jìn)行一次單向函數(shù)運(yùn)算。優(yōu)選的,randomdata、passwordA、passwordB、password/、password/、s—message 的數(shù)據(jù)長度均為大于O的自然數(shù)。本發(fā)明具有如下有益效果由于初始動態(tài)口令randomdata是由真隨機(jī)數(shù)發(fā)生器生成,^message為嚴(yán)格保密的秘密信息,由秘密信息、隨機(jī)初始值、單向函數(shù)組成的動態(tài)口令模塊每一輪產(chǎn)生的動態(tài)口令都是無法預(yù)知的,可以防止重放攻擊,當(dāng)讀寫器對電子標(biāo)簽進(jìn)行讀/寫操作時,電子標(biāo)簽都要對指令數(shù)據(jù)中的password/數(shù)據(jù)進(jìn)行校驗(yàn),從而實(shí)現(xiàn)電子標(biāo)簽認(rèn)證后的動態(tài)口令讀/寫控制,具有極高的安全性。
圖1為本發(fā)明實(shí)施例的基于單向函數(shù)的動態(tài)口令讀寫控制的RFID的結(jié)構(gòu)示意圖2為本發(fā)明實(shí)施例的基于單向函數(shù)的動態(tài)口令讀寫控制的RFID的讀/寫操作流程圖。
具體實(shí)施例方式下面,結(jié)合附圖以及具體實(shí)施方式
,對本發(fā)明做進(jìn)一步描述,以便于更清楚的理解本發(fā)明所要求保護(hù)的技術(shù)思想。為了方便閱讀,定義以下符號
s.message 讀寫器、電子標(biāo)簽享有的秘密信息,秘密信息需嚴(yán)格保密,秘密信息的長度是大于0的自然數(shù)。定義如下三個指令函數(shù)
OneffayFunc (password, s_message)單向函數(shù)(OneWayFunc, One Way Function),動態(tài)口令(以password表示)在秘密信息(即sjiiessage)的作用下,進(jìn)行一次單向函數(shù)運(yùn)算, 從而生成新的動態(tài)口令,該函數(shù)的輸入輸出數(shù)據(jù)長度為大于0的自然數(shù)。單向函數(shù)是滿足以下兩個特性的函數(shù)給定輸入,計算結(jié)果是容易的;給定結(jié)果, 反求輸入是不可行的。WriteData (password, offset, data, len):寫指令的數(shù)據(jù)函數(shù),password 為讀寫器與電子標(biāo)簽本次寫操作所使用的動態(tài)口令;off set電子標(biāo)簽本次寫操作的起始偏移量, 例如,電子標(biāo)簽里面的數(shù)據(jù)空間為96byte,如果offset為10,即本次寫操作將會從電子標(biāo)簽數(shù)據(jù)空間的第11個字節(jié)開始往后寫Ien長度的數(shù)據(jù);data為要寫入的數(shù)據(jù),Ien為要寫入的數(shù)據(jù)的長度。ReadData (password, offset, len)讀指令的數(shù)據(jù)函數(shù),password 為讀寫器與電子標(biāo)簽本次讀操作所使用的動態(tài)口令;offset電子標(biāo)簽本次讀操作的起始偏移量,例如, 電子標(biāo)簽里面的數(shù)據(jù)空間為96byte,如果offset為10,即本次讀操作將會從電子標(biāo)簽數(shù)據(jù)空間的第11個字節(jié)開始往后讀Ien長度的數(shù)據(jù);Ien為要讀出的數(shù)據(jù)的長度。如圖1所示,一種基于單向函數(shù)的動態(tài)口令讀寫控制的RFID,其包括讀寫器A及電子標(biāo)簽B,讀寫器A、電子標(biāo)簽B均內(nèi)置有真隨機(jī)數(shù)發(fā)生器、基于單向函數(shù)的動態(tài)口令模塊, 且讀寫器A、電子標(biāo)簽B存儲有相同的秘密信息,秘密信息可預(yù)設(shè)于動態(tài)口令模塊中。本實(shí)施例的 RFID 共有 POWER OFF,READY,AUTHORIZED 三種狀態(tài)和 AUTHORIZE,WRITE,READ 三種操作指令。下面是本實(shí)施例的RFID各種狀態(tài)允許進(jìn)行的操作指令
POWER OFF,未加電狀態(tài),電子標(biāo)簽B不接受讀寫器A的認(rèn)證、讀寫指令操作; READY,加電狀態(tài),電子標(biāo)簽只能執(zhí)行認(rèn)證指令; AUTHORIZED,已認(rèn)證狀態(tài),電子標(biāo)簽?zāi)軋?zhí)行讀寫指令。下面對各種操作指令的流程進(jìn)行描述AUTHORIZE (認(rèn)證指令)讀寫器A向電子標(biāo)簽B發(fā)送認(rèn)證指令,讀寫器A與電子標(biāo)簽B相互通過身份認(rèn)證后,讀寫器A與電子標(biāo)簽B雙方協(xié)商隨機(jī)初始值,隨機(jī)初始值以 randomdata表示,并令讀寫器A 當(dāng)前云力態(tài)口令passwordA=randomdata,電子標(biāo)簽B當(dāng)前云力態(tài)口令pas sm)rdB=randomdata,此時,pas STOrdJ passm)rdB的值均為初始云力態(tài)口令的值。 randomdata是由真隨機(jī)數(shù)發(fā)生器生成。WRITE (寫數(shù)據(jù)指令):如圖2所示,讀寫器A與電子標(biāo)簽B進(jìn)行寫操作,步驟如下
(1)設(shè)讀寫器A上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdA(若讀寫器A首次進(jìn)行寫操作時,則passWOrdA為randomdata),讀寫器A運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令 password/ =OneffayFunc(passwordA, s_message);
(2)讀寫器A向電子標(biāo)簽B發(fā)送寫指令,所述寫指令的數(shù)據(jù)函數(shù)為WriteData (password/,offsetw,data,Ienw);
(3)電子標(biāo)簽B接收到寫指令;
(4)設(shè)電子標(biāo)簽B上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdB(若電子標(biāo)簽B首次進(jìn)行寫操作時,則paSSWordB為randomdata),電子標(biāo)簽B運(yùn)行動態(tài)口令模塊,生成新的動態(tài) □令 passwordB,=OneffayFunc (passwordB, s_message);
(5)電子標(biāo)簽B 對 password/ 與 passwordB'的值進(jìn)行比對,若 password/=passwordB,, 則執(zhí)行寫指令,把操作成功結(jié)果及數(shù)據(jù)返回給讀寫器A,其中,Offsetff為電子標(biāo)簽B執(zhí)行本次寫指令時的起始偏移量,data為讀寫器A要向電子標(biāo)簽B寫入的數(shù)據(jù),1甜 為讀寫器A 要向電子標(biāo)簽B寫入的數(shù)據(jù)的長度;否則忽略該寫指令,把操作失敗結(jié)果返回給讀寫器A并返回初始操作狀態(tài)。READ (讀數(shù)據(jù)指令)如圖2所示,讀寫器A與電子標(biāo)簽B進(jìn)行讀操作,步驟如下
(1)設(shè)讀寫器A上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdA(若讀寫器A首次進(jìn)行讀操作時,則passWOrdA為randomdata),讀寫器A運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令 password/ =OneffayFunc (passwordA, s_message);
(2)讀寫器A向電子標(biāo)簽B發(fā)送讀指令,所述讀指令的數(shù)據(jù)函數(shù)為ReadData (password/,offsetR,lenE);
(3)電子標(biāo)簽B接收到讀指令;
(4)設(shè)電子標(biāo)簽B上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdB(若電子標(biāo)簽B首次進(jìn)行讀操作時,則paSSWordB為randomdata),電子標(biāo)簽B運(yùn)行動態(tài)口令模塊,生成新的動態(tài) □令 passwordB,=OneffayFunc (passwordB, s_message);
(5)電子標(biāo)簽B 對 password/ 與 passwordB'的值進(jìn)行比對,若 password/=passwordB,, 則執(zhí)行讀指令,把操作成功結(jié)果及其存儲的數(shù)據(jù)信息返回給讀寫器A,其中,offset,為電子標(biāo)簽B執(zhí)行本次讀指令時的起始偏移量,lenE為讀寫器A向電子標(biāo)簽B讀出的數(shù)據(jù)的長度; 否則忽略該讀指令,把操作失敗結(jié)果返回給讀寫器A并返回初始操作狀態(tài)。上述,
s_message為讀寫器A、電子標(biāo)簽B的秘密信息;
OneffayFunc (passwordA, s_message)為單向函數(shù)模塊使 passwordA 在 s_message 的作用下進(jìn)行一次單向函數(shù)運(yùn)算;
OneWayFunc (passwordB, s—message)為單向函數(shù)模塊使 passwordB 在 s—message 的作用下進(jìn)行一次單向函數(shù)運(yùn)算。randomdata、passwordA、passwordB、password/、password/、s—message 的數(shù)據(jù)長度均為大于0的自然數(shù)
由上述讀寫操作流程可知,由于初始動態(tài)口令randomdata是由真隨機(jī)數(shù)發(fā)生器生成, s.message為嚴(yán)格保密的秘密信息,由秘密信息、隨機(jī)初始值、單向函數(shù)組成的動態(tài)口令模塊每一輪產(chǎn)生的動態(tài)口令都是無法預(yù)知的,可以防止重放攻擊,當(dāng)讀寫器對電子標(biāo)簽進(jìn)行讀/寫操作時,電子標(biāo)簽都要對指令數(shù)據(jù)中的password/數(shù)據(jù)進(jìn)行校驗(yàn),從而實(shí)現(xiàn)電子標(biāo)簽認(rèn)證后的動態(tài)口令讀/寫控制,具有極高的安全性。對于本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及變形,而所有的這些改變以及變形都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.基于單向函數(shù)的動態(tài)口令讀寫控制的RFID,包括讀寫器A及電子標(biāo)簽B,其特征在于,讀寫器A、電子標(biāo)簽B均內(nèi)置有真隨機(jī)數(shù)發(fā)生器、基于單向函數(shù)的動態(tài)口令模塊,且讀寫器A、電子標(biāo)簽B存儲有相同的秘密信息;讀寫器A與電子標(biāo)簽B當(dāng)且僅當(dāng)相互通過身份認(rèn)證后,才能進(jìn)行以下步驟讀寫器A與電子標(biāo)簽B雙方協(xié)商隨機(jī)初始值,隨機(jī)初始值以randomdata表示,并令讀寫器A當(dāng)前云力態(tài)口令passwordA=randomdata,電子標(biāo)簽B當(dāng)前云力態(tài)口令passwordB=randomdata, randomdata是由真隨機(jī)數(shù)發(fā)生器生成,此時,passwordA禾口password的值均為初始動態(tài)口令的值,然后按照以下步驟進(jìn)行讀操作或?qū)懖僮鳎蛔x寫器A與電子標(biāo)簽B進(jìn)行寫操作設(shè)讀寫器A上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdA,若讀寫器A首次進(jìn)行寫操作時,則passWOrdA為randomdata,讀寫器A運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令password/ =OneffayFunc (passwordA, s_message);讀寫器A向電子標(biāo)簽B發(fā)送寫指令,所述寫指令的數(shù)據(jù)函數(shù)為WriteDatMpassword/,offsetw, data, Ienw);電子標(biāo)簽B接收到寫指令;設(shè)電子標(biāo)簽B上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdB,若電子標(biāo)簽B首次進(jìn)行寫操作時,則paSSWordB為randomdata,電子標(biāo)簽B運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令passwordB' =OneffayFunc (passwordB, s_message);電子標(biāo)簽 B 對 password/ 與 password/ 的值進(jìn)行比對,若 password/ =passwordB,,貝Ij執(zhí)行寫指令,Qffsetff為電子標(biāo)簽B執(zhí)行本次寫指令時的起始偏移量,data為讀寫器A要向電子標(biāo)簽B寫入的數(shù)據(jù),Ienw為讀寫器A要向電子標(biāo)簽B寫入的數(shù)據(jù)的長度;否則忽略該寫指令;讀寫器A與電子標(biāo)簽B進(jìn)行讀操作設(shè)讀寫器A上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdA,若讀寫器A首次進(jìn)行讀操作時,則passWOrdA為randomdata,讀寫器A運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令password/ =OneffayFunc (passwordA, s_message);讀寫器A向電子標(biāo)簽B發(fā)送讀指令,所述讀指令的數(shù)據(jù)函數(shù)為ReadData (password/,offsetR,lenE);電子標(biāo)簽B接收到讀指令;設(shè)電子標(biāo)簽B上一輪的動態(tài)口令模塊的輸出口令為paSSWOrdB,若電子標(biāo)簽B首次進(jìn)行讀操作時,則paSSWordB為randomdata,電子標(biāo)簽B運(yùn)行動態(tài)口令模塊,生成新的動態(tài)口令passwordB' =OneffayFunc (passwordB, s_message);電子標(biāo)簽 B 對 password/ 與 password/ 的值進(jìn)行比對,若 password/ =passwordB,,貝Ij執(zhí)行讀指令,offsetK為電子標(biāo)簽B執(zhí)行本次讀指令時的起始偏移量,讀寫器A向電子標(biāo)簽B讀出的數(shù)據(jù)的長度;否則忽略該讀指令;其中,s_message為讀寫器A、電子標(biāo)簽B的秘密信息;OneffayFunc (passwordA, s_message)為單向函數(shù)模塊使 passwordA 在 s_message 的作用下進(jìn)行一次單向函數(shù)運(yùn)算;OneWayFunc (passwordB, s—message)為單向函數(shù)模塊使 passwordB 在 s—message 的作用下進(jìn)行一次單向函數(shù)運(yùn)算。
2.如權(quán)利要求1所述的基于單向函數(shù)的動態(tài)口令讀寫控制的RFID,其特征在于,randomdata、passwordA、passwordB、password/、passwordB,、s_message 的數(shù)據(jù)長度均為大于0的自然數(shù)。
全文摘要
本發(fā)明涉及基于單向函數(shù)的動態(tài)口令讀寫控制的RFID,包括讀寫器及電子標(biāo)簽;它們均內(nèi)置有真隨機(jī)數(shù)發(fā)生器、基于單向函數(shù)的動態(tài)口令生成模塊(該模塊都預(yù)置秘密信息s_message)。雙方必須相互認(rèn)證后,讀寫器才能對電子標(biāo)簽進(jìn)行讀/寫操作;同時,相互認(rèn)證也協(xié)商了一個隨機(jī)初始值randomdata。讀/寫操作時,讀寫器利用上一輪的動態(tài)口令和s_message生成下一輪的口令,并與讀/寫指令一起發(fā)送給電子標(biāo)簽。標(biāo)簽收到后,與本身的動態(tài)口令生成模塊產(chǎn)生的相比較;一致,才執(zhí)行讀/寫數(shù)據(jù)。由秘密信息、隨機(jī)初始值、單向函數(shù)組成的動態(tài)口令模塊每一輪產(chǎn)生的動態(tài)口令都是無法預(yù)知的。這樣就實(shí)現(xiàn)電子標(biāo)簽的動態(tài)口令讀寫控制。
文檔編號H04L9/32GK102567760SQ20121000651
公開日2012年7月11日 申請日期2012年1月10日 優(yōu)先權(quán)日2012年1月10日
發(fā)明者何宇坤, 葉錄高, 葉木正, 潘偉錢, 田文春, 鄭東曦 申請人:廣州中盈物流科訊有限公司