一種改進(jìn)的RFID物聯(lián)網(wǎng)系統(tǒng)加密技術(shù)

自從1946年人類發(fā)明計(jì)算機(jī)以后,數(shù)字技術(shù)的迅猛發(fā)展使人們逐漸脫離了原子的束縛,人們得以使用比特流進(jìn)行創(chuàng)造財(cái)富。在這個(gè)數(shù)字時(shí)代,比特超越了原子,成為世界的主角。今天,物聯(lián)網(wǎng)技術(shù)和發(fā)展,原子又實(shí)現(xiàn)了與比特的緊密連接,成為了一個(gè)用比特武裝起來的原子。

在物聯(lián)網(wǎng)中,RFID技術(shù)是最關(guān)鍵也是最基礎(chǔ)的技術(shù)。目前,國(guó)際RFID編碼體系存在3個(gè)標(biāo)準(zhǔn)體系:ISO標(biāo)準(zhǔn)體系,EPCglobal標(biāo)準(zhǔn)體系和UID標(biāo)準(zhǔn)體系。

一、Rpcglobal與ONS

目前應(yīng)用最廣泛的是EPCGlobal標(biāo)準(zhǔn)體系。EPCglobal是由UCC和EAN聯(lián)合發(fā)起并成立的非盈利性機(jī)構(gòu)。EPC系統(tǒng)最終目標(biāo)是為每一單品建立全球的、開放的標(biāo)識(shí)標(biāo)準(zhǔn)。,它由全球產(chǎn)品電子代碼( EPC)的編碼體系(EPC代碼)、射頻識(shí)別系統(tǒng)(EPC標(biāo)簽,讀寫器)及信息網(wǎng)絡(luò)系統(tǒng)(EPC中間件,ONS,EPCIS)3部分6個(gè)方面組成。

EPCglobal作為一個(gè)開放的全球性網(wǎng)絡(luò),要具有能夠追蹤物品的功能。因?yàn)镋PC標(biāo)簽的容量相對(duì)較小,只能存儲(chǔ)EPC編碼,而與商品相關(guān)的其他詳細(xì)信息只能存儲(chǔ)在服務(wù)器上。因此除了將EPC代碼存儲(chǔ)在標(biāo)簽中外,還要能將EPC編碼與對(duì)應(yīng)商品信息進(jìn)行匹配的方法,這就需要對(duì)象名解析服務(wù)(ONS)實(shí)現(xiàn)。ONS用來為Savant系統(tǒng)定位某EPC對(duì)應(yīng)的存儲(chǔ)本產(chǎn)品信息的服務(wù)器。從結(jié)構(gòu)與流程上來講,ONS與互聯(lián)網(wǎng)的DNS系統(tǒng)類似。ONS服務(wù)器是ONS系統(tǒng)的核心,用于響應(yīng)本地軟件的ONS查詢,查詢成功,則返回此EPC碼對(duì)應(yīng)的URI如圖1所示。

一種改進(jìn)的RFID物聯(lián)網(wǎng)系統(tǒng)加密技術(shù)

二、一種安全的RFID標(biāo)簽信息傳輸方法

RFID技術(shù)的信息安全是RFID系統(tǒng)得到廣泛應(yīng)用的前提,也是基于RFID技術(shù)的物聯(lián)網(wǎng)的發(fā)展根本。為了保證電子標(biāo)簽的密鑰傳輸、分發(fā)及讀寫器和RFID標(biāo)簽之間通信的安全,必須采用加密技術(shù),目前RFID系統(tǒng)中常用的加密算法有DES(對(duì)稱加密)、RSA(非對(duì)稱加密)等,但由于受到標(biāo)簽內(nèi)芯片尺寸的限制,電子標(biāo)簽的計(jì)算能力還不強(qiáng),這就導(dǎo)致了在電子標(biāo)簽中實(shí)現(xiàn)RSA加密算法時(shí)加密解密速度慢、密鑰生成速度慢等缺點(diǎn),因此在大部分的對(duì)系統(tǒng)安全性要求不太高的RFID應(yīng)用系統(tǒng)中一般采用DES加密算法。

本文提出了一種基于變種DES的RFID標(biāo)簽加密信息傳輸?shù)姆椒?,在RFID標(biāo)簽和讀寫器的通信過程中,經(jīng)過三重相互認(rèn)證體制(ISO/IEC DIS9798-2)確認(rèn)標(biāo)簽與讀寫器匹配后,利用一種變種DES加密的方法,對(duì)傳輸過程中的明文進(jìn)行加密,以保證數(shù)據(jù)的傳輸安全。即使數(shù)據(jù)被竊取,由于攻擊者不知道密鑰和加密規(guī)則,這些數(shù)據(jù)對(duì)攻擊者也毫無用處。

1、三重相互認(rèn)證體制

三重相互認(rèn)證方法可以保證相互通信的RFID標(biāo)簽和讀寫器是可信的,過程如下:

