李嘉豪,李冬梅,2,張曉梅
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620;2.上海市信息安全綜合管理技術(shù)研究重點實驗室,上海 200240)
近十幾年來,物聯(lián)網(wǎng)技術(shù)在全球各地迅猛發(fā)展,數(shù)百億臺物聯(lián)網(wǎng)設(shè)備已經(jīng)走進人們的生活[1]。許多行業(yè)[2-3]融合物聯(lián)網(wǎng)技術(shù)云計算,人工智能等其他新興技術(shù)實現(xiàn)了行業(yè)的自我升級。醫(yī)療行業(yè)就是其中之一[4],智慧醫(yī)療正在取代傳統(tǒng)依賴人力和紙張的傳統(tǒng)醫(yī)療模式給醫(yī)生和患者帶來了極大的便利,無接觸式的智慧醫(yī)療可以有效地降低傳染的可能性[5]。但是隨著智慧醫(yī)療系統(tǒng)的廣泛應(yīng)用,保護龐大的醫(yī)療數(shù)據(jù)安全,確?;颊邆€人隱私免遭泄露成為了重中之重。許多學(xué)者針對此領(lǐng)域提出了許多方案,Hamid等[6]提出了一種利用霧計算與基于配對的加密方法來保護儲存在云服務(wù)器中的醫(yī)療數(shù)據(jù)。文獻[7]構(gòu)造了一種輕量級的同態(tài)加密算法和改進數(shù)據(jù)加密標準(data encryption standard,DES)算法來保護在物聯(lián)網(wǎng)智慧醫(yī)療系統(tǒng)中的患者數(shù)據(jù)安全。Xia等[8]結(jié)合區(qū)塊鏈技術(shù)提出了MeDShare平臺,通過智能合約提供訪問控制,防止患者數(shù)據(jù)被惡意篡改。文獻[9]利用改進的同態(tài)加密算法結(jié)合MapReduce安全多方計算模型,無須依賴第三方可信任機構(gòu),提供了高效安全的數(shù)據(jù)安全共享。但是以上方案仍然存在一些缺陷。例如,訪問控制不靈活,加密后難以添加或刪除用戶訪問權(quán)限或者每次訪問數(shù)據(jù)都需向服務(wù)器發(fā)送請求;系統(tǒng)中心化,需要可信任中心參與系統(tǒng)運作過程中,容易發(fā)生單點故障以及遭受攻擊泄露用戶隱私;加密效率較低,計算開銷過大,無法滿足物聯(lián)網(wǎng)設(shè)備低延遲的要求以及計算能力較低的限制。
屬性基加密[10-11]可以在對數(shù)據(jù)加密的同時實現(xiàn)靈活的細粒度訪問控制。但是傳統(tǒng)屬性基加密方案中單一的屬性中心不能滿足云計算中多個不同操作域的環(huán)境要求,因此,Chase等[12]提出了第一個多中心屬性基加密方案,由多個屬性中心根據(jù)用戶的屬性集合共同為用戶生成解密密鑰。隨后,Liu等[13]提出一種支持屬性撤銷以及訪問策略更新的多中心屬性基加密方案;Sandor等[14]提出了一種解決密鑰托管問題,方案無須信任的中心機構(gòu)去參與系統(tǒng)參數(shù)與用戶密鑰生成;Sethi等[15]提出了一種在大屬性空間上可實際應(yīng)用的具有可追蹤和訪問控制策略更新的多授權(quán)中心屬性基加密方案,可以不用存儲身份列表的情況下確認泄露密鑰的惡意用戶身份。文獻[16]利用加密密鑰樹實現(xiàn)動態(tài)用戶撤銷以及利用霧節(jié)點減少用戶計算負擔。于金霞等[17]提出了一種基于R-LWE假設(shè)的支持樹形訪問結(jié)構(gòu)的屬性基加密方案。但是在以上多中心屬性基加密方案中,屬性空間被分為多個較小的屬性集合,每個屬性中心負責管理一組屬性集合,任意屬性中心故障仍然會導(dǎo)致系統(tǒng)無法運行。另外,物聯(lián)網(wǎng)設(shè)備的計算資源十分有限,無法直接應(yīng)用屬性基加密方案?;谝陨蠁栴},本文結(jié)合智慧醫(yī)療系統(tǒng)的特點以及要求,提出了一種基于區(qū)塊鏈的多中心屬性基加密(multi-authority attribute-based encryption,MA-ABE)方案,方案的主要貢獻如下。
1)針對以往醫(yī)療系統(tǒng)中訪問控制方案存在的問題,本文提出了一種改進的多中心屬性基加密方案?;颊呃脤ΨQ加密算法對自身醫(yī)療數(shù)據(jù)加密,上傳至IPFS,獲得訪問路徑,然后對訪問路徑以及對稱密鑰進行屬性基加密,發(fā)布記錄在區(qū)塊鏈中。只有當醫(yī)生的屬性集合滿足訪問策略的情況下才能獲取訪問路徑得到患者數(shù)據(jù),從而進行診斷。數(shù)據(jù)的上傳與下載操作都會記錄在區(qū)塊鏈中,保證了系統(tǒng)的安全透明。
2)由于物聯(lián)網(wǎng)醫(yī)療設(shè)備計算資源有限,無法獨立完成屬性基加密所要進行的雙線性配對的計算工作。本文在系統(tǒng)中引入霧節(jié)點,在加密和解密階段,大多數(shù)計算工作都由霧節(jié)點協(xié)作完成,從而減少了用戶的計算負擔。
3)利用區(qū)塊鏈中的智能合約和Shamir秘密分享方案協(xié)助不同屬性中心生成完整屬性公鑰,只需要收集到的子屬性公鑰數(shù)量大于設(shè)定門限,便仍可以正常對屬性進行管理,避免了單點故障,同時無須第三方可信任機構(gòu)。
4)我們對提出方案進了安全性分析,還利用JPBC庫實際搭建提出的加密方案并與其他方案進行比較,最終結(jié)果表明,本文提出的系統(tǒng)是高效的,安全的。
Shamir秘密分享方案為假設(shè)一共有n位參與者,秘密s被分給n位參與者,只有在至少擁有k個秘密份額時才能重構(gòu)秘密s,但是如果只擁有k-1個秘密份額便無法重構(gòu)秘密s。具體方法如下。
1)選取維度為k-1的隨機多項式f(x)=ak-1xk-1+…+a2x2+a1x+a0。其中,ak-1,ak-2,…,a1∈zp,并且,令f(0)=s。計算秘密份額f(xi)后發(fā)送給參與者。
設(shè)G和GT是階為大素數(shù)p的乘法循環(huán)群,定義g為乘法循環(huán)群G的群生成元,雙線性映射e:G×G→GT。滿足以下性質(zhì)。
①雙線性:對于?g∈G,α,β∈ZP,有e(gα,gβ)=e(g,g)αβ;
②非退化性:e(gα,gβ)≠1GT;
③可計算性:對于?g∈G,可以有效計算e(g,g)。
本文提出的基于區(qū)塊鏈的訪問控制系統(tǒng)模型如圖1所示,系統(tǒng)模型由5個實體組成。
1)Patient(患者)?;颊呤紫仁褂脤ΨQ加密算法加密數(shù)據(jù),上傳加密數(shù)據(jù)至IPFS,獲得訪問路徑。然后制定訪問控制策略,在霧節(jié)點的幫助下對對稱密鑰以及路徑進行屬性基加密。最后將密文,訪問策略,密文哈希值,時間戳以及用戶ID作為記錄上傳至區(qū)塊鏈中。
2)Doctor(醫(yī)生)。若醫(yī)生屬性集合符合患者制定的訪問控制策略,醫(yī)生可以在霧節(jié)點的協(xié)助下解密得到存儲路徑,然后將密文自身屬性集合,密文哈希值,時間戳以及用戶ID作為記錄上傳至區(qū)塊鏈中。最后再從IPFS中下載加密數(shù)據(jù),然后解密獲得患者數(shù)據(jù)。
3)FN(霧節(jié)點)。在加密與解密階段,負責幫助計算能力有限的用戶承擔外包計算任務(wù)。
4)IPFS(星際文件系統(tǒng))。用于存儲用戶上傳的加密數(shù)據(jù),返回哈希字符串作為存儲文件的唯一訪問路徑。
5)AA(屬性中心)。初始化階段,負責生成屬性子令牌。密鑰生成階段,各個屬性中心根據(jù)用戶屬性集,為用戶生成屬性密鑰構(gòu)件。
6)BC(區(qū)塊鏈)。負責收集來自各個屬性中心的屬性子令牌,生成完整的屬性令牌;存儲系統(tǒng)參數(shù)和用戶公鑰以及收集用戶屬性密鑰構(gòu)件生成完整的用戶屬性密鑰,具體過程如圖2所示。
圖2 用戶屬性密鑰生成流程Fig.2 Processing of user attribute key generation
本文提出了一種改進的多中心屬性基加密方案,為患者和醫(yī)生提供安全細粒度的數(shù)據(jù)共享,其中患者作為數(shù)據(jù)擁有者(DO),醫(yī)生作為數(shù)據(jù)使用者(DU),系統(tǒng)主要參數(shù)符合含義如表1所示,具體方案如下。
表1 系統(tǒng)的主要參數(shù)
2.2.1 初始化階段
1)全局公共參數(shù)生成。輸入安全參數(shù)1λ作為輸入,選取2個階為大素數(shù)偏p的乘法循環(huán)群G和GT,定義g為乘法循環(huán)群G的群生成元,雙線性映射e:G×G→GT,單向哈希函數(shù)H:{0,1}*→G。每個屬性ω∈U由kω個AA共同聯(lián)合管理,只需nω個AA正常運轉(zhuǎn),便仍能管理該屬性。
3)用戶初始化。對所有系統(tǒng)用戶, 先選取一個隨機數(shù)usk∈ZP,然后計算用戶公鑰upk=gusk,用戶秘密保存usk作為私鑰并發(fā)送upk至區(qū)塊鏈以完成注冊。
2.2.2 加密階段
1)FN加密。FN首先選取隨機數(shù)s,r1,…,rl∈zp,以及2個隨機向量z=(0,z1,…,zn)T和v=(s,v1,…,vn)T。FN隨后由此計算λi=Miv和wi=Miz(i=1,2…,l),ρ(i)為映射函數(shù)。計算CT1={C1,x=e(g,g)λx·e(g,g)αρ(x)rx,C2,x=grx,C3,x=gwi·gβρ(x)rx}x∈[l],將密文CT1發(fā)送給DO。
2)DO加密。DO選取一個隨機數(shù)DK∈ZP, 然后DK作為對稱密鑰加密文件m,計算C=SEDK(m),C0=DK·e(g,g)s。通過FN上傳C和C0至IPFS,得到訪問路徑L,計算C1=L·e(g,g)s。最終DO生成完整密文CT=(A,C1,CT1),DO把密文CT發(fā)送給FN, FN再將接收到的密文CT和密文的哈希值,用戶ID以及時間戳作為上傳記錄發(fā)布到區(qū)塊鏈中。
2.2.3 用戶密鑰生成階段
對于屬性ω∈Suid,每一個AAi使用askαω.i和askβω.i為用戶uid計算AKi.ω,uid=upkaskαω,iH(uid)askβω,i,然后將AKi.ω,uid發(fā)送至System合約。當收集到nω個屬性令牌時,System合約生成用戶屬性密鑰:AKω,uid=(upkaskαω,iH(uid)askβω,i)Li=upkαωH(uid)βω。
2.2.4 解密階段
2)DU解密。數(shù)據(jù)使用者首先結(jié)合用戶私鑰usk計算:CU=B·E1/usk=e(g,g)s,然后計算C0/C1=Le(g,g)s/e(g,g)s=L,最后從IPFS中下載加密數(shù)據(jù)使用對稱解密算法得到數(shù)據(jù)m。
在解密階段,若用戶屬性集合滿足訪問結(jié)構(gòu),正確性分析如下。
(1)
(2)
3.2.1 防共謀攻擊
在所提出的方案中,每個用戶都擁有一個獨特的全局用戶標識uid,用戶的屬性密鑰與其全局用戶標識相關(guān)聯(lián)。如果系統(tǒng)內(nèi)部用戶A想要與另一個用戶B分享屬性私鑰進行共謀攻擊,他們無法將他們的屬性私鑰H(uidA)βω和H(uidB)βω相結(jié)合,因為用戶A與用戶B的全局用戶標識不相同,從而防止擁有不同用戶標識的2個用戶通過分享私鑰共謀獲利。
3.2.2 保密性
在本文提出的方案中,用戶文件存儲在IPFS系統(tǒng)中,只有得到文件的路徑才能下載文件。在生成用戶屬性私鑰的過程中,用戶的屬性私鑰與用戶所提交的公鑰upk相關(guān)聯(lián),即upkαωH(uid)βω。所以即使一些屬性中心被攻破,如果沒有用戶私鑰usk也無法成功解密密文。
3.2.3 防篡改
本文所提出的方案引入?yún)^(qū)塊鏈平臺,在系統(tǒng)中協(xié)助運行不同屬性中心進行系統(tǒng)初始化以及用戶屬性密鑰生成的同時,系統(tǒng)會將文件在加密上傳階段和下載解密階段時的記錄都存證上鏈,由于區(qū)塊鏈的特點,文件的訪問記錄無法被篡改并且可以進行追溯。
3.2.4 安全性證明
定理1只要q-BDHE問題是困難的,我們提出的方案就是安全的。即如果存在一個敵手可以在多項式時間內(nèi)以不可忽略的優(yōu)勢ε=AdvA攻破本方案,就存在一個敵手可以在多項式時間內(nèi)以ε/2的優(yōu)勢成功攻破判定性q-BDHE問題。
證明給定判定性q-PBDHE問題的一組實例(y,T) ,構(gòu)建一個q-BDHE挑戰(zhàn)者C難以區(qū)分T=e(g,g)saq+1和T=R∈G,具體方法說明如下。
4)詢問階段2。重復(fù)密鑰查詢第1階段。
本實驗環(huán)境為一臺操作系統(tǒng)為Windows的個人計算機,配置有Intel i5-9300H 2.4 GHz和8 GB內(nèi)存。實驗方案由基于JAVA語言的配對密碼開源庫搭建完成,使用橢圓曲線參數(shù)為基于曲線y=x3+x的80比特橢圓曲線群,有限域大小為256比特。與本文方案進行比較的方案為文獻[18-20],文獻[18]提出了一種抗用戶合謀的CP-ABE方案。文獻[19]提出了一種云霧模型中的屬性基加密方案,文獻[20]同樣提出了一種區(qū)塊鏈技術(shù)與屬性基加密相結(jié)合的訪問控制方案,將比較4個不同方案在加密與解密階段中的計算開銷。在我們搭建的仿真實驗中,屬性中心的個數(shù)為5個,共同管理的屬性個數(shù)為5至25個,實驗結(jié)果是取重復(fù)進行50輪實驗的平均值,各比較方案的功能性比較如表2所示。
表2 方案功能性比較
圖3,圖4分別展示的是本方案與文獻[18-20]在明文加密階段中系統(tǒng)總計算時間與數(shù)據(jù)擁有者計算時間隨訪問策略中的屬性個數(shù)增加的關(guān)系,本方案在明文加密階段中總計算時間隨屬性個數(shù)呈線性增長,總計算時間小于文獻[18-19],略小于文獻[20]。但是文獻[20]中加密階段的計算開銷都由DO完成,而在本方案中大部分計算開銷由霧節(jié)點承擔,DO的計算負擔僅為常數(shù)級,遠遠小于文獻[18,20]中的總開銷。圖5, 圖6分別展示的是各方案在密文解密階段中系統(tǒng)運行總計算時間以及數(shù)據(jù)使用者計算時間隨訪問策略中的屬性個數(shù)增加的關(guān)系,與加密階段相同,DU的計算開銷遠遠小于文獻[18,20]中DU的計算開銷。文獻[19]雖然與本方案計算時間接近,但是,其方案需要第三方可信機構(gòu)并且存在單點故障問題。實驗結(jié)果表明,在保證安全性的情況下,本方案結(jié)合區(qū)塊鏈提供了細粒度的訪問控制,解決了單點故障,并且極大地減輕了用戶的計算負擔。
圖3 加密階段中各方案總計算開銷比較Fig.3 Comparison of total encryption cost of each scheme
圖4 加密階段中各方案DO計算開銷比較Fig.4 Comparison of DO’s encryption cost of each scheme
圖5 解密階段中各方案總計算開銷比較Fig.5 Comparison of total decryption cost of each scheme
圖6 解密階段中各方案DU計算開銷比較Fig.6 Comparison of DU′s encryption cost of each scheme
本文針對智慧醫(yī)療系統(tǒng)的特點以及以往訪問控制方案中的中心化,效率低等問題,提出了一種基于區(qū)塊鏈的多中心屬性基加密方案。利用智能合約和shamir秘密分享方案協(xié)助不同屬性中心生成完整屬性令牌,只需要收集到屬性子令牌的數(shù)量大于設(shè)定門限,便仍可以正常對屬性進行管理,避免了單點故障。針對物聯(lián)網(wǎng)設(shè)備計算資源有限,無法直接應(yīng)用屬性基加密的問題,本文在系統(tǒng)中引入霧節(jié)點,在加密和解密階段,大多數(shù)計算工作都由霧節(jié)點協(xié)作完成,從而減少了用戶的計算負擔。通過安全性分析與實驗仿真比較表明,本方案在安全的情況下,為用戶提供了隱私保護和細粒度的訪問控制,同時減去了用戶的計算負擔。