文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.08.030
中文引用格式: 黎遠(yuǎn)松,王建璽,梁金明,等. ECC結(jié)合輕量級(jí)Hash函數(shù)的RFID系統(tǒng)安全認(rèn)證方案[J].電子技術(shù)應(yīng)用,2015,41(8):106-109.
英文引用格式: Li Yuansong,Wang Jianxi,Liang Jinming,et al. A secure authentication scheme for RFID systems base on ECC and lightweight Hash[J].Application of Electronic Technique,2015,41(8):106-109.
0 引言
植入式射頻識(shí)別(Radio Frequency Identification,RFID)系統(tǒng)[1]是一種基于物聯(lián)網(wǎng)(Internet of Things,IoT)技術(shù)的醫(yī)療保健解決方案,RFID可以植入人體內(nèi),采集人體信息,在緊急情況下能挽救病人的生命[2]。由于標(biāo)簽與閱讀器之間的通信信道存在風(fēng)險(xiǎn),且RFID系統(tǒng)是一種資源有限系統(tǒng),因此,植入式RFID系統(tǒng)需要一種魯棒、優(yōu)化和輕量級(jí)的安全框架來(lái)滿足安全等級(jí)要求和能量約束[3-4]。
文獻(xiàn)[5]提出了一種基于橢圓曲線密碼(Elliptic Curve Cryptography,ECC)的隨機(jī)密鑰機(jī)制,盡管該機(jī)制能有效抵抗與RFID系統(tǒng)相關(guān)的黑客攻擊,但它仍然不能進(jìn)行相互驗(yàn)證。文獻(xiàn)[6]提出了一種融合ID驗(yàn)證傳輸協(xié)議和ECC的認(rèn)證機(jī)制,該機(jī)制達(dá)到了RFID系統(tǒng)要求的安全級(jí)別,但需要較大的標(biāo)簽認(rèn)證計(jì)算時(shí)間和內(nèi)存需求。
基于上述算法存在的問(wèn)題,本文提出了一種應(yīng)用于植入式FRID系統(tǒng)的基于ECC和輕量級(jí)Hash函數(shù)的雙向認(rèn)證方案。相比傳統(tǒng)方案,本文方法具有較高的安全等級(jí),且在通信開(kāi)銷和內(nèi)存需求方面性能優(yōu)越。
1 提出的雙向認(rèn)證方案
提出的認(rèn)證方案由三個(gè)階段組成:(1)閱讀器身份認(rèn)證和驗(yàn)證階段;(2)標(biāo)簽身份認(rèn)證階段;(3)標(biāo)簽身份驗(yàn)證階段。在本文算法中,假設(shè)閱讀器與后端數(shù)據(jù)庫(kù)服務(wù)器之間的信道是安全的,植入式RFID系統(tǒng)[7]的標(biāo)簽與閱讀器之間的通信信道不安全。相關(guān)參數(shù)和數(shù)學(xué)符號(hào)如表1所示。
1.1 閱讀器身份認(rèn)證和驗(yàn)證
算法1 閱讀器身份認(rèn)證和驗(yàn)證的偽代碼
輸入:(r1,R1):閱讀器的私鑰和公鑰。i1:閱讀器的計(jì)數(shù)器值
輸出:確定閱讀器是否可信?
代碼
1.2 標(biāo)簽身份認(rèn)證
Quark輕量級(jí)哈希算法依賴于非線性布爾函數(shù)和移位寄存器,其電路面積需求適合于植入式醫(yī)療設(shè)備[9,10]。利用D-Quark輕量級(jí)哈希算法開(kāi)發(fā)基于ECC的標(biāo)簽身份識(shí)別算法。
在標(biāo)簽身份認(rèn)證階段,根據(jù)s2和IDt計(jì)算初始機(jī)密點(diǎn)s1∈E(Fg)。為了生成第2個(gè)機(jī)密點(diǎn),標(biāo)簽計(jì)算s2=f(X(s1)).P。從第2個(gè)機(jī)密點(diǎn)獲取第1個(gè)機(jī)密點(diǎn)比較困難,因?yàn)闃?biāo)簽需要運(yùn)行橢圓離散對(duì)數(shù)算法。第2個(gè)密鑰由第1個(gè)密鑰產(chǎn)生,故本文算法具有前向安全性。
為了提高算法運(yùn)行效率,所選函數(shù)f必須對(duì)s2不會(huì)產(chǎn)生較大的漢明權(quán)重,保證在不影響安全性的前提下快速計(jì)算s2.P。生成第2個(gè)密鑰后,標(biāo)簽將選擇隨機(jī)整數(shù)k∈Zg且計(jì)算曲線坐標(biāo)點(diǎn)(x,y)=k.G。標(biāo)簽首先計(jì)算d=x mod n,然后將數(shù)字信號(hào)消息(d,c)發(fā)送給閱讀器。若d=0,標(biāo)簽重新選擇隨機(jī)數(shù)k∈Zg且計(jì)算下一個(gè)曲線坐標(biāo)點(diǎn)。標(biāo)簽計(jì)算IDt=Mb(X(s1))*Mb(X(s2)).P,式中Mb將會(huì)輸出輸入值的一些中間比特位。操作數(shù)*為非代數(shù)操作符∈Fg,作用于第一個(gè)機(jī)密點(diǎn)和第二個(gè)機(jī)密點(diǎn)。然后,標(biāo)簽計(jì)算c=k(hash(IDt))+X(s1).d)。如果c=0,標(biāo)簽將選擇另一個(gè)整數(shù)k同時(shí)開(kāi)始運(yùn)行上述算法。最后,標(biāo)簽將計(jì)算值(c,d)和IDt并發(fā)送給閱讀器。算法2描述了標(biāo)簽身份認(rèn)證階段。
算法2 標(biāo)簽身份認(rèn)證偽代碼
輸入:rs∈Zn:隨機(jī)整數(shù)(來(lái)自閱讀器信息)和hello請(qǐng)求。s1:標(biāo)簽第一個(gè)機(jī)密點(diǎn)。
輸出:IDt:標(biāo)簽ID。(c,d):標(biāo)簽數(shù)字簽名。
代碼
1.3 標(biāo)簽身份驗(yàn)證
在這個(gè)階段,為了驗(yàn)證標(biāo)簽的可信性,閱讀器選擇隨機(jī)整數(shù)rs∈Zn且計(jì)算其公鑰pr=rs.P。對(duì)j∈[1,n-1],閱讀器檢查是否d,c∈Zn。若結(jié)果可信,閱讀器計(jì)算h=Hash(IDt),其中,Hash為Quark輕量級(jí)哈希函數(shù),在上一階段,哈希函數(shù)用于生成標(biāo)簽的數(shù)字簽名。一旦完成計(jì)算IDt的哈希函數(shù),閱讀器選擇h值最左邊的比特位作為z值。然后,閱讀器計(jì)算w、u1、u2,如算法3所示。根據(jù)這些已經(jīng)計(jì)算出的值,閱讀器計(jì)算曲線坐標(biāo)點(diǎn)(x,y)=u1.P+pr。最后,如果等式r=x mod n成立,則閱讀器會(huì)將標(biāo)簽的數(shù)字簽名作為標(biāo)簽可信性的標(biāo)志。
算法3 標(biāo)簽身份驗(yàn)證偽代碼
輸入:IDt:標(biāo)簽ID。(c,d):標(biāo)簽數(shù)字簽名。
輸出:驗(yàn)證標(biāo)簽是否可信?
代碼
2 性能評(píng)估
2.1 安全性分析
雙向認(rèn)證:在閱讀器認(rèn)證階段,為了認(rèn)證閱讀器是否合法,標(biāo)簽計(jì)算等式是否成立。相反,為了認(rèn)證標(biāo)簽是否可信(基于標(biāo)簽傳輸?shù)腎Dr和數(shù)字簽名消息),閱讀器檢查等式r=x mod n是否成立。這就是本文算法中的雙向認(rèn)證過(guò)程。
可用性:在本文算法中,一旦完成雙向認(rèn)證,標(biāo)簽和閱讀器將改變它們的機(jī)密點(diǎn)s1,s2,s3,因此,攻擊者不可能實(shí)現(xiàn)拒絕服務(wù)攻擊。
前向安全:在本文算法中,如果攻擊者試圖根據(jù)已經(jīng)竊聽(tīng)的信息進(jìn)行偽裝,例如標(biāo)簽的第2個(gè)密鑰s2,攻擊者將不可能從竊聽(tīng)的信息獲取任何有用信息。從第2個(gè)密鑰獲取第1個(gè)密鑰需要解決ECDSA問(wèn)題,然而該問(wèn)題不易求解。
非法跟蹤標(biāo)簽:本文算法的公共信息僅關(guān)心標(biāo)簽的ID。在標(biāo)簽身份認(rèn)證階段,通過(guò)非代數(shù)操作標(biāo)簽的第1個(gè)密鑰和第2個(gè)密鑰的橫坐標(biāo)的中間比特位來(lái)生成ID值。因此,從現(xiàn)有的ID獲取標(biāo)簽的密鑰是不可能的。主要原因是獲取密鑰意味著需要計(jì)算橢圓曲線離散對(duì)數(shù)算法。因?yàn)榍蠼怆x散對(duì)數(shù)問(wèn)題與整數(shù)分解問(wèn)題一樣困難,因此該問(wèn)題很難求解。
竊聽(tīng)攻擊:攻擊者很難完成該計(jì)算過(guò)程,因?yàn)樾枰蠼怆x散對(duì)數(shù)問(wèn)題,離散對(duì)數(shù)問(wèn)題在計(jì)算上是不可行的。與上面原理相似,在閱讀器認(rèn)證階段,盡管攻擊者能獲取R1或R2或r3,但不能很容易獲取與閱讀器相關(guān)的其他安全信息?;谏厦娴挠懻摚粽咭膊荒芡瓿扇魏沃胤殴?。
偽裝攻擊可考慮兩種不同場(chǎng)景:
(1)偽裝成閱讀器:如果攻擊者嘗試偽裝成閱讀器,它將會(huì)失敗。因?yàn)槿绻粽咭獓L試偽裝成虛假閱讀器,它必須計(jì)算R1且同時(shí)嘗試計(jì)算r2(不容易計(jì)算)。然而,沒(méi)有閱讀器的計(jì)算值R3=r1.IDt+r3s1,攻擊者(虛假閱讀器)將不可能計(jì)算出來(lái)使自己可信。
(2)偽裝成標(biāo)簽:為了偽裝成標(biāo)簽,如前面所述,攻擊者需要訪問(wèn)標(biāo)簽的密鑰s1s2,然而不能從IDt的公共信息獲取密鑰。
基于以上討論證明,本文算法能安全抵抗植入式RFID系統(tǒng)的攻擊。表2顯示了本文算法與其他幾種基于ECC算法的安全性比較結(jié)果。“YES”表示能安全抵抗上面提到的攻擊?!癗O”表示不能安全抵抗攻擊。從安全性角度來(lái)看,盡管本文算法的安全特性與文獻(xiàn)[6]相似,但后文將表明本文在計(jì)算和通信開(kāi)銷上的優(yōu)越性。
2.2 計(jì)算開(kāi)銷分析
可植入標(biāo)簽的資源有限性限制了植入式RFID系統(tǒng)的性能,因此,認(rèn)證算法需要保證負(fù)載較小。根據(jù)計(jì)算成本、內(nèi)存需求和通信開(kāi)銷標(biāo)準(zhǔn)來(lái)分析算法的計(jì)算性能。
使用標(biāo)準(zhǔn)163比特橢圓曲線域參數(shù)加密算法,這些參數(shù)定義在有限比特位域F(2163)。利用ECDSA算法的坐標(biāo)系(x,y),在F(2m)域的橢圓曲線參數(shù)通過(guò)多元組T=(m,f(x),a,b,G,n,h)定義,其中m=163且通過(guò)f(x)=x163+x7+x6+x3+111定義F(2163)。文獻(xiàn)[11]根據(jù)橢圓曲線的163比特位的純量乘法計(jì)算算法運(yùn)行時(shí)間,即SHA-1哈希函數(shù)和高級(jí)加密標(biāo)準(zhǔn)算法(AES)。根據(jù)實(shí)驗(yàn)結(jié)果,在5 MHz頻率時(shí),163比特位橢圓曲線純量相乘需要的計(jì)算時(shí)間為64 ms。在低頻時(shí),例如323 kHz,完成163比特位橢圓曲線純量相乘的計(jì)算時(shí)間為243 ms,與64 ms相比,時(shí)間太長(zhǎng)。因此,本文在5 MHz頻率下計(jì)算本文算法的運(yùn)行時(shí)間。
標(biāo)簽的內(nèi)存需求包括公鑰和私鑰內(nèi)存需求,私鑰表示標(biāo)簽的密鑰s1,s2且公鑰表示標(biāo)簽的公鑰IDt。在本文算法中,系統(tǒng)內(nèi)存需求由(IDt,s1,s2)組成,其中IDt需要163比特位內(nèi)存,s1和s2總共需要326比特位內(nèi)存。因此,總內(nèi)存為:62 byte=163 bit+326 bit。表3顯示了本文算法與其他算法的性能比較結(jié)果。
本文標(biāo)簽身份識(shí)別算法的計(jì)算成本包括三個(gè)標(biāo)量點(diǎn)的計(jì)算且計(jì)算時(shí)間為:64 ms×3=192 ms。因此,本文標(biāo)簽身份識(shí)別算法需要192 ms完成標(biāo)量點(diǎn)相乘。從表3可以看出,當(dāng)ECC點(diǎn)乘數(shù)量增加時(shí),它將直接影響完成該運(yùn)算所需的時(shí)間。因此,在實(shí)時(shí)系統(tǒng)中,系統(tǒng)需要考慮成功實(shí)現(xiàn)認(rèn)證所需時(shí)間的問(wèn)題。
為了計(jì)算標(biāo)簽認(rèn)證階段中,標(biāo)簽與閱讀器之間的通信開(kāi)銷,本文計(jì)算基于標(biāo)簽與閱讀器之間通信消息IDt,(d,c)的通信開(kāi)銷,這里,通信開(kāi)銷為41 B,計(jì)算式為:(163×2/8=326/8≈41 B)。
將本文算法與其他算法的通信開(kāi)銷進(jìn)行比較,結(jié)果表明,本文算法成功減少了48%的通信開(kāi)銷。在總體內(nèi)存消耗方面,本文算法降低了24%的內(nèi)存消耗。與文獻(xiàn)[6]相比,本文算法減少了39%的內(nèi)存消耗,計(jì)算時(shí)間減少了60%。然而,與文獻(xiàn)[4]相比,計(jì)算時(shí)間增加了50%。
3 結(jié)語(yǔ)
針對(duì)植入式RFID系統(tǒng)存在的問(wèn)題,本文提出了一種基于橢圓曲線密碼(ECC)和輕量級(jí)Hash函數(shù)的安全雙向認(rèn)證方案。提出的方案依賴于橢圓曲線加密算法,比傳統(tǒng)加密算法所需較少的密鑰和公鑰的數(shù)據(jù)量,且計(jì)算量也較小。實(shí)驗(yàn)表明,本文算法能夠抵抗相關(guān)攻擊,安全等級(jí)高。另外,與傳統(tǒng)算法相比,本文認(rèn)證機(jī)制通信開(kāi)銷降低了48%,內(nèi)存需求降低了24%~39%。
未來(lái)工作中,將進(jìn)一步研究本文算法,使其能夠廣泛應(yīng)用于IoT系統(tǒng)。
參考文獻(xiàn)
[1] 謝小芳,黃俊,譚成宇.基于RFID的電力溫度監(jiān)控系統(tǒng)的軟件分析與設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(1):23-26.
[2] GUBBI J,BUYYA R,MARUSIC S,et al.Internet of Things(IoT):a vision,architectural elements,and future directions[J].Future Generation Computer Systems,2013,29(7):1645-1660.
[3] 韋永壯,歐陽(yáng)寧,馬春波.一個(gè)基于穩(wěn)固加密RFID協(xié)議的安全性分析[J].計(jì)算機(jī)研究與發(fā)展,2012,49(5):958-961.
[4] BATINA L,GUAJARDO J,KERINS T,et al.Public-key cryptography for RFID-tags[C].Pervasive Computing and Communications Workshops, 2007. PerCom Workshops′07.Fifth Annual IEEE International Conference on.IEEE,2011:217-222.
[5] ZHANG X,LI J,WU Y,et al.An ECDLP-based randomized key RFID authentication protocol[C].Network Computing and Information Security(NCIS),2011 International Conference on.IEEE,2012,2:146-149.
[6] LIAO Y P,HSIAO C M.A secure ECC-based RFID authentication scheme integrated with ID-verifier transfer protocol[J].Ad Hoc Networks,2014,18(3):133-146.
[7] 苑津莎,徐揚(yáng),戚銀城,等.基于非對(duì)稱密鑰和Hash函數(shù)的RFID雙向認(rèn)證協(xié)議[J].密碼學(xué)報(bào),2014(5):456-464.
[8] 張文芳,王小敏,郭偉,等.基于橢圓曲線密碼體制的高效虛擬企業(yè)跨域認(rèn)證方案[J].電子學(xué)報(bào),2014,42(6):1095-1102.
[9] AUMASSON J P,HENZEN L,MEIER W,et al.Quark:a lightweight hash[J].Journal of cryptology,2013,26(2):313-339.
[10] 張兵,馬新新,秦志光.輕量級(jí)RFID雙向認(rèn)證協(xié)議設(shè)計(jì)與分析[J].電子科技大學(xué)學(xué)報(bào),2013,42(3):425-430.
[11] GODOR G,IMRE S.Elliptic curve cryptography based authentication protocol for low-cost RFID tags[C].RFID-Technologies and Applications(RFID-TA),2011 IEEE International Conference on.IEEE,2011:386-393.