張順,范鴻麗,仲紅,田苗苗
(安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230601)
隨著傳感器技術(shù)和無(wú)線(xiàn)通信技術(shù)的不斷發(fā)展,無(wú)線(xiàn)體域網(wǎng)[1]應(yīng)運(yùn)而生,滿(mǎn)足了人們對(duì)高質(zhì)量醫(yī)療服務(wù)的需求。WBAN由一系列資源受限的穿戴式或嵌入式的傳感器節(jié)點(diǎn)組成,這些節(jié)點(diǎn)能夠?qū)崟r(shí)收集病人的生理信息,然后通過(guò)智能設(shè)備將數(shù)據(jù)發(fā)送到遠(yuǎn)程應(yīng)用端進(jìn)行診斷。圖1是典型的WBAN應(yīng)用場(chǎng)景,其中 WBAN中節(jié)點(diǎn)收集實(shí)時(shí)生理數(shù)據(jù)(心跳、血壓等),通過(guò)智能設(shè)備(個(gè)人數(shù)字管家、智能手機(jī)等)將數(shù)據(jù)發(fā)送到遠(yuǎn)程應(yīng)用端進(jìn)行分析診斷。由于收集的敏感生理數(shù)據(jù)在公共信道上傳輸,為了保護(hù)生理數(shù)據(jù)的隱私性以及確保用戶(hù)可以得到及時(shí)治療,在無(wú)線(xiàn)體域網(wǎng)認(rèn)證協(xié)議需要滿(mǎn)足用戶(hù)匿名相互認(rèn)證、不可鏈接性、不可否認(rèn)性以及會(huì)話(huà)密鑰建立等安全需求。
圖1 無(wú)線(xiàn)體域網(wǎng)應(yīng)用場(chǎng)景
首個(gè)遠(yuǎn)程認(rèn)證協(xié)議是由 Lamport[2]提出的,該協(xié)議允許移動(dòng)客戶(hù)通過(guò)公共信道向遠(yuǎn)程服務(wù)器進(jìn)行身份認(rèn)證,并且雙方可以生成共享會(huì)話(huà)密鑰以保證后期通信的安全。此后,許多遠(yuǎn)程認(rèn)證協(xié)議被相繼提出(如文獻(xiàn)[3~7])。這些協(xié)議屬于傳統(tǒng)公鑰密碼協(xié)和基于身份的密碼協(xié)議。在傳統(tǒng)的公鑰密碼體制中,客戶(hù)的公私鑰對(duì)都是由它自己隨機(jī)生成,為了確??蛻?hù)身份和公鑰對(duì)應(yīng)關(guān)系的真實(shí)性,需要證書(shū)授權(quán)中心(CA,certificate authority)給客戶(hù)頒發(fā)相應(yīng)的公鑰證書(shū)。由于證書(shū)分發(fā)和管理代價(jià)較大,因此,這種密碼體制不適用于資源受限的WBAN?;谏矸莨€密碼體制的思想是由 Shamir[8]提出的,其中,客戶(hù)的公鑰是身份信息,因此,該體制消除了公鑰證書(shū)。但是在基于身份的密碼體制中客戶(hù)的私鑰都是由私鑰生成中心(PKG,private key generator)生成的,因此,密鑰托管存在問(wèn)題。為了解決該問(wèn)題,Al-Riyami等[9]提出了無(wú)證書(shū)公鑰密碼體制。在這種密碼體制中客戶(hù)的私鑰由它選擇的秘密值和 PKG生成的部分私鑰組成。因此,無(wú)證書(shū)公鑰密碼體制不僅消除了公鑰證書(shū),還解決了密鑰托管問(wèn)題。
Liu等[10,11]在2014年首次提出了2個(gè)保護(hù)隱私的無(wú)證書(shū)遠(yuǎn)程匿名認(rèn)證協(xié)議,由于在協(xié)議中服務(wù)器需要存儲(chǔ)驗(yàn)證表,存在偽造客戶(hù)的可能性,并且協(xié)議不滿(mǎn)足前向安全性等安全需求同時(shí)也使用了雙線(xiàn)性對(duì)等操作,客戶(hù)的計(jì)算代價(jià)較大。Xiong[12]給出了一種基于無(wú)證書(shū)加密的遠(yuǎn)程匿名認(rèn)證協(xié)議,但該協(xié)議在客戶(hù)端使用了較多的點(diǎn)乘操作并且沒(méi)有考慮到客戶(hù)和遠(yuǎn)程應(yīng)用端的撤銷(xiāo)問(wèn)題,即當(dāng)客戶(hù)或遠(yuǎn)程應(yīng)用端的密鑰泄露或服務(wù)到期時(shí),PKG需要將該客戶(hù)或遠(yuǎn)程應(yīng)用端撤銷(xiāo)。否則,服務(wù)到期的客戶(hù)可以繼續(xù)享受醫(yī)療服務(wù),惡意的遠(yuǎn)程應(yīng)用端也可以非法收集客戶(hù)的隱私生理信息。
在無(wú)證書(shū)公鑰系統(tǒng)中,Xiong等[13]首次提出了在 WBAN中可撤銷(xiāo)的遠(yuǎn)程匿名認(rèn)證協(xié)議,但該協(xié)議使用了大量雙線(xiàn)性對(duì)以及 map-to-point散列操作,客戶(hù)的計(jì)算代價(jià)太大。此外,協(xié)議使用KUNode算法[14]進(jìn)行客戶(hù)和遠(yuǎn)程應(yīng)用端的撤銷(xiāo),樹(shù)形結(jié)構(gòu)的撤銷(xiāo)導(dǎo)致客戶(hù)的存儲(chǔ)開(kāi)銷(xiāo)較大。為了降低客戶(hù)的開(kāi)銷(xiāo),Tseng等[15]提出了一種有效的撤銷(xiāo)算法,在該算法中客戶(hù)的私鑰分成3個(gè)部分:客戶(hù)選取的秘密值、PKG生成的部分私鑰和PKG生成的時(shí)間密鑰,其中,時(shí)間密鑰是周期性更新的,因此,可能會(huì)出現(xiàn)客戶(hù)密鑰泄露或服務(wù)到期發(fā)生在更新周期內(nèi)的情況,而PKG無(wú)法立即將客戶(hù)撤銷(xiāo)。
基于以上問(wèn)題,本文基于無(wú)證書(shū)簽名思想,采用橢圓曲線(xiàn)和實(shí)時(shí)更新時(shí)間密鑰技術(shù)提出了一種高效的可撤銷(xiāo)無(wú)證書(shū)遠(yuǎn)程匿名認(rèn)證協(xié)議。該協(xié)議沒(méi)有使用雙線(xiàn)性對(duì)以及map-to-point散列操作,客戶(hù)的計(jì)算代價(jià)較小。此外,與文獻(xiàn)[13]中的協(xié)議相比,本文所提協(xié)議實(shí)現(xiàn)撤銷(xiāo)的同時(shí)大大降低了客戶(hù)的存儲(chǔ)代價(jià)。最后,安全性分析證明該協(xié)議在隨機(jī)預(yù)言模型下是安全的。
本節(jié)給出橢圓曲線(xiàn)密碼的基本概念和相關(guān)困難假設(shè)。
素?cái)?shù)域Fp上的橢圓曲線(xiàn)E是由y2=x3+ax+bmodp上的點(diǎn)集(x,y)和一個(gè)稱(chēng)為無(wú)窮遠(yuǎn)點(diǎn)O組成的,其中,a,b∈RFp并且4a3+2 7b2≠0 modp。曲線(xiàn)E與點(diǎn)加定律“+”形成一個(gè)循環(huán)加法群G,無(wú)窮遠(yuǎn)點(diǎn)O是單位元。具體定義如下。給定P,Q∈G,則P+Q被視為關(guān)于x軸的反射點(diǎn)R,其中,R是曲線(xiàn)E和線(xiàn)l之間的交叉點(diǎn)。如果P≠Q(mào),l由P和Q決定;如果P=Q,l表示的切線(xiàn)。一個(gè)點(diǎn)P的倍數(shù)可以實(shí)現(xiàn)為重復(fù)的加法,即mP=P+P+…+P。
橢圓曲線(xiàn)的更多信息參考文獻(xiàn)[16]。
本文協(xié)議的安全性依賴(lài)于以下2個(gè)經(jīng)典的困難假設(shè)。
1) 離散對(duì)數(shù)問(wèn)題(DL,discrete logarithm problem)。給定元組{P,xP}∈G,在概率多項(xiàng)式時(shí)間內(nèi)找到整數(shù)x是困難的。
2) 計(jì)算 Diffie-Hellman問(wèn)題(CDH,computational Diffie-Hellman problem)。給定元組{P,xP,yP}∈G,其中,x,y是中未知的整數(shù),在概率多項(xiàng)式時(shí)間內(nèi)計(jì)算xyP是困難的。
本節(jié)介紹系統(tǒng)模型、安全性需求、可撤銷(xiāo)的無(wú)證書(shū)認(rèn)證協(xié)議以及安全模型。
系統(tǒng)模型如圖2所示,協(xié)議共有3個(gè)參與方:客戶(hù)(C)、私鑰生成中心(PKG)和遠(yuǎn)程應(yīng)用端(AP),其中,C和AP都可能有多個(gè)而PKG一般只有一個(gè)。
圖2 系統(tǒng)模型
私鑰生成中心(PKG)。PKG被視為C和AP的注冊(cè)中心,一般是由半可信的盈利組織擔(dān)任。為了商業(yè)盈利的目的,PKG可能通過(guò)偽裝成合法的AP來(lái)收集病人隱私數(shù)據(jù)或通過(guò)偽裝成合法的C來(lái)獲得醫(yī)療服務(wù)。
客戶(hù)(C)。客戶(hù)代表病患。C配備了一系列傳感器節(jié)點(diǎn)和智能設(shè)備。C在請(qǐng)求AP服務(wù)之前需要向PKG注冊(cè),由PKG預(yù)設(shè)公共參數(shù),部分私鑰和時(shí)間密鑰,其中,部分私鑰通過(guò)安全信道發(fā)送,時(shí)間密鑰通過(guò)公共信道發(fā)送。當(dāng)PKG檢測(cè)到C的服務(wù)到期或密鑰泄露時(shí),需將C撤銷(xiāo)。
遠(yuǎn)程應(yīng)用端(AP)。遠(yuǎn)程應(yīng)用端是醫(yī)療服務(wù)中心,如醫(yī)院、診所等。在AP給C提供遠(yuǎn)程服務(wù)之前同樣需要向PKG注冊(cè)并由PKG預(yù)設(shè)公共參數(shù)、部分私鑰和時(shí)間密鑰,其中,部分私鑰通過(guò)安全信道發(fā)送,時(shí)間密鑰通過(guò)公共信道發(fā)送。當(dāng) PKG檢測(cè)到AP的服務(wù)到期或密鑰泄露時(shí),需要撤銷(xiāo)該AP。
為了確保 WBAN環(huán)境下的通信安全,認(rèn)證協(xié)議通常需要滿(mǎn)足以下安全性需求[11~13]。
1) 客戶(hù)匿名。為了保護(hù)C的隱私,包括PKG在內(nèi)的任何第三方都不能通過(guò)截獲請(qǐng)求消息獲得C的身份信息。
2) 相互認(rèn)證。為了確保只有合法的 C可以獲取醫(yī)療服務(wù)并且只有合法的 AP可以提供醫(yī)療服務(wù),協(xié)議需要在C和AP之間提供相互認(rèn)證。
3) 不可鏈接。一個(gè)合法的C可以向AP發(fā)出多次服務(wù)請(qǐng)求消息,但網(wǎng)絡(luò)攻擊者不能分辨哪些消息來(lái)自同一個(gè)C。
4) 會(huì)話(huà)密鑰安全。在完成相互認(rèn)證之后,C和AP可以建立會(huì)話(huà)密鑰。會(huì)話(huà)密鑰用來(lái)保護(hù)雙方后續(xù)的通信安全,所以協(xié)議需要保證會(huì)話(huà)密鑰的安全。
5) 前向安全。即使參與方的長(zhǎng)期密鑰泄露,之前會(huì)話(huà)中傳輸?shù)臄?shù)據(jù)依然是安全的,即這些數(shù)據(jù)不會(huì)被泄露。
6) 可撤銷(xiāo)。當(dāng)C/AP的私鑰泄露或服務(wù)到期時(shí),PKG應(yīng)能撤銷(xiāo)該C/AP。
可撤銷(xiāo)的無(wú)證書(shū)遠(yuǎn)程認(rèn)證協(xié)議主要包括以下幾部分,其中,為了敘述方便,將C和AP統(tǒng)稱(chēng)為用戶(hù)。
1) 初始化(1λ)。由PKG運(yùn)行,輸入安全參數(shù)1λ,輸出公共參數(shù)params、系統(tǒng)主密鑰s以及系統(tǒng)公鑰。
2)秘密值提取算法(ID)。由用戶(hù)運(yùn)行,輸入用戶(hù)身份ID,輸出用戶(hù)的秘密值xID。
3) 公鑰提取算法(ID,xID)。由用戶(hù)運(yùn)行,輸入用戶(hù)的身份ID和秘密值xID,輸出用戶(hù)的公鑰PKID。
4) 部分私鑰提取算法(ID,PKID,params)。由PKG運(yùn)行,輸入用戶(hù)的身份ID、用戶(hù)的公鑰PKID、系統(tǒng)參數(shù)params,輸出用戶(hù)的部分私鑰sID。
5)時(shí)間密鑰提取算法(ID,PKID,params,t)。由PKG運(yùn)行,輸入用戶(hù)的身份ID、用戶(hù)的公鑰PKID、系統(tǒng)參數(shù)params和當(dāng)前時(shí)間t,輸出用戶(hù)的時(shí)間密鑰sID,t。
6) 私鑰提取(ID,xID,sID,sID,t)。由用戶(hù)運(yùn)行,輸入用戶(hù)的身份ID、秘密值xID、部分私鑰sID、時(shí)間密鑰sID,t,輸出用戶(hù)的私鑰skID。
7) 認(rèn)證(ID,skID,PKID,params)。由用戶(hù)運(yùn)行,輸入用戶(hù)的身份ID、用戶(hù)私鑰skID、用戶(hù)公鑰PKID和系統(tǒng)參數(shù)params,生成請(qǐng)求消息M。然后將M發(fā)給AP。AP驗(yàn)證消息M的有效性,如果有效,輸出Accept;否則,輸出Reject。
8) 撤銷(xiāo)(ID,t,sID,t)。由PKG運(yùn)行,當(dāng)用戶(hù)ID的密鑰泄露或服務(wù)到期時(shí),停止為ID更新時(shí)間密鑰sID,t。
本文協(xié)議涉及以下3類(lèi)敵手。
1) 敵手A1。該敵手是外部敵手,他不知道系統(tǒng)主密鑰,但可以替換任意合法用戶(hù)的公鑰以及從公共信道得到用戶(hù)的時(shí)間密鑰。
2) 敵手A2。這類(lèi)敵手有誠(chéng)實(shí)但是好奇的PKG,他可以知道系統(tǒng)的主密鑰,但是不能替換用戶(hù)公鑰。
3) 敵手A3。這類(lèi)敵手是已經(jīng)撤銷(xiāo)的用戶(hù),他不知道系統(tǒng)主密鑰和更新的時(shí)間密鑰,但可以替換用戶(hù)公鑰。
協(xié)議的安全性由以下3個(gè)游戲表示。
游戲1挑戰(zhàn)者C運(yùn)行初始化算法,生成系統(tǒng)參數(shù)和主密鑰。C保留主密鑰,發(fā)送系統(tǒng)參數(shù)給A1。A1可以進(jìn)行詢(xún)問(wèn)。
1) 用戶(hù)秘密值詢(xún)問(wèn)。A1發(fā)送一個(gè)用戶(hù)的身份ID,C執(zhí)行用戶(hù)秘密值算法,然后將xID返回。
2) 用戶(hù)公鑰詢(xún)問(wèn)。A1詢(xún)問(wèn)身份為ID的用戶(hù)公鑰,C執(zhí)行公鑰提取算法,然后將PKID返回。
3) 部分私鑰詢(xún)問(wèn)。A1發(fā)送一個(gè)用戶(hù)的身份ID,C執(zhí)行部分私鑰提取算法,然后將sID返回。
4) 時(shí)間密鑰詢(xún)問(wèn)。A1詢(xún)問(wèn)身份為ID的用戶(hù)在t時(shí)刻的時(shí)間密鑰,C執(zhí)行時(shí)間密鑰提取算法,然后將sID,t返回。
5) 公鑰替換詢(xún)問(wèn)。A1將身份為ID的用戶(hù)公鑰PKID替換成PKI′D。C將記錄該過(guò)程。
6) 認(rèn)證詢(xún)問(wèn)。A1代表身份為ID的用戶(hù)在公鑰PKID和時(shí)間t下進(jìn)行認(rèn)證詢(xún)問(wèn),C執(zhí)行認(rèn)證算法得到認(rèn)證消息{Xi,Qi},然后將{Xi,Qi} 返回給A1。
A1輸出身份ID*在和t*下的認(rèn)證消息若滿(mǎn)足以下條件,則A1贏得游戲。
①A1沒(méi)有執(zhí)行過(guò)對(duì) (ID*,t*)的認(rèn)證詢(xún)問(wèn)。
②A1沒(méi)有提交過(guò)對(duì)ID*的部分私鑰詢(xún)問(wèn)。
游戲2C運(yùn)行初始化算法,產(chǎn)生系統(tǒng)參數(shù)和系統(tǒng)主密鑰,然后將參數(shù)和主密鑰發(fā)送給A2。A2可以進(jìn)行以下詢(xún)問(wèn)。
1) 用戶(hù)秘密值詢(xún)問(wèn)。A2發(fā)送一個(gè)用戶(hù)的身份ID,C執(zhí)行秘密值提取算法,然后將xID返回。
2) 用戶(hù)公鑰詢(xún)問(wèn)。A2詢(xún)問(wèn)身份為ID的用戶(hù)公鑰,C執(zhí)行公鑰提取算法,然后將PKID返回。
3) 認(rèn)證詢(xún)問(wèn)。A2代表身份為ID的用戶(hù)在公鑰PKID和時(shí)間t下進(jìn)行認(rèn)證詢(xún)問(wèn),C執(zhí)行認(rèn)證算法得到認(rèn)證消息{Xi,Qi},然后將{Xi,Qi} 返回。
A2輸出身份ID*在和t*下的認(rèn)證消息若滿(mǎn)足以下條件,則A2贏得游戲。
①A2沒(méi)有執(zhí)行過(guò)對(duì) (ID*,t*)的認(rèn)證詢(xún)問(wèn)。
②A2沒(méi)有詢(xún)問(wèn)過(guò)對(duì)用戶(hù)ID*的秘密值詢(xún)問(wèn)。
游戲3C執(zhí)行初始化算法,產(chǎn)生系統(tǒng)參數(shù)和系統(tǒng)主密鑰。C保留主密鑰,但將參數(shù)發(fā)給A3。A3可以進(jìn)行以下詢(xún)問(wèn)。
1) 時(shí)間密鑰詢(xún)問(wèn)。A3詢(xún)問(wèn)身份為ID的用戶(hù)在t時(shí)刻的時(shí)間密鑰,C執(zhí)行時(shí)間密鑰提取算法,然后將sID,t返回。
2) 公鑰替換詢(xún)問(wèn)。A3將身份為ID的用戶(hù)公鑰PKID替換成PKI′D。C將記錄下該過(guò)程。
3) 認(rèn)證詢(xún)問(wèn)。A3代表身份為ID的用戶(hù)在公鑰PKID和時(shí)間t下進(jìn)行認(rèn)證詢(xún)問(wèn),C執(zhí)行認(rèn)證算法得到認(rèn)證消息{Xi,Qi},然后將{Xi,Qi} 返回給A3。
A3輸出身份ID*在和t*下的認(rèn)證消息若滿(mǎn)足以下條件,則A3贏得游戲。
①A3沒(méi)執(zhí)行 (ID*,t*)的認(rèn)證詢(xún)問(wèn)。
②A3沒(méi)提交過(guò)對(duì) (ID*,t*)的時(shí)間密鑰詢(xún)問(wèn)。
定義1 如果敵手A1、A2和A3贏得游戲1、游戲2和游戲3的概率都是可忽略的,那么認(rèn)證協(xié)議是安全的。
為了滿(mǎn)足安全性需求以及實(shí)現(xiàn)用戶(hù)撤銷(xiāo),本文提出了一種新的高效可撤銷(xiāo)的無(wú)證書(shū)遠(yuǎn)程匿名認(rèn)證協(xié)議。協(xié)議包括4個(gè)階段:初始化階段、密鑰生成階段、認(rèn)證階段和撤銷(xiāo)階段。
給定安全參數(shù)λ,PKG執(zhí)行以下步驟。
1) 根據(jù)2.1節(jié)內(nèi)容生成大素?cái)?shù)p、q和其中,G的階為q。
當(dāng)AP提供服務(wù)之前,需要先執(zhí)行以下的步驟向PKG注冊(cè)。
2) PKG收到IDAP和PKAP后,執(zhí)行以下步驟。
圖3 初始化和密鑰生成階段的具體過(guò)程
當(dāng)用戶(hù)的服務(wù)到期或密鑰泄露時(shí),PKG需要撤銷(xiāo)該用戶(hù)。PKG將時(shí)間t更新為最新的撤銷(xiāo)時(shí)間然后通過(guò)公共信道為未撤銷(xiāo)的用戶(hù)分發(fā)更新的時(shí)間密鑰。PKG維持一個(gè)列表ITL,記錄撤銷(xiāo)用戶(hù)身份和撤銷(xiāo)時(shí)間。具體如表1所示。例如,在t2時(shí)刻,PKG檢測(cè)到身份為IDC1的密鑰泄露或服務(wù)到期,PKG將 (IDC1,t1)存儲(chǔ)在ITL表中,然后為未撤銷(xiāo)用戶(hù)分發(fā)時(shí)刻為t2的時(shí)間密鑰。
表1 撤銷(xiāo)過(guò)程
引理1 在隨機(jī)預(yù)言模型下,如果A1能在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)ε攻破本文的協(xié)議,其中,A1最多進(jìn)行qs次認(rèn)證詢(xún)問(wèn)、qk次部分私鑰詢(xún)問(wèn)和qt次時(shí)間密鑰詢(xún)問(wèn),則存在S可以以不可忽略的概率解決DL問(wèn)題。
證明 假定A1是攻擊者,給定{P,aP},構(gòu)造算法S,利用S解決DL問(wèn)題,計(jì)算a。
設(shè)Ppub=aP,其中,a是系統(tǒng)主密鑰。S維護(hù)列表L、L1、L2、L3、L4、LK、Lt、LPK分別用于存儲(chǔ)A1對(duì)h、h1、h2、h3、h4、部分私鑰、時(shí)間密鑰和用戶(hù)公鑰詢(xún)問(wèn)的記錄。初始狀態(tài)下列表為空。A1可以執(zhí)行以下詢(xún)問(wèn)。
圖4 認(rèn)證協(xié)議具體過(guò)程
h詢(xún)問(wèn)。收到 A1對(duì)的h詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 若表L存在 {IDC,RC,PKC,aC},則返回 aC給 A1。
h1詢(xún)問(wèn)。收到 A1對(duì) {IDC,t,PKC,WC,bC}的h1詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 若列表L1中存在 {IDC,WC,bC,t,PKC},則返回 bC給 A1。
部分私鑰詢(xún)問(wèn)。收到 A1對(duì) {IDC,PKC}的部分私鑰詢(xún)問(wèn)后,S進(jìn)行以下操作,其中,S隨機(jī)選擇 I D*的概率為θ。
1) 若 I DC= I D*,S失敗并終止模擬。
時(shí)間密鑰詢(xún)問(wèn)。收到 A1對(duì) {I DC,t,PKC}的時(shí)間密鑰詢(xún)問(wèn)后,S執(zhí)行以下操作。
1) 若表 Lt中存在,則返回給 A1。
用戶(hù)秘密值詢(xún)問(wèn)。收到 A1對(duì) I DC的秘密值詢(xún)問(wèn)后,S檢索 I DC的公鑰詢(xún)問(wèn)列表 xC,然后將 xC返回給 A1。
用戶(hù)公鑰詢(xún)問(wèn)。收到 A1對(duì) I DC的公鑰詢(xún)問(wèn)后,S進(jìn)行以下操作。
公鑰替換詢(xún)問(wèn)。收到 A1對(duì) P KC的公鑰替換詢(xún)問(wèn)后,S從表LPK中檢索 {IDC,PKC,xC},令PKC=,并將 {IDC,PKC,⊥}添加到表LPK中。
h1詢(xún)問(wèn)。收到A1對(duì) {IDC,Xi,Xi′,tC}的h2詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 當(dāng)表 L2中有 {IDC,Xi,Xi′,tC,vi},則返回vi給A1。
2) 否則,S隨機(jī)選擇 vi∈R,返回vi并將{I DC,Xi,Xi′,tC,vi}加入L2中。
h3詢(xún)問(wèn)。收到A1對(duì) {IDC,RC,WC,tC,PKC}的h3詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 當(dāng)表 L3中有 {IDC,RC,WC,PKC,tC,li},則返回 li給A1。
2) 否則,S選擇 li∈,返回li給A1并將{I DC,RC,WC,PKC,tC,li}加入 L3中。
h4詢(xún)問(wèn)。收到A1對(duì) Xi′的 h4詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 當(dāng)表 L3中有 {h4,Xi′},則返回 h4給A1。
2) 否則S隨機(jī)選擇 h4∈ {0,1}l,返回 li給{I DC,RC,WC,tC}并將 {h4,Xi′ }加入 L4中。
認(rèn)證詢(xún)問(wèn)。收到A1對(duì) {IDC,PKC,t}的認(rèn)證詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 若 (I DC,t) ≠ (I D*,t*)并且公鑰未被替換,S選擇計(jì)算并將{Xi,Qi} 返回給A1。
2) 若 (I DC,t) =(I D*,t*)或公鑰已經(jīng)被替換,S失敗并終止模擬。
最后A1輸出的認(rèn)證消息
A1選擇計(jì)算然后將認(rèn)證消息返回給S。S收到后,計(jì)算,解密得到其中,簽名滿(mǎn)足式(1)
S根據(jù)分叉引理[17]選擇不同的h可以得到另一個(gè)合法認(rèn)證消息并且簽名滿(mǎn)足式(2)
根據(jù)式(1)和式(2),可以推出
引理2 在隨機(jī)預(yù)言模型下,如果 A2能在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)ε攻破本文的認(rèn)證協(xié)議,其中, A2最多進(jìn)行 qs次認(rèn)證詢(xún)問(wèn), qk次部分私鑰詢(xún)問(wèn)和 qt次時(shí)間密鑰詢(xún)問(wèn),則存在S可以以不可忽略的概率解決DL問(wèn)題。
證明假定 A2是攻擊者,給定{P,aP},構(gòu)造算法S,利用S解決DL問(wèn)題,計(jì)算a。
S設(shè) Ppub= s P,其中,s是系統(tǒng)主密鑰。 A2知道系統(tǒng)主密鑰并且 A2不允許執(zhí)行公鑰替換詢(xún)問(wèn)。其中, h 、 h1、h2、h3、h4詢(xún)問(wèn)可參見(jiàn)引理1。
用戶(hù)公鑰詢(xún)問(wèn)。收到 A2對(duì) I DC的公鑰詢(xún)問(wèn)后,S進(jìn)行以下操作。
用戶(hù)秘密值詢(xún)問(wèn)。收到 A2對(duì) I DC的秘密值詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 若 I DC= I D*,S失敗并終止模擬。
2) 否則,S檢索 I DC的公鑰詢(xún)問(wèn)列表 xC,然后將 xC返回給 A2。
認(rèn)證詢(xún)問(wèn)。收到 A2對(duì) {IDC,PKC,t}的認(rèn)證詢(xún)問(wèn)后,S進(jìn)行以下操作。
最后 A2輸出的認(rèn)證消息
A2選擇計(jì)算并將返回給S。S收到后,計(jì)算解密得到其中,簽名滿(mǎn)足式(3)
S根據(jù)分叉引理[17]選擇不同的 h2可以得到另一個(gè)認(rèn)證消息其中,簽名滿(mǎn)足式(4)
根據(jù)式(3)和式(4),可以推出
引理3 在隨機(jī)預(yù)言模型下,如果 A3能在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)ε攻破認(rèn)證協(xié)議,其中,A3最多進(jìn)行 qs次認(rèn)證詢(xún)問(wèn), qk次部分私鑰詢(xún)問(wèn)和qt次時(shí)間密鑰詢(xún)問(wèn),則存在S可以以不可忽略的概率解決DL問(wèn)題。
證明假定 A3是攻擊者,給定{P,aP},構(gòu)造算法S,利用S解決DL問(wèn)題,計(jì)算a。
S設(shè) Ppub= a P,其中,a是系統(tǒng)主密鑰。 A3是已經(jīng)撤銷(xiāo)的用戶(hù),知道秘密值和部分私鑰。 A3執(zhí)行的 h、h1、h2、h3、h4以及秘密值,公鑰替換詢(xún)問(wèn)可參見(jiàn)引理1。
部分私鑰詢(xún)問(wèn)。收到 A3對(duì)的部分私鑰詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 當(dāng)表 Lt中有則返回(sC,RC)給 A3。
時(shí)間密鑰詢(xún)問(wèn)。收到 A3對(duì)的時(shí)間密鑰詢(xún)問(wèn)后,S進(jìn)行以下操作。
1) 若 (I DC,t) ≠ (I D*,t*),S隨機(jī)選取sC,t,計(jì)算返回 {sC,t,WC} 給A3,并添加到Lt中。
用戶(hù)公鑰詢(xún)問(wèn)。收到 A3對(duì) I DC的公鑰詢(xún)問(wèn)后,S進(jìn)行以下操作。
認(rèn)證詢(xún)問(wèn)。收到 A3對(duì)的認(rèn)證詢(xún)問(wèn)后,S進(jìn)行以下操作。
最后,A3輸出的認(rèn)證消息
A3選擇計(jì)算以及然后將返回給 S。S收到后,計(jì)算解密后得到其中,簽名滿(mǎn)足式(5)
S根據(jù)分叉引理[17]選擇不同的 h1可以得到另一個(gè)合法認(rèn)證消息,并且簽名滿(mǎn)足式(6)
根據(jù)式(5)和式(6),可以推出
下面的分析證實(shí)本文協(xié)議也滿(mǎn)足客戶(hù)匿名、相互認(rèn)證、不可鏈接、會(huì)話(huà)密鑰安全、前向安全和可撤銷(xiāo)等安全性需求。
2) 相互認(rèn)證性。在前面的分析中可以得出只有合法的C和AP可以生成合法請(qǐng)求消息和應(yīng)答因此,C和AP可以通過(guò)驗(yàn)證消息的有效性來(lái)確定對(duì)方是否合法。所以本文的協(xié)議滿(mǎn)足相互認(rèn)證性。
4) 會(huì)話(huà)密鑰安全性。相互認(rèn)證之后,C和AP將建立會(huì)話(huà)密鑰其中,如果敵手想要偽造會(huì)話(huà)密鑰,需要解決CDH問(wèn)題。而CDH問(wèn)題是難解的,所以本文協(xié)議能夠提供會(huì)話(huà)密鑰安全性。
5) 前向安全性。在協(xié)議的執(zhí)行過(guò)程中,C和AP可以生成會(huì)話(huà)密鑰即使敵手知道C和AP的長(zhǎng)期私鑰,計(jì)算會(huì)話(huà)密鑰還需要從中計(jì)算出 cidiP,即要解決CDH問(wèn)題。而CDH問(wèn)題是難解的,所以本文的協(xié)議滿(mǎn)足前向安全性。
6) 可撤銷(xiāo)性。當(dāng)用戶(hù)的密鑰泄露或服務(wù)到期時(shí),PKG需要撤銷(xiāo)該用戶(hù)。此時(shí)PKG將為未撤銷(xiāo)的用戶(hù)更新時(shí)間密鑰而撤銷(xiāo)用戶(hù)的時(shí)間密鑰將不更新,所以本文協(xié)議可撤銷(xiāo)性。
本節(jié)將本文協(xié)議與文獻(xiàn)[12,13]的協(xié)議進(jìn)行功能對(duì)比。表2中√表示能滿(mǎn)足該性質(zhì),×表示不能滿(mǎn)足該性質(zhì)??梢?jiàn)本文協(xié)議和文獻(xiàn)[13]中的協(xié)議滿(mǎn)足所有的常見(jiàn)安全性需求,而文獻(xiàn)[12]中協(xié)議未考慮到用戶(hù)撤銷(xiāo)問(wèn)題。
表2 功能對(duì)比
本文協(xié)議中C端在Inter? Core i7 CPU 3.6 GHZ處理器,內(nèi)存為512 MB,操作系統(tǒng)為Win7上模擬,AP端在Inter? Core i5CPU 2.4 GHz處理器,內(nèi)存為4 GB,操作系統(tǒng)為Win10 OS上模擬,并使用JPBC庫(kù)[18]量化密碼學(xué)操作時(shí)間。在模擬實(shí)驗(yàn)中采用超奇異曲線(xiàn)E/FP:y2=x3+x,其中,階q是160 bit的Solonas素?cái)?shù),G1中的元素為512 bit,假定協(xié)議中使用的身份信息和時(shí)間戳均為 32 bit。此外,對(duì)稱(chēng)加密/解密操作、消息認(rèn)證碼以及普通散列函數(shù)操作的時(shí)間較短[19],可以忽略不計(jì)。
6.2.1 計(jì)算代價(jià)分析
通過(guò)模擬實(shí)驗(yàn)結(jié)果取20次平均值得到C和AP的計(jì)算代價(jià)。根據(jù)模擬實(shí)驗(yàn)結(jié)果,給出圖 5和圖6的代價(jià)對(duì)比。圖5中給出本文協(xié)議中C的計(jì)算代價(jià)隨著AP數(shù)量增加的關(guān)系,對(duì)應(yīng)多位專(zhuān)家會(huì)診等現(xiàn)實(shí)情況,圖6中給出本文協(xié)議中AP端計(jì)算代價(jià)隨著C數(shù)量增加的關(guān)系。本文的協(xié)議基于橢圓曲線(xiàn),沒(méi)有使用高代價(jià)的雙線(xiàn)性對(duì)以及map-to-point散列操作。由圖5和圖6可以看出,與文獻(xiàn)[12]和文獻(xiàn)[13]相比,C端及AP端的計(jì)算代價(jià)有了大幅降低。
圖5 C端計(jì)算代價(jià)與AP端數(shù)量的關(guān)系
圖6 AP端計(jì)算代價(jià)與C端數(shù)量的關(guān)系
6.2.2 存儲(chǔ)代價(jià)分析
通過(guò)模擬實(shí)驗(yàn)選定的參數(shù)q、G,可以計(jì)算得到協(xié)議的存儲(chǔ)代價(jià)。
在文獻(xiàn)[12]的協(xié)議中,C存儲(chǔ)2m+3 個(gè)G中的元素和m個(gè)身份信息,其中,m表示AP的數(shù)量。所以 C端的存儲(chǔ)代價(jià)為 160×(2m+3)+32m=(480+352m) bit;AP存儲(chǔ)3個(gè)G中的元素,所以AP端的存儲(chǔ)代價(jià)為160×3=480 bit。
在文獻(xiàn)[13]的協(xié)議中,WBAN的用戶(hù)個(gè)數(shù)為n= 2a個(gè),C存儲(chǔ)2a+3個(gè)G1中的元素和一個(gè)隨機(jī)數(shù),所以C端的存儲(chǔ)代價(jià)為512×(2a+3)+160 =(1 024a+1 696) bit。AP端存儲(chǔ)2a+3 個(gè)G1的元素和一個(gè)隨機(jī)數(shù),所以 AP端存儲(chǔ)代價(jià)為 512×(2a+3)+160 =(1 024a+1 696) bit。
在本文協(xié)議中,C存儲(chǔ)3m+5個(gè)G中的元素和m個(gè)身份信息,其中,m表示AP的數(shù)量。所以C端的存儲(chǔ)代價(jià)為160×(3m+5)+3 2m=(512m+800) bit;AP端存儲(chǔ)5個(gè)G中的元素,則AP端的存儲(chǔ)代價(jià)為160×5=800 bit。具體比較如表3所示,在實(shí)際應(yīng)用中m遠(yuǎn)遠(yuǎn)小于n。由于本文協(xié)議實(shí)現(xiàn)了用戶(hù)撤銷(xiāo),需要多存儲(chǔ)額外的時(shí)間密鑰,所以代價(jià)比文獻(xiàn)[12]要稍高。但與文獻(xiàn)[13]對(duì)比,本文協(xié)議的存儲(chǔ)代價(jià)大大降低。
表3 存儲(chǔ)代價(jià)對(duì)比
6.2.3 通信代價(jià)分析
通過(guò)模擬實(shí)驗(yàn)選定的參數(shù)q、G,可以計(jì)算得到協(xié)議的通信代價(jià)。
在文獻(xiàn)[12]的協(xié)議中,C發(fā)送的消息包括4個(gè)G中的元素,一個(gè)身份信息和一個(gè)時(shí)間戳。AP發(fā)送的消息包括一個(gè)G中元素和一個(gè)MAC碼。所以協(xié)議的通信代價(jià)為160×5+32+32+160=1 024 bit。
在文獻(xiàn)[13]的協(xié)議中,C發(fā)送的消息包括8個(gè)G1中的元素,一個(gè)身份信息和一個(gè)時(shí)間戳。AP發(fā)送的消息包括一個(gè)G1中元素和一個(gè)MAC碼。所以協(xié)議的通信代價(jià)為512×9+160+32+32=4 832 bit。
在本文的協(xié)議中,C發(fā)送的消息包括5個(gè)G中元素,一個(gè)身份信息和一個(gè)時(shí)間戳,AP發(fā)送的消息包括一個(gè)G中元素和一個(gè)MAC碼。所以協(xié)議的通信代價(jià)為160×6+32+32+160=1 184 bit。表4給出了詳細(xì)的通信代價(jià)比較,本文協(xié)議比文獻(xiàn)[12]通信代價(jià)稍高,因?yàn)樵趥鬏斶^(guò)程中需要發(fā)送額外的參數(shù),但是本文考慮了用戶(hù)撤銷(xiāo)的問(wèn)題,代價(jià)稍高是可以接受的。
表4 通信代價(jià)比較
文獻(xiàn)[13]的協(xié)議中使用KUNode算法進(jìn)行用戶(hù)撤銷(xiāo),PKG計(jì)算和分發(fā)時(shí)間密鑰的代價(jià)是n和r的函數(shù),其中,n是用戶(hù)個(gè)數(shù),r是撤銷(xiāo)用戶(hù)的個(gè)數(shù)。當(dāng)時(shí),PKG的密鑰更新代價(jià)隨著用戶(hù)而對(duì)數(shù)增加;當(dāng)PKG的密鑰更新代價(jià)隨著用戶(hù)而線(xiàn)性增加。雖然這種方案可以降低 PKG的更新代價(jià),但是會(huì)導(dǎo)致C端存儲(chǔ)大量樹(shù)形結(jié)構(gòu)中的內(nèi)容,存儲(chǔ)代價(jià)較大。在本文協(xié)議中,PKG的撤銷(xiāo)代價(jià)是隨著用戶(hù)個(gè)數(shù)線(xiàn)性增加的。由表5可以看出,在撤銷(xiāo)用戶(hù)較少的情況下,本文協(xié)議中 PKG的更新代價(jià)相對(duì)于KUNode算法會(huì)較高,但是由表5可以看出本文協(xié)議大大減少了 C端的存儲(chǔ)代價(jià)。而 PKG的資源比較充足,增加 PKG的代價(jià)是可行的。所以本文協(xié)議更加適用于WBAN。
表5 PKG撤銷(xiāo)代價(jià)對(duì)比
本文基于時(shí)間密鑰和橢圓曲線(xiàn)提出了可撤銷(xiāo)的無(wú)證書(shū)遠(yuǎn)程匿名認(rèn)證協(xié)議,實(shí)驗(yàn)結(jié)果表明本文協(xié)議大大降低了用戶(hù)端的計(jì)算代價(jià)和存儲(chǔ)代價(jià)。經(jīng)過(guò)安全性證明以及詳細(xì)的功能分析說(shuō)明本文協(xié)議是安全有效的,更適用于資源受限的無(wú)線(xiàn)體域網(wǎng)。
參考文獻(xiàn):
[1]ZIMMERMAN T G. Personal area networks: near-field intra body communications[J]. IBM System Journal,1996,35(3/4):609-617.
[2]LAMPORT L. Password authentication with insecure communication[J]. Communications of the ACM,1981,24(24):770-772.
[3]LI M,YU S,LOU W,et al. Group device pairing based secure sensor association and key management for body area networks[C]// Conference on Information Communications. 2010:2651-2659.
[4]LI M,YU S,GUTTMAN J D,et al. Secure ad hoc trust initialization and key management in wireless body area networks[J]. ACM Transactions on Sensor Networks,2013,9(2):1-35.
[5]YANG J H,CHANG C C. An ID-based remote mutual authentication with key agreement scheme for mobile devices on elliptic curve cryptosystem[J]. Computer Security,2009,28 (3-4):138-143.
[6]HE D,CHEN J,HU J. An ID-based client authentication with key agreement protocol for mobile client-server environment on ECC with provable security[J]. Information Fusion,2012,13(3):223-230.
[7]HE D,ZEADALLY S,KUMAR N,et al. Anonymous authentication for wireless body area networks with provable security[J]. IEEE System Journal,2016,(99):1-12.
[8]SHAMIR A. Identity-based cryptosystems and signature schemes[M]//Advances in Cryptology (Lecture Notes in Computer Science).Springer-Verlag,1984,196:47-53.
[9]Al-RIYAMI S S,PATERSON K G. Certificateless public key cryptography[C]//International Conference on the Theory and Application of Cryptology and Information Security. 2003:452-473.
[10]LIU J,ZHANG Z,SUN R,et al. An efficient certificateless remote anonymous authentication scheme for wireless body area networks[C]//IEEE International Conference on Communications.2012:3404-3408.
[11]LIU J,ZHANG Z,CHEN X,et al. Certificateless remote anonymous authentication schemes for wireless body area networks[J]. IEEE Transactions on Parallel & Distributed Systems,2014,25(2):332-342.
[12]XIONG H. Cost-effective scalable and anonymous certificateless remote authentication protocol[J]. IEEE Transactions on Information Forensics & Security,2014,9(12):2327-2339.
[13]XIONG H,QIN Z. Revocable and scalable certificateless remote authentication protocol with anonymity for wireless body area networks[J]. IEEE Transactions on Information Forensics & Security,2015,10(7):1442-1455.
[14]SEO J H,EMURA K. Revocable identity-based cryptosystem revisited:security models and constructions[M]. IEEE Press,2014.
[15]TSAI T T,TSENG Y M. Revocable certificateless public key encryption [J]. IEEE Systems Journal,2015,9(3):824-833.
[16]CILARDO A,COPPOLINO L,MAZZOCCA N,et al. Elliptic curve cryptography engineering[J]. Proceedings of the IEEE,2006,94(2):395-406.
[17]BELLARE M,NEVEN G. Multi-signatures in the plain public-key model and a general forking lemma[C]// ACM Conference on Computer and Communications Security. 2006:390-399.
[18]CARO A D,IOVINO V. jPBC: Java pairing based cryptography[C]//Computers and Communications. 2011:850-855.
[19]CHATTERJEE S,DAS A,SING J. An enhanced access control scheme in wireless sensor networks[J]. Ad-Hoc Sensor Wireless Network,2014,21(1-2):121-149.