一種用于物聯(lián)網(wǎng)的rfid安全算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種保證RFID射頻通信中數(shù)據(jù)安全的算法,更具體地,涉及一種用于物聯(lián)網(wǎng)的RFID安全算法。
【背景技術(shù)】
[0002]近年來,RFID——射頻標(biāo)簽,也稱電子標(biāo)簽在物流行業(yè)得到了越來越廣泛的應(yīng)用。最基本的RFID系統(tǒng)由電子標(biāo)簽、閱讀器、天線三部分組成。標(biāo)簽由耦合元件及芯片組成,標(biāo)簽含有內(nèi)置天線,用于和射頻天線間進(jìn)行通信;閱讀器用于讀取或?qū)懭霕?biāo)簽信息;天線則起到在標(biāo)簽和讀取器間傳遞射頻信號作用。有些RFID系統(tǒng)還可通過閱讀器的RS232或RS485接口與外部計算機(上位機主系統(tǒng))連接,進(jìn)行數(shù)據(jù)交換。
[0003]現(xiàn)有技術(shù)中,針對RFID系統(tǒng)數(shù)據(jù)安全的問題,現(xiàn)在已經(jīng)提出各種途徑的解決方法,其中有代表性的方法有以下幾種:物理隔離、停止標(biāo)簽服務(wù)、讀取訪問控制、雙標(biāo)簽聯(lián)合驗證。但它們各有弊端,例如對于物理隔離方法,屏蔽掉標(biāo)簽之后,也同時喪失了 RF特征;對于停止標(biāo)簽服務(wù),因為標(biāo)簽已經(jīng)無效,相應(yīng)的信息系統(tǒng)將不能再識別該數(shù)據(jù),等等。因此,有必要尋找一種能夠平衡上述弊端的方法,使RFID能夠安全地發(fā)揮它應(yīng)有的重要作用。
【發(fā)明內(nèi)容】
[0004]為了解決RFID存在的安全隱患問題,本發(fā)明提供了一種RFID安全系統(tǒng),該安全系統(tǒng)包括:設(shè)置具有法拉第杯和記憶體開關(guān)鍵的標(biāo)簽記憶體密碼的RFID芯片,設(shè)置具有探測器的閱讀器,其特征在于,所述RFID芯片與所述閱讀器之間設(shè)置有如下改進(jìn)的非對稱加密算法:
[0005](I)密鑰對的產(chǎn)生:根據(jù)用戶輸入的P和q的范圍隨機產(chǎn)生兩個大素數(shù),P和q,計算:n = p*q,然后隨機選擇加密密鑰e,并根據(jù)e得出解密密鑰d,要求e和(p-l)*(q_l)互質(zhì),e*d = I (mod(p-l)*(q_l)),其中數(shù)e和η是公開密鑰,數(shù)d和η是私有密鑰;
[0006](2)加密和解密:對明文m進(jìn)行加密時,首先把m轉(zhuǎn)換為字節(jié),該字節(jié)按照平臺缺省的字符編碼方式,得到對應(yīng)的數(shù)字形式num,然后對num進(jìn)行加密,對應(yīng)的密文是:
[0007]c = num'e (modn);解密時作如下運算:mi = c~d (modn),再把mi轉(zhuǎn)化為對應(yīng)的字符形式即可得到明文。
[0008](3)電子標(biāo)簽讀寫器向電子標(biāo)簽發(fā)送Query認(rèn)證請求;
[0009](4)電子標(biāo)簽生成一個隨機數(shù)R,計算H(IDk Il R),其中IDk為電子標(biāo)簽的標(biāo)識。電子標(biāo)簽將(R,H(IDk Il R))發(fā)送給電子標(biāo)簽讀寫器;
[0010](5)電子標(biāo)簽讀寫器向后端數(shù)據(jù)庫提出獲得所有電子標(biāo)簽標(biāo)識的請求;
[0011](6)后端數(shù)據(jù)庫將自己數(shù)據(jù)庫中的所有電子標(biāo)簽標(biāo)識(IDl,ID2,IDn)發(fā)送給電子標(biāo)簽讀與器;
[0012](7)電子標(biāo)簽讀寫器檢查是否有某個IDj (IFjFn),使得H (IDj Il R) = (IDk Il R)成立;如果有,則認(rèn)證通過,并將IDj發(fā)送給電子標(biāo)簽;
[0013](8)電子標(biāo)簽驗證IDj與IDk是否相同,如相同,則認(rèn)證通過。
[0014]所述RFID安全系統(tǒng)是經(jīng)過有源相控陣干擾作用進(jìn)行安全保護(hù)的。
[0015]所述加密和解密的過程使用的m為素數(shù)。
[0016]為了解決RFID存在的安全隱患問題,本發(fā)明提供了一種用于物聯(lián)網(wǎng)的RFID安全算法,該算法步驟如下:
[0017]⑴初始置換
[0018]其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、RO兩部分,每部分各長32位,其置換規(guī)則為將輸入的第58位換到第一位,第50位換到第2位……依此類推,最后一位是原來的第7位;L0、RO則是換位輸出后的兩部分,LO是輸出的左32位,RO是右32位,例:設(shè)置換前的輸入值為D1D2D3……D64,則經(jīng)過初始置換后的結(jié)果為:L0 =D58D50......D8 ;R0 = D57D49......D7 ;
[0019]⑵逆置換
[0020]經(jīng)過16次迭代運算后,得到L16、R16,將此作為輸入,進(jìn)行逆置換,逆置換正好是初始置換的逆運算,由此即得到密文輸出;
[0021](3)電子標(biāo)簽讀寫器向電子標(biāo)簽發(fā)送Query認(rèn)證請求;
[0022](4)電子標(biāo)簽生成一個隨機數(shù)R,計算H(IDk Il R),其中IDk為電子標(biāo)簽的標(biāo)識。電子標(biāo)簽將(R,H(IDk Il R))發(fā)送給電子標(biāo)簽讀寫器;
[0023](5)電子標(biāo)簽讀寫器向后端數(shù)據(jù)庫提出獲得所有電子標(biāo)簽標(biāo)識的請求;
[0024](6)后端數(shù)據(jù)庫將自己數(shù)據(jù)庫中的所有電子標(biāo)簽標(biāo)識(ID1,ID2,IDn)發(fā)送給電子標(biāo)簽讀與器;
[0025](7)電子標(biāo)簽讀寫器檢查是否有某個IDj (IFjFn),使得H (IDj Il R) = (IDk Il R)成立;如果有,則認(rèn)證通過,并將IDj發(fā)送給電子標(biāo)簽;
[0026](8)電子標(biāo)簽驗證IDj與IDk是否相同,如相同,則認(rèn)證通過。
[0027]通過本發(fā)明的方法,大大提高了電子標(biāo)簽的安全性。
【附圖說明】
[0028]圖1:具有記憶體開關(guān)鍵和法拉第杯的標(biāo)簽記憶體的RFID芯片示意圖。
【具體實施方式】
[0029]—種RFID安全系統(tǒng),該安全系統(tǒng)包括:設(shè)置具有法拉第杯和記憶體開關(guān)鍵的標(biāo)簽記憶體密碼的RFID芯片,設(shè)置具有探測器的閱讀器,其特征在于,所述RFID芯片與所述閱讀器之間設(shè)置有如下改進(jìn)的非對稱加密算法:
[0030](I)密鑰對的產(chǎn)生:根據(jù)用戶輸入的P和q的范圍隨機產(chǎn)生兩個大素數(shù),P和q,計算:n = p*q,然后隨機選擇加密密鑰e,并根據(jù)e得出解密密鑰d,要求e和(p-l)*(q_l)互質(zhì),e*d = I (mod(p-l)*(q_l)),其中數(shù)e和η是公開密鑰,數(shù)d和η是私有密鑰;
[0031](2)加密和解密:對明文m進(jìn)行加密時,首先把m轉(zhuǎn)換為字節(jié),該字節(jié)按照平臺缺省的字符編碼方式,得到對應(yīng)的數(shù)字形式num,然后對num進(jìn)行加密,對應(yīng)的密文是:
[0032]c = num'e (modn);解密時作如下運算:mi = c~d (modn),再把mi轉(zhuǎn)化為對應(yīng)的字符形式即可得到明文。
[0033](3)電子標(biāo)簽讀寫器向電子標(biāo)簽發(fā)送Query認(rèn)證請求;
[0034](4)電子標(biāo)簽生成一個隨機數(shù)R,計算H(IDk Il R),其中IDk為電子標(biāo)簽的標(biāo)識.電子標(biāo)簽將(R,H(IDk Il R))發(fā)送給電子標(biāo)簽讀寫器;
[0035](5)電子標(biāo)簽讀寫器向后端數(shù)據(jù)庫提出獲得所有電子標(biāo)簽標(biāo)識的請求;
[0036](6)后端數(shù)據(jù)庫將自己數(shù)據(jù)庫中的所有電子標(biāo)簽標(biāo)識(ID1,ID2,IDn)發(fā)送給電子標(biāo)簽讀與器;
[0037](7)電子標(biāo)簽讀寫器檢查是否有某個IDj (IFjFn),使得H (IDj Il R) = (IDk Il R)成立;如果有,則認(rèn)證通過,并將IDj發(fā)送給電子標(biāo)簽;
[0038](8)電子標(biāo)簽驗證IDj與IDk是否相同,如相同,則認(rèn)證通過。
[0039]其中,所述RFID安全系統(tǒng)是經(jīng)過有源干擾作用進(jìn)行安全保護(hù)的。該有源干擾技術(shù)采用如下方式:RFID所在的貨物附近有天線,該天線有相應(yīng)的控制相位的移相器??刂埔葡嗥鞲淖兲炀€孔徑上的相位分布來實現(xiàn)波束在空間掃描,即電子掃描,簡稱電掃。相位控制可采用相位法、實時法、頻率法和電子饋電開關(guān)法。在一維上排列若干輻射單元即為線陣,在兩維上排列若干輻射單元稱為平面陣。輻射單元也可以排列在曲線上或曲面上.這種天線稱為共形陣天線。共形陣天線可以克服線陣和平面陣掃描角小的缺點,能以一部天線實現(xiàn)全空域電掃。通常的共形陣天線有環(huán)形陣、圓面陣、圓錐面陣、圓柱面陣、半球面陣等。
[0040]所述加密和解密的過程使用的m為素數(shù),其目的是增加整個安全系統(tǒng)被破解的難度,增強系統(tǒng)耦合的緊密度。
[0041 ] 本發(fā)明的RFID安全算法包括:
[0042](I)初始置換
[0043]把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,其置換規(guī)則為將輸入的第58位換到第一位,第50位換到第2位……依此類推,最后一位是原來的第7位;L0、RO則是換位輸出后的兩部分,LO是輸出的左32位,RO是右32位;
[0044](2)逆置換
[0045]經(jīng)過16次迭代運算后,得到L16、R16,將此作為輸入,進(jìn)行逆置換,逆置換是初始置換的逆運算,由此即得到密文輸出;
[0046](3)電子標(biāo)簽讀寫器向電子標(biāo)簽發(fā)送Query認(rèn)證請求;
[0047](4)電子標(biāo)簽生成一個隨機數(shù)R,計算H(IDk Il R),其中IDk為電子標(biāo)簽的標(biāo)識;電子標(biāo)簽將(R,H(IDk Il R))發(fā)送給電子標(biāo)簽讀寫器;
[0048](5)電子標(biāo)簽讀寫器向后端數(shù)據(jù)庫提出獲得所有電子標(biāo)簽標(biāo)識的請求;
[0049](6)后端數(shù)據(jù)庫將自己數(shù)據(jù)庫中的所有電子標(biāo)簽標(biāo)識(ID1,ID2,IDn)發(fā)送給電子標(biāo)簽讀與器;
[0050](7)電子標(biāo)簽讀寫器檢查是否有某個IDj (IFjFn),使得H (IDj Il R) = (IDk Il R)成立;如果有,則認(rèn)證通過,并將IDj發(fā)送給電子標(biāo)簽;
[0051](8)電子標(biāo)簽驗證IDj與IDk是否相同,如相同,則認(rèn)證通過。
[0052]下面,通過一個應(yīng)用的實例進(jìn)一步介紹:
[0053]把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、RO兩部分,每部分各長32位,其置換規(guī)則見下表: