李琦,朱洪波,熊金波,莫若
(1. 南京郵電大學計算機學院、軟件學院、網絡空間安全學院,江蘇 南京 210023;2. 南京郵電大學物聯網技術與應用協同創新中心,江蘇 南京 210003;3. 南京郵電大學江蘇省大數據安全與智能處理重點實驗室,江蘇 南京 210023;4. 南京郵電大學通信與信息工程學院,江蘇 南京 210003;5. 福建師范大學數學與信息學院,福建 福州 350117;6. 西安電子科技大學網絡與信息安全學院,陜西 西安 710071)
移動健康(mHealth, mobile healthcare)護理系統[1]經由移動設備,集合了各種新興技術,包括云計算、無線傳感器、通信技術等,通過健康信息傳感器記錄、搜集、整合成個人健康檔案(PHR, personal health records),并由網絡上傳至健康信息管理云平臺,獲得健康服務提供商提供的各種服務。其為個人健康檔案的分享提供了便捷的模式,也為更好的個性化健康服務提供了便利。然而,PHR里包含了大量的個人隱私信息[2],如既往病史、診斷記錄等,這樣的分享模式給PHR的隱私保護帶來了嚴峻的挑戰。
基于屬性的加密[3](ABE, attribute-based encryption)作為一種新的“一對多”加密模式,通過屬性來描述用戶,在保護數據機密性的同時實現細粒度的訪問控制。根據訪問策略所處位置的不同,ABE方案通常可以分為 2類:密文策略 ABE[4](CP-ABE, ciphertext-policy ABE)與密鑰策略ABE[5](KP-ABE, key-policy ABE)。在CP-ABE方案中,由數據擁有者利用自定義的訪問策略來加密數據,只有用戶擁有滿足訪問策略的屬性時才能正確解密,更符合實際需求,從而廣泛地應用于 mHealth系統[6-7]中。
然而,在實際部署mHealth系統時,有2個問題值得注意。一方面,在單授權機構的方案[3-7]中,該授權機構負責管理整個系統屬性域以及所有用戶密鑰的生成,極易成為系統的性能與安全瓶頸。Chase[8]提出了多授權機構的概念并給出了一種密鑰策略ABE方案。基于多授權機構方案[9],Li等[10]提出了一種云計算中的PHR安全分享方案,然而,上述方案[8-10]都是在選擇安全模型下證明的,即攻擊者需要事先聲明要挑戰的訪問策略或屬性集合。Lewko等[11]提出了適應性安全的多授權機構CP-ABE方案,該方案在隨機預言機模型下證明。隨后,Liu等[12]提出了標準模型下適應性安全的方案;Li等[13]提出了針對云存儲服務的多授權機構CP-ABE方案,與文獻[12]的方案相比,該方案只采用一個中央授權機構(CA, central authority),而且該CA并不能解密任何密文。
另一方面,系統中某些惡意用戶可能出售自己的密鑰(白盒)給非法用戶以獲取不法利益,而在屬性加密體系中,屬性可以由多個用戶共同擁有,因此,很難判斷出屬性密鑰來自哪個用戶,這給惡意用戶追蹤帶來了很大困難。針對該問題,Liu等[14]提出了一種單授權機構下白盒可追蹤的CP-ABE方案;Li等[15]提出了一種基于與門策略的可追蹤多授權機構ABE方案,訪問策略較為簡單;Guan等[16]提出了一種移動云計算環境下可追蹤 CP-ABE方案,該方案將授權機構分成3個部分,各自執行不同的密鑰生成操作。
然而,目前的基于屬性的訪問控制方案要么致力于支持多個授權機構,要么只在單授權機構情形下考慮惡意用戶追蹤問題。文獻[8-13]的方案考慮多個授權機構并存的問題,但沒有考慮惡意用戶追蹤的問題;文獻[14]的方案只在單個授權機構的前提下實現了惡意用戶追蹤;文獻[15-16]的方案安全性是在選擇安全模型下證明的。因此,如何構造一種自適應安全的可追蹤多授權機構訪問控制方案還是一個值得考慮的問題。
本文基于文獻[13]的方案,結合追蹤技術[14]提出了一種面向 mHealth的支持多個授權機構的可追蹤CP-ABE方案,并基于子群判定問題在標準模型下證明其是適應性安全的。方案中包含一個 CA與多個屬性授權機構(AA, attribute authority),AA負責管理不同的屬性域,且不需要通過交互來設置系統參數。為了在多AA并存的情形下實現惡意用戶追蹤,CA負責生成類似文獻[14]方案中的身份追蹤參數,但是不會直接參與任何屬性相關的操作。AA基于CA生成的身份追蹤參數來生成用戶密鑰,使該密鑰可追蹤。該方案在合數階群上構造,支持任意單調的基于線性秘密分享機制(LSSS, linear secret sharing scheme)的訪問策略,基于k-SDH問題,證明了該方案的可追蹤性,性能分析表明了方案的可用性。
本文使用了合數階群上的雙線性配對[17],其定義如下。
選取G和 G1為2個階為 N = p1p2p3的群,其中,p1、 p2、 p3是3個不同的素數,定義一個可有效計算的雙線性映射 e :G×G→G1,該映射滿足以下條件。
1) 雙線性:對于所有的 a ,b ∈ZN和所有的u,v∈G,有 e(ua, vb)= e (u ,v )ab。
2) 非退化性:?g∈G,使e(g,g)在 G1中的階為N。
假設1[17]給定一個群生成器G,定義如下分布。

