方子旋,曹素珍,閆俊鑒,盧彥霏,何啟芝,王彩芬
(1.西北師范大學 計算機科學與工程學院,蘭州 730070;2.深圳技術大學 大數(shù)據(jù)與互聯(lián)網(wǎng)學院,廣東 深圳 518118)
在5G 移動通信技術的快速發(fā)展下,物聯(lián)網(wǎng)[1-2]成為全球關注的熱點領域,智能生活[3]時代已經(jīng)到來。隨著現(xiàn)代醫(yī)療水平的不斷提高,智慧醫(yī)療[4-5]作為智能生活中的重要組成部分,給人們帶來了極大的便利,顯著地促進了醫(yī)患間的溝通與互動,醫(yī)護人員可以隨時獲取對應患者的健康信息和最新的診療報告,為患者快速診斷疾病和制定治療計劃,也使患者能及時了解自身的健康情況。在智慧醫(yī)療系統(tǒng)中,通常將患者的健康信息存儲于能提供數(shù)據(jù)訪問的云服務商(Cloud Service Provider,CSP)[6-7],但云服務商通常被認為是不可信的,如果數(shù)據(jù)遭到惡意泄露,這將會對患者造成巨大傷害。因此,對患者的健康信息進行加密[8-10]是一個亟待解決的問題。
在智慧醫(yī)療系統(tǒng)中,患者無須提前知道具體哪位醫(yī)護人員能查看其健康信息,且為了增強患者健康隱私的安全性,要求只有與患者病情相關的醫(yī)護人員才能訪問該患者的健康信息,即除了保護患者健康信息的安全性,還需要滿足“一對多”的數(shù)據(jù)共享以及靈活的訪問控制。文獻[11]提出密文策略屬性基加密(Ciphertext-Policy Attribute Based Encryption,CP-ABE)方案,數(shù)據(jù)擁有者(Data Ower,DO)通過在密文中嵌入制定的訪問策略精準地控制解密密文的數(shù)據(jù)使用者(Data User,DU),具有細粒度的訪問控制,完全符合智能醫(yī)療系統(tǒng)的實際需求?;颊咧恍韪鶕?jù)授權者的屬性制定加密健康信息的訪問策略,若用戶的屬性滿足患者定義的訪問策略,即可解密密文獲取對應的健康信息。近年來提出的屬性加密方案[12-14]是將訪問策略和密文一起存儲在云服務器上,但訪問策略中常常會包含一些敏感信息。例如,某醫(yī)院醫(yī)療系統(tǒng)中患者設置的訪問策略為{市級醫(yī)院,精神科,醫(yī)師},其中屬性“精神科”屬于敏感信息,容易泄露患者健康隱私。為了解決這一問題,文獻[15]提出一種具有完全隱藏訪問策略的屬性基加密(Attribute Based Encryption,ABE)方案,訪問策略采用與或門形式,當授權機構為用戶生成私鑰時無法獲取用戶的GID 信息,因而避免了用戶遭受惡意機構的攻擊,但由于該方案將訪問策略完全隱藏,使計算開銷太大,不適用于實際應用。文獻[16]提出一種部分隱藏訪問策略的屬性基加密方案,將屬性分為屬性名和屬性值兩部分,通過將訪問結構的屬性值隱藏來保護用戶的敏感信息,但該方案無法滿足大規(guī)模分布式的需求,且計算效率較低。隨后文獻[17]對文獻[16]的方案進行了改進,并將其應用于智能健康系統(tǒng)。文獻[18]提出一種線性秘密共享訪問結構的屬性基加密方案,通過使用屬性過濾器靈活地隱藏了部分訪問策略,高效實現(xiàn)了對用戶的隱私保護。
除了需要考慮隱藏訪問策略來保護患者的敏感信息外,還需要考慮如何解決惡意用戶因販賣患者健康信息將解密密鑰泄露給第三方以謀取暴利的問題。在CP-ABE 方案中,密文的解密密鑰與多個用戶共享的屬性集相關聯(lián),與用戶身份信息無關,因此無法判斷具體是誰泄露密文。例如,Alice 和Bob 的屬性集都包含{精神科,醫(yī)師},他們可以訪問由{精神科,醫(yī)師或護士}加密的所有患者的健康信息。如果解密密鑰被泄露,造成患者隱私曝光,則無法判斷是Alice 還是Bob 泄露的解密密鑰。文獻[15-18]均未考慮如何追溯惡意用戶的問題。針對這種惡意泄露解密密鑰的事件,文獻[19]介紹一種白盒可追溯的CP-ABE 方案,通過采用shamir(t,n)門限方案實現(xiàn)了低成本追溯惡意用戶的功能,但該方案不能將惡意用戶在系統(tǒng)中撤銷。文獻[20]介紹一個黑盒可追溯的CP-ABE 方案,該方案公開惡意用戶的追溯過程,即任何人都可以執(zhí)行追溯算法,但存在泄露用戶敏感信息的風險。文獻[21]介紹一種支持白盒可追溯的屬性加密方案,該方案能實現(xiàn)惡意用戶的直接撤銷,并通過構造一個與用戶的身份標識相關聯(lián)的二叉樹來完成對惡意用戶的追溯功能,但該方案既不能隱藏用戶的敏感信息,又存在用戶計算開銷過大的問題。文獻[22]提出的支持實時撤銷的ABE方案中使用子集覆蓋技術更新密鑰,但該方案不具備惡意用戶追溯功能。文獻[23]介紹一種無密鑰托管的CP-ABE 方案,滿足白盒可追溯性和可撤銷性,但不滿足訪問策略隱藏功能。文獻[24]介紹一種基于白盒可追溯且能完全隱藏訪問策略的ABE 方案,通過采用短簽名算法實現(xiàn)用戶跟蹤機制,解決了私鑰泄露的問題,但該方案不具備用戶撤銷功能。文獻[25]介紹一種能解決用戶和授權中心密鑰濫用問題的白盒可追溯CP-ABE 方案,但該方案同樣不具備用戶撤銷功能。
本文在智慧醫(yī)療環(huán)境下提出一種支持白盒追溯的CP-ABE 方案,并證明了其在標準模型中滿足選擇明文攻擊下的密文不可區(qū)分性(Indistinguishability under Chosen Plaintext Attacks,IND-CPA)。在加密階段的訪問策略中僅包含屬性名,用戶只需提供滿足對應屬性名下的屬性值即可解密密文獲取患者健康信息,從而實現(xiàn)訪問策略的部分隱藏功能。同時,將與用戶信息綁定的二叉樹的葉節(jié)點值加密嵌入解密密鑰,用戶信息可直接加密,無須初始化用戶列表來存儲用戶身份,從而實現(xiàn)惡意用戶追溯功能。此外,采用直接撤銷的方式,將惡意用戶信息添加至用戶撤銷列表,無須與屬性機構(Attribute Authority,AA)通信。當用戶不在撤銷列表中且其屬性集滿足訪問策略時,用戶才能成功解密密文。密文更新工作由云服務商執(zhí)行,減輕了屬性機構的計算負擔。
本文方案中的部分符合說明如表1 所示。
表1 符號說明Table 1 Symbol description
設U為系統(tǒng)中總用戶的集合,R為用戶撤銷列表。如圖1 所示,二叉樹T中所有葉節(jié)點與用戶集合U中的每位用戶u一一對應,相互關聯(lián)。設|U|為總用戶的數(shù)量,即二叉樹T中葉節(jié)點的個數(shù)為|U|,T中的所有節(jié)點為2|U| -1。將所有的節(jié)點按寬度優(yōu)先搜索進行編號。
圖1 二叉樹構造Fig.1 Binary tree construction
定義path(ui)為根節(jié)點root 到用戶ui的路徑。例如,在圖1 中,path(u2)=path(4)=(0,1,4)。最小覆蓋集cover(R)表示可以覆蓋所有不在撤銷列表R中用戶的最小節(jié)點集。例如:若用戶u3∈R,則cover(R)=(1,6);若用戶u1,u4∈R,則cover(R)=(4,5);若用戶ui?R,則當cover(R) ∩path(ui) 時,結果僅有一個節(jié)點j,即cover(R) ∩path(ui)=j;若用戶u1,u2,u4?R,用 戶u3∈R,則 有cover(R)=(1,6),path(u2)=path(4)=(0,1,4),計算得到cover(R) ∩ path(u2)=1。
定義一個線性秘密共享方案(Linear Secret Sharing Scheme,LSSS)∏[26],該方案具有如下特性:
定義1若不存在多項式時間算法在不可忽略的優(yōu)勢ε下區(qū)分∈G2和隨機元素R∈G2,則稱q-parallel BDHE 困難問題假設成立。
本文方案由6 個實體構成,分別為中央機構(Center Authority,CA)、屬性機構(AA)、數(shù)據(jù)擁有者(DO)、醫(yī)療云服務商(CSP)、外包計算服務商(Outsourced Computing Service Provider,OCSP)和數(shù)據(jù)使用者(DU),系統(tǒng)模型如圖2 所示。
圖2 系統(tǒng)模型Fig.2 System model
1)中央機構:該實體是一個完全獨立且可信的第三方,可以調用系統(tǒng)設置算法生成系統(tǒng)公共參數(shù)PP。
2)屬性機構:該實體可視為醫(yī)療機構,主要調用權限設置算法生成系統(tǒng)公鑰PK 和系統(tǒng)私鑰SK,為合適的DU 生成解密密鑰,并且維護用戶撤銷列表R。
3)數(shù)據(jù)擁有者:該實體可視為去醫(yī)院或診所看病的患者。DO 對于自身的健康信息具有絕對的控制權和擁有權,可以指定訪問策略W,并對健康信息m加密形成密文CT,然后將CT 上傳至CSP。
4)醫(yī)療云服務商:該實體是半可信的,主要任務是存儲密文。當執(zhí)行屬性撤銷時,根據(jù)AA 通過秘密信道發(fā)送的更新參數(shù)k'來更新密文。
5)外包計算服務商:該實體收到DU 的轉換密鑰TK 與密文申請后,從醫(yī)療云服務商下載密文CT,并將密文CT 外包計算為解密密文CTpart發(fā)送給DU。
6)數(shù)據(jù)使用者:該實體可視為訪問患者健康信息的醫(yī)護人員和醫(yī)療研究員等。DU 將自身的屬性集發(fā)送給AA 獲取相應密鑰,若其屬性集滿足密文設置的訪問策略W且不在用戶撤銷列表R中,即可解密密文獲取患者健康信息。
本文定義了一個選擇明文攻擊下的密文不可區(qū)分性的安全模型,可通過挑戰(zhàn)者C 和敵手A 之間的安全游戲來表示,具體如下:
4)挑戰(zhàn):A 向挑戰(zhàn)者C 提交兩個等長的明文m0和m1,挑戰(zhàn)者C 隨機選擇一個明文mb(b∈{0,1}),根據(jù)訪問策略W*=(M*,ρ*,H)和用戶撤銷列表R*對其加密形成CTb。最后,挑戰(zhàn)者C 將挑戰(zhàn)明文CTb發(fā)送給A。
5)階段2:敵手A 重復階段1 的詢問。
6)猜測:A 輸出b'∈{0,1}中的一個值作為對b的猜想。若b'=b,則稱A 贏得了此游戲。A 贏得游戲的優(yōu)勢為。
定義2若不存在多項式時間算法使敵手能以不可忽略的優(yōu)勢贏得此游戲,則本文方案是INDCPA 安全的。
本文方案具體過程如下:
5)部分解密Decryptpart(CT,TK) →(CTpart)。該算法由外包計算服務商OCSP 執(zhí)行,存在以下2 種情況:
(1)如果Agid不滿足訪問策略W或用戶ui∈R,則算法終止。
OCSP 將部分密文CTpart={C,C0,D,O,R,|W|}發(fā)送給DU。
7)密鑰完整性檢查。該算法由屬性機構AA 執(zhí)行。若解密密鑰sk 被質疑,則算法檢查密鑰是否滿足如式(5)所示的條件:
如果解密密鑰sk 滿足式(5),則通過密鑰完整性檢查,否則輸出⊥。
8)追溯及撤銷。該算法由屬性機構AA 執(zhí)行。若解密密鑰sk 不能通過密鑰完整性檢查,則算法停止,否則算法計算:
(1)di=Deck(K')重新獲得與用戶u相關聯(lián)的葉節(jié)點di的值。
(2)在二叉樹中搜索值為di的葉節(jié)點并輸出與di相關聯(lián)的用戶ui。若不存在這樣的用戶,則算法終止。
(3)若ui?R,則將用戶ui添加到用戶撤銷列表R中,再更新用戶撤銷列表R'=ui∪R。
9)密文更新。該算法由醫(yī)療云服務商CSP 執(zhí)行。AA 隨機選擇,再通過秘密信道將其發(fā)送給CSP,CSP 輸入更新參數(shù)k'、最新的用戶撤銷列表R'和密文CT,輸出更新后的密文CT'。設cover(R')是與R'相關聯(lián)的最小覆蓋集。給定j'∈cover(R)存在以下2 種情況:
(1)若存在j∈cover(R)使j=j',則令Tj'=Tj。
定理1如果q-parallel BDHE 困難問題成立,那么不存在多項式時間算法敵手能夠以不可忽略的優(yōu)勢攻破此方案。
證明如果存在一個敵手A 能夠以不可忽略的優(yōu)勢ε攻破此方案,那么就存在挑戰(zhàn)者C 能以的優(yōu)勢破解q-parallel BDHE 困難問題。C 執(zhí)行如下算法:
令G1和G2為兩個p階的乘法循環(huán)群,g為G1的生成元,e是一個雙線性映射e:G1×G1→G2。系統(tǒng)公共參數(shù)為PP=(G1,G2,p,e,g)。挑戰(zhàn)者C 隨機選擇μ,且μ∈{0,1}。給定Y'=(g,gs,gα,gα2,…,)gαq,gαq+2…,gα2q。如果μ=0,則挑戰(zhàn)者C 計算T=e(g,g)αq+1s;如果μ=1,則挑戰(zhàn)者C 隨機選擇T∈G1。
假設path(di)={d0,d1,…,di},其中,d0為根節(jié)點root,di是在二叉樹T中與用戶ui相關聯(lián)的葉節(jié)點的值。因為ui∈R*,所以有di∈NgidR*,xdi=vdi+ddi。
(4)如果ui?R*,Agid不滿足訪問策略W*,則挑戰(zhàn)者C 如情況3 所示計算L0,L1,K',K,Kx。
4)挑戰(zhàn):敵手A 給挑戰(zhàn)者C 發(fā)送兩個等長的明文m0和m1。挑戰(zhàn)者C 執(zhí)行如下算法:
5)階段2:敵手A 重復階段1 的詢問。
6)猜想:敵手A 輸出對b的猜想b'。若b=b',則挑戰(zhàn)者C 輸出對μ的猜想μ'=0;若b≠b',則挑戰(zhàn)者C輸出對μ的猜想μ'=1。
最后,將挑戰(zhàn)者C 解決q-parallel BDHE 困難問題假設的優(yōu)勢定義如下:
由于q-parallel BDHE 困難問題是不可解的,因此本文方案是安全的。
將本文方案與文獻[18,22,24]方案在是否具備可撤銷、外包解密、惡意用戶追蹤和隱藏訪問策略等功能方面進行對比,其中,√表示具備該功能,×表示不具備該功能,結果如表2 所示。由表2 可以看出,文獻[18,24]方案不支持用戶撤銷功能,文獻[18,22]方案無法實現(xiàn)外包解密和惡意用戶追蹤功能,文獻[22]方案不具備隱藏訪問策略功能,本文方案同時支持可撤銷、外包解密、隱藏訪問策略以及惡意用戶追蹤。因此,本文方案在功能性上具有一定優(yōu)勢。
表2 功能對比Table 2 Function comparison
將本文方案與文獻[18,22,24]方案在密鑰生成、數(shù)據(jù)加密、外包解密、用戶解密等階段進行性能分析,結果如表3 所示。令E表示G1和G2群上的指數(shù)運算次數(shù),P表示雙線性配對運算次數(shù),l表示訪問策略中屬性的個數(shù),s表示用戶的屬性個數(shù),n表示解密時用戶滿足訪問策略的屬性個數(shù),r表示cover(R)的長度,h表示path(ui)的長度。
表3 計算開銷對比Table 3 Computational cost comparison
由表3 可以看出,文獻[24]方案在用戶解密階段的效率比本文方案略高,但它不支持用戶撤銷功能,且在數(shù)據(jù)加密階段計算開銷遠大于本文方案。本文方案有效實現(xiàn)了一對多的數(shù)據(jù)共享,且對于各階段運算成本的對比結果而言,在計算開銷上具有一定優(yōu)勢。
為了更直觀地體現(xiàn)本文方案的優(yōu)勢,將其與文獻[18,22,24]方案進行數(shù)值模擬實驗。實驗基于PBC-0.5.14 與cpabe-0.11 進行編寫和修改,實驗配對結構為有限域Fq(q是一個質數(shù)且q≡3mod 4)的橢圓曲線y2=x3+x,實驗環(huán)境為64 位Ubuntu 14.04 操作系 統(tǒng)、Intel?CoreTMi5-6200U CPU @ 2.30 GHz 處 理器、4.00 GB RAM 的個人筆記本電腦,軟件運行時的環(huán)境為JDK 1.7.5、JPBC 2.0.0 和MyEclipse 10。
圖3 為文獻[18,22,24]方案與本文方案在密鑰生成階段隨著數(shù)據(jù)使用者屬性個數(shù)的增加,屬性機構為其生成密鑰的時間開銷對比。本文方案在密鑰生成時只有1 個指數(shù)運算與用戶屬性相關,文獻[18,24]方案在計算密鑰時有多個指數(shù)運算與用戶屬性相關,文獻[22]在計算密鑰時不僅與屬性個數(shù)有關,還與path(ui)的長度有關,使其產(chǎn)生了較重的計算負擔。與本階段效率最高的文獻[24]方案相比,計算開銷減少了49.5%。由圖3 可以看出,本文方案在密鑰生成階段的計算開銷小于文獻[18,22,24]方案。
圖3 密鑰生成階段的效率分析Fig.3 Efficiency analysis of key generation stage
圖4 為文獻[18,22,24]方案與本文方案在數(shù)據(jù)加密階段隨著訪問策略的屬性個數(shù)增加,數(shù)據(jù)擁有者加密密文的時間開銷對比。本文方案在數(shù)據(jù)加密時主要影響因素為訪問策略中屬性的個數(shù)和cover(R)的長度,為了便于比較,設置r=8。由圖4可以看出,數(shù)據(jù)加密階段的計算時間幾乎與訪問策略中屬性的個數(shù)成正比,但本文方案受訪問策略中屬性個數(shù)的影響最小,且與本階段效率最高的文獻[22]方案相比,計算開銷減少了23.2%,因此其加密階段的計算開銷小于文獻[18,22,24]方案。
圖4 數(shù)據(jù)加密階段的效率分析Fig.4 Efficiency analysis of data encryption stage
由表3 可知,只有文獻[24]方案與本文方案具有外包解密功能,因此其用戶解密的計算開銷遠遠小于文獻[18,22]方案。圖5 為文獻[24]方案與本文方案在外包解密階段的時間計算開銷對比,可以看出本文方案在外包解密階段的時間開銷小于文獻[24]方案。圖6 為文獻[18,22,24]方案與本文方案在整個解密階段的時間開銷對比,包括外包解密的時間開銷與用戶解密的時間開銷。由圖6 可以看出,文獻[18]方案和文獻[22]方案在解密階段的計算時間非常接近,雖然文獻[24]在用戶解密階段的計算開銷略小于本文方案,但其整個解密階段的計算開銷卻遠大于本文方案,且本文方案與本階段效率最高的文獻[22]方案相比,計算開銷減少了10.6%。
圖5 外包解密階段的效率分析Fig.5 Efficiency analysis of outsourcing decryption stage
圖6 整個解密階段的效率分析Fig.6 Efficiency analysis of overall decryption stage
綜上實驗結果表明,本文方案在密鑰生成階段和數(shù)據(jù)加解密階段的計算開銷均具有一定優(yōu)勢。
本文面向智慧醫(yī)療環(huán)境,提出一種支持白盒追溯的CP-ABE 方案,其中密文由兩部分構成,一部分與使用LSSS 作為訪問結構的訪問策略相關,另一部分與用戶撤銷列表相關,通過采用部分隱藏訪問策略的方式來保護患者的隱私信息。為了滿足追溯惡意用戶的需求,構造一個將葉節(jié)點與用戶身份綁定的二叉樹,在用戶解密密鑰中嵌入葉節(jié)點的值,若發(fā)生密鑰泄露事件則在解密密鑰中追溯惡意用戶,且采用直接撤銷的方式撤銷系統(tǒng)中的惡意用戶?;趒-parallel BDHE 假設證明了該方案是安全的,通過數(shù)值分析表明該方案在功能和計算效率上相比于現(xiàn)有方案具有一定的優(yōu)勢。下一步將在加解密階段減少使用雙線性配對,構造輕量級CP-ABE 方案,使其適用于資源受限的智慧醫(yī)療系統(tǒng)。