①際簽進(jìn)入讀寫器的范圍后,讀寫器發(fā)出查詢ID和口令;

②f示簽中產(chǎn)生隨機(jī)數(shù)A1,發(fā)送給讀寫器;

③讀寫器接收到A1卮產(chǎn)生隨機(jī)數(shù)B1,并使用相同的密鑰k和相同的密鑰生成算法Ek,產(chǎn)生一個(gè)加密過的的數(shù)據(jù)令牌1,令牌中包括隨機(jī)數(shù)A1,B1和附加的控制數(shù)據(jù)(CD),并發(fā)送給RFID標(biāo)簽:Tokenl=Ek( A1,B1,CD,明文1);

④RFID標(biāo)簽收到標(biāo)簽后,進(jìn)行解密,從中取得剛才發(fā)送的隨機(jī)數(shù)A1*,并與自身生成的A1進(jìn)行比較,如果一致說明讀寫器與自身RFID標(biāo)簽是一致的,屬于同一系統(tǒng)。然后產(chǎn)生另一個(gè)隨機(jī)數(shù)A2,使用相同的密鑰K和相同的密鑰算法生成加密過的數(shù)據(jù)令牌2,發(fā)送給讀寫器:Tok en2=E k(A2,B1,明文2);

⑤讀寫器收到令牌2后,使用與RFID相同的方法進(jìn)行身份識(shí)別。檢查接收到的B1*與剛才發(fā)送的B1,確認(rèn)一致后,說明讀寫器與標(biāo)簽間的共同密鑰K是相同的,所以,RFID標(biāo)簽與讀寫器是共同的系統(tǒng)可以開始進(jìn)一步的通信,如圖2所示。

一種改進(jìn)的RFID物聯(lián)網(wǎng)系統(tǒng)加密技術(shù)

這種三重相互認(rèn)證的優(yōu)勢(shì)在于:

①共同的密鑰K不經(jīng)空間傳輸,而只傳輸產(chǎn)生的隨機(jī)數(shù);

②認(rèn)證傳輸?shù)臄?shù)據(jù)由兩個(gè)隨機(jī)數(shù)加密,密鑰在通信中隨機(jī)變化,可以保護(hù)傳輸?shù)臄?shù)據(jù);

③可以使用任意的自定義算法來進(jìn)行令牌加密,保證安全性;

④從產(chǎn)生的隨機(jī)數(shù)可以算出隨機(jī)的密鑰(會(huì)話密鑰),以便加密保護(hù)后繼傳輸?shù)臄?shù)據(jù)。

三重相互認(rèn)證的目的在于確認(rèn)通信雙方的互信,保證數(shù)據(jù)的傳輸不會(huì)被偽造的一方進(jìn)行接收,下面的方法是用來保證可信雙方數(shù)據(jù)傳輸過程中即使被第三方竊取,也很難得到有效的數(shù)據(jù)。

在以上認(rèn)證過程中,Ek()為加密函數(shù),目前來說最適合用于RFID標(biāo)簽電路中的就是DES算法,相對(duì)其他加密方法,比如RSA來說,DES加密方法的加解密速度快,安全性較好。

2、基于變種DES的數(shù)據(jù)加密方法

在讀寫器與RFID標(biāo)簽之間經(jīng)過相互確認(rèn)過,就可以進(jìn)行數(shù)據(jù)的傳輸了,為了保證數(shù)據(jù)即使被竊取,也只是加密過的數(shù)據(jù),不會(huì)造成信息的泄露。必須在數(shù)據(jù)傳輸前進(jìn)行匹配強(qiáng)度的加密一在本文中,針對(duì)DES這種對(duì)稱加密方法的缺點(diǎn),采用了變種DES的加密方法,提出了一個(gè)有效的規(guī)則,來提高加密的安全性,流程如下:

已有:EPC數(shù)據(jù)data,約定好的對(duì)稱密鑰Mkey,接收端也保存相同的一份密鑰,這些要由密鑰管理機(jī)制來保證密鑰的安全。

發(fā)送端(RFID TAG):

①利用隨機(jī)函數(shù),產(chǎn)生一個(gè)64位(8字節(jié))的隨機(jī)密鑰( Rkey),對(duì)Rkey利用Mkey進(jìn)行DES加密。產(chǎn)生密文DATAI;

②利用隨機(jī)密鑰Rkey,對(duì)數(shù)據(jù)data按自義加密規(guī)則進(jìn)行加密。產(chǎn)生DATA2;

③拼裝DATAI和DATA2產(chǎn)生等傳輸密文DATA。

接收端(RFID Reader):

①將接收到的密文DATA按規(guī)則拆分為兩個(gè)部分,DATA1和DATA2;

②在數(shù)據(jù)庫中查詢此標(biāo)簽存儲(chǔ)的密鑰MKey,并利用MKey對(duì)DATA1進(jìn)行DES解密,得到發(fā)送端產(chǎn)生的隨機(jī)密鑰,也就是解密密文所需的密鑰Rkey;

