柳欣,徐秋亮,張斌,張波
(1. 山東青年政治學(xué)院信息工程學(xué)院,山東 濟(jì)南 250103;
2. 山東省高校信息安全與智能控制重點(diǎn)實(shí)驗(yàn)室(山東青年政治學(xué)院),山東 濟(jì)南 250103;3. 山東大學(xué)軟件學(xué)院,山東 濟(jì)南 250101;4. 濟(jì)南大學(xué)信息科學(xué)與工程學(xué)院,山東 濟(jì)南 250022)
當(dāng)前,云服務(wù)模式因其在運(yùn)算能力強(qiáng)、存儲(chǔ)空間無(wú)限、容易擴(kuò)展和按需提供服務(wù)[1]等方面的優(yōu)勢(shì)而逐漸贏得企業(yè)和個(gè)人用戶的青睞。在各類(lèi)云應(yīng)用系統(tǒng)(如分布式醫(yī)療系統(tǒng)[2-3]、企業(yè)計(jì)算[4]等)的設(shè)計(jì)中,需要著重考慮用戶的隱私保護(hù)和細(xì)粒度訪問(wèn)控制問(wèn)題。對(duì)此,屬性認(rèn)證技術(shù)提供了較好的解決方案。在屬性認(rèn)證方案中,認(rèn)證過(guò)程通常由用戶對(duì)某項(xiàng)服務(wù)的請(qǐng)求觸發(fā)。一旦服務(wù)提供商(SP, service provider)接收到該項(xiàng)請(qǐng)求,就會(huì)返回認(rèn)證所需的屬性要求(或稱為訪問(wèn)結(jié)構(gòu))。此時(shí),用戶向SP提供自己掌握這些屬性的證明。若證明有效,用戶將得到后者的訪問(wèn)授權(quán)。在整個(gè)認(rèn)證過(guò)程中,用戶不需要揭示自己具體使用的屬性集合。相對(duì)于傳統(tǒng)的基于公鑰的認(rèn)證[5-7],屬性認(rèn)證的最大優(yōu)勢(shì)是允許系統(tǒng)管理者根據(jù)用戶屬性為用戶群體中的每個(gè)成員定制訪問(wèn)權(quán)限,使不同用戶可以利用屬性私鑰訪問(wèn)不同的敏感數(shù)據(jù)或服務(wù)。
在文獻(xiàn)[3]中,Zhou等提出一個(gè)病人自我可控的隱私保護(hù)屬性認(rèn)證方案。該方案定義了3個(gè)隱私保護(hù)等級(jí)。1)得到病人直接授權(quán)的醫(yī)生既能訪問(wèn)病人健康信息,也能實(shí)現(xiàn)對(duì)病人的身份認(rèn)證。2)得到病人間接授權(quán)的醫(yī)生和研究機(jī)構(gòu)僅能訪問(wèn)病人健康信息。3)未得到授權(quán)的人將無(wú)法獲得病人的健康信息。然而,Zhou等的方案僅支持d-out-of-n門(mén)限認(rèn)證策略。2014年,Lian等[8]指出在許多情況下,認(rèn)證策略并非總是靜態(tài)的。為此,提出一個(gè)支持動(dòng)態(tài)認(rèn)證策略的屬性認(rèn)證方案。該方案可視為Maji等[9]屬性簽名(ABS, attribute-based signatures)方案的直接應(yīng)用。此后,Li等[4]指出某些應(yīng)用要求將用戶集合劃分為多個(gè)不同的小組,同時(shí)為組內(nèi)用戶分配不同的屬性。在認(rèn)證過(guò)程中,要求同組的多個(gè)成員對(duì)各自的屬性私鑰進(jìn)行合并。為此,通過(guò)對(duì)Maji等[9]ABS方案做出擴(kuò)展,Li等提出一個(gè)適合于企業(yè)計(jì)算環(huán)境的合作屬性認(rèn)證方案。2015年,Yang等[10]提出基于一次性屬性樹(shù)的屬性認(rèn)證方案,但缺點(diǎn)是:1) 用戶群體是采用靜態(tài)方式建立的,因此不允許動(dòng)態(tài)增加新的用戶;2) 屬性權(quán)威(AA,attribute authority)有能力從認(rèn)證協(xié)議副本中恢復(fù)用戶的身份,因此用戶必須完全信任AA。此外,Yang等[11]還提出一個(gè)基于動(dòng)態(tài)屬性樹(shù)的屬性認(rèn)證方案。然而,該方案與文獻(xiàn)[10]方案具有相同的缺點(diǎn)。此外,用戶必須在認(rèn)證過(guò)程中明確地向 SP揭示自己使用的屬性子集,即不滿足屬性匿名性。在文獻(xiàn)[12]中,Li等指出在實(shí)際應(yīng)用中有必要利用分布式AA取代單一的中央權(quán)威,并且提出一個(gè)多權(quán)威屬性認(rèn)證方案。然而,該方案的缺點(diǎn)是:1) 僅支持 d-out-of-n門(mén)限認(rèn)證策略;2) 在密鑰發(fā)布階段,用戶總共需要執(zhí)行N(N-1)次兩方密鑰協(xié)商子協(xié)議,其中,N表示系統(tǒng)中的 AA數(shù)量;3) 當(dāng)需要增加或刪除某個(gè)AA時(shí),所有剩余的AA需要重新執(zhí)行系統(tǒng)建立協(xié)議,而且用戶需要分別與每個(gè)AA重新執(zhí)行低效的密鑰協(xié)商子協(xié)議。
最近,Yuen等[13]提出第一個(gè)k次屬性訪問(wèn)控制方案模型以及一個(gè)具體方案。Yuen等指出,此類(lèi)方案可以同時(shí)解決按次付費(fèi)的云服務(wù)模式關(guān)于“靈活的匿名訪問(wèn)控制”和“用戶訪問(wèn)次數(shù)受限”的應(yīng)用需求。然而,該方案的缺點(diǎn)如下所示。1) 該方案是在標(biāo)準(zhǔn)PC平臺(tái)上設(shè)計(jì)的。一旦PC被攻破,該用戶即被完全攻破,從而無(wú)法體現(xiàn)其安全模型中關(guān)于“用戶部分被攻破”的情況。2) 在注冊(cè)協(xié)議中,用戶無(wú)法對(duì)AA提供的屬性私鑰進(jìn)行驗(yàn)證,即用戶必須完全信任 AA。3) Yuen等指出,為了防止惡意AA進(jìn)行陷害,用戶需要在注冊(cè)協(xié)議中選取用戶私鑰。然而,該方案的安全模型定義卻遺漏了可開(kāi)脫性。4) 在認(rèn)證過(guò)程中,用戶與SP的運(yùn)算量線性依賴于訪問(wèn)結(jié)構(gòu)的規(guī)模。5) 為了實(shí)施對(duì)訪問(wèn)次數(shù)的控制,要求用戶在認(rèn)證期間向 SP提供已執(zhí)行的認(rèn)證次數(shù)。然而,這種方式在某些情況下不滿足無(wú)關(guān)聯(lián)性。盡管 Yuen等指出可以通過(guò)引入?yún)^(qū)間證明技術(shù)加以改進(jìn),但并未提供具體方案。
本文認(rèn)為,Yuen等的方案可視為一種k次屬性認(rèn)證(k-TABA,k-times attribute-based authentication)方案。相對(duì)于基于傳統(tǒng)公鑰認(rèn)證技術(shù)的k-TAA(k-times anonymous authentication)方案[5-7],k-TABA方案因支持細(xì)粒度訪問(wèn)控制而更適合于當(dāng)前的云應(yīng)用環(huán)境。本文的研究目標(biāo)是設(shè)計(jì)認(rèn)證過(guò)程更為高效的k-TABA方案,同時(shí)克服已有屬性認(rèn)證方案[3-4,8,10-13]的諸多缺點(diǎn),主要包括:1) 用戶群體以靜態(tài)方式建立,且用戶無(wú)法在注冊(cè)過(guò)程中對(duì)屬性私鑰進(jìn)行驗(yàn)證;2) 用戶在認(rèn)證階段的運(yùn)算耗費(fèi)與底層屬性認(rèn)證策略滿足線性依賴關(guān)系;3) 既不允許AA對(duì)泄露的用戶私鑰執(zhí)行廢除,也不允許用戶申請(qǐng)更新特定屬性值。為此,本文基于可信計(jì)算領(lǐng)域的直接匿名證明[14-18]、Zhang等[19]的密文策略屬性加密方案和區(qū)間證明技術(shù)[20]構(gòu)造了新的k-TABA方案。需要指出的是,Zhang等的方案是采用屬性樹(shù)方式描述的。本文方案采用了基于線性秘密分享方案的描述方式,從而能更好地與Green等[21]的密鑰綁定技術(shù)相結(jié)合。借助此項(xiàng)技術(shù),本文提出Zhang等方案的外包解密版本,并將其安全性由 CPA(chosen plaintext attack)安全性增強(qiáng)至 RCCA(replayable chosen-ciphertext attack)安全性。此外,本文對(duì)Chen[15]的直接匿名證明安全模型進(jìn)行擴(kuò)展,從而得出新的k-TABA方案安全模型。同時(shí),在該模型下為新方案提供了安全性證明。與 Yuen等的k-TABA方案相比,本文方案具備以下優(yōu)勢(shì)。1) 用戶端運(yùn)算由主機(jī)平臺(tái)(Host)和可信的TPM(trusted platform module)芯片協(xié)同完成,使得即使敵手控制了Host,仍然無(wú)法以用戶的身份通過(guò)認(rèn)證過(guò)程。2) 引入了直接匿名證明方案的驗(yàn)證者本地廢除和Zhang等的屬性更新機(jī)制,從而滿足了現(xiàn)實(shí)應(yīng)用中對(duì)泄露的用戶私鑰實(shí)施廢除和允許用戶申請(qǐng)更新特定屬性值的需要。3)在用戶注冊(cè)過(guò)程中,允許用戶對(duì)AA提供的屬性私鑰進(jìn)行驗(yàn)證,從而無(wú)需假設(shè)AA完全可信。4) 在認(rèn)證階段,允許用戶借助云服務(wù)器完成復(fù)雜的屬性解密運(yùn)算,而且用戶端 TPM芯片與 Host的絕大部分運(yùn)算任務(wù)均能預(yù)先以離線方式執(zhí)行。于是,用戶端無(wú)需執(zhí)行雙線性對(duì)運(yùn)算(簡(jiǎn)稱為對(duì)運(yùn)算)且運(yùn)算開(kāi)銷(xiāo)獨(dú)立于用戶屬性集合或訪問(wèn)結(jié)構(gòu)。作為總結(jié),本文的主要貢獻(xiàn)體現(xiàn)在以下方面。1) 克服了上述已有k-TABA方案的多個(gè)缺陷,并提出改進(jìn)的安全模型。2) 結(jié)合直接匿名證明技術(shù)增強(qiáng)了用戶端的安全性。3) 結(jié)合無(wú)需執(zhí)行對(duì)運(yùn)算的知識(shí)證明、預(yù)計(jì)算和外包解密等技術(shù)在最大程度上優(yōu)化了用戶在認(rèn)證、屬性更新階段的運(yùn)算效率。4)去除了已有方案中關(guān)于“AA在注冊(cè)階段完全可信”的較強(qiáng)假設(shè)。
本文使用了對(duì)稱的雙線性群環(huán)境 (G0,GT,p,e?),其中,G0,GT表示素?cái)?shù)p階循環(huán)群,且表示雙線性映射,使
q- SDH (theq-strong Diffie-Hellman)假設(shè)[6]:對(duì)于任何的概率多項(xiàng)式時(shí)間(PPT, probabilistic polynomial time)算法A,以下的概率是可忽略的,即
DBDH(decisional bilinear Diffie-Hellman)假設(shè)[14]:對(duì)于任何的PPT算法A,以下的概率是可忽略的,即
DBDHI(decisional bilinear Diffie-Hellman inversion)假設(shè)[6]:對(duì)于任何的PPT算法A,以下的概率是可忽略的,即
首先,權(quán)威產(chǎn)生Boneh-Boyen簽名方案[22]的密鑰對(duì)對(duì)于集合中的每個(gè)元素k,該權(quán)威計(jì)算同時(shí),公開(kāi)集合
現(xiàn)在,用戶構(gòu)造知識(shí)證明 π =PK{ (k):k∈Φ }等價(jià)于構(gòu)造證明文獻(xiàn)[20]提出了避免用戶執(zhí)行對(duì)運(yùn)算的技術(shù),即用戶選 取l,ν ∈Zp, 設(shè) 置,并將π轉(zhuǎn)換為的形式。此外,驗(yàn)證者需要額外檢查是否滿足
本文稱在Zp上構(gòu)造的秘密分享方案Π是關(guān)于P的線性秘密分享方案(LSSS, linear secret sharing schemes)[21],條件是以下性質(zhì)同時(shí)得到滿足:1) 參與方的秘密份額構(gòu)成了Zp上的秘密向量;2) 存在l行列矩陣M,且該矩陣稱為方案Π的份額產(chǎn)生矩陣。存在函數(shù)ρ,該函數(shù)能將矩陣M的第i行Mi映射到參與方ρ(i)。定義列向量=(s,r2,r3,… ,rn),其中,s∈ Zp表示待分享的秘密元素,r2,r3, … ,rn∈Zp為隨機(jī)元素,則稱λ=→構(gòu)成由參與方ρ(i)掌握i的關(guān)于元素s的秘密份額。
屬性加密(ABE, attribute-based encryption)方案是屬性密碼學(xué)的一個(gè)重要分支,具體可細(xì)分為密鑰策略屬性加密(KP-ABE, key-policy ABE)方案和密文策略屬性加密(CP-ABE, ciphertext-policy ABE)方案[2]。相對(duì)于標(biāo)準(zhǔn)的ABE方案,支持外包解密的 ABE方案需要額外定義 3個(gè)算法,即KeyGenout,Transformout,Decryptout[21]。其中,KeyGenout算法的作用是產(chǎn)生用戶的解密私鑰ASK和轉(zhuǎn)換鑰TK;Transformout算法的作用是利用TK對(duì)密文CT執(zhí)行解密,得到部分解密的結(jié)果CT′;Decryptout算法的作用是利用ASK將CT′轉(zhuǎn)換為真正的明文m。
文獻(xiàn)[21, 23]指出,支持外包解密的ABE方案應(yīng)當(dāng)滿足RCCA安全性和可驗(yàn)證性。其中,RCCA安全性是一個(gè)強(qiáng)度介于 CCA(chosen-ciphertext attack)安全性和CPA安全性之間的概念。在本質(zhì)上,RCCA安全性允許在“不以有意義方式改變消息內(nèi)容”的條件下對(duì)密文做出修改[21]。本文著重考慮支持外包解密的CP-ABE方案的安全性。具體地,本文稱支持外包解密的CP-ABE方案滿足選擇性的RCCA安全性[21],條件是任何的 PPT算法A都無(wú)法以不可忽略的概率在以下的實(shí)驗(yàn)中獲勝:在初始化階段,敵手A向模擬器S發(fā)送用于產(chǎn)生挑戰(zhàn)密文的訪問(wèn)結(jié)構(gòu) A*。在系統(tǒng)建立階段,S向A提供APK。在詢問(wèn) 1階段,允許A提出預(yù)言詢問(wèn)Create(S),Corrupt(i),Decrypt(i,Cha)。其中,預(yù)言機(jī)Create(·)產(chǎn)生關(guān)于屬性集合S的解密私鑰ASK和轉(zhuǎn)換鑰TK,并且返回TK。預(yù)言機(jī)Corrupt(·)返回第i次Create詢問(wèn)中產(chǎn)生的ASK。預(yù)言機(jī)Decrypt(·,·)利用第i次Create詢問(wèn)中產(chǎn)生的ASK解密密文Cha,并且返回解密結(jié)果m。在挑戰(zhàn)階段,A輸出消息M0,M1,條件是A并不掌握能滿足訪問(wèn)結(jié)構(gòu) A*的解密私鑰。此時(shí),S向A返回利用 A*產(chǎn)生的關(guān)于消息Mb(b∈{0, 1} )的挑戰(zhàn)密文Cha*。在詢問(wèn)2階段,允許A繼續(xù)提出上述類(lèi)型的詢問(wèn)。但是,不允許A通過(guò)Corrupt詢問(wèn)獲得能滿足 A*的解密私鑰,也不允許A直接將Cha*作為Decrypt詢問(wèn)的內(nèi)容。最終,若A能對(duì)秘密比特做出正確猜測(cè),則判定它在實(shí)驗(yàn)中獲勝。
可驗(yàn)證性是指用戶可以驗(yàn)證由服務(wù)器執(zhí)行的密文轉(zhuǎn)換過(guò)程是否正確[23]。可驗(yàn)證性實(shí)驗(yàn)與上述實(shí)驗(yàn)的區(qū)別如下:1) 去除初始化階段;2) 在詢問(wèn) 1和詢問(wèn) 2階段,同樣允許A提出預(yù)言詢問(wèn)Create(S),Corrupt(i),Decrypt(i,Cha),但不對(duì)A的詢問(wèn)內(nèi)容做出限制;3) 在挑戰(zhàn)階段,A輸出M*,A。此時(shí),返回Cha*=Encrypt(APK,M*,A );4) 在最終的輸出階段,輸出屬性集合S*和部分解密結(jié)果Cha*′。若滿足Decryptout(APK,Cha*,Cha*′,則判定在實(shí)驗(yàn)中獲勝。
直接匿名證明(DAA, direct anonymous attestation)[14-18]是一類(lèi)可用于實(shí)現(xiàn)可信平臺(tái)模塊遠(yuǎn)程證明的匿名簽名方案,且所得簽名可以確保用戶的隱私。在DAA方案中,簽名者角色可劃分為主要簽名者和輔助簽名者。前者由運(yùn)算能力受限的 TPM芯片充當(dāng),后者則由具有冗余計(jì)算能力但安全等級(jí)更低的Host充當(dāng)。由于TPM掌握簽名私鑰f,因此 Host無(wú)法在 TPM 不參與的情況下獨(dú)立產(chǎn)生簽名。最新研究表明,許多DAA方案中的TPM可被作為靜態(tài)Diffie-Hellman預(yù)言機(jī)使用,即給定群元素B,TPM輸出Bf。于是,若Host被攻破,敵手可以利用 Brown-Gallant算法提取出私鑰f[17-18]。因此,在DAA方案的設(shè)計(jì)與應(yīng)用中,必須破壞靜態(tài) Diffie-Hellman預(yù)言機(jī)的存在條件,從而確保方案的基礎(chǔ)安全性。
首先,本文定義的k-TABA方案包含以下參與方,即用戶User、屬性權(quán)威AA和服務(wù)提供商SP,其中,User可劃分為T(mén)PM和Host。此類(lèi)方案由以下的算法/協(xié)議構(gòu)成。
TSetup這是一個(gè)可信的系統(tǒng)建立算法,用于產(chǎn)生方案的系統(tǒng)參數(shù)TPK。
ASetup該算法由AA執(zhí)行,用于產(chǎn)生方案的公鑰APK和AA的主密鑰MSK。
USetup該算法由User執(zhí)行,用于產(chǎn)生密鑰對(duì)(upk,usk) ,(hpk,hsk)。
AttGen這是由User與AA執(zhí)行的協(xié)議。通過(guò)該協(xié)議,User獲得AA提供的偽名nym,成員證書(shū)cre以及關(guān)于屬性集合S的屬性私鑰ASK。
Auth這是由User與SP共同執(zhí)行的屬性認(rèn)證協(xié)議。
AUpdate當(dāng)特定屬性值發(fā)生改變(如由j更新為w),User可以通過(guò)該協(xié)議向AA申請(qǐng)更新鑰UKj→w,從而對(duì)ASK中對(duì)應(yīng)于屬性j的部分進(jìn)行更新。同時(shí),AA為其他擁有該屬性且并未執(zhí)行屬性更新的用戶提供更新鑰UK′j。
在本文安全模型下,安全的k-TABA方案應(yīng)當(dāng)同時(shí)滿足以下性質(zhì)。
正確性:假設(shè)TPK是利用TSetup算法產(chǎn)生的,(MSK,APK) 是利用ASetup算法產(chǎn)生的,(upk,usk) ,(hpk,hsk)是誠(chéng)實(shí)用戶User利用USetup算法產(chǎn)生的。User通過(guò)與AA執(zhí)行AttGen協(xié)議而獲得偽名nym,成員證書(shū)cre以及關(guān)于屬性集合S的屬性私鑰ASK。當(dāng)User利用(nym,cre,ASK)與誠(chéng)實(shí)的SP執(zhí)行Auth協(xié)議時(shí),只要S滿足SP在底層CP-ABE方案密文Cha中嵌入的訪問(wèn)結(jié)構(gòu)A(此后標(biāo)記為S|=A)且已執(zhí)行的認(rèn)證次數(shù)count不超過(guò)上界n,則User必然能通過(guò)此次認(rèn)證過(guò)程。此外,當(dāng)自己的特定屬性值由j更新為w時(shí),User可以通過(guò)與AA執(zhí)行AUpdate協(xié)議而獲得更新后的屬性私鑰ASK′。
隱私性:若User的認(rèn)證次數(shù)count不超過(guò)上界n,則包括AA與SP在內(nèi)的任何參與方都無(wú)法對(duì)該用戶執(zhí)行Auth協(xié)議的過(guò)程進(jìn)行關(guān)聯(lián)。另外,對(duì)于2個(gè)擁有相同屬性集合S的用戶User1,User2,包括AA與SP在內(nèi)的任何參與方都無(wú)法對(duì)他們執(zhí)行Auth協(xié)議的過(guò)程進(jìn)行關(guān)聯(lián)。
可靠性:若User的認(rèn)證次數(shù)上界為n,則它無(wú)法與SP成功地執(zhí)行n+1次Auth協(xié)議而不被發(fā)覺(jué)。
抗合謀攻擊:對(duì)于每個(gè)被攻破的用戶,在其屬性集合S并不滿足給定訪問(wèn)結(jié)構(gòu)A(此后標(biāo)記為S|≠A)的情況下,即使他們聯(lián)合起來(lái),也無(wú)法與SP成功地執(zhí)行Auth協(xié)議。
可追蹤性:假設(shè)User擁有能滿足給定訪問(wèn)結(jié)構(gòu)A的屬性集合,即使敵手能攻破User的主機(jī)平臺(tái),也無(wú)法在繞開(kāi)TPM的情況下獨(dú)立執(zhí)行Auth協(xié)議,或?qū)崿F(xiàn)對(duì)User的陷害。
敵手A與模擬器S共同執(zhí)行以下過(guò)程。
初始化執(zhí)行TSetup算法,產(chǎn)生TPK。執(zhí)行ASetup算法,產(chǎn)生MSK,APK。初始化列表,并且向發(fā)送TPK,APK,MSK。
詢問(wèn)1允許向提出以下類(lèi)型的預(yù)言詢問(wèn)。
-USetup( )產(chǎn)生(usk,upk) ,(hsk,hpk),執(zhí)行(*表示未知元素),并且返回upk,hpk。
-AttGen(S,upk)以用戶upk的身份與執(zhí)行AttGen協(xié)議,并且獲得后者產(chǎn)生的nym,cre和ASK。最終,將中的表目(upk,usk,hpk,hsk, *,*,*,*,*,*)更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c= 0 ,count=0),其中,c=0表示未攻破,c=1表示已攻破,且count=0表示已執(zhí)行的認(rèn)證次數(shù)。
-Corrupt(nym)根據(jù)偽名nym在中找到表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。若c=0,則返回usk,hsk,并且將該表目更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c=1,count)。
-Auth(Cha,nym)根據(jù)nym在中找到表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。假設(shè)A表示嵌入在底層CP-ABE方案密文Cha中的訪問(wèn)結(jié)構(gòu)。若S|=A且count<n,則S以用戶nym的身份與執(zhí)行Auth協(xié)議。最終,S將該表目更新為
挑戰(zhàn)輸出。假設(shè) A*表示嵌入在底層CP-ABE方案密文Cha*中的訪問(wèn)結(jié)構(gòu)。檢查是否滿足且count*<n。若是,選取∈ {0, 1},并且以用
R戶的身份與A執(zhí)行Auth協(xié)議。在該協(xié)議結(jié)束后,S將L中的表目將表目
詢問(wèn)2允許A繼續(xù)提出詢問(wèn) 1階段中的各類(lèi)詢問(wèn),但不允許它提出詢問(wèn)或
猜測(cè)最終,A輸出對(duì)的猜測(cè)結(jié)果′。若則判定A在實(shí)驗(yàn)中獲勝。
初始化S執(zhí)行TSetup算法,產(chǎn)生TPK。同時(shí),S運(yùn)行ASetup算法,產(chǎn)生APK,MSK。S初始化列表L,并且向A發(fā)送TPK,APK。
詢問(wèn)允許A向S提出以下類(lèi)型的預(yù)言詢問(wèn)。
-USetup( )同隱私性實(shí)驗(yàn)。
-AttGen(S,upk)S以誠(chéng)實(shí)AA的身份與A共同執(zhí)行AttGen協(xié)議,并且為A產(chǎn)生nym,cre,ASK。
-Corrupt(nym)S根據(jù)偽名nym在L中找到表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。若c=0,則返回usk,hsk,并且將該表目更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c=1,count)。
-Auth(Cha,nym)同隱私性實(shí)驗(yàn)。
挑戰(zhàn):輸出 A*,nym*。檢查nym*是否是借助AttGen詢問(wèn)產(chǎn)生的,若是,則以誠(chéng)實(shí)SP的身份與執(zhí)行n+1次Auth協(xié)議,并且利用 A*產(chǎn)生底層CP-ABE方案的挑戰(zhàn)密文Cha。最終,若這n+1次執(zhí)行過(guò)程都獲得成功,則判定A在實(shí)驗(yàn)中獲勝。
A與S共同執(zhí)行以下過(guò)程。
初始化向提供訪問(wèn)結(jié)構(gòu) A*,S運(yùn)行TSetup算法,產(chǎn)生TPK。運(yùn)行ASetup算法,產(chǎn)生APK,MSK。初始化列表,,并且向A發(fā)送TPK,APK。
詢問(wèn)1允許A向S提出以下類(lèi)型的預(yù)言詢問(wèn)。
-USetup( )同隱私性實(shí)驗(yàn)。
-AttGen(S,upk)同可靠性實(shí)驗(yàn),唯一的限制是要求S|≠A*。此外,S執(zhí)行
-AUpdate(S,j,w)S為A產(chǎn)生更新鑰UKj→w,唯一的限制是S′|≠A*,其中S′表示對(duì)S執(zhí)行屬性更新的結(jié)果。
挑戰(zhàn)輸出KSP0,KSP1,NYM,其中,NYM表示由被廢除用戶的偽名構(gòu)成的集合。檢查是否滿足
詢問(wèn)2允許A繼續(xù)提出詢問(wèn)1階段中的各類(lèi)詢問(wèn),但不允許它利用AUpdate詢問(wèn)獲得可以對(duì)Cha*執(zhí)行解密的屬性私鑰。同時(shí),對(duì)于AttGen詢問(wèn),要求所產(chǎn)生的nym滿足nym?NYM。
該實(shí)驗(yàn)的執(zhí)行過(guò)程分以下2個(gè)模式。
模式1
初始化執(zhí)行TSetup算法,產(chǎn)生TPK。同時(shí),運(yùn)行ASetup算法,產(chǎn)生APK,MSK。初始化列表,并且向發(fā)送TPK,APK。
-USetup()對(duì)該詢問(wèn)的處理分以下2種情況。在情況1中,為用戶產(chǎn)生(upk,usk) ,(hpk,hsk),執(zhí)行并且返回upk,hpk。在情況 2中,S接收由A產(chǎn)生的(upk,usk) ,(hpk,hsk),并且執(zhí)行hpk,hsk, *,*,*,*,c=1, * )。
-AttGen(S,upk)S根據(jù)upk在L中找到對(duì)應(yīng)的元組(upk,usk,hpk,hsk, *,*,*,*,c, * ),產(chǎn)生nym,cert,ASK,并且返回nym,cert,ASK。S將該元組更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count=0)。
-Corrupt(nym)同可靠性實(shí)驗(yàn)。此外,S額外執(zhí)行
-Auth(Cha,nym)同隱私性實(shí)驗(yàn)。
-Semi-Auth(Cha,nym)以誠(chéng)實(shí)TPM的身份與聯(lián)合執(zhí)行Auth協(xié)議中用戶端的操作。在執(zhí)行過(guò)程中,向S發(fā)送Host端傳送的數(shù)據(jù),返回TPM的應(yīng)答。
模式2
初始化運(yùn)行TSetup算法,產(chǎn)生TPK。初始化列表,向A發(fā)送TPK,并且接收后者產(chǎn)生的APK。
詢問(wèn) 允許A向S提出以下類(lèi)型的預(yù)言詢問(wèn)。-USetup( )同隱私性實(shí)驗(yàn)。
-AttGen(S,upk)同隱私性實(shí)驗(yàn)。-Corrupt(nym) 同模式1。
-Auth(Cha,nym)同隱私性實(shí)驗(yàn)。
-Semi-Auth(Cha,nym)同模式1。
本文方案可視為對(duì)DAA方案進(jìn)行擴(kuò)展得到的。ASetup算法相當(dāng)于DAA方案的系統(tǒng)建立算法。在該算法中,AA共產(chǎn)生3個(gè)密鑰對(duì)。其中,(w1, γ1)是底層CL-SDH(Camenisch-Lysyanskaya SDH)簽名方案[6]的公私鑰對(duì),(w2, γ2)是底層區(qū)間證明協(xié)議[20]的公私鑰對(duì)。同時(shí),(gα,e(g,g)β,{PK} ),(α,gβ,
jj∈U分別構(gòu)成底層CP-ABE方案[19]的公鑰和主密鑰,其中,U表示屬性全集。AttGen協(xié)議相當(dāng)于DAA方案的成員注冊(cè)協(xié)議。在該協(xié)議中,TPM芯片產(chǎn)生兩個(gè)密鑰對(duì)其中,usk用于充當(dāng)TPM私鑰,且hsk用于產(chǎn)生一次性認(rèn)證令牌。同時(shí),TPM產(chǎn)生知識(shí)簽名π1,使AA確信upk,hpk滿足正確性。最終,User獲得AA產(chǎn)生的偽名nym,關(guān)于(usk,hsk)的成員證書(shū)cre以及關(guān)于屬性集合Si的底層CP-ABE方案解密私鑰ASK。此外,AA向User提供知識(shí)簽名π2,目的是證明所提供的cre,ASK滿足正確性。
Auth協(xié)議相當(dāng)于DAA方案的簽名/驗(yàn)證協(xié)議。在該協(xié)議中,TPM與Host聯(lián)合產(chǎn)生知識(shí)簽名π3,從而向SP證明以下斷言同時(shí)成立。1)User使用的認(rèn)證令牌Jk是利用hsk和公開(kāi)區(qū)間 Φ =[1,n]中尚未使用過(guò)的下標(biāo)k產(chǎn)生的。2)User掌握關(guān)于(usk,hsk)的成員證書(shū)。3)User并未因TPM私鑰usk泄露而被廢除。4)User的當(dāng)前認(rèn)證次數(shù)尚未超過(guò)上界n。在斷言 2) 的證明過(guò)程中,User需要證明掌握成員證書(shū)使為了
實(shí)現(xiàn)該項(xiàng)證明且不要求User執(zhí)行對(duì)運(yùn)算,本文借鑒了文獻(xiàn)[20]的技術(shù)。具體地,User將Ai盲化為的形式,并且證明掌握秘密元組(xi,δ,δf,δy) ,使得此外,該項(xiàng)技術(shù)要求SP額外驗(yàn)證是否滿足。為了證明斷言 4),User需要在Φ中選取未曾使用的下標(biāo)k,并且證明自己掌握關(guān)于k的Boneh-Boyen方案[22]簽名ok。為了避免User執(zhí)行對(duì)運(yùn)算,本文直接采用了第2.2節(jié)所述的區(qū)間證明技術(shù)。通過(guò)引入預(yù)計(jì)算技術(shù)[16],π3產(chǎn)生過(guò)程中的絕大多數(shù)運(yùn)算均能在離線計(jì)算階段完成。
為了實(shí)現(xiàn)對(duì)User的屬性認(rèn)證,本文方案借鑒了Yang等[10]在認(rèn)證過(guò)程中使用帶密鑰的散列函數(shù)HK()的思想。具體地,SP自行定義 LSSS訪問(wèn)結(jié)構(gòu)(M,ρ)并在該結(jié)構(gòu)下產(chǎn)生關(guān)于元素KSP的底層CP-ABE方案[19]挑戰(zhàn)密文Cha。同時(shí),知識(shí)簽名π3中的挑戰(zhàn)串c并非Host隨機(jī)選取的,而是要求Host首先解密Cha得到KSP,然后由TPM利用HK()產(chǎn)生c,且該過(guò)程要求將KSP作為HK()的密鑰。顯然,若User的屬性集合Si無(wú)法滿足(M,ρ),所產(chǎn)生的知識(shí)簽名π3將無(wú)法通過(guò)SP的驗(yàn)證過(guò)程。
此外,本文方案繼承了底層CP-ABE方案的屬性更新機(jī)制,即當(dāng)User的某個(gè)屬性值由j更新為w時(shí),AA將為其發(fā)送更新鑰UKj→w。對(duì)于其他同樣擁有該屬性且并未執(zhí)行屬性更新的用戶,AA同樣為他們發(fā)送更新鑰UK′j。
在本文方案的描述中,本文定義使用了多個(gè)符號(hào)。具體含義如表1所示。
4.3.1 系統(tǒng)參數(shù)產(chǎn)生(TSetup)
該算法執(zhí)行以下步驟。
1) 以安全性參數(shù)λ作為輸入,產(chǎn)生雙線性群參數(shù)(G0,GT,p,e?),其中e?表示雙線性映射,滿足
2) 選取生成元g,h,h1,h2∈RG0,同時(shí)選取
4.3.2 屬性權(quán)威系統(tǒng)建立(ASetup)
為了產(chǎn)生系統(tǒng)公鑰和主密鑰,AA執(zhí)行以下步驟。
表1 本文方案使用的符號(hào)
4) 初始化用戶廢除列表RL←?。
4.3.3 屬性密鑰產(chǎn)生(AttGen)
若Useri( Host+ T PM)希望獲得關(guān)于屬性集合Si的底層CP-ABE方案屬性私鑰,他需要與AA共同執(zhí)行以下步驟。同時(shí),假設(shè)TPM已經(jīng)利用簽署密鑰與AA建立了安全的認(rèn)證信道。
1) Host向AA發(fā)送請(qǐng)求的屬性集合Si,后者返回隨機(jī)消息
2) TPM設(shè)置cnt=cnt+1,計(jì)算f=H1(DAASeedTPM選取y∈Z ,計(jì)算RpTPM產(chǎn)生知識(shí)簽名 π =SPK{ (f,y) :F=
3) 對(duì)于每個(gè)f′∈RL,AA檢查是否滿足若是,則AA終止協(xié)議。否則,AA進(jìn)一步驗(yàn)證π1的有效性。
4) 若π1有效,則AA選取xi∈RZp,設(shè)置偽名同時(shí),對(duì)于每個(gè)屬性j∈S,AA選取i
5)AA向TPM發(fā)送以及知識(shí)簽名π2,即
Useri與AA在AttGen協(xié)議中的主要交互過(guò)程如圖1所示。
4.3.4 屬性認(rèn)證(Auth)
用戶Useri( TPM+Host)與SP執(zhí)行以下交互過(guò)程。
2)SP定義LSSS訪問(wèn)結(jié)構(gòu)(M,ρ),其中M為矩陣,ρ為映射,即將M的第i行Mi映射為屬性ρ(i)。SP選取定義隨機(jī)列向量
3) 對(duì)于i=1,…,l,SP計(jì)算
圖1 AttGen協(xié)議的交互過(guò)程
4) 假設(shè)當(dāng)前RL的內(nèi)容為對(duì) 于 ι =1,… ,|RL|,SP設(shè) 置
5)SP選取nSP∈R{0, 1}t,并且向Host發(fā)送
6) Host將Cha分離為的形式。若則Host輸出⊥,并終止當(dāng)前協(xié)議。
7) 令I(lǐng)= {i:ρ(i) ∈Si}。Host計(jì)算常量集合Host設(shè)置D′ =Dgα,計(jì)算
8) Host選取新鮮下標(biāo)k∈RΦ,計(jì)算認(rèn)證令牌
9) Host選 取 δ∈RZp, 計(jì) 算Host選取l,ν ∈RZp,計(jì)算并且與TPM聯(lián)合產(chǎn)生以下形式的知識(shí)簽名
然后,Host向SP發(fā)送
10)SP將σ分離為E2,E3)的形式,并且執(zhí)行以下的驗(yàn)證過(guò)程。①對(duì)于每個(gè)f′∈RL,驗(yàn)證是否滿足②驗(yàn)證π3的有效性。③驗(yàn)證是否滿足④驗(yàn)證o~k是否并非群G0的單位元。若上述驗(yàn)證都通過(guò),則接受用戶的認(rèn)證過(guò)程。
Useri與SP在Auth協(xié)議中的主要交互過(guò)程如圖2所示。
4.3.5 屬性更新(AUpdate)
假設(shè)Useri( TPM+Host)希望將屬性j更新為w。為此,他需要與AA執(zhí)行以下交互過(guò)程。
1) Host向AA發(fā)送更新請(qǐng)求reqj→w,后者返回隨機(jī)消息nAA∈R{0, 1}t。
2) Host選 取 δ ∈RZp, 計(jì) 算然后,Host與TPM聯(lián)合產(chǎn)生知識(shí)簽名
3) 對(duì)于每個(gè)f′∈RL,AA檢查是否滿足K=Bf′。若是,則AA終止協(xié)議。否則,AA檢查π4的有效性以及是否滿足
4) 若上述檢查通過(guò),AA選取向Host返回同時(shí),AA向其他同樣擁有屬性j且并未執(zhí)行屬性更新的用戶Useri′發(fā)送并將APK中的元素PKj=H0(j)vj更新為
圖2 Auth協(xié)議的交互過(guò)程
5) 在接收到UKj→w之后,Host將ASKi中的元素D=gxiH(j)rjvj,D′ =(gα)rj更 新 為D=D·
j0jwj對(duì)于其他用戶Useri′,則可以利用UK′j將其ASKi′中的對(duì)應(yīng)元素更新為
4.3.6 用戶廢除(Revoke)
假設(shè)Useri被攻破且(Ai,xi)均遭泄露。此時(shí),AA執(zhí)行以下步驟。
在上一節(jié)的方案描述中,共涉及4個(gè)知識(shí)簽名。其中,π1與π2分別由TPM和AA采用標(biāo)準(zhǔn)方式產(chǎn)生,π3, π4是由TPM與Host聯(lián)合產(chǎn)生的。限于篇幅,本節(jié)僅詳細(xì)介紹π3的產(chǎn)生和驗(yàn)證過(guò)程。需要指出的是,在π1的產(chǎn)生過(guò)程中,TPM 向 Host提供數(shù)對(duì)在π3, π4的產(chǎn)生過(guò)程中,TPM向Host提供數(shù)對(duì)(B,K=Bf)。由于h1是群參數(shù)中的公開(kāi)元素且B是由TPM隨機(jī)選取的元素。因此,Host無(wú)法對(duì)h1與B的取值進(jìn)行控制,從而有效地去除了靜態(tài) Diffie-Hellman預(yù)言機(jī)[17-18]。此外,為了進(jìn)一步優(yōu)化運(yùn)算效率,本文采用了文獻(xiàn)[16]中的預(yù)計(jì)算技術(shù),即π3產(chǎn)生過(guò)程的步驟1)~步驟3)可以預(yù)先以離線方式執(zhí)行,從而減輕了用戶端的在線運(yùn)算負(fù)擔(dān)。
π3的具體產(chǎn)生步驟如下所示。
2)TPM選取B∈RGT,計(jì)算K=Bf,其中,此外,TPM選取并且向Host返回R2t,B,K。
π3的具體驗(yàn)證步驟如下所示。
3)SP驗(yàn)證是否滿足若是,則接受;否則,拒絕。
在改進(jìn)方案中,為了將底層CP-ABE方案[19]解密過(guò)程中的主要運(yùn)算外包給云服務(wù)器Server,需要對(duì)第 4節(jié)的TSetup算法和Auth協(xié)議進(jìn)行修改。同時(shí),增加算法AttGenout,Transformout,Decryptout。其中,AttGenout算法的作用是允許User利用屬性私鑰ASK自行產(chǎn)生轉(zhuǎn)換鑰TK。Transformout算法的作用是允許Server利用TK對(duì)Cha執(zhí)行解密,得到部分解密的密文Cha′。Decryptout算法的作用是允許User利用ASK將Cha′轉(zhuǎn)換為最終的明文KSP。
在第4節(jié)TSetup算法的基礎(chǔ)上,需要補(bǔ)充定義以下的散列函數(shù),即即將TPK擴(kuò)充為的形式。
與第 4節(jié)的Auth協(xié)議相比,需要做出以下修改。在步驟 1),SP額外選取R∈RGT,設(shè)置在步驟 2)SP額外設(shè)置并且計(jì)算在步驟5),SP向Host發(fā)送tag),nSP。在步驟7),Host向Server發(fā)送TK,Cha,后者調(diào)用Transformout算法并返回部分解密結(jié)果Cha′。然后, Host調(diào)用Decryptout算法,從而得到KSP。
假設(shè)Useri( Host+ T PM)通過(guò)執(zhí)行第 4節(jié)AttGen協(xié)議得到的屬性私鑰符合以下形式,即為了獲得轉(zhuǎn)換鑰TK,Useri執(zhí)行以下步驟。
2) Host保存ASKi=(z,TK)。
在接收到Host提供的Cha,TK之后,Server執(zhí)行以下步驟。
1) 將Cha分離為
2) 假設(shè)Si|= (M,ρ),否則Server將輸出⊥。定義I= {i:ρ(i) ∈Si}。計(jì)算常量集合{ωi∈ Zp}i∈I,
當(dāng)接收到Server返回的Cha′,Host執(zhí)行以下步驟。
1) 將Cha分離為的形式,同時(shí)將Cha′分離為的形式。
定理1第4節(jié)方案滿足正確性。
證明過(guò)程見(jiàn)本文附錄。
定理 2在隨機(jī)預(yù)言模型下,只要群G0,GT上的DBDH,DBDHI和q-SDH假設(shè)成立,則第4節(jié)方案在新的k-TABA模型下是安全的。
證明在本文方案的證明過(guò)程中,模擬器S需要定義多個(gè)列表,用于對(duì)各類(lèi)預(yù)言機(jī)進(jìn)行模擬。具體地,LK用于對(duì)散列預(yù)言機(jī)HK(·)進(jìn)行模擬, Li(i=2,3)用于對(duì)散列預(yù)言機(jī)Hi(·)(i=2,3)進(jìn)行模擬,L用于對(duì)預(yù)言機(jī)USetup( ),AttGen( ·,·),Corrupt(·)進(jìn)行模擬。LAuth用 于對(duì) 預(yù) 言機(jī)Auth( ·,·),Semi-Auth( ·,·)進(jìn)行 模擬 。Lnym用于對(duì)預(yù)言機(jī)AttGen(·,·)進(jìn)行模擬。
隱私性當(dāng)前實(shí)驗(yàn)的執(zhí)行過(guò)程分以下兩種模式。
模式 1S以DBDH問(wèn)題實(shí)例作為輸入,其目標(biāo)是對(duì)以下情況進(jìn)行分辨:1)滿足滿足其中,在初始化階段,S設(shè)置并且采用TSetup算法中的方式產(chǎn)生TPK中的剩余元素。S執(zhí)行ASetup算法,產(chǎn)生MSK,APK。同時(shí),S選取 α , β ∈R{1,… ,m},其中,m表示系統(tǒng)中的最大用戶數(shù)量。S初始化列表為 L , LK, L2, L3,并且向A發(fā)送TPK,MSK,APK。在詢問(wèn)1階段,S采用以下方式對(duì)各類(lèi)預(yù)言機(jī)進(jìn)行模擬。
-HK(m)若(m,hK) ∈LK,則S返回hK。否則,S選取并且返回hK。同時(shí),S執(zhí)行
-H2(m)若(m,h2) ∈L2,則S返回h2。否則,S選取并且返回h2。同時(shí),S執(zhí)行L2← L2∪(m,h2)。
-H3(m).若(m,h3) ∈L3,則S返回h3。否則,S選取并且返回h3。同時(shí),S執(zhí)行
-USetup( )對(duì)該詢問(wèn)的模擬分以下3種情況。
情況 1 若當(dāng)前為第α次詢問(wèn),則S選取uα∈RZ*p,設(shè)置S選取y∈ Z*,
αRp設(shè)置同時(shí),S執(zhí)行顯然,uskα=auα為未知元素。
情況 2若當(dāng)前為第β次詢問(wèn),則S選取設(shè)置選取設(shè)置并且返回同時(shí),S執(zhí)行顯然,uskβ=auβ為未知元素。
情況 3在其他情況下,S選取設(shè)置并且返回upk,hpk。同時(shí),*,*,*,*)。
-AttGen(S,upk).對(duì)該詢問(wèn)的模擬分以下 3種情況。
情況 1若upk=upkα,則S采用模擬方式產(chǎn)生知識(shí)簽名π1。在AttGen協(xié)議結(jié)束后,S獲得由A產(chǎn)生的S將用戶upkα在L中的對(duì)應(yīng)表目更新為
情況 2若upk=upkβ,則S采用模擬方式產(chǎn)生知識(shí)簽名π1。在AttGen協(xié)議結(jié)束后,S獲得由A產(chǎn)生的nymβ,creβ,ASKβ。S將用戶upkβ在L中的對(duì) 應(yīng) 表 目 更 新 為(upkβ,uskβ,hpkβ,hskβ,nymβ,creβ,ASKβ,S,cβ= 0 ,count=0)。
情況 3若upk? {upkα,upkβ},則S根據(jù)upk在L中找到對(duì)應(yīng)的表目,并利用usk,hsk以誠(chéng)實(shí)方式產(chǎn)生知識(shí)簽名π1。剩余操作同情況1和情況2。
-Corrupt(nym)S根據(jù)nym在L中找到對(duì)應(yīng)的表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。若upk∈ {upkα,upkβ},則S模擬失敗。否則,若c=0,S返回usk,hsk,并且將該表目更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c= 1,count)。
-Auth(Cha,nym)S根據(jù)nym在L中找到表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。同時(shí),S從密文Cha中分離出訪問(wèn)結(jié)構(gòu)(M,ρ),并且檢查是否滿足S|=(M,ρ)且count<n。若是,則S利用ASK從密文Cha中恢復(fù)出秘密元素KSP。接下來(lái)的模擬過(guò)程分以下3種情況。
情況1若nym=nymα,則S選取設(shè)置從底層知識(shí)證明中提取出知識(shí)并且設(shè)置S選 取E3∈RG0,Jk∈RGT, 選 取sν∈RZp,并且采用知識(shí)簽名π3驗(yàn)證過(guò)程中的方式計(jì)算返回
情況2若nym=nymβ,則S采用類(lèi)似的方式模擬產(chǎn)生σ。2種情況的區(qū)別是,S設(shè)置
情況3若nym? {nymα,nymβ},則S采用誠(chéng)實(shí)方式產(chǎn)生并返回σ。
無(wú)論屬于哪種情況,S都需要在認(rèn)證過(guò)程結(jié)束后將表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count+1)。
最終,A輸出對(duì)b的猜測(cè)結(jié)果則S判定則S判定否則,S輸出 failure,即求解給定的DBDH問(wèn)題實(shí)例失敗。
模式 2S以DBDHI問(wèn)題實(shí)例作為輸入,其目標(biāo)是對(duì)以下兩種情況做出分辨:1)在初始階段,S選取 α ∈R{1,…,m},且m的含義同模式1。S設(shè)置并且構(gòu)造集合然后,S采用TSetup算法中的方式產(chǎn)生TPK中的剩余元素。S執(zhí)行ASetup算法,產(chǎn)生MSK,APK。S初始化列表L, LK, L2, L3,并且向A發(fā)送TPK,MSK,APK。在詢問(wèn)1階段,S采用以下方式對(duì)各類(lèi)預(yù)言機(jī)進(jìn)行模擬。
-HK(m),H2(m),H3(m)模擬方式同模式1。
-USetup()對(duì)該詢問(wèn)的模擬分以下2種情況。
情況 1若當(dāng)前為第α次詢問(wèn),則S選取S選取并且返回同 時(shí) ,S執(zhí) 行顯然,hskα為未知元素。
情況 2若當(dāng)前并非第α次詢問(wèn),S選取并且返回upk,hpk。同時(shí),S執(zhí)行hsk, *,*,*,*,*,*)。
-AttGen(S,upk)對(duì)該詢問(wèn)的模擬分以下 2種情況。
情況 1若upk=upkα,則S采用模擬方式產(chǎn)生知識(shí)簽名π1。在AttGen協(xié)議結(jié)束后,S獲得由A產(chǎn)生的nymα,creα,ASKα。S將用戶upkα在L中的對(duì)應(yīng)表目更新為ASKα,S,cα= 0 ,count=0)。
情況 2若upk≠u(mài)pkα,則S根據(jù)upk在L中找到對(duì)應(yīng)的表目,并利用usk,hsk以誠(chéng)實(shí)方式產(chǎn)生知識(shí)簽名π1。剩余操作同情況1。
-Corrupt(nym)S根據(jù)upk在L中找到對(duì)應(yīng)的表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count),若upk=upkα,則S模擬失敗。否則,若c=0,S返回usk,hsk,并且將該表目更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c= 1,count)。
-Auth(Cha,nym).S根據(jù)nym在L中找到表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。同時(shí),S從密文Cha中分離出訪問(wèn)結(jié)構(gòu)(M,ρ),并且檢查是否滿足S|=(M,ρ)且count<n。若是,則S利用ASK從密文Cha中恢復(fù)出秘密元素KSP。此后的模擬過(guò)程分以下2種情況。
情況 1若則S在集合中選取一個(gè)未曾使用的元素,并將其作為Jk。S選取選取B,K∈RGT,并且采用與模式1下Auth詢問(wèn)情況1中的方式模擬產(chǎn)生元素E1,E2和知識(shí)簽名π3。最后,S向A發(fā)送
情況2若nym≠nymα,則S采用誠(chéng)實(shí)方式產(chǎn)生知識(shí)簽名π3,并且向A返回
無(wú)論屬于哪種情況,S都需要在認(rèn)證過(guò)程結(jié)束后將表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count+1)。
可靠性在初始化階段,S執(zhí)行TSetup算法,產(chǎn)生TPK。同時(shí),S執(zhí)行ASetup算法,產(chǎn)生MSK,APK。S初始化列表 L , LK, L2, L3,并且向A發(fā)送TPK,APK。在詢問(wèn)階段,S為A提供以下類(lèi)型的預(yù)言服務(wù)。
-HK(m),H2(m),H3(m)模擬方式同隱私性實(shí)驗(yàn)。
-USetup( )模擬方式同隱私性實(shí)驗(yàn)?zāi)J?1下的情況3。
-AttGen(S,upk)S以誠(chéng)實(shí)AA的身份與A執(zhí)行AttGen協(xié)議,并且返回nym,cre,ASK。
-Corrupt(nym)S根據(jù)nym在L中找到對(duì)應(yīng)表目(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count)。
若c=0,則返回usk,hsk,并將該表目更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c= 1,count)。
-Auth(Cha,nym)模擬方式同隱私性實(shí)驗(yàn)?zāi)J?下的情況3。
在該階段的末尾,A輸出nym*, (M*, ρ*)。S檢查在L中是否存在與nym*對(duì)應(yīng)的表目。若是,則以誠(chéng)實(shí)SP的身份與A執(zhí)行n+1次Auth協(xié)議,并且根據(jù) (M*, ρ*)產(chǎn)生底層CP-ABE方案的挑戰(zhàn)密文。最終,S獲得A在這些協(xié)議中的輸出 σ1, σ2, … ,σn+1。假設(shè)這n+1次執(zhí)行過(guò)程都獲得成功,顯然S可以利用重繞技術(shù)分別從知識(shí)簽名 π3,1,π3,2, … , π3,n+1中提取出秘密元素且它們都位于區(qū)間[1,n]。根據(jù)底層區(qū)間證明協(xié)議的有效性,顯然存在即A在第i次和第j次Auth協(xié)議中使用了相同的令牌由于S充當(dāng)誠(chéng)實(shí)SP,因此這兩次協(xié)議不可能都獲得成功,即得到矛盾假設(shè)。
抗合謀攻擊S以底層CP-ABE方案的公鑰為輸入,其目標(biāo)是借助與A的交互過(guò)程攻破該方案的選擇性CPA安全性。在初始化階段,A首先向S提供訪問(wèn)結(jié)構(gòu) (M*, ρ*)。S設(shè)置g=,并且采用TSetup和ASetup算法中的方式產(chǎn)生TPK和APK中的剩余參數(shù)。最后,S初始化列表 L, Lnym, LK, L2, L3,并且向A發(fā)送TPK,APK。在詢問(wèn)1階段,S為A提供以下類(lèi)型的預(yù)言服務(wù)。
-HK(m),H2(m),H3(m)模擬方式同隱私性實(shí)驗(yàn)。
-USetup()模擬方式同隱私性實(shí)驗(yàn)?zāi)J?1下的情況3。
-AttGen(S,upk)S以AA的身份與A執(zhí)行AttGen協(xié)議。S根據(jù)upk在L中找到對(duì)應(yīng)的表目(upk,usk,hpk,hsk, *,*,*,*,*,*)。S檢查是否滿足S|≠(M*, ρ*),若是,則借助底層CP-ABE方案的密鑰產(chǎn)生預(yù)言機(jī)為該用戶產(chǎn)生ASK,并且自行為該用戶產(chǎn)生nym,cre=(A,x)。S向A發(fā)送nym,cre,ASK,并且將表目(upk,usk,hpk,hsk,*,*,*,*,*,*)更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c=0,count=0)。同時(shí),S設(shè)置 Lnym← Lnym∪(nym)。
-AUpdate(S,j,w)S檢查是否滿足S|≠(M*, ρ*)且將屬性j更新為w后,更新后的屬性集合S′ 是否滿足S′ |≠(M*, ρ*)。若是,則S借助底層CP-ABE方案的屬性更新預(yù)言機(jī)為A產(chǎn)生UKj→w,并且對(duì)APK中的元素PKj以及L中其他用戶屬性私鑰中的元素Dj,D′j進(jìn)行更新。
-Corrupt(nym)模擬方式同可靠性實(shí)驗(yàn)。
-Auth(Cha,nym)模擬方式同隱私性實(shí)驗(yàn)?zāi)J?下的情況3。
在該階段的末尾,A輸出KSP0,KSP1,NYM。S檢查是否滿足NYM?Lnym,若是,則以SP的身份與A執(zhí)行Auth協(xié)議。在Auth協(xié)議執(zhí)行過(guò)程中,S向底層CP-ABE方案的加密預(yù)言機(jī)發(fā)送KSP0,KSP1,RL,并且向A返回由該預(yù)言機(jī)產(chǎn)生的關(guān)于元素的密文在詢問(wèn)2階段,允許A繼續(xù)提出上述類(lèi)型的詢問(wèn)。
但是,不允許A利用AUpdate詢問(wèn)獲得能滿足訪問(wèn)結(jié)構(gòu) (M*, ρ*)的屬性私鑰。同時(shí),不允許A提出AttGen詢問(wèn),使得對(duì)于所產(chǎn)生的nym,滿足nym?NYM。最終,A輸出猜測(cè)結(jié)果則表明S已經(jīng)借助A攻破了底層CP-ABE方案的選擇性CPA安全性。
可追蹤性當(dāng)前實(shí)驗(yàn)的執(zhí)行過(guò)程分以下 2種模式。
模式 1S以底層CL-SDH簽名方案[6]的公鑰作為輸入,其目標(biāo)是借助與A的交互過(guò)程攻破該方案的不可偽造性。S設(shè)置并且采用TSetup,ASetup算法中的方式產(chǎn)生TPK,MSK,APK中的剩余參數(shù)。S初始化列表 L , Lauth,LK, L2, L3,并且向A發(fā)送TPK,APK。在詢問(wèn)階段,允許A提出以下類(lèi)型的預(yù)言詢問(wèn)。
-HK(m),H2(m),H3(m)模擬方式同隱私性實(shí)驗(yàn)。
-USetup()對(duì)當(dāng)前詢問(wèn)的模擬分以下2種情況。在情況 1中,S為用戶選取S執(zhí)行L←L∪(upk,usk,hpk,hsk, *,*,*,*,c=0,*),并且返回upk,hpk。在情況 2中,S接收由A產(chǎn)生的upk=F,hpk=Y,π1。S采用重繞技術(shù)從π1中提取出usk,hsk, 并 且 執(zhí) 行 L ← L ∪(upk,usk,hpk,hsk, *,*,*,*,c=1, * )。
-AttGen(S,upk)S根據(jù)upk在L中找到對(duì)應(yīng)的表目(upk,usk,hpk,hsk, *,*,*,*,c, * )。S通過(guò)調(diào)用預(yù)言機(jī)H2(upk)產(chǎn)生nym。S自行產(chǎn)生ASK,向底層CL-SDH簽名預(yù)言機(jī)提出詢問(wèn)(upk,hpk),并且獲得后者返回的cert=(A,x)。S返回nym,cre,ASK,并將該表目更新為(upk,usk,hpk,hsk,nym,cre,ASK,S,c,count=0)。
-Corrupt(nym)模擬方式同可靠性實(shí)驗(yàn)。此外,S執(zhí)行RL←RL∪ (usk,nym)。
-Auth(Cha,nym)模擬方式同隱私性實(shí)驗(yàn)?zāi)J?1下的情況 3。此外,S額外設(shè)置LAuth←LAuth∪(nym,σ)。
-Semi-Auth(Cha,nym)S以誠(chéng)實(shí)TPM的身份與A(充當(dāng)Host)聯(lián)合產(chǎn)生User在Auth協(xié)議中的輸出。在該過(guò)程中,S接收到A發(fā)送的數(shù)據(jù),并且返回同時(shí),S執(zhí)行
最終,A輸出nym*, (M*, ρ*)。S以SP的身份與A執(zhí)行Auth協(xié)議,并且利用 (M*, ρ*)產(chǎn)生底層CP-ABE方案挑戰(zhàn)密文Cha*。最終,S獲得A的輸出σ*。若σ*能通過(guò)驗(yàn)證,則S檢查是否滿足若是,則S利用重繞技術(shù)從σ*中提取出秘密知識(shí) (A*,x*),從而攻破了底層CL-SDH方案的不可偽造性。
模式 2S以q-SDH問(wèn)題實(shí)例(P,Q,Qx,…,作為輸入,其目標(biāo)是輸出數(shù)對(duì)S設(shè)置設(shè)置S采用TSetup算法中的方式產(chǎn)生TPK中的剩余元素。S初始化列表L, Lauth,LK, L2, L3,向A發(fā)送TPK,并且獲得后者產(chǎn)生的APK。此外,S事先選取 α ∈R{1,…,m},其中,m的含義同隱私性實(shí)驗(yàn)。在詢問(wèn)階段,允許A提出以下類(lèi)型的預(yù)言詢問(wèn)。
-HK(m),H2(m),H3(m)模擬方式同隱私性實(shí)驗(yàn)。
-USetup()對(duì)當(dāng)前詢問(wèn)的模擬分以下2種情況。情況 1:若當(dāng)前是第α次詢問(wèn),S設(shè)置upkα=Qx,uskα=x。其中,uskα為未知元素。S選取設(shè)置S返回upkα,hpkα,并且設(shè)置 L ← L ∪ (upkα,uskα,hpkα,hskα,*,*,*,*,c=0,*)。情況2:若當(dāng)前并非第α次詢問(wèn),S采用誠(chéng)實(shí)方式產(chǎn)生upk,usk,hpk,hsk,返回upk,hpk,并且設(shè)置L ← L ∪ (upk,usk,hpk,hsk, *,*,*,*,c=0, *)。
-AttGen(S,upk)對(duì)當(dāng)前詢問(wèn)的模擬分以下2種情況。情況 1:若upk=upkα,則S采用模擬方式產(chǎn)生π1,并獲得A產(chǎn)生的nymα,certα,ASKα。S將表目(upkα,uskα,hpkα,hskα, * ,*,*,*,c=0, * )更新為(upkα,uskα,hpkα,hskα,nymα,certα,ASKα,S,c= 0 ,count=0)。情況2:若upk≠u(mài)pkα,則S采用誠(chéng)實(shí)方式產(chǎn)生π1,并且獲得A產(chǎn)生的nym,cert,ASK。S將表目(upk,usk,hpk,hsk, *,*,*,*,c=0 , *)更新為(upk,usk,hpk,hsk,nym,cert,ASK,S,c= 0 ,count=0)。
-Corrupt(nym) 若nym=nymα,則S模擬失敗。否則,模擬方式同當(dāng)前實(shí)驗(yàn)的模式1。
-Auth(Cha,nym)若nym=nymα,則S在不掌握uskα的條件下模擬產(chǎn)生σ。若nym≠nymα,則S采用誠(chéng)實(shí)方式產(chǎn)生σ。剩余模擬方式同隱私性實(shí)驗(yàn)?zāi)J?下的情況3。無(wú)論屬于哪種情況,S都額外設(shè)置LAuth← LAuth∪(nym,σ)。
-Semi-Auth(Cha,nym)S采用模式1下Semi-Auth詢問(wèn)中的方式進(jìn)行模擬。區(qū)別在于,當(dāng)nym=nymα?xí)r,S采用模擬方式產(chǎn)生R2t,π3。否則,S采用誠(chéng)實(shí)方式產(chǎn)生R2t,π3。
最終,A輸出nym*, (M*, ρ*)。S以SP的身份與A執(zhí)行Auth協(xié)議,并且利用 (M*, ρ*)產(chǎn)生底層CP-ABE方案的挑戰(zhàn)密文Cha*。最終,S獲得A的輸出σ*。若σ*能通過(guò)驗(yàn)證,則S檢查是否滿足(nym*, σ*)∈ / L。若是,則S利用重繞技術(shù)從σ*中
Auth提取出秘密知識(shí)f*。S檢查是否滿足f*∈L。若否,則S模擬失敗。在的概率下,f*恰好等于x。此時(shí),S選取e∈RZp,輸出從而求解了給定的q-SDH問(wèn)題實(shí)例。
證畢。
需要指出的是,本文第6節(jié)改進(jìn)方案與第4節(jié)方案的唯一區(qū)別是,利用服務(wù)器外包解密技術(shù)對(duì)底層CP-ABE方案進(jìn)行改進(jìn)。為了證明改進(jìn)方案的安全性,僅需證明所提出的外包解密版本不會(huì)降低原有CP-ABE方案的安全性即可。
結(jié)論1第4節(jié)方案中采用的底層CP-ABE方案滿足選擇性CPA安全性[19]。
定理3在隨機(jī)預(yù)言模型下,可以證明第6節(jié)的底層CP-ABE方案外包解密版本滿足選擇性RCCA安全性和可驗(yàn)證性。
證明選擇性RCCA安全性。假設(shè)模擬器S以底層CP-ABE方案公鑰為輸入,其目標(biāo)是通過(guò)與敵手A執(zhí)行以下的選擇性RCCA安全性實(shí)驗(yàn)攻破該方案的選擇性CPA安全性。在當(dāng)前實(shí)驗(yàn)中,S需要維護(hù)列表 Lc, Ld,L4,L5, L6,從而實(shí)現(xiàn)對(duì)預(yù)言機(jī)Create( ·),Corrupt(·),Decrypt(·,·),H4(·,·),H5( ·),H6( ·)的模擬。
在初始化階段,A向S提供作為挑戰(zhàn)的訪問(wèn)結(jié)構(gòu) (M*, ρ*)。在系統(tǒng)建立階段,S向A提供S初始化列表L4, L5, L6,并且初始化計(jì)數(shù)器count′←0。
在詢問(wèn)1階段,S為A提供以下類(lèi)型的預(yù)言服務(wù)。
-H4(R,m)若(R,m,s)∈L4,則S返回s。否則,并且返回s。同時(shí),S執(zhí)行
-H5(R)若則S返回。否則,S選取并且返回同時(shí),S執(zhí)行 L5←
-H6若則返回tag。否則,S選取并且返回tag。同時(shí),S執(zhí)行
-Create(S)S設(shè)置count′ ←count′+1,并且分以下兩種情況進(jìn)行模擬。
情況 1若S|=(M*,ρ*),則S選取設(shè)置對(duì)于每個(gè)屬性j∈S,S選取rj∈RZp,設(shè)置
情況2若為輸入調(diào)用底層CP-ABE方案的密鑰產(chǎn)生預(yù)言機(jī),并且獲得后者返回的設(shè)置
最后,無(wú)論屬于哪種情況,S均設(shè)置Lc← Lc∪(count′,S,ASK,TK),并且返回TK。
-Corrupt(i)S根據(jù)序號(hào)i在列表Lc中找到對(duì)應(yīng)表目(i,S,ASK,TK) ,并且檢查是否滿足S|= (M*, ρ*)。若是,則S返回⊥。否則,S返回ASK,并且設(shè)置 Ld← Ld∪(S)。
-Decrypt(i,Cha) .S根據(jù)序號(hào)i在列表Lc中找到對(duì)應(yīng)的表目(i,S,ASK,TK)。然后,S從Cha中分離出訪問(wèn)結(jié)構(gòu)(M,ρ)。若S|≠(M,ρ),S返回⊥。否則,S分以下兩種情況進(jìn)行模擬。
情況 1滿足 (M, ρ) ≠ (M*, ρ*)。S將ASK分離為ASK=(z,TK)的形式,并執(zhí)行以下步驟。
1) S利用Cha和TK調(diào)用Transformout算法,并得到部分的解密結(jié)果Cha′ = (T0,T1,T2)。
3) S根據(jù)R在列表L4中找到對(duì)應(yīng)的表目(R,m,s)。根據(jù)R在列表L5中找到對(duì)應(yīng)的表目同時(shí),根據(jù)在列表L6中找到對(duì)應(yīng)的表目若S無(wú)法在L4或L5或L6中找到對(duì)應(yīng)表目,則S返回⊥。若所找到的匹配表目數(shù)量超過(guò)1個(gè),則S模擬失敗。
情況 2滿足 (M, ρ) = (M*, ρ*)。S將ASK分離為的形式,并執(zhí)行以下步驟。
1) S利用Cha和TK調(diào)用Transformout算法,并得到部分的解密結(jié)果Cha′ = (T0,T1,T2)。此時(shí),滿足同時(shí),
2) S計(jì)算
3) S在列表L4中尋找是否存在元組若查找失敗,則S返回⊥。若匹配的元組數(shù)量超過(guò)1個(gè),則S模擬失敗。假設(shè)(R,m,s)為唯一匹配元組。然后,S根據(jù)R在列表L5中尋找匹配的元組。若查找失敗,則返回⊥。若匹配的元組數(shù)量超過(guò)1個(gè),則S模擬失敗。假設(shè)為唯一匹配元組。類(lèi)似地,S根據(jù)在列表L6中尋找匹配的元組。假設(shè)為唯一匹配的元組。
回解密結(jié)果m,否則,S返回⊥。
可驗(yàn)證性S采用TSetup算法和ASetup算法中的方式產(chǎn)生底層CP-ABE方案的公鑰APK和MSK。在詢問(wèn)1階段,S利用MSK實(shí)現(xiàn)對(duì)預(yù)言機(jī)Create( ·),Corrupt( · ),Decrypt(·,·)的模擬。在挑戰(zhàn)階段,A輸出此時(shí),S返回Cha*=在詢問(wèn)2階段,允許A繼續(xù)提出上述類(lèi)型的詢問(wèn)。最終,A輸出假設(shè)S此前已經(jīng)產(chǎn)生關(guān)于S*的ASKS*和TKS*。否則,S自行執(zhí)行Create(S*)詢問(wèn),從而產(chǎn)生這些元素。現(xiàn)在,S根據(jù)此前產(chǎn)生的ASKS*執(zhí)行Decryptout算法,從cha*′中恢復(fù)滿足則表明A成功地進(jìn)行了欺詐,即cha*′是關(guān)于另一個(gè)明文′的部分解密結(jié)果。S利用TKS*執(zhí)行Transformout算法,得到關(guān)于Cha*的正確的部分解密結(jié)果進(jìn)而恢復(fù)得到滿足。于是,從而違背了散列預(yù)言機(jī)H6( ·)的抗碰撞性。證畢。
本文提供了對(duì)第 6節(jié)方案與相關(guān)方案[3-4,8,10-13]的性能比較。在表 2,對(duì)本文方案與這些方案進(jìn)行了主要性質(zhì)的比較。本文方案是基于DAA技術(shù)構(gòu)造的,因此可以部署于可信平臺(tái)之上,而其他方案都是在標(biāo)準(zhǔn)PC平臺(tái)上設(shè)計(jì)的。包括本文方案在內(nèi)的多數(shù)方案都支持可表述性的認(rèn)證策略(expressive policy)。相反,文獻(xiàn)[3,12]方案僅支持受限制的門(mén)限認(rèn)證策略(threshold policy)。文獻(xiàn)[11]方案是唯一的不滿足屬性匿名性的方案,因?yàn)樵摲桨敢笥脩粼谡J(rèn)證階段向驗(yàn)證者揭示所使用的屬性子集,顯然會(huì)有損用戶的隱私。本文方案和文獻(xiàn)[13]方案均采用區(qū)間證明技術(shù)實(shí)現(xiàn)了對(duì)用戶認(rèn)證次數(shù)的限制,因此較其他方案更適合于按需付費(fèi)的云服務(wù)模式。本文方案滿足注冊(cè)過(guò)程的可驗(yàn)證性,使用戶可以對(duì)所得成員證書(shū)和屬性私鑰進(jìn)行有效性驗(yàn)證。相反,其他方案[3-4,8,10-13]并未考慮此項(xiàng)驗(yàn)證,即用戶必須完全信任AA。此外,本文方案繼承了底層DAA方案的驗(yàn)證者本地廢除機(jī)制和底層 CP-ABE方案的屬性更新機(jī)制,從而更好地滿足了應(yīng)用系統(tǒng)的實(shí)際需求。
在表3中,提供了本文方案與相關(guān)方案在用戶注冊(cè)(即屬性私鑰產(chǎn)生)和認(rèn)證子協(xié)議中的通信性能比較。在比較過(guò)程中,符號(hào)|Si|表示用戶屬性集合的規(guī)模。|des(Γ)|表示由SP(或驗(yàn)證者)定義的屬性樹(shù)(或訪問(wèn)結(jié)構(gòu))的規(guī)模。d與k表示文獻(xiàn)[3]中默認(rèn)屬性集合的規(guī)模和系統(tǒng)門(mén)限值。n′表示文獻(xiàn)[3,12]方案的公開(kāi)屬性集合的規(guī)模。l與n分別表示文獻(xiàn)[4,8,13]方案和本文方案的訪問(wèn)結(jié)構(gòu)中矩陣M的行數(shù)和列數(shù),且l同樣等于文獻(xiàn)[10]方案屬性樹(shù)中的葉結(jié)點(diǎn)數(shù)量[21]。N表示文獻(xiàn)[12]方案中分布式AA的數(shù)量。文獻(xiàn)[12]并未提供有關(guān)底層兩方密鑰協(xié)商子協(xié)議的完整描述,因此用|2PC|U與|2PC|AA分別表示User與AA在該子協(xié)議中的通信開(kāi)銷(xiāo)。|RL|表示本文方案中被廢除的用戶數(shù)量。對(duì)于本文方案,符號(hào)“*”標(biāo)記了User在外包解密過(guò)程中與Server間的額外通信開(kāi)銷(xiāo)。根據(jù)文獻(xiàn)[24]結(jié)論,在對(duì)稱的對(duì)環(huán)境下,域Zp和群G0,GT上的元素長(zhǎng)度分別為160 bit,160 bit,960 bit。需要指出的是,文獻(xiàn)[3-4,8,10-11]方案的注冊(cè)階段不要求User發(fā)送任何數(shù)據(jù)。原因在于,這些方案假設(shè)AA是完全可信的,User直接接收由前者發(fā)送的屬性私鑰。
表2 相關(guān)方案的重要特性總結(jié)
表3 相關(guān)方案的通信開(kāi)銷(xiāo)比較
在表4中,提供了本文方案與相關(guān)方案在用戶注冊(cè)(即屬性私鑰產(chǎn)生)和認(rèn)證子協(xié)議中的運(yùn)算性能比較。對(duì)于文獻(xiàn)[3, 10]方案,本文采用了 Goyal等[25]的估算方法,即用|Sr|表示用戶在基于屬性樹(shù)的認(rèn)證過(guò)程中使用的葉結(jié)點(diǎn)集合規(guī)模,使對(duì)運(yùn)算次數(shù)達(dá)到最小。|Li|是文獻(xiàn)[11]方案中的特殊參數(shù),它表示根據(jù)Si構(gòu)造的屬性樹(shù)的虛擬葉結(jié)點(diǎn)集合規(guī)模。此外,(2PC)U與(2PC)AA分別表示User與AA在文獻(xiàn)[12]方案的底層兩方密鑰協(xié)商子協(xié)議中的運(yùn)算開(kāi)銷(xiāo)。在比較過(guò)程中,本文僅統(tǒng)計(jì)群G0,GT上的指數(shù)運(yùn)算和對(duì)運(yùn)算,且認(rèn)為單指數(shù)運(yùn)算和多指數(shù)運(yùn)算的開(kāi)銷(xiāo)相當(dāng)。對(duì)于本文方案,符號(hào)“+”與“++”分別標(biāo)記了TPM和Host的運(yùn)算開(kāi)銷(xiāo)。根據(jù)文獻(xiàn)[26-27]結(jié)論,在對(duì)稱的對(duì)環(huán)境下,以群G0上的指數(shù)運(yùn)算為基準(zhǔn)(記為E),群GT上的指數(shù)運(yùn)算開(kāi)銷(xiāo)約為4E,且對(duì)運(yùn)算的開(kāi)銷(xiāo)約為3E。最終,本文將所有方案中各角色的運(yùn)算開(kāi)銷(xiāo)都換算為群G0上的指數(shù)運(yùn)算,從而得到較為直觀的比較結(jié)果。顯然,本文方案在用戶端的認(rèn)證過(guò)程運(yùn)算效率方面是最優(yōu)的,而且為常量。取得這個(gè)優(yōu)勢(shì)的原因是:1)User對(duì)挑戰(zhàn)密文Cha進(jìn)行了外包;2) 在π3的產(chǎn)生過(guò)程中,TPM與Host的絕大多數(shù)運(yùn)算都采用預(yù)計(jì)算方式完成;3)User通過(guò)π3向SP證明“自己掌握合法的成員證書(shū)”且“認(rèn)證令牌Jk的產(chǎn)生過(guò)程使用了在公開(kāi)集合Φ中選取的新鮮下標(biāo)k”。為了證明上述斷言,本文方案采用了無(wú)需用戶端執(zhí)行對(duì)運(yùn)算的知識(shí)證明技術(shù)。
與已有同類(lèi)方案[3-4,8,10-13]相比,本文方案額外支持屬性更新和用戶廢除。在屬性更新協(xié)議中,User的運(yùn)算可以在離線階段完成,且AA的在線運(yùn)算開(kāi)銷(xiāo)為(4|RL| +nnon+ 1 3)E,其中,nnon表示當(dāng)某用戶的特定屬性發(fā)生變化后,其他擁有該屬性但屬性未發(fā)生更新的用戶數(shù)量。在用戶廢除算法中,User無(wú)需執(zhí)行任何運(yùn)算,且AA的運(yùn)算開(kāi)銷(xiāo)為9E。應(yīng)當(dāng)承認(rèn)的是,本文方案在增加理想性質(zhì)同時(shí)也付出了額外的運(yùn)算和通信開(kāi)銷(xiāo)。具體地,在注冊(cè)階段,User與AA的通信和運(yùn)算開(kāi)銷(xiāo)較大,這是為實(shí)現(xiàn)可驗(yàn)證的注冊(cè)性質(zhì)而付出的必要代價(jià)。在認(rèn)證階段,SP端的通信和運(yùn)算開(kāi)銷(xiāo)均與|RL|有關(guān),這是為實(shí)現(xiàn)用戶廢除性質(zhì)而付出的必要代價(jià)。此外,為了在最大程度上降低用戶端在認(rèn)證階段的運(yùn)算開(kāi)銷(xiāo),要求User將挑戰(zhàn)密文Cha和轉(zhuǎn)換鑰TK轉(zhuǎn)發(fā)給Server,從而產(chǎn)生了一筆額外的通信開(kāi)銷(xiāo)。因此,在AA未必完全可信、用戶屬性集合規(guī)模較大且要求支持成員廢除和屬性更新的現(xiàn)實(shí)應(yīng)用環(huán)境下,本文方案具有明顯優(yōu)勢(shì)。
本文基于DAA、支持屬性更新的CP-ABE和基于成員身份的區(qū)間證明等技術(shù)提出新的k-TABA方案。該方案可部署于可信平臺(tái),并且采用預(yù)計(jì)算技術(shù)和服務(wù)器外包解密技術(shù)盡可能地優(yōu)化了用戶端的運(yùn)算性能。與 Yuen等的k-TABA方案和相關(guān)屬性認(rèn)證方案相比,本文方案不但支持一般性的訪問(wèn)控制策略,而且較好地解決了現(xiàn)實(shí)應(yīng)用中的用戶私鑰廢除和用戶屬性值更新問(wèn)題。相對(duì)于已有的同類(lèi)方案,本文方案的顯著特點(diǎn)是使得用戶在認(rèn)證協(xié)議中的運(yùn)算耗費(fèi)擺脫了對(duì)底層屬性集合和屬性樹(shù)(或訪問(wèn)結(jié)構(gòu))規(guī)模的依賴。
表4 相關(guān)方案的運(yùn)算開(kāi)銷(xiāo)比較
定理1第4節(jié)方案滿足正確性。
證明為了證明本文方案的正確性,需要分別證明AttGen,Auth,AUpdate協(xié)議均滿足正確性。
AttGen協(xié)議的正確性π1是標(biāo)準(zhǔn)的“關(guān)于掌握離散對(duì)數(shù)”的知識(shí)簽名,它使AA可以確信TPM提供的upk,hpk滿足正確性,即滿足若是采用正確方式產(chǎn)生的,則必然滿足
顯然,式(1)等價(jià)于以下的式(2)、式(3)同時(shí)成立,即
同時(shí),若ASKi中的元素D,D′是采用正確方式產(chǎn)生的,則分別滿足
顯然,式(4)和式(5)分別等價(jià)于以下的式(6)和式(7),即
π2是標(biāo)準(zhǔn)的“關(guān)于掌握離散對(duì)數(shù)”的知識(shí)簽名,它與額外的驗(yàn)證等式可以確保滿足正確性。
Auth協(xié)議的正確性 π3是標(biāo)準(zhǔn)的“關(guān)于掌握離散對(duì)數(shù)”的知識(shí)簽名,它使SP可以確信User提供的元素Jk,K,B滿足正確性,即滿足同時(shí),π3表明以下等式成立,即
顯然,根據(jù)式(8)和式(11)式,可以得出
同時(shí),將式(12)帶入式(9),可以得出
最后,根據(jù)第5節(jié)中π3的產(chǎn)生和驗(yàn)證過(guò)程可知,對(duì)于誠(chéng)實(shí)用戶User,π3能通過(guò)SP驗(yàn)證的條件是他能從挑戰(zhàn)密文Cha中恢復(fù)出元素KSP,并利用該元素產(chǎn)生π3的挑戰(zhàn)串c。對(duì)于密文顯然滿足
AUpdate協(xié)議的正確性 該協(xié)議的正確性可以直接根據(jù)底層CP-ABE方案屬性更新算法的正確性得出。
證畢