算法A攻破假設 1的優勢定義為 A dv1G,A=|Pr[A(D,T1) = 1 ]? P r[A(D,T2)=1]|。
定義 1 G滿足假設 1,如果對于任意的多項式時間算法A,優勢,1AdvGA是可忽略的。
假設2[17]給定一個群生成器G,定義如下分布。

算法A攻破假設 2的優勢定義為Adv 2G,A=|Pr[A ( D,T1) = 1 ] ? P r[A ( D,T2) = 1]|。
定義 2 G滿足假設 2,如果對于任意的多項式時間算法A,優勢,2AdvGA是可忽略的。
假設3[17]給定一個群生成器G,定義如下分布。

算法A攻破假設 3的優勢定義為Adv3G,A=|Pr[A ( D,T1) = 1 ]? P r[A ( D,T2)=1]|。
定義 3 G滿足假設 3,如果對于任意的多項式時間算法A,優勢,3AdvGA是可忽略的。
定義 4[18]令 P = { P1, P2, … ,PT}表示參與方的集合,P上的一個秘密共享方案Π被稱作線性的,如果:1) 每個參與方關于秘密s的份額是 ZN上的一個向量,2) 存在Π的一個l行n列的共享生成矩陣A,令ρ為一個從{1 , 2,…,l}到P的映射,即ρ將矩陣A的每一行映射到一個參與方,選擇一個隨機向量v = (s ,v2,… ,vn)T∈ZnN,則Av是s關于Π的l個共享份額,而且第i個份額λi屬于參與方ρ( i )。
文獻[18]表明,單調的訪問結構與線性秘密共享方案是等價的,且任何一個線性秘密共享方案都具有線性重構的性質。令(A , ρ )表示一個訪問結構A,S為一個授權集合,令集合 I ={i:ρ(i)∈ S},存在常數。對于非授權集合,這樣的常數是不存在的。本文只考慮每個屬性在訪問結構中出現一次的情況。
令G為一個階為素數p的群,令g為群G的一個生成元。k-SDH問題定義如下:隨機選擇 k + 1元組(g,gx, gx2,… ,gxk)作 為 輸 入 , 輸 出∈×G,一個算法A能夠以ε的優勢攻
定義 5 若沒用到至少ε的優勢多項式時間的算法解決k-SDH問題,則k-SDH假設成立。破k-SDH假設,即
系統由5個參與方組成:中央授權機構、屬性授權機構、PHR擁有者、mHealth云、PHR用戶,如圖1所示。
中央授權機構(CA):為PHR用戶生成身份私鑰,但是不參與任何屬性相關操作。該身份私鑰將來自各個屬性授權機構的密鑰“綁定”起來抵御共謀攻擊。
屬性授權機構(AA):生成系統屬性相關公開參數,為PHR用戶生成屬性密鑰。
PHR擁有者:其負責生成并整合PHR數據,設置訪問策略并加密PHR上傳至mHealth云。必要時可以要求mHealth云刪除其數據。
mHealth云:負責存儲PHR擁有者上傳的密文數據,本文假設其是誠實但好奇的,即它將誠實地運行系統設置的功能,但是試圖去獲取加密 PHR中的隱私信息。