③利用Rkey對(duì)DATA2進(jìn)行按自義加密規(guī)則解密,得到明文data。

在接收端中,DES的解密算法與加密算法共用相同的算法過程,兩者不同之處僅在于解密時(shí)子密鑰M key的使用順序與加密時(shí)相反。如果加密的子密鑰為K1,K2,...,K16,那么解密時(shí)子密鑰的使用順序應(yīng)該為K16,K15,…,K1,即:使用DES解密算法進(jìn)行解密時(shí),將以64位密文作為輸入,第一輪迭代運(yùn)算使用子密鑰K16,第二輪迭代運(yùn)算使用子密鑰K15…,第十六輪迭代運(yùn)算使用子密鑰K1,其他的運(yùn)算過程與加密算法相同,這樣,最后輸出的便是64位明文。

3、利用iPhone平臺(tái)實(shí)現(xiàn)的模擬情況

本文利用智能手機(jī)iPhone 3GS與Windows系統(tǒng)電腦作為實(shí)驗(yàn)平臺(tái),來模擬RFID標(biāo)簽與讀寫器的工作流程。其中,iPhone3GS模擬RFID標(biāo)簽,作為客戶端,程序使用Objective-C與C/C++混合編寫;利用Windows平臺(tái)模擬讀寫器,作為服務(wù)器端,程序使用C#語言編寫,實(shí)現(xiàn)了上述認(rèn)證過程的模擬,其中的RFID客戶端的關(guān)鍵代碼如下:

(1)生成隨機(jī)密鑰(Rkey),并進(jìn)行DES加密,其中encrypt()函數(shù)是標(biāo)準(zhǔn)的DES加密過程,代碼略過。

//生成隨機(jī)key( Rkey)

unsigned char Rkey[8]={0};

for( intj=0;j<8;j++)

{

srand( time( nil));

int ranNum= random()%8+ 1;

Rkey[j]=ranNum;

}

//對(duì)隨機(jī)key進(jìn)行加密,encrptK ey為加密過的DA-ta1

NSData*DATAI=encrypt( Mkey, Rkey, 8);

(2)利用Rkey對(duì)明文data進(jìn)行加密,生成DATA2

//用Rkey對(duì)數(shù)據(jù)進(jìn)行加密

int length= len;

unsigned char*byt edata=(unsigned char*)malloc (lengLh);

memset ( bytedata, O, lengt h) ;

unsigned char* copydata = ( unsigned char* ) malloc (length);

memset ( copydata, 0, lengt h) ;

memcpy(copydata, data, length);

for (int n = 0; ri < length; )

{

for(inti= O; i< 8; i+ + , n+ +) { if (n > length)

{

break;

}

*( bytedata + n) = ( unsigned char)((int) *

( copydata+n)“(int) Rkey[i]);

}

}

NSData*DATA2= [[NSData alloc]initWith Byt es: byt edata length:length;

(3)將DATA1與DATA2組合成DATA,并做為結(jié)果返回。

NSM utableData術(shù)DATA=[NSM ut ableData dataW-ithData: DATA l];

[ DATA appendData: DATA 2];

(4)解密過程與加密過程類似,在Windows端使用C#編寫。

至此,此加密解密過程結(jié)束,這個(gè)過程雖然簡(jiǎn)單,但卻可以進(jìn)行自定義的擴(kuò)展,對(duì)EPC編碼的不同長(zhǎng)度也可以很好地適應(yīng),利用不同的規(guī)則,對(duì)數(shù)據(jù)進(jìn)行不同形式的拼裝或拆分。而如果密文傳輸過程被截獲,黑客因?yàn)椴磺宄厥獾囊?guī)則,也很難進(jìn)行破解。這樣,就實(shí)現(xiàn)了通過簡(jiǎn)單的密文拼裝規(guī)則改變,達(dá)到一個(gè)有相當(dāng)強(qiáng)度的加密方法,有較高的性價(jià)比。

再者,DES加密本身具有一定的安全性,因此只要做好密鑰管理分配,并對(duì)密文拼裝自義加密規(guī)則進(jìn)行較好的規(guī)劃,就可以達(dá)到效果。這樣的加密策略,不失為一種簡(jiǎn)單,可行的方案。

小知識(shí)之物聯(lián)網(wǎng)

物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,其英文名稱是:“The Internet of things”。顧名思義,物聯(lián)網(wǎng)就是物物相連的互聯(lián)網(wǎng)。這有兩層意思:其一,物聯(lián)網(wǎng)的核心和基礎(chǔ)仍然是互聯(lián)網(wǎng),是在互聯(lián)網(wǎng)基礎(chǔ)上的延伸和擴(kuò)展的網(wǎng)絡(luò);其二,其用戶端延伸和擴(kuò)展到了任何物品與物品之間,進(jìn)行信息交換和通信。