周 揚(yáng) 帆
(湖南財(cái)經(jīng)工業(yè)職業(yè)技術(shù)學(xué)院電子信息系 湖南 衡陽(yáng) 421002)(湖南大學(xué)信息科學(xué)與工程學(xué)院 湖南 長(zhǎng)沙 410082)
射頻識(shí)別是一種能夠不與物體相接觸就可以讀出特定物體中存放的數(shù)據(jù)技術(shù)[1-2]。進(jìn)入新世紀(jì)之后,在大數(shù)據(jù)、物聯(lián)網(wǎng)、云計(jì)算等新技術(shù)的應(yīng)用中,射頻識(shí)別技術(shù)也得到大面積的推廣,用到場(chǎng)合最多的當(dāng)屬RFID系統(tǒng)[3-4]。一個(gè)典型的RFID系統(tǒng)至少含有標(biāo)簽、讀寫(xiě)器、數(shù)據(jù)庫(kù)三者,比如當(dāng)前流行應(yīng)用的校園一卡通系統(tǒng)。一卡通系統(tǒng)中,學(xué)生用到的飯卡可以看成是標(biāo)簽;飯?zhí)弥心軌驅(qū)埧ɡ锏腻X(qián)扣成功的機(jī)器,可以看成是讀寫(xiě)器;學(xué)生飯卡與飯?zhí)弥锌坼X(qián)的機(jī)器之間通信的數(shù)據(jù)存放的機(jī)器,可以看成是數(shù)據(jù)庫(kù)[5-7]。
在上述例子中,學(xué)生的飯卡和飯?zhí)每坼X(qián)的機(jī)器之間通過(guò)無(wú)線方式完成扣錢(qián)過(guò)程,交換數(shù)據(jù)方式并不是絕對(duì)安全;飯?zhí)每坼X(qián)的機(jī)器與存放數(shù)據(jù)的機(jī)器之間通過(guò)光纖等媒介完成傳遞,該過(guò)程中數(shù)據(jù)安全度較為高[8-9]。為能夠保障飯卡與扣錢(qián)機(jī)器之間的安全性,需要用到通信協(xié)議來(lái)解決該問(wèn)題。
文獻(xiàn)[10]利用PRF設(shè)計(jì)一個(gè)協(xié)議,但隨后多人指出該協(xié)議存在缺陷[11],比如無(wú)法抗異步攻擊。文獻(xiàn)[12]提出一個(gè)具備后向安全的協(xié)議,但文獻(xiàn)[13]指出其無(wú)法抗暴力破解攻擊。同時(shí)文獻(xiàn)[13]給出改進(jìn)的協(xié)議,協(xié)議雖未發(fā)現(xiàn)安全缺陷,但協(xié)議基于Rabin算法加密,計(jì)算量較大,無(wú)法推廣。文獻(xiàn)[14]基于哈希函數(shù)給出一個(gè)協(xié)議,因隨機(jī)數(shù)采用明文傳送方式,使得協(xié)議無(wú)法抗暴力破解。文獻(xiàn)[15]的協(xié)議存在無(wú)法抗假冒攻擊的缺陷。文獻(xiàn)[16]同樣利用哈希函數(shù)設(shè)計(jì)一個(gè)協(xié)議,采用明文發(fā)送數(shù)據(jù),攻擊者可窮盡共享密鑰信息,存在不足之處。鑒于文章有限,更多協(xié)議可以參見(jiàn)文獻(xiàn)[17-20]。
在重點(diǎn)分析文獻(xiàn)[16]協(xié)議存在不足之處基礎(chǔ)上,給出改進(jìn)協(xié)議。本文給出的改進(jìn)協(xié)議沿用原協(xié)議設(shè)計(jì)思想,改進(jìn)之處在于:(1) 隨機(jī)數(shù)采用密文形式發(fā)送;(2) 標(biāo)簽的假名也進(jìn)行更新,前后值不同,無(wú)法追蹤標(biāo)簽位置;(3) 用計(jì)算量更低的創(chuàng)新型加密算法Pcs(X,Y)對(duì)信息加密。這樣能夠在降低整體計(jì)算量之時(shí),確保隱私信息安全。
對(duì)文獻(xiàn)[16]設(shè)計(jì)的協(xié)議進(jìn)行分析,協(xié)議存在無(wú)法抗攻擊者暴力破解的缺陷問(wèn)題。對(duì)該協(xié)議的具體分析步驟如下:
該協(xié)議的步驟5)中,讀寫(xiě)器產(chǎn)生的隨機(jī)數(shù)R1,以明文的形式發(fā)送給標(biāo)簽。攻擊者可以通過(guò)竊聽(tīng)方式獲取該隨機(jī)數(shù)R1。
該協(xié)議的步驟6)中,標(biāo)簽計(jì)算的H2消息,在發(fā)送讀寫(xiě)器過(guò)程中,攻擊者還是可以獲取H2。
由協(xié)議可得知:H2=H(num‖R1)。在該計(jì)算公式中:H( )表示哈希加密函數(shù),該加密算法對(duì)外公開(kāi),攻擊者可獲知;R1表示讀寫(xiě)器產(chǎn)生的隨機(jī)數(shù),在步驟5)中,已被攻擊者獲??;H2表示會(huì)話消息,在步驟6)中,也已被攻擊者獲??;num表示通信實(shí)體之間的共享密鑰?;谏鲜?,在H2=H(num‖R1)中,有且僅有num參量的值是攻擊者不知道的,此時(shí)攻擊者可以采用窮舉的方式窮盡num所有可能的取值。當(dāng)攻擊者窮舉出num的值之后,攻擊者就可以假冒成為標(biāo)簽,計(jì)算H2的值,向讀寫(xiě)器發(fā)信息,從而獲取更多的通信實(shí)體的隱私信息。
該協(xié)議中其他消息H3、H5的破解方式與上述H2的破解方式一樣,鑒于篇幅有限,不再闡述。
按照上述分析,文獻(xiàn)[16]設(shè)計(jì)的協(xié)議無(wú)法滿足協(xié)議應(yīng)具備的抗假冒攻擊、暴力破解的安全需求。本文在此協(xié)議基礎(chǔ)之上設(shè)計(jì)一個(gè)改進(jìn)的認(rèn)證協(xié)議,主要從以下角度改進(jìn):(1) 通信實(shí)體產(chǎn)生的隨機(jī)數(shù)均采用密文方式發(fā)送;(2) 摒棄哈希函數(shù)加密,采用新型的置換交叉合成運(yùn)算對(duì)信息加密,降低系統(tǒng)總的計(jì)算量。
置換交叉合成運(yùn)算統(tǒng)一用符號(hào)Pcs(X,Y)(Permutation Cross Synthesis)表示。Pcs(X,Y)的具體定義如下:
(1)X、Y、Z、W均是長(zhǎng)度為L(zhǎng)位的二進(jìn)制序列,且L為偶數(shù)。
(2) 當(dāng)二進(jìn)制序列X的第i位為0時(shí),將二進(jìn)制序列Y的第i位進(jìn)行取反,取反之后的值放置在二進(jìn)制序列Z的第i位;當(dāng)二進(jìn)制序列X的第i位為1時(shí),二進(jìn)制序列Y的第i位不進(jìn)行任何操作,直接取該位的值放置在二進(jìn)制序列Z的第i位。按照上述(1)和(2)可以完成置換操作。
《中國(guó)鉬業(yè)》為中國(guó)科技核心期刊,是中國(guó)鉬行業(yè)唯一的一份權(quán)威性學(xué)術(shù)期刊,也是金堆城鉬業(yè)集團(tuán)有限公司乃至陜西有色的一張名片,期刊影響力不斷提升,是國(guó)家權(quán)威機(jī)構(gòu)對(duì)期刊質(zhì)量和學(xué)術(shù)水平的充分認(rèn)可,也是金堆城鉬業(yè)集團(tuán)有限公司科研實(shí)力、管理能力和社會(huì)影響力的集中體現(xiàn)。
(3) 分別求出二進(jìn)制序列X、Y的漢明重量、漢明重量差值。當(dāng)二進(jìn)制序列X的漢明重量大于或等于二進(jìn)制序列Y的漢明重量時(shí),取二進(jìn)制序列Y、Z在上述漢明重量差值的前提下進(jìn)行交叉合成操作;反之,取二進(jìn)制序列X、Z在上述漢明重量差值的前提下進(jìn)行交叉合成操作。
(4) 取二進(jìn)制序列Y的漢明重量差值位,放在二進(jìn)制序列W的右邊;取二進(jìn)制序列Z的后漢明重量差值位,放在二進(jìn)制序列W的左邊。循環(huán)進(jìn)行上述操作,即可得到完整的二進(jìn)制序列W,W即是Pcs(X,Y)的運(yùn)算結(jié)果。
HW(X)表示二進(jìn)制序列X的漢明重量;HW(Y)表示二進(jìn)制序列Y的漢明重量;HW(X-Y)表示二進(jìn)制序列X的漢明重量與二進(jìn)制序列Y的漢明重量差值的絕對(duì)值,即HW(X-Y)=|HW(X)-HW(Y)|。
為能夠更清楚地描述Pcs(X,Y)的過(guò)程,文中選擇L=12位,X=0110 1100 0111,Y=1011 0001 1000為例子進(jìn)行講解。根據(jù)上述定義,得出:HW(X)=7,HW(Y)=5,HW(X-Y)=2,Z=0010 0010 0000,W=Pcs(X,Y)=1010 1000 0010,如圖1所示,此時(shí)滿足二進(jìn)制序列X的漢明重量大于或等于二進(jìn)制序列Y的漢明重量,即HW(X)≥HW(Y)。
再選擇L=12位,X=1011 0001 0100,Y=0110 1100 0111為例子進(jìn)行講解。根據(jù)上述定義,得出:HW(X)=5,HW(Y)=7,Hw(X-Y)=2,Z=0010 0010 1100,W=Pcs(X,Y)=1010 1000 0001,如圖2所示,此時(shí)滿足二進(jìn)制序列X的漢明重量小于二進(jìn)制序列Y的漢明重量,即HW(X) 圖2 置換交叉合成運(yùn)算(HW(X) (1) 協(xié)議符號(hào)解釋。本文協(xié)議部分符號(hào)表示的含義如下:R:讀寫(xiě)器;T:標(biāo)簽;K:R與T之間共享秘密信息;Kold:R與T之間上輪共享秘密信息;Knew:R與T之間本輪共享秘密信息;ID:T的標(biāo)記信息;IDS:T的標(biāo)記信息相對(duì)應(yīng)的假名;IDSold:T的標(biāo)記信息上輪相對(duì)應(yīng)的假名;IDSnew:T的標(biāo)記信息本輪相對(duì)應(yīng)的假名;Pcs(X,Y) :對(duì)參數(shù)X、Y進(jìn)行置換交叉合成運(yùn)算;R1:R產(chǎn)生的隨機(jī)數(shù);R2:T產(chǎn)生的隨機(jī)數(shù);&:與運(yùn)算;⊕:異或運(yùn)算。 (2) 協(xié)議初始化階段。本文協(xié)議共分為兩個(gè)階段,初始化階段是在標(biāo)簽還未出廠之前完成的,初始化之后T存放信息: (3) 協(xié)議認(rèn)證階段。本文協(xié)議步驟如圖3所示。 圖3 認(rèn)證協(xié)議 1)R→T。R向T發(fā)送Query認(rèn)證請(qǐng)求。 2)T→R。T將假名IDS發(fā)送給R。 3)R→T。R先在IDSnew中搜索是否有與IDS值相等的記錄。沒(méi)有,進(jìn)行操作1;有,進(jìn)行操作2。 操作1:R再次在IDSold中搜索是否有與IDS值相等的記錄。仍沒(méi)有,協(xié)議結(jié)束;有,進(jìn)行操作2。 操作2:T通過(guò)R的第一次驗(yàn)證。R產(chǎn)生隨機(jī)數(shù)R1,計(jì)算A=R1⊕ID,B=Pcs(R1,ID),將發(fā)送給T。 操作4:R計(jì)算E=Pcs(R1,R2),并開(kāi)始更新信息IDSold=IDSnew,IDSnew=Pcs(IDS,R2),Kold=Knew,Knew=Pcs(K,R1&R2),最后將 協(xié)議需要具備較高的安全性,除了采用密文傳送信息之外,加密算法的安全性也是很重要的。本節(jié)詳細(xì)分析本文設(shè)計(jì)的創(chuàng)新型的加密算法的安全性。 攻擊者對(duì)Pcs(X,Y)加密算法進(jìn)行破解,需要進(jìn)行兩個(gè)步驟:(1) 置換;(2) 交叉合成。 置換中,攻擊者可以獲取置換的規(guī)則,即當(dāng)二進(jìn)制序列X的第i位為0時(shí),將二進(jìn)制序列Y的第i位進(jìn)行取反,取反之后的值放置在二進(jìn)制序列Z的第i位;當(dāng)二進(jìn)制序列X的第i位為1時(shí),二進(jìn)制序列Y的第i位不進(jìn)行任何操作,直接取該位的值放置在二進(jìn)制序列Z的第i位。攻擊者需要在知道進(jìn)行加密的兩個(gè)參數(shù)的前提之下,再運(yùn)用上述的置換規(guī)則就可以分析出隱私信息。但關(guān)鍵問(wèn)題是,攻擊者并不知道加密參數(shù)的數(shù)值,因此,攻擊者無(wú)法正確順利完成置換步驟的破解。 交叉合成中,攻擊者可以獲取交叉合成的規(guī)則,即取二進(jìn)制序列Y的漢明重量差值位,放在二進(jìn)制序列W的右邊;取二進(jìn)制序列Z的后漢明重量差值位,放在二進(jìn)制序列W的左邊。攻擊者想完成交叉合成步驟的破解,需要知道加密參數(shù)每個(gè)相對(duì)應(yīng)的漢明重量數(shù)值,同時(shí)還要知道兩個(gè)參數(shù)漢明重量差值。但遺憾的是,攻擊者并不知道每個(gè)參量的漢明重量數(shù)值。攻擊者不知道漢明重量,就無(wú)法知道交叉合成是按照多少位數(shù)進(jìn)行的。因此,攻擊者在交叉合成步驟中破解失敗。 基于上面的描述,創(chuàng)新型的Pcs(X,Y)加密算法具備較好的安全性,能夠提供用戶所需的安全要求。 (1) 假冒攻擊。攻擊者假冒成R給T發(fā)消息,比如發(fā)送A和B消息。想要發(fā)送正確的A消息,需要正確的ID參數(shù)值,隨機(jī)數(shù)攻擊者可以隨意選擇一個(gè),但攻擊者缺少I(mǎi)D的正確數(shù)值,無(wú)法計(jì)算出正確的通信消息A的值。當(dāng)攻擊者再次隨意選擇一個(gè)數(shù)值作為ID的數(shù)值參與計(jì)算所得到的A并不是正確的,發(fā)送給T之后,T通過(guò)相同的運(yùn)算法則,即可辨析出攻擊者假冒的R,假冒失敗。攻擊者假冒成T給R發(fā)消息,比如發(fā)送C和D消息。攻擊者缺少I(mǎi)D和K的正確數(shù)值,攻擊者無(wú)法破解出R發(fā)送給T的正確的隨機(jī)數(shù)R1的值,從而攻擊者進(jìn)一步無(wú)法計(jì)算得到正確的C消息的數(shù)值。當(dāng)R收到C之后,R通過(guò)相同的運(yùn)算法則計(jì)算,即可識(shí)別出T由攻擊者假冒,假冒失敗。 (2) 重放攻擊。R與T之間的信息基于無(wú)線信道傳送,使得攻擊者可以很容易監(jiān)聽(tīng)獲取通信消息,進(jìn)而攻擊者發(fā)起重放攻擊。本文協(xié)議在所有消息加密過(guò)程中加入隨機(jī)數(shù),具體地:A中加入R1,B中加入R1,C中加入R1和R2,D中加入R1和R2,E中加入R1和R2,使得攻擊者前后兩次監(jiān)聽(tīng)的信息數(shù)值并不是一致的。因此,當(dāng)攻擊者重放監(jiān)聽(tīng)到的上一輪消息時(shí),本輪通信的消息數(shù)值早已發(fā)生變更,待接收者通過(guò)計(jì)算即可辨別出消息來(lái)源的真?zhèn)?,重放失敗?/p> (3) 定位攻擊。定位攻擊也就是常見(jiàn)的追蹤攻擊。標(biāo)簽發(fā)送的消息中,若存在某個(gè)數(shù)值一直未發(fā)生變動(dòng),則攻擊者可以通過(guò)該數(shù)值逐漸地定位和追蹤標(biāo)簽的蹤跡位置,進(jìn)而發(fā)起追蹤攻擊。本文協(xié)議信息都加入隨機(jī)數(shù),隨機(jī)數(shù)由隨機(jī)數(shù)產(chǎn)生器產(chǎn)生,具備無(wú)法預(yù)測(cè)性、不重復(fù)性等特征,使得每次消息的數(shù)值不盡一樣,則攻擊者也無(wú)法進(jìn)行追蹤標(biāo)簽的位置操作,定位失敗。 (4) 異步攻擊。通過(guò)重放等手段破壞標(biāo)簽與讀寫(xiě)器之間共享秘密信息等參數(shù)的一致性,稱(chēng)之為異步攻擊。本文協(xié)議從兩個(gè)方面能夠有效防止異步攻擊的發(fā)生:① 讀寫(xiě)器存放前后兩輪的IDS信息;② 讀寫(xiě)器存放前后兩輪的K信息。待收到信息后,先用IDSnew和Knew進(jìn)行信息的認(rèn)證,驗(yàn)證失敗后,將再次用IDSold和Kold進(jìn)行信息的認(rèn)證。當(dāng)且僅當(dāng)兩次驗(yàn)證都失敗,協(xié)議停止。 (5) 暴力破解。本文將重點(diǎn)分析協(xié)議具備抵抗攻擊者暴力破解攻擊,以此顯示出本文協(xié)議相對(duì)劉立波等設(shè)計(jì)協(xié)議的優(yōu)勢(shì)所在。整個(gè)協(xié)議在通信過(guò)程中,發(fā)送的信息較多,有A、B、C、D、E、IDS。攻擊者獲取IDS信息沒(méi)有任何用,因?yàn)镮DS是標(biāo)簽的假名,并不含任何有用的隱私信息。此處選擇A=R1⊕ID為例子進(jìn)行分析,在A中,于攻擊者而言,有R1、ID兩個(gè)參數(shù)的數(shù)值是不知道的,攻擊者便無(wú)法以窮舉的方式窮盡變量所有可能的值,這是其一;其二,隨機(jī)數(shù)R1是變動(dòng)的,前后兩次的數(shù)值不同,上一輪截獲的信息,攻擊者還沒(méi)有來(lái)得及暴力破解窮盡參數(shù)所有可能的值,下一輪通信數(shù)據(jù)已發(fā)生變化,因此攻擊者根本無(wú)法窮舉出任何有用的隱私信息的數(shù)值,攻擊者暴力破解失敗。 (6) 雙向認(rèn)證。協(xié)議安全性方向最基本的要求便是通信實(shí)體之間能夠完成彼此之間的認(rèn)證。第三步中,讀寫(xiě)器完成對(duì)標(biāo)簽的第一次認(rèn)證;第四步中,標(biāo)簽完成對(duì)讀寫(xiě)器的第一次認(rèn)證;第五步中,讀寫(xiě)器完成對(duì)標(biāo)簽的第二次認(rèn)證;第六步中,標(biāo)簽完成對(duì)讀寫(xiě)器的第二次認(rèn)證?;谏厦娴闹v解,本文協(xié)議具備通信實(shí)體之間雙向認(rèn)證的安全需求。 各協(xié)議安全性能比較如表1所示。其中:√表示可以滿足需求;×表示無(wú)法滿足需求。 表1 安全性分析 選取標(biāo)簽為對(duì)象,以計(jì)算量、存儲(chǔ)量?jī)蓚€(gè)屬性為目標(biāo)進(jìn)行性能比較,結(jié)果如表2所示。其中:異或運(yùn)算計(jì)算量用XOR表示;置換交叉合成運(yùn)算加密算法計(jì)算量用Pcs( )表示;產(chǎn)生隨機(jī)數(shù)計(jì)算量用LSRT表示;哈希函數(shù)加密算法計(jì)算量用HASH( )表示;模運(yùn)算加密算法用MOD( )表示;與運(yùn)算計(jì)算量用AND表示;標(biāo)簽一端存放的數(shù)據(jù)一般為共享密鑰、假名、標(biāo)識(shí)符、統(tǒng)計(jì)器、標(biāo)記符等,用T表示參數(shù)的長(zhǎng)度。 表2 性能分析 從存儲(chǔ)量角度分析,本文協(xié)議與其他協(xié)議大致相當(dāng);從計(jì)算量角度分析,本文因未采用哈希函數(shù)或模運(yùn)算加密算法,而是采用創(chuàng)新型的置換交叉合成運(yùn)算加密算法,使得標(biāo)簽整體計(jì)算量遠(yuǎn)遠(yuǎn)少于其他協(xié)議。根據(jù)本文前面對(duì)Pcs( )算法描述可以得知:該加密算法屬于超輕量級(jí),可基于位運(yùn)算實(shí)現(xiàn),在計(jì)算量方面優(yōu)于其他協(xié)議,且能夠保障通信實(shí)體隱私信息安全。 在分析文獻(xiàn)[16]協(xié)議基礎(chǔ)上,指出協(xié)議存在的缺陷,進(jìn)而進(jìn)行改進(jìn)。借鑒其協(xié)議通信的框架模型,采用計(jì)算量更低的創(chuàng)新加密算法,置換交叉合成運(yùn)算對(duì)參數(shù)進(jìn)行加密,能夠有效降低計(jì)算總量。加密算法在交叉操作中引入漢明重量概念,因攻擊者無(wú)法獲取每個(gè)參數(shù)漢明重量的數(shù)值,因此按照怎樣的交叉方式進(jìn)行,對(duì)于攻擊者來(lái)說(shuō)是無(wú)法知曉的,從而增加攻擊者破解難度。加密算法在合成操作中混入漢明重量差值絕對(duì)值,更進(jìn)一步使得攻擊者無(wú)法破解隱私信息。從安全性和性能兩個(gè)角度將本文協(xié)議與其他協(xié)議進(jìn)行比較,闡明本文協(xié)議設(shè)計(jì)過(guò)程中具備的安全需求以及計(jì)算總量低等優(yōu)勢(shì)。1.3 認(rèn)證協(xié)議
2 協(xié)議分析
2.1 Pcs(X,Y)加密算法分析
2.2 常見(jiàn)攻擊類(lèi)型安全分析
2.3 認(rèn)證協(xié)議性能分析
3 結(jié) 語(yǔ)