圖1 mHealth系統框架
PHR用戶:PHR用戶可以利用其密鑰來訪問加密的 PHR數據并為其擁有者提供相關醫療服務,但是只有其屬性集合滿足訪問策略的 PHR用戶才能恢復密文,其中某些惡意 PHR用戶可能出售其密鑰給非法用戶來牟利。
一個可追蹤多授權機構CP-ABE方案由如下8個多項式時間算法組成。
Global Setup(λ) → (G PK):輸入安全參數λ,輸出系統全局參數GPK。
CA Setup(G PK ) → (C PK,C MK):輸入系統全局參數GPK、輸出中央授權機構 CA的公開參數CPK和主密鑰CMK。此外,初始化身份列表IT =?。
AAfSetup(G PK,f,Uf) → (A PKf,A MKf):輸入GPK,授權機構標識f及其管理的屬性域 Uf,輸出屬性授權機構AAf的公開參數 A PKf和其主密鑰 A MKf。
Encrypt (M , A,G PK , ∪ APKf) → (C T):輸入要加密的消息M、訪問策略A與公開參數CPK和相關AA的公開參數 ∪ A PKf,輸出密文CT。
CAKeyGen(G PK,g id ) → (I DSKgid,C ASKgid,CAPKgid):輸入GPK與用戶的全局標識符(gid),輸出用戶的追蹤密鑰參數 I DSKgid、CA密鑰部分CASKgid與AA將會用到 C APKgid,并將 gid和IDSKgid記入身份列表IT。
AAfKeyGen (Sgid,f,G PK,C PK , CAPKgid,AMKf)→(A SKS,gid,f):輸入用戶的屬性集合 Sgid,f、GPK、CPK、 C APKgid以及 A MKf,輸出用戶屬性密鑰ASKS,gid,f。
Decrypt( C T,G PK,C ASKgid, A SKS,gid)→(M / ⊥):輸入密文CT、GPK、 C ASKgid以及 A SKS,gid,若屬性集合∪Sgid,f滿足訪問策略,則輸出M,否則,輸出⊥。
Trace ( I T ,GPK , ∪ APKf, CASKgid, I D SKgid,ASKS,gid)→(g id,┬):輸入身份列表IT、GPK、 ∪ A PKf、CASKgid、I D SKgid和 A SKS,gid,首先驗證 C ASKgid和ASKS,gid是否well-formed,若是,則輸出相關gid。否則,輸出┬。well-formed意味著其可以通過Key Sanity Check來確保其可以正常用來解密[14]。
本文通過攻擊者A與挑戰者B之間的攻擊游戲來定義可追蹤多授權機構CP-ABE方案的安全模型。
初始化 挑戰者B運行方案的 Global Setup、CA Setup和AAfSetup算法,并將系統的公鑰參數發送至攻擊者A。
階段 1 A詢問任意的用戶屬性集合(g id1, S1) ,(g id2, S2),… ,(g idq, Sq),挑戰者B返回相對應的密鑰。
挑戰 A提交2條長度相等的明文 M0、 M1及一個挑戰訪問策略集合 A * 。B從中隨機選擇一條明文 Mb用A * 加密,并將挑戰密文 C T * 返回給A。注意: A * 不能是匹配階段1中屬性集合的訪問策略。
階段 2 與階段 1類似,A可以詢問密鑰,但是A不能查詢滿足 A * 的屬性集合。
猜測 A輸出對b的猜測 ′b。若 ′=b b,則A獲勝。A的優勢定義為。
定義6 一種可追蹤多授權機構CP-ABE方案是安全的,當且僅當在上述的攻擊游戲中,任何多項式時間攻擊者A的優勢是可以忽略的。
本節給出本文方案的可追蹤性定義,其也是通過挑戰者和攻擊者之間的交互式游戲來描述的。
初始化 挑戰者運行系統 Global Setup、CA Setup和AAfSetup算法,生成系統公共參數和主密鑰,并將公開參數發送給攻擊者。
密鑰查詢 攻擊者可以自適應地提交屬性集合 ( g id1, S1) ,(g id2, S2),… ,(g idq, Sq)進行密鑰查詢。
密鑰偽造 攻擊者輸出密鑰SK?,攻擊者贏得游戲,若 T race(I T ,P K,S K ) ≠┬(即該密鑰是 wellformed)且 T race(I T ,P K,S K ) ?{ g id1, g id2,… ,g idq},攻擊者贏得游戲的概率定義為Pr[T race(I T ,P K,SK ) ≠ { ┬} ∪ { g id1, g id2,… ,g id }]。
定義 7 如果對于任意的多項式時間算法而言,一個可追蹤的多授權機構CP-ABE方案是完全可追蹤的,其在上述游戲的優勢都是可以忽略的。
本系統主要由5個步驟組成:系統初始化、PHR上傳、用戶注冊及密鑰生成、PHR訪問和惡意用戶追蹤。
系統初始化包含3種算法:Global Setup、CA Setup和AAfSetup。
Global Setup。令G與 G1為2個階為N的群,其中,N為3個不同的素數p1、p2、p3的乘積。令e是一個 G × G → G1的雙線性映射。從 ZN中選擇一個隨機數a,從 Gp1中隨機選擇一個元素g,計算 ga。從 Gp3中選擇一個生成元 X3。另外,選擇一種在適應性選擇消息攻擊下不可偽造的簽名方案(K eyGen,S ign,V erify)。發布全局公鑰參數為并將a發送給屬性授權機構。
CA Setup。CA運行簽名算法中的KenGen,輸出一對簽名密鑰CMK和驗證密鑰CPK。其中,CPK只會被屬性授權機構們使用。同時,置用戶列表為=?IT。
AAfSetup。每個屬性授權機構AAf管理一個屬性域 Uf,對于每個屬性 i∈ Uf,從 ZN中選擇一個隨機數,并計算=,另外,隨機選擇發布屬性授權機構的公開參數。主密鑰 A MK為fAMKf=(αf, af, tf,i?i)。
對于每個 PHR文件,PHR擁有者首先選擇一個對稱密鑰K對其加密,密文為 E NPHR,再定義一個 LSSS訪問策略對K加密,具體算法如下。
Encrypt。LSSS訪問策略為(,)ρWA,其中,W為一個?行n列的矩陣,ρ將矩陣的每一行xW 映射為屬性()ρx。隨機選擇一個列向量,對于每一個x∈[?],隨機選擇 一 個 rx∈ZN, 計 算其中,EF表示與W中屬性有關的屬性授權機構的集合。
密文 C T =(A,C,C0, C1, {Cx, Dx}x∈[?])。收到CT與加密的PHR文件后,mHealth云服務提供商為文件定義一個ID并以表1的形式存在于云端。

