專利名稱:一種rfid安全認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明屬于射頻識別和保密通信領(lǐng)域,具體涉及一種RFID安全認(rèn)證方法。
背景技術(shù):
無線射頻識別(Radio Frequency Identification, RFID)是一種利用無線射頻信號耦合(電磁或者電感耦合)或者雷達(dá)反射的傳輸特性,在讀寫器和標(biāo)簽之間進(jìn)行非接觸雙向數(shù)據(jù)傳輸,以達(dá)到目標(biāo)識別和數(shù)據(jù)交換的目的的技術(shù)。這種識別技術(shù)的優(yōu)點(diǎn)之一就是無需任何物理接觸或者其他任何可見的接觸。但在享受RFID技術(shù)帶來便利的同時(shí),也必須要面對伴隨而來的諸如標(biāo)簽信息泄漏、標(biāo)簽易追蹤等安全隱患問題。一個(gè)最基本的RFID系統(tǒng)主要由3部分組成:標(biāo)簽(Tag),讀寫器(Reader)和后臺數(shù)據(jù)庫(backend)。按照能量供給原理,標(biāo)簽Tag可以分為主動(dòng)(Active)標(biāo)簽和被動(dòng)(Passive)標(biāo)簽。主動(dòng)標(biāo)簽又被稱為智能標(biāo)簽,能運(yùn)行一些復(fù)雜的算法,比如ECC、RSA,安全性較高;被動(dòng)標(biāo)簽則只能靠與讀寫器之間切割磁感線產(chǎn)生感應(yīng)電流來供給能量,內(nèi)部只有基本的邏輯門電路,可以被不停的訪問,直到有回應(yīng)為止,因此也被稱為邏輯卡,現(xiàn)階段只能運(yùn)行一些硬件成本低的算法,因此安全性相對較低。主動(dòng)標(biāo)簽天生的優(yōu)勢,使得它得以繼承在移動(dòng)通信等其它場景中得到認(rèn)可的優(yōu)秀的安全算法和方案;被動(dòng)標(biāo)簽雖然有著極大的成本限制,導(dǎo)致其安全方面存在很多弊端,但也正是它的廉價(jià)使得其擁有極其廣大的用戶。為了解決RFID系統(tǒng)的安全問題,最大限度地降低其面臨的安全風(fēng)險(xiǎn),必須為RFID系統(tǒng)構(gòu)造一個(gè)可靠的安全機(jī)制,用于Tag與Reader間的相互認(rèn)證和傳輸數(shù)據(jù)。在提升安全機(jī)制方面,近幾年國內(nèi)外RFID方面的研究學(xué)者提出了不少的解決辦法,比如ECC算法和RSA算法都具有較高的安全性能,但是這些算法比較復(fù)雜,實(shí)現(xiàn)起來對硬件資源提出了較高的要求,目前只能在一些智能標(biāo)簽上實(shí)現(xiàn)。然而智能標(biāo)簽價(jià)格比較高,大規(guī)模使用的時(shí)候成本會成為一個(gè)制約因素,而且智能標(biāo)簽都是有源標(biāo)簽,需要額外提供電源,這樣功耗就成了另外一個(gè)制約因素,一般智能標(biāo)簽的壽命都遠(yuǎn)小于無源標(biāo)簽。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決現(xiàn)有的RFID系統(tǒng)的認(rèn)證辦法存在的上述問題,提出了一種RFID安全認(rèn)證方法。本發(fā)明的技術(shù)方案為:一種RFID安全認(rèn)證方法,包括如下步驟:S1.讀寫器隨機(jī)產(chǎn)生兩個(gè)正整數(shù)rl與R1,并將其存儲在私有存儲空間,其中,rl e [1,M],R1 e (0,N1),M為待選取的加密算法的數(shù)目,所述的加密算法與M個(gè)數(shù)字一一對應(yīng),NI為預(yù)先設(shè)定的值,根據(jù)r I特定的取值選擇對應(yīng)的加密算法El對Rl和加密算法El對應(yīng)的密鑰序列Kl組成的數(shù)據(jù)流(Kl,Rl)進(jìn)行加密,加密后的結(jié)果為El (K1,R1),同時(shí)讀寫器不停對外發(fā)出讀寫請求命令,讀寫器檢測到標(biāo)簽以后將rl,Rl以及對加密后的結(jié)果El(Kl,Rl)發(fā)送給檢測到的標(biāo)簽;S2.被檢測到的標(biāo)簽收到讀寫器發(fā)來的rl、Rl以及El (Kl,Rl)之后,將Rl與El(Kl,Rl)分別存儲在私有存儲空間,根據(jù)rl選取存儲在標(biāo)簽加密算法庫中相對應(yīng)的加密算法E1’,并使用加密算法ΕΓ對Rl和與算法ΕΓ對應(yīng)的密鑰序列ΚΓ組成的數(shù)據(jù)流(K1’,Rl)進(jìn)行加密,加密后的結(jié)果為El’ (K1’,R1),然后將其與El (K1,R1)進(jìn)行比較,如果二者完全一致,通過第一輪安全認(rèn)證,否則終止本次會話;S3.第一輪安全認(rèn)證通過之后,標(biāo)簽將其ID號IDl使用加密算法El進(jìn)行加密,并將加密之后的結(jié)果El (Kl,IDl)發(fā)送給讀寫器;S4.讀寫器收到標(biāo)簽發(fā)來的El (Kl,IDl)之后,將其與rl 一起發(fā)送給后臺數(shù)據(jù)庫服務(wù)器;S5.后臺數(shù)據(jù)庫服務(wù)器收到讀寫器發(fā)來的rl和El (Kl,IDl)之后,根據(jù)參數(shù)rl選擇對應(yīng)的解密算法對數(shù)據(jù)包El (Kl,IDl)進(jìn)行解密,并將解密得到的ID號在后臺數(shù)據(jù)庫中進(jìn)行驗(yàn)證,如果找到與其完全匹配的ID號則通過第二輪安全認(rèn)證,否則終止本次會話;S6.第二輪安全認(rèn)證通過之后,后臺數(shù)據(jù)庫服務(wù)器隨機(jī)產(chǎn)生兩個(gè)正整數(shù)r2和R2,其中r2 e [1,M],R2 e (0,N2),N2為預(yù)先設(shè)定的值,根據(jù)r2的值選擇對應(yīng)的加密算法E2,并用其對參數(shù)R2和加密算法E2對應(yīng)的密鑰序列K2組成的數(shù)據(jù)流(K2,R2)進(jìn)行加密得到E2 (K2,R2),同時(shí)再次使用加密算法E2對標(biāo)簽ID號進(jìn)行加密,得到E2 (K2,IDl)然后將r2以及加密后的結(jié)果E2 (K2,R2)和E2 (K2,IDl)發(fā)送給讀寫器;S7.讀寫器收到后臺數(shù)據(jù)庫服務(wù)器發(fā)來的r2和E2 (K2,R2)和E2 (K2,IDl)之后,通過參數(shù)r2選擇相應(yīng)的解密算法對數(shù)據(jù)包E2 (K2,R2)進(jìn)行解密得到R2,然后將Rl與R2作為輸入?yún)?shù),使用存儲在讀寫器中的密鑰生成算法L生成密鑰L (R1,R2),并將其賦值給Key作為本次通信的動(dòng)態(tài)密鑰,最后使用加密算法E2對Key進(jìn)行加密得到E2 (K2,Key),并將其與r2、Rl、R2和E2 (K2,IDl)—起發(fā)送給標(biāo)簽;S8.標(biāo)簽收到讀寫器發(fā)來的r2、Rl、R2、E2 (K2,Key)和E2 (K2,IDl)之后,通過r2選擇對應(yīng)的解密算法分別對數(shù)據(jù)包E2 (K2,Key)和E2 (K2,IDl)進(jìn)行解密得到Key和IDl,緊接著將Key存放在動(dòng)態(tài)密鑰區(qū),并將解密得到的IDl與標(biāo)簽自身的ID號進(jìn)行比對,如果比對結(jié)果不一致則立即終止本次會話,否則將Rl與R2作為輸入?yún)?shù),使用存儲在標(biāo)簽中的密鑰生成算法L’生成密鑰L’(Rl,R2),并將其賦值給Key’ ;最后將解密得到Key與Key’進(jìn)行比對,如果Key與Key’完全一致則通過第三輪安全認(rèn)證,否則終止本次會話。本發(fā)明的有益效果:本發(fā)明的方法引入動(dòng)態(tài)選取加密算法的思想,即采用幾種具有一定安全性且硬件上容易實(shí)現(xiàn)的加密算法作為算法庫,每次通過隨機(jī)函數(shù)選取其中一種進(jìn)行加密和解密;通過引入動(dòng)態(tài)選取加密算法和動(dòng)態(tài)密鑰的思想,同時(shí)采用雙密鑰三重認(rèn)證的機(jī)制,具有較高的安全性能,既能保證硬件上的可實(shí)現(xiàn)性,又能通過算法的多樣性從而極大地提高系統(tǒng)的安全性。本發(fā)明的方法的實(shí)現(xiàn)不需要配置很高的硬件資源作支撐,但卻可以提供較高的安全性,解決了在目前廣泛使用的低成本標(biāo)簽上不能運(yùn)行高安全性加密算法的問題。本方法可以有效抵制假冒、跟蹤、重放等多種安全攻擊,為RFID技術(shù)的應(yīng)用和實(shí)施提供了高度的安全性和可靠性,較好地解決了 RFID系統(tǒng)安全性不足和其他安全方案所要求算法的配置過高的問題, 使得采用低成本的被動(dòng)標(biāo)簽實(shí)現(xiàn)較高安全性的數(shù)據(jù)通信成為可能。
圖1是本發(fā)明的RFID安全認(rèn)證方法的原理示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步的說明。本發(fā)明的目的在于提供一種輕量級高安全性的RFID認(rèn)證方法。與一般只采用固定單一的算法不同,其特征是以TEA、DES、IDEA和HIGHT等輕量級加密算法為基礎(chǔ),引入動(dòng)態(tài)選取加密算法的思想,每一次都是從這4種加密算法中隨機(jī)選擇一種來用于本次數(shù)據(jù)加密。由于每一次用于數(shù)據(jù)加密的算法都是事先無法預(yù)知的,外部很難尋找到其規(guī)律并將其破解,因此本方法具有較高的安全性能。本發(fā)明的RFID安全認(rèn)證方法的原理示意圖如圖1所示,具體過程如下:(I)Reader隨機(jī)產(chǎn)生兩個(gè)正整數(shù)rl與R1,并將其存儲在私有存儲空間,其中,rl e [I, M],Rl e (O, NI)。根據(jù)rl特定的取值選擇對應(yīng)的加密算法El對Rl和加密算法El對應(yīng)的對應(yīng)密鑰序列Kl組成的數(shù)據(jù)流(Kl,Rl)進(jìn)行加密,同時(shí)Reader不停對外發(fā)出讀寫請求命令,Reader檢測到標(biāo)簽以后將rl、Rl以及對Rl加密后的結(jié)果El (K1,R1)發(fā)送給檢測到的標(biāo)簽Tagl。在本實(shí)施例中,M=4,rl的四個(gè)可能的取值分別代表TEA、DES、IDEA和HIGHT四種加密算法中的一種,即TEA、DES、IDEA和HIGHT分別與1、2、3和4——對應(yīng),這四種加密算法構(gòu)成了 Reader的加密算法庫。選擇這四種加密算法的目的在于,這幾種是數(shù)據(jù)塊長度相同,實(shí)現(xiàn)方法很相似的輕量級加密算法,這樣可以減少硬件實(shí)現(xiàn)的復(fù)雜度。在這里Nl=IOOO,NI的取值需要足夠大,這個(gè)范圍足夠大才可能確保相同兩次認(rèn)證產(chǎn)生相同隨機(jī)數(shù)的概率足夠小,這樣才能有效降低算法被破譯的幾率。第一輪安全認(rèn)證:(2) Tagl 收到 Reader 發(fā)來的 rl、Rl 以及 El (Kl,Rl)之后,將 Rl 與 El (Kl,Rl)分別存儲在私有存儲空間,根據(jù)rl選取相應(yīng)的加密算法ΕΓ,并使用加密算法ΕΓ對Rl和與算法ΕΓ對應(yīng)的密鑰序列ΚΓ組成的數(shù)據(jù)流(ΚΓ,Rl)進(jìn)行加密,加密后的結(jié)果為ΕΓ(ΚΓ, Rl ),然后將其與El (Kl,Rl)進(jìn)行比較,如果二者完全一致,就可以通過第一輪安全認(rèn)證。否則,立即終止本次會話。如果有非法讀寫器想要讀取標(biāo)簽中的內(nèi)容,它就必須具有和標(biāo)簽相同的加密算法庫,而且算法庫中不同算法的組織方式以及相應(yīng)的密鑰都必須保持高度一致,否則就無法提供正確的密鑰K1,從而就不能通過第一輪安全認(rèn)證而直接被屏蔽掉,因而可以有效地阻止外部非法訪問,避免重要信息被非法竊取。第二輪安全認(rèn)證:(3)第一輪安全認(rèn)證通過之后,Tagl將其ID號IDl使用加密算法El進(jìn)行加密,并將加密之后的結(jié)果El (Kl,IDl)發(fā)送給Reader。(4) Reader收到Tagl發(fā)來的El (Kl,IDl)之后,再將其與rl 一起發(fā)送給后臺數(shù)據(jù)庫 DataBase。 (5)DataBase收到Reader發(fā)來的rl和El (Kl, IDl)之后,根據(jù)參數(shù)rl選擇相應(yīng)的解密算法對數(shù)據(jù)包El (Kl,IDl)進(jìn)行解密,并將解密得到的IDl在后臺數(shù)據(jù)庫中進(jìn)行驗(yàn)證,如果找到與其完全匹配的ID號則通過第二輪安全認(rèn)證。否則,發(fā)送結(jié)束命令給Reader要求其立即終止本次會話。由于每一個(gè)標(biāo)簽都有一個(gè)唯一的ID號,并且每一個(gè)標(biāo)簽的ID號在生產(chǎn)的過程中已經(jīng)確定,以后不能夠再做修改。因此,非法標(biāo)簽的ID號將無法通過后臺數(shù)據(jù)庫的驗(yàn)證,從而可以有效避免欺騙等安全攻擊。第三輪安全認(rèn)證:(6)第二輪安全認(rèn)證通過之后,DataBase隨機(jī)產(chǎn)生兩個(gè)正整數(shù)r2和R2,其中r2 e [1,4],R2 e (0,N2)。在這里N2=1000,r2同rl 一樣用于選擇四種加密算法中的一種,根據(jù)r2的值選擇對應(yīng)的加密算法E2,并用其對參數(shù)R2和加密算法E2對應(yīng)的對應(yīng)密鑰序列K2組成的數(shù)據(jù)流(K2,R2)進(jìn)行加密得到E2 (K2,R2),同時(shí)再次使用加密算法E2對標(biāo)簽ID號進(jìn)行加密,得到E2 (K2,ID1)然后將r2以及加密后的結(jié)果E2 (K2,R2)和E2 (K2,IDl)發(fā)送給讀寫器;(7) Reader 收到 DataBase 發(fā)來的 r2、E2 (K2, R2)和 Ε2 (Κ2, IDl)之后,通過參數(shù)r2選擇相應(yīng)的解密算法對數(shù)據(jù)包E2 (K2,R2)進(jìn)行解密得到R2,然后把Rl與R2作為輸入?yún)?shù),使用密鑰生成算法L生成密鑰L (Rl,R2),并將其賦值給Key作為本次通信的動(dòng)態(tài)密鑰;最后使用加密算法E2對Key進(jìn)行加密得到E2 (K2,Key),并將其與r2、RU R2和E2(K2,IDl) 一起發(fā)送給 Tagl。這里,在通過第二輪安全認(rèn)證后,還包括將用于數(shù)據(jù)加密的私有密鑰Key設(shè)為L(Rl,R2)的步驟。三輪安全認(rèn)證全部通過以后,標(biāo)簽就會將其存儲區(qū)中的數(shù)據(jù)發(fā)送給讀寫器,但卻是以密文的形式發(fā)送的,這里生成的私有密鑰Key (也就是所謂的動(dòng)態(tài)密鑰)就是用于為認(rèn)證通過后數(shù)據(jù)傳輸加密的,這里使用的加密算法與認(rèn)證過程中使用的加密算法是不一樣的,由于這一部分不 是本發(fā)明的主要內(nèi)容,在此不再詳細(xì)說明。(8)Tagl 收到 Reader 發(fā)來的 r2、Rl、R2、E2 (K2,Key)和 E2 (K2,IDl)之后,根據(jù)r2選擇對應(yīng)的解密算法分別對數(shù)據(jù)包E2 (K2,Key)和E2 (K2,IDl)進(jìn)行解密得到Key和IDl,緊接著將Key存放在動(dòng)態(tài)密鑰區(qū),并將解密得到的IDl與標(biāo)簽自身的ID號進(jìn)行比對,如果比對結(jié)果不一致則立即終止本次會話,否則將Rl與R2作為輸入?yún)?shù),使用存放在標(biāo)簽中的密鑰生成算法L’生成密鑰L’(Rl,R2),并將其賦值給Key’ ;最后將解密得到Key與Key’進(jìn)行比對,如果二者完全一致則通過第三輪安全認(rèn)證,并發(fā)送Ready命令給Reader,告訴它本次會話認(rèn)證通過,接下來可以發(fā)送數(shù)據(jù),否則,立即終止本次會話。第三輪安全認(rèn)證通過后,Tagl就會發(fā)送相關(guān)命令給Reader,告訴Reader認(rèn)證通過,并允許對Tagl內(nèi)的數(shù)據(jù)進(jìn)行訪問。由于動(dòng)態(tài)密鑰生成算法存放在私有只讀存儲空間,而且讀寫器與標(biāo)簽之間只傳送入口參數(shù)Rl和R2,動(dòng)態(tài)密鑰的生成和比較都在芯片和讀寫器內(nèi)部完成,外部無法訪問也無權(quán)修改,因而具有很高的保密性。非法標(biāo)簽和讀寫裝置將不能夠根據(jù)兩個(gè)參數(shù)計(jì)算出正確的動(dòng)態(tài)密鑰Key,從而無法通過第三輪安全認(rèn)證,所以本發(fā)明的方法可以有效抵制多種安全攻擊。下面對在上述方法實(shí)現(xiàn)的過程中出現(xiàn)的一些變量、名詞和符號做以下解釋和說明:Reader:RFID 讀寫器。Tagl:一個(gè) RFID 標(biāo)簽。DataBase:與RFID讀寫器相連接的后臺數(shù)據(jù)庫服務(wù)器。IDl:RFID標(biāo)簽Tagl的唯一標(biāo)識序列號。
rl, r2:用于選擇加密算法的參數(shù)。Rl, R2:用于生成動(dòng)態(tài)密鑰Key的參數(shù)。E1,E2:E1與E2表示參數(shù)rl與r2分別對應(yīng)的加密算法,都屬于TEA、DES、IDEA和HIGHT四種算法中的一種。El (Kl,Rl):指使用加密算法El以及加密算法El對應(yīng)的密鑰序列Kl對參數(shù)Rl進(jìn)行加密,其他的類似,就不再逐一說明。E2 (K2,Key):指使用加密算法E2以及加密算法E2對應(yīng)的密鑰序列K2對動(dòng)態(tài)密鑰Key進(jìn)行加密,其他的類似,就不再逐一說明。Key, Key’:Key和Key’分別表示在Reader和Tagl中使用密鑰生成算法生成的動(dòng)態(tài)密鑰密鑰。L,L’:L和L’分別表示在Reader和Tagl中存儲的密鑰生成算法。L (R1,R2):指在Reader中以Rl和R2作為輸入,使用密鑰生成算法得到的動(dòng)態(tài)密鑰。L’(Rl,R2):指在Tag中以Rl和R2作為輸入,使用密鑰生成算法得到的動(dòng)態(tài)密鑰。Ready:安全認(rèn)證通過后Tagl發(fā)給Reader的指示命令,用于告訴Reader本次安全認(rèn)證通過,接下來可以安全地傳輸數(shù)據(jù)。私有存儲空間:有特定結(jié)構(gòu)和訪問權(quán)限的存儲區(qū)域,多用于保存一些重要數(shù)據(jù),防止非法被竊取和篡改,通常應(yīng)用于標(biāo)簽或讀寫器中,在標(biāo)簽中一般需要讀寫器靠的很近以提供足夠高的能量以開啟訪問開關(guān),訪問開關(guān)打開以后還需要輸入正確的訪問口令才可以成功訪問,該技術(shù)結(jié)合軟件和硬件的特性來實(shí)現(xiàn)高強(qiáng)度的保密性。在本實(shí)施例中,Reader可以是具有RFID讀寫功能的移動(dòng)終端,Reader可以通過WIFi網(wǎng)絡(luò)或者GSM無線網(wǎng)絡(luò)與后臺數(shù)據(jù)庫通信。本發(fā)明的方法主要具有如下幾個(gè)優(yōu)點(diǎn):1.讀寫器、標(biāo)簽以及后臺數(shù)據(jù)庫中都分別存放著四種輕量級數(shù)據(jù)加密算法,分別是TEA、DES、IDEA和HIGHT,每一種加密算法都有自己獨(dú)特的密鑰,根據(jù)參數(shù)輸入來決定選用哪一種加密算法。每一次安全認(rèn)證時(shí),rl與r2都是隨機(jī)產(chǎn)生的,因而對應(yīng)的加解密算法的選取也是不可預(yù)測的,相鄰兩次很難出現(xiàn)一樣的情況,這樣就可以有效抵御重放攻擊;讀寫器和標(biāo)簽中的加密算法以及對應(yīng)的密鑰都存放在私有只讀存儲空間,外部無權(quán)訪問也不能夠修改,這樣就在一定程度上增加了系統(tǒng)的安全性。2.本發(fā)明還采用雙密鑰三重認(rèn)證機(jī)制,分別采用公用密鑰、隨機(jī)私用密鑰以及標(biāo)簽的ID來進(jìn)行安全認(rèn)證,只要有一次認(rèn)證不通過就終止本次通信,這樣就增大了外部攻擊實(shí)施的難度,增強(qiáng)了系統(tǒng)的安全性能。3.本方法引入存儲空間加密等級劃分思想,對一些重要的算法存放在私有只讀存儲空間中,只有芯片內(nèi)部有權(quán)訪問,而且無權(quán)修改。對一些比較重要的數(shù)據(jù)存放在私有存儲空間內(nèi),這些數(shù)據(jù)只有近距離通信才能修改,而且外部必須提供正確的訪問口令才能被修改,這樣就充分利用軟件和硬件的特性來提高系統(tǒng)安全性能,極大地降低了重要數(shù)據(jù)被竊取和篡改的風(fēng)險(xiǎn)。4.在本發(fā)明的實(shí)施過程中,標(biāo)簽只需要存儲四種輕量級安全算法作為算法庫,每一次加密或者解密的時(shí)候都是從中隨機(jī)選取一種,在同一時(shí)間標(biāo)簽中執(zhí)行的任然是硬件上容易實(shí)現(xiàn)的簡單安全算法,這樣對標(biāo)簽的硬件配置并沒有提出很高的要求,從而使標(biāo)簽成本仍然可以保持在比較低的水平,使得在低配置硬件平臺上實(shí)現(xiàn)高度的保密性和安全性成為了可能。5.本方法采用的四種加密算法密文長度均為64位,這就為認(rèn)證過程中數(shù)據(jù)格式的統(tǒng)一性提供了保證;而且算法的實(shí)現(xiàn)都涉及到多輪移位和替換,因此在硬件方面可以共用部分模塊,用同一器件實(shí)現(xiàn),節(jié)省了空間和成本,滿足Tag的硬件需求;此外,四種加密算法TEA、DES、IDEA和HIGHT都屬于輕量級加密算法,都具有顯著的快速運(yùn)行性,所以盡管是采用了四種算法混合,但加解密時(shí)的速度足以滿足RFID系統(tǒng)快速運(yùn)行的要求,因此本方法不僅具有很強(qiáng)的安全性而且還具有很高的執(zhí)行效率。6.標(biāo)簽?zāi)涿圆⒛艿钟?在Reader向DataBase發(fā)出以安全算法El加密的標(biāo)簽序列號ID1以后,DataBase不是沿用安全算法E1,而是重新選取安全算法E2和隨機(jī)數(shù)R2進(jìn)行加密,Reader收到DataBase發(fā)來的r2和E2 (K2,R2)之后也是采用新的安全算法對生成的動(dòng)態(tài)密鑰加密,并將加密之后的結(jié)果發(fā)給Tagl,這樣就使得每一次會話都充滿隨機(jī)性。因此,即使攻擊方能夠成功的對Tagl進(jìn)行探測,其作用也僅限于某一輪會話,無法從中解出ID號和密鑰值,也無法對下一輪會話的內(nèi)容進(jìn)行判斷和加密和解密,因此能夠有效的保證標(biāo)簽的匿名性,攻擊方無法獲知標(biāo)簽的ID號,也就無法對其進(jìn)行追蹤。7.數(shù)據(jù)的可靠性和認(rèn)證的安全性:Tagl向Reader發(fā)出的加密序列,是依靠存儲在該Tag中唯一的密鑰和本身獨(dú)一無二的ID號,依靠多種可靠的加密算法計(jì)算出來的,即使攻擊方在信息傳輸過程中將其捕獲,也無法從含有兩個(gè)不確定的序列中找出正確的密鑰和ID號,也無法判斷出當(dāng)時(shí)交互所采用的具體算法,只有含有所有有效信息的合法DataBase才能在收到Tagl發(fā)來的加密序列后,使用與Tagl —致的安全算法進(jìn)行解密來得到正確的ID號,并且通過隨機(jī)選取另一種安全算法E2及其對應(yīng)的密鑰K2進(jìn)行加密回復(fù),從而保證了數(shù)據(jù)的可靠性和認(rèn)證的安全性。8.前向安全性并能有效抵御重放攻擊:在本方法中,假設(shè)攻擊方已經(jīng)捕獲了Tagl,并成功獲知其ID號以及安全算法El和E2及其對應(yīng)的密鑰Kl和K2,但每一次會話還涉及隨機(jī)數(shù)Rl、R2以及根據(jù)Rl和R2生成的動(dòng)態(tài)密鑰Key,攻擊方并不能準(zhǔn)確獲知過去所進(jìn)行的會話中所采用的隨機(jī)數(shù),也就無法對其進(jìn)行重現(xiàn),也無法利用其進(jìn)行有效的攻擊,從而保證了 RFID系統(tǒng)的前向安全性和較好的抵御了重放攻擊。本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的原理,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種RFID安全認(rèn)證方法,包括如下步驟: 51.讀寫器隨機(jī)產(chǎn)生兩個(gè)正整數(shù)rl與R1,并將其存儲在私有存儲空間,其中,rle [I,Μ],Rl e (O,NI), M為待選取的加密算法的數(shù)目,所述的加密算法與M個(gè)數(shù)字一一對應(yīng),NI為預(yù)先設(shè)定的值,根據(jù)rl特定的取值選擇對應(yīng)的加密算法El對Rl和加密算法El對應(yīng)的密鑰序列Kl組成的數(shù)據(jù)流(Kl,Rl)進(jìn)行加密,加密后的結(jié)果為El (Kl,R1),同時(shí)讀寫器不停對外發(fā)出讀寫請求命令,讀寫器檢測到標(biāo)簽以后將rl,Rl以及對加密后的結(jié)果El (K1,Rl)發(fā)送給檢測到的標(biāo)簽; 52.被檢測到的標(biāo)簽收到讀寫器發(fā)來的rl、Rl以及El(K1,R1)之后,將Rl與El (K1,Rl)分別存儲在私有存儲空間,根據(jù)rl選取存儲在標(biāo)簽加密算法庫中相對應(yīng)的加密算法E1’,并使用加密算法ΕΓ對Rl和與算法ΕΓ對應(yīng)的密鑰序列ΚΓ組成的數(shù)據(jù)流(ΚΓ,Rl)進(jìn)行加密,加密后的結(jié)果為El’ (K1,,R1),然后將其與El (Kl,Rl)進(jìn)行比較,如果二者完全一致,通過第一輪安全認(rèn)證,否則終止本次會話; 53.第一輪安全認(rèn)證通過之后,標(biāo)簽將其ID號IDl使用加密算法El進(jìn)行加密,并將加密之后的結(jié)果El (Kl,IDl)發(fā)送給讀寫器; 54.讀寫器收到標(biāo)簽發(fā)來的El(KLIDl)之后,將其與rl 一起發(fā)送給后臺數(shù)據(jù)庫服務(wù)器; 55.后臺數(shù)據(jù)庫服務(wù)器收到讀寫器發(fā)來的rl和El(Kl,IDl)之后,根據(jù)參數(shù)rl選擇對應(yīng)的解密算法對數(shù)據(jù)包El (Kl,IDl)進(jìn)行解密,并將解密得到的ID號在后臺數(shù)據(jù)庫中進(jìn)行驗(yàn)證,如果找到與其完全匹配的ID號則通過第二輪安全認(rèn)證,否則終止本次會話; 56.第二輪安全認(rèn)證通過之后,后臺數(shù)據(jù)庫服務(wù)器隨機(jī)產(chǎn)生兩個(gè)正整數(shù)r2和R2,其中r2 e [I, M], R2 e (O,N2), N2為預(yù)先設(shè)定的值,根據(jù)r2的值選擇對應(yīng)的加密算法E2,并用其對參數(shù)R2和加密算法E2對應(yīng)的密鑰序列K2組成的數(shù)據(jù)流(K2,R2)進(jìn)行加密得到E2(K2,R2),同時(shí)再次使用加密算法E2對標(biāo)簽ID號進(jìn)行加密,得到E2 (K2,IDl)然后將r2以及加密后的結(jié)果E2 (K2,R2)和E2 (K2,IDl)發(fā)送給讀寫器; 57.讀寫器收到后臺數(shù)據(jù)庫服務(wù)器發(fā)來的r2和E2(K2,R2^PE2 (K2,IDl)之后,通過參數(shù)r2選擇相應(yīng)的解密算法對數(shù)據(jù)包E2 (K2,R2)進(jìn)行解密得到R2,然后將Rl與R2作為輸入?yún)?shù),使用存儲在讀寫器中的密鑰生成算法L生成密鑰L (Rl,R2),并將其賦值給Key作為本次通信的動(dòng)態(tài)密鑰,最后使用加密算法E2對Key進(jìn)行加密得到E2 (K2,Key),并將其與r2、Rl、R2和E2 (K2,IDl) —起發(fā)送給標(biāo)簽; 58.標(biāo)簽收到讀寫器發(fā)來的r2、Rl、R2、E2(K2,Key)和E2 (K2,IDl)之后,通過r2選擇對應(yīng)的解密算法分別對數(shù)據(jù)包E2 (K2,Key)和E2 (K2,IDl)進(jìn)行解密得到Key和IDl,緊接著將Key存放在動(dòng)態(tài)密鑰區(qū),并將解密得到的IDl與標(biāo)簽自身的ID號進(jìn)行比對,如果比對結(jié)果不一致則立即終止本次會話,否則將Rl與R2作為輸入?yún)?shù),使用存儲在標(biāo)簽中的密鑰生成算法L’生成密鑰L’(Rl,R2),并將其賦值給Key’ ;最后將解密得到Key與Key’進(jìn)行比對,如果Key與Key’完全一致則通過第三輪安全認(rèn)證,否則終止本次會話。
2.根據(jù)權(quán)利要求1所述的RFID安全認(rèn)證方法,其特征在于,步驟SI所述的M=4。
3.根據(jù)權(quán)利要求2所述的RFID安全認(rèn)證方法, 其特征在于,步驟SI所述的加密算法具體為:TEA、DES、IDEA 和 HIGHT。
4.根據(jù)權(quán)利要求1所述的RFID安全認(rèn)證方法,其特征在于,步驟SI所述的Nl=1000。
5.根據(jù)權(quán)利要求1或4所述的RFID安全認(rèn)證方法,其特征在于,步驟S6所述的N2=1000。
6.根據(jù)權(quán)利要求5所述的RFID安全認(rèn)證方法,其特征在于,讀寫器通過WiFi網(wǎng)絡(luò)或者GSM無線網(wǎng)絡(luò)與后臺 數(shù)據(jù)庫服務(wù)器通信。
全文摘要
本發(fā)明公開了一種RFID安全認(rèn)證方法,本發(fā)明的方法引入動(dòng)態(tài)選取加密算法的思想,即采用幾種具有一定安全性且硬件上容易實(shí)現(xiàn)的加密算法作為算法庫,每次通過隨機(jī)函數(shù)選取其中一種進(jìn)行加密和解密;同時(shí)采用雙密鑰三重認(rèn)證的機(jī)制,具有較高的安全性能,既能保證硬件上的可實(shí)現(xiàn)性,又能通過算法的多樣性從而極大地提高系統(tǒng)的安全性。本發(fā)明的方法的實(shí)現(xiàn)不需要配置很高的硬件資源作支撐,但卻可以提供較高的安全性,解決了低成本標(biāo)簽上不能運(yùn)行高安全性加密算法的問題。
文檔編號G06K17/00GK103218633SQ20131007349
公開日2013年7月24日 申請日期2013年3月8日 優(yōu)先權(quán)日2013年3月8日
發(fā)明者文光俊, 馬玉林, 李建 申請人:電子科技大學(xué), 河源市特靈通通訊有限公司