表1 加密的PHR存儲形式
當一個 PHR用戶加入系統時,由系統分配給其一個全局身份標識符(gid),利用CA KeyGen和AAfKeyGen算法為其生成身份相關及屬性相關的密鑰,并將其 gid和身份相關密鑰記錄入身份列表。
AAfKeygen。PHR 用戶將 C APKgid發送給AAf請求屬性集合 Sgid,f的密鑰,AAf首先利用CPK驗證簽名是否有效,無效則終止;否則,隨機選擇 Rgid,f,0∈Gp3,計算。對于 i ∈ Sgid,f,隨機選擇∈Gp3,計算。本文記。最后發送給PHR用戶。
PHR用戶可以請求訪問PHR數據,但是只有那些屬性滿足 PHR密文中訪問策略的用戶才可以正確解密。
Decrypt。若用戶的屬性集合,gidfS∪滿足訪問策略(,)ρWA,則存在(1,0,,0)…。計算

如 果 SK 是 以 下 形 式 的 : ∪ A S KS,gid,f=,并且滿足以下Key Sanity Check的4個驗證步驟,則它表示屬性集合=e(g,Kgid,f,i)≠ 1 }對應的訪問權限,否則輸出┬。如果SK是well-formed,則算法在IT中搜索 cgid,若能搜索到,則輸出其全局身份標識符gid,否則輸出一個從未出現過的身份 g id * 。
Key Sanity Check

與文獻[14]的方案類似,本文方案的安全性規約至文獻[13] 的方案安全性,為了簡便,本文將文獻[13]的方案表示為 ∑MCP-ABE,本文方案表示為∑T-MCP-ABE。
引理1[13]若子群判斷假設1~假設3成立,則方案 ∑MCP-ABE在標準模型下是適應性安全的。
具體的證明可以參考文獻[13]的方案。
下面,給出方案 ∑T-MCP-ABE的安全性證明。
引理 2 若方案 ∑MCP-ABE是安全的,則本文方案 ∑T-MCP-ABE在第 3.3節給出的安全模型下也是安全的。
初始化 ∑MCP-ABE發送公開參數 P KMCP-ABE=給B。B從NZ 中選擇一個隨機數a,計算 ga。然后發送給攻擊者A。
階段 1 當A提交屬性集合( ,)gidS來請求私鑰時,B發送(g id,S)至 ∑MCP-ABE得到密鑰
得到密鑰以后,B做如下處理,隨機選擇 cgid∈Z*N,并計算,若 g cd(a+cgid,N)≠1或cgid已經存在于用戶身份列表IT中,則重新選擇gidc 。令計算也可以類似得到。
最后,B將 cgid、 C APKgid、 C ASKgid、L′gid以及 ∪ A SKS,gid,f=∪ {( Kgid,f, {Kgid,f,i}i∈Sgid,f)}發送給A。同時將(g id,cgid)記入用戶身份列表IT。
挑戰 A提交2個等長的消息0M 、1M 以及訪問策略(,)ρWA,B將其發送至返回密文。B除了計算 C1=( C0-MCP-ABE)a=gas之外,別的密文組件都不做變動。最后,將CT= ( A,C,C0, C1,{Cx, Dx}x∈[?])發送給A。
階段2 與階段1類似,但是不能查詢滿足挑戰的訪問策略的密鑰。
猜測 A返回一個猜測 'b給B,B將其返回給 ∑MCP-ABE。
注意,公開參數、密鑰和密文的分布都與真實方案一樣。因此,優勢
定理1 若假設1~假設3成立,則本文方案在標準模型下是適應性CPA安全的。
證明 由引理2可得,若 ∑MCP-ABE是CPA安全的,則本文方案也是CPA安全的。由引理1可得,若假設1~假設3成立,則 ∑MCP-ABE在標準模型下是適應性CPA安全的。
綜上所述,定理1成立。
與文獻[14]的方案類似,本文也基于假設 3和k-SDH假設來證明方案的可追蹤性。
定理2 若假設3和k-SDH假設成立,則本文方案 ∑T-MCP-ABE在q<k情況下是完全可追蹤的。
證明 假設多項式時間算法A在詢問q次以后能夠以不可忽略的優勢ε贏得可追蹤性交互式游戲,不失一般性,令 1= +k q ,則本文可以構造一個仿真者B以不可忽略的優勢攻破假設 3和k-SDH假設。簡便起見,本文只給出B利用k-SDH問題的參數與A進行可追蹤性游戲交互的具體過程。而利用假設3給出的參數與A的交互過程可以與文獻[14] 的方案類似。B以NZ 、G、1G、為輸入與A交互的過程如下所示。
Setup。B選擇q個不同的隨機數 m1,… mq∈,令多項式,展開可得,其中,ηi∈ZN為多項式 f (y)的系數。B計算θf(a)?a。隨機選擇,類似地,對于每個屬性 i ∈ Uf,從 ZN中選擇一個隨機數 tf,i,并計算= gtf,i,
最后,發送 cgid、 C APKgid、 C ASKgid、L′gid以及∪ASKS,gid,f=∪{(Kgid,f, {Kgid,f,i}i∈Sgid,f)}給A。
密鑰偽造 A返回一個密鑰SK?給B,根據分析[14],在上述游戲過程定義的公開參數和密鑰都與真實方案的分布無異。令?A表示A贏得游戲的事件,即是well-formed,滿足Key Sanity Check,并且gidc 從未在身份列表中出現過。若?A未發生,則B隨機選擇'{0,1}∈b和(cr,wr)∈ Zp1×Gp1,并分別將其作為結果返回給假設3和k-SDH假設。
若?A發生,用長除法記 f (y) = γ(y)(y+ cgid)+γ?1,其中,,1γ?∈NZ且10γ?≠。B計算 g cd(γ?1,N)。
1) 若 g cd(γ?1,N)=1
若μ=0,則意味著A無法提供任何有用的信息,則B隨機選擇b'∈{0,1}和(cr, wr) ∈ ZN×G1,并分別將其作為結果返回給假設 3和 k-SDH假設。
若μ=1,則意味著B可以利用k-SDH假設與A交互,B隨機選擇b'∈{0,1}作為結果返回給假設3,并計算 ( cr,wr)∈ Zp1×Gp1,結果如下所示。

由于 e (θaθcr) = e( θ,θ),則(c,w )是解決 r r k-SDH問題的一個可行結論。
2) 若 g cd(γ?1,N)≠1
B隨機選擇 (cr,wr)∈ Zp1×Gp1,并將其作為結果返回k-SDH假設。
表2給出了相關多授權機構方案與可追蹤方案的特征比較。從表2可以看出,本文提出的方案同時支持多個授權機構、適應性安全以及惡意用戶追蹤。
本文主要統計初始化、加密、密鑰生成解密以及追蹤算法中用到指數運算和雙線性配對的次數,如表3所示。令|U | 、|W | 、|S|、|I|、|ST|分別表示屬性域、訪問策略、用戶屬性集合、解密時用到的屬性集合以及被追蹤屬性集合中屬性個數。令|FU|、|FE|與|FT|分別表示系統中、加密時用到的以及追蹤密鑰涉及的屬性授權機構的個數。令 E1和E2分別表示G與 G1群中一次指數運算,令P表示一次雙線性配對的次數。

表2 相關多授權機構方案與可追蹤方案的特征比較

表3 相關多授權機構方案與可追蹤方案的計算開銷
從表 3可以看出,與文獻[13]的方案相比,為了實現可追蹤性,本文方案在初始化、加密以及密鑰生成步驟的開銷與文獻[13]的方案基本無異,只在初始化和加密步驟多了一次指數運算開銷,而密鑰生成步驟基本一致。因為文獻[13]的方案使用了外包解密技術將絕大部分的解密開銷外包至云端,所以用戶端的解密開銷為常數,本文下一步也將考慮如何在支持可追蹤性的前提下降低用戶的解密開銷。文獻[14]的方案與本文方案都支持可追蹤性,不同點在于文獻[14]的方案僅支持單個的授權機構。本文增加的開銷主要與系統中的授權機構相關,與各步驟中涉及的屬性個數是無關的。綜上所述,本文方案的開銷是可以接受的。
本文基于JPBC庫[19]選擇了一個TYPE A1的橢圓曲線群來作為本文方案的運算基礎,其群階為 3個517 bit素數的乘積。在筆記本電腦(WIN 7,CPU為2.4 GHz,內存為6 GB)上進行了仿真。令|U | =100,|W | =|S |= |I| = |ST|=10,|FU|=|FE|=|FT|=5。實驗結果如表4所示,其驗證了方案性能與理論分析的一致性。

表4 方案計算開銷比較
本文給出了一個面向mHealth的可追蹤多授權機構的訪問控制方案,并在標準模型下證明了其適應性安全,多個AA各自管理一個獨立的屬性域,并不需要通過協商來設置公開參數。本文方案支持任意單調的訪問控制策略,為了達到適應性安全,本文方案在合數階群上構造,其開銷相比素數階群上選擇安全方案而言,開銷較大。本文下一步的工作將以提出的方案為基礎,結合可驗證的外包解密技術,研究高效的適應性安全可追蹤方案。