王 政,王經(jīng)緯,殷新春,2,3*
(1.揚(yáng)州大學(xué) 信息工程學(xué)院,江蘇 揚(yáng)州 225127;2.揚(yáng)州大學(xué) 廣陵學(xué)院,江蘇 揚(yáng)州 225128;3.廣東省信息安全技術(shù)重點(diǎn)實(shí)驗(yàn)室(中山大學(xué)),廣州 510275)
物聯(lián)網(wǎng)和云計(jì)算技術(shù)[1]的出現(xiàn)為數(shù)據(jù)的存儲(chǔ)與共享研究帶來了新的機(jī)遇與挑戰(zhàn)。在醫(yī)療物聯(lián)網(wǎng)(Internet of Medical Things,IoMT)[2-3]行業(yè)中,物聯(lián)網(wǎng)和云計(jì)算技術(shù)的廣泛應(yīng)用為人們帶來了極大的便利,醫(yī)生可以通過各種傳感器設(shè)備詳細(xì)地收集患者的健康數(shù)據(jù),隨時(shí)監(jiān)測(cè)患者的各項(xiàng)生理參數(shù),為患者提供更優(yōu)質(zhì)的醫(yī)療服務(wù)。電子健康記錄(Electronic Health Record,EHR)用數(shù)字化方式記錄、存儲(chǔ)和管理的患者的健康信息,可以取代傳統(tǒng)紙質(zhì)病歷,幫助醫(yī)生和醫(yī)療機(jī)構(gòu)更高效、精確地管理患者的健康信息。患者可以使用智能終端將這些EHR 存儲(chǔ)到云服務(wù)器中以便于管理和維護(hù)。通過對(duì)電子健康記錄的安全共享,醫(yī)護(hù)人員能夠更全面、準(zhǔn)確地了解患者的健康情況,從而更科學(xué)地制定治療方案,提高醫(yī)療服務(wù)的質(zhì)量和效率。同時(shí),共享患者的醫(yī)療信息也有助于醫(yī)療機(jī)構(gòu)實(shí)現(xiàn)遠(yuǎn)程診斷和治療,特別是在醫(yī)療資源相對(duì)匱乏的地區(qū)。此外,將大量的EHR 數(shù)據(jù)存儲(chǔ)在云端能極大減小醫(yī)療中心存儲(chǔ)和維護(hù)數(shù)據(jù)的開銷,從而實(shí)現(xiàn)資源的合理配置。然而,存儲(chǔ)于云服務(wù)器的EHR 包含諸如姓名、性別、家庭住址、銀行卡號(hào)等患者的隱私,一旦泄露將會(huì)對(duì)患者的生活造成嚴(yán)重的影響。因此,如何保障隱私數(shù)據(jù)的安全存儲(chǔ),是當(dāng)下研究的熱點(diǎn)內(nèi)容之一。
屬性基加密(Attribute Based Encryption,ABE)可以提供細(xì)粒度訪問控制機(jī)制、保證數(shù)據(jù)的機(jī)密性,能夠有效解決上述問題。根據(jù)訪問策略與密鑰或密文的關(guān)系,ABE 方案分為密鑰策略屬性基加密(Key-Policy ABE,KP-ABE)方案[4-6]和密文策略屬性基加密(Ciphertext-Policy ABE,CP-ABE)方案[7-9]兩種。在CP-ABE 方案中,用戶的密鑰和一個(gè)屬性集合相關(guān),密文與一個(gè)訪問策略相關(guān),用戶完成解密的唯一條件是用戶密鑰中的屬性集合可以滿足密文中的訪問策略。而在KP-ABE 中,用戶的密鑰和一個(gè)訪問策略相關(guān),密文與一個(gè)屬性集合相關(guān),只有當(dāng)密文中的屬性集合可以滿足密鑰中的訪問策略時(shí)才能完成解密。Han 等[10]提出了一種基于隱私保護(hù)的可追蹤可撤銷CP-ABE 方案,將用戶屬性表示為屬性名和屬性值,屬性值用于加密,密文中的訪問策略只包含屬性名,從而實(shí)現(xiàn)了部分策略隱藏。Xue 等[11]提出了一種高效且安全的訪問控制方案,能有效減少解密時(shí)的計(jì)算開銷。Obiri 等[12]提出了一種支持?jǐn)?shù)據(jù)完整性驗(yàn)證的屬性基簽密方案,實(shí)現(xiàn)了細(xì)粒度訪問控制,同時(shí)保證了數(shù)據(jù)的隱私性、詢問結(jié)果的完整性和不可偽造性。
雖然可以通過加密保證數(shù)據(jù)的機(jī)密性,但數(shù)據(jù)用戶無(wú)法高效地對(duì)加密后的數(shù)據(jù)進(jìn)行搜索操作,限制了方案的實(shí)用性??伤阉骷用埽⊿earchable Encryption,SE)解決了加密數(shù)據(jù)的搜索問題,SE 能夠在保證密文安全性的前提下使用戶在加密數(shù)據(jù)中高效地搜索。根據(jù)密碼體制和構(gòu)造算法可以將 SE 分為對(duì)稱可搜索加密(Symmetric Searchable Encryption,SSE)和公鑰可搜索加密(Public Encryption with Keyword Search,PEKS)兩類。在SSE 中,密鑰用于數(shù)據(jù)加密、陷門生成和加密數(shù)據(jù)的搜索[13]。PEKS 中每個(gè)數(shù)據(jù)擁有者和數(shù)據(jù)用戶都有一個(gè)密鑰對(duì),其中數(shù)據(jù)用戶的公鑰用于加密關(guān)鍵字,而私鑰用于生成陷門[14]。Lai 等[15]提出了支持任意表達(dá)的多關(guān)鍵字可搜索加密方案,但該方案中存在關(guān)鍵字隱私泄露問題。Lv 等[16]在文獻(xiàn)[15]的基礎(chǔ)上提出了安全且支持任意表達(dá)的多關(guān)鍵字可搜索加密方案,但依然存在存儲(chǔ)和計(jì)算開銷較大等問題。殷新春等[17]提出了一種輕量級(jí)可搜索醫(yī)療數(shù)據(jù)共享方案,采用大屬性域結(jié)構(gòu)和Intel SGX 技術(shù)提高了訪問控制的擴(kuò)展性和靈活性,并將用戶解密部分的計(jì)算開銷降低到常數(shù)級(jí),然而在加密部分的計(jì)算開銷仍然較大。
IoMT 系統(tǒng)中存在大量的用戶,在系統(tǒng)運(yùn)行過程中隨時(shí)可能出現(xiàn)用戶或者用戶屬性變化的情況,因此用戶撤銷和及時(shí)更新密鑰對(duì)系統(tǒng)安全同樣至關(guān)重要。Pirretti 等[18]提出了第一個(gè)支持屬性撤銷的ABE 方案,該方案提出為每個(gè)屬性設(shè)置一個(gè)過期時(shí)間。隨后,Yu 等[19]提出了基于CP-ABE 的屬性撤銷方案,采用代理重加密技術(shù)實(shí)現(xiàn)屬性撤銷,在撤銷屬性時(shí)只需生成重加密密鑰。然而,該方案引入了復(fù)雜的加密算法和訪問控制機(jī)制,增加了系統(tǒng)的復(fù)雜性和運(yùn)行成本。Ostrovsky 等[20]提出了一種支持用戶撤銷的CP-ABE 方案,但計(jì)算開銷較高。Staddon 等[21]提出了一種支持用戶撤銷的KP-ABE 方案,但在該方案中只有密文相關(guān)屬性,正好是整個(gè)屬性集的一半時(shí)撤銷才可行,限制條件過高。在醫(yī)療場(chǎng)景下,Ma 等[22]提出了一種支持撤銷的訪問控制機(jī)制,可以實(shí)現(xiàn)即時(shí)的用戶撤銷功能。Edemacu 等[23]提出了一種具有即時(shí)屬性/用戶撤銷的訪問控制協(xié)議,能同時(shí)保證抗合謀攻擊、前向和后向的安全性;但該方案采用的有序二叉決策圖訪問結(jié)構(gòu)在數(shù)據(jù)量過大時(shí)會(huì)導(dǎo)致一定的延遲。王光波等[24]提出了一個(gè)標(biāo)準(zhǔn)模型下可證明安全且支持屬性撤銷的CP-ABE 方案,即使用戶的某個(gè)屬性被撤銷,也不會(huì)影響該用戶其他合法屬性的正常使用。此外,對(duì)于每次屬性撤銷,用戶不需要實(shí)時(shí)更新密鑰,只有用戶解密時(shí)才需要更新密鑰,該方案存在密鑰管理和更新困難等問題。變色龍哈希函數(shù)是一種帶陷門的抗碰撞哈希函數(shù)[25],它的特性可以在ABE 原語(yǔ)中構(gòu)建撤銷機(jī)制。Li 等[26]為移動(dòng)用戶設(shè)計(jì)了一種基于屬性的數(shù)據(jù)共享協(xié)議,基于變色龍哈希函數(shù)生成即時(shí)密文。Khalili等[27]構(gòu)造了效率更高且具有強(qiáng)抗碰撞性的變色龍哈希函數(shù);但該方案依賴大量的雙線性配對(duì)操作,計(jì)算開銷過大。
為了提高IoMT 系統(tǒng)中密文搜索和用戶撤銷的計(jì)算效率,本文提出了一種支持用戶撤銷的可搜索電子健康記錄共享方案,主要工作包括:
1)構(gòu)造出長(zhǎng)度固定的陷門用于對(duì)密文的搜索驗(yàn)證,并對(duì)關(guān)鍵字索引進(jìn)行哈希以及雙線性配對(duì)計(jì)算,保證了關(guān)鍵字索引的安全性。關(guān)鍵字搜索功能以及部分解密計(jì)算工作由云服務(wù)器執(zhí)行,從而降低了醫(yī)護(hù)人員解密密文的計(jì)算負(fù)擔(dān),而云服務(wù)器在整個(gè)過程中無(wú)法獲取與關(guān)鍵字相關(guān)的敏感信息。
2)采用在線/離線ABE 技術(shù),使患者使用資源受限的設(shè)備完成EHR 的快速加密。采用外包解密技術(shù)將繁瑣的解密工作外包給云服務(wù)器,醫(yī)護(hù)人員在獲取到部分解密數(shù)據(jù)后,只需一次求冪計(jì)算即可恢復(fù)明文。上述技術(shù)減小了醫(yī)護(hù)人員的計(jì)算開銷,與已有方案對(duì)比,本文方案以最小的計(jì)算代價(jià)實(shí)現(xiàn)了EHR 的加密和訪問,更適合資源受限的患者。
3)基于變色龍哈希函數(shù)構(gòu)造出用戶屬性私鑰,在新的密鑰版本中,未被撤銷的醫(yī)護(hù)人員無(wú)須對(duì)私鑰進(jìn)行更新操作即可繼續(xù)有效訪問患者的EHR 密文數(shù)據(jù),從而減少醫(yī)護(hù)人員的計(jì)算開銷。該撤銷機(jī)制在判定性雙線性Diffie-Hellman(Decisional Bilinear Diffie-Hellman,DBDH)問題下具有抗碰撞、語(yǔ)義安全等特性。
安全性分析表明本文方案在DBDH 假設(shè)下可以抵抗選擇明文攻擊,理論與實(shí)驗(yàn)分析表明,與其他方案[16,20-22]相比,本文方案效率更高。
令G 和GT表示階為質(zhì)數(shù)p的雙線性循環(huán)群,g為群G 的生成元,雙線性映射e具有以下特性:
1)雙線性性:對(duì)于?u,v∈G 和?a,b∈Zp,e(ua,vb)=e(u,v)ab。
2)非退化性:?u,v∈G 使得e(u,v) ≠1。
3)可計(jì)算性:對(duì)于?u,v∈G,都可以有效地計(jì)算e(u,v)。
定義1令U={U1,U2,…,Un}表示屬性空間,則稱一個(gè)非空的屬性集合A?2U{?}為訪問結(jié)構(gòu)。如果A滿足:對(duì)?B,C?U,如果B∈A且B?C,有C∈A,則稱A是單調(diào)的訪問結(jié)構(gòu)。對(duì)于?D∈A,稱D為授權(quán)集合。
一個(gè)變色龍哈希方案包括KeyGen、Hash、Verify 和Adapt這4 個(gè)算法,具體定義如下:
KeyGen(1λ) →{pk,sk}:算法輸入安全參數(shù)λ,輸出公鑰pk以及私鑰sk。
Hash(pk,m) →{hash,r}:算法輸入公鑰pk以及消息m,輸出一個(gè)哈希值hash以及隨機(jī)數(shù)r。
Verify(pk,m,hash,r) →0 or 1:算法輸入pk、m、hash和r,如果驗(yàn)證通過,算法輸出1;否則輸出0。
Adapt(sk,m,m′,hash,r) →r′:算法輸入私鑰sk、原消息m、新消息m′、與原消息m對(duì)應(yīng)的哈希值hash以及隨機(jī)數(shù)r,輸出與新消息相對(duì)應(yīng)的隨機(jī)數(shù)r′。
在判定性雙線性假設(shè)中,挑戰(zhàn)者選擇階為p的雙線性群G 和GT,構(gòu)造雙線性映射e:G × G →GT,G 的生成元為g。給定一個(gè)四元組(g,ga,gb,gc),a,b,c,z∈Zp,判斷這個(gè)四元組是DBDH 四元組(g,ga,gb,e(g,g)abc),還是隨機(jī)四元組(g,ga,gb,gz)。
定義2對(duì)于任意多項(xiàng)式時(shí)間算法,如果成功解決DBDH問題的優(yōu)勢(shì)是可忽略的,則稱DBDH困難性假設(shè)成立。
本文方案的系統(tǒng)模型包括4個(gè)實(shí)體:可信機(jī)構(gòu)、云服務(wù)器、數(shù)據(jù)擁有者、數(shù)據(jù)用戶,系統(tǒng)模型如圖1 所示。

圖1 系統(tǒng)模型Fig.1 System model
1)可信機(jī)構(gòu)(Trusted Authority,TA)。TA 是指EHR 共享場(chǎng)景中的醫(yī)院,它是完全可信的,負(fù)責(zé)初始化系統(tǒng)、授予數(shù)據(jù)用戶屬性私鑰和執(zhí)行用戶的撤銷。
2)云服務(wù)器(Cloud Server,CS)。CS 是具有強(qiáng)大存儲(chǔ)和計(jì)算能力的第三方機(jī)構(gòu),它是半可信的,負(fù)責(zé)存儲(chǔ)數(shù)據(jù)擁有者的EHR、驗(yàn)證數(shù)據(jù)用戶的身份、執(zhí)行數(shù)據(jù)用戶的關(guān)鍵字搜索和解密部分密文。它會(huì)遵循方案的規(guī)則,但也可能試圖獲取患者的隱私信息。
3)數(shù)據(jù)擁有者(Data Owner,DO)。DO 是EHR 共享場(chǎng)景中的患者,他/她是完全可信的,負(fù)責(zé)加密數(shù)據(jù)和關(guān)鍵字索引,并將加密后的數(shù)據(jù)和索引一起上傳至CS進(jìn)行存儲(chǔ)和共享。
4)數(shù)據(jù)用戶(Data User,DU)。DU 是EHR 共享場(chǎng)景中的醫(yī)護(hù)人員,他/她是不可信的,DU 將自己的屬性集合發(fā)送給TA 申請(qǐng)屬性私鑰,利用私鑰生成加密的查詢關(guān)鍵字并發(fā)送給CS。當(dāng)DU 接收到CS 返回的半解密密文之后,即可解密數(shù)據(jù)文件。
1)Setup(λ) →(PP,MSK)。初始化算法由TA 執(zhí)行,主要用于初始化系統(tǒng)中各類參數(shù)。算法輸入安全參數(shù)λ,輸出系統(tǒng)公開參數(shù)PP和主密鑰MSK。
2)KeyGen(PP,MSK,S) →SK。屬性私鑰生成算法由TA執(zhí)行,主要用于生成屬性私鑰用于后續(xù)的外包解密操作。算法輸入PP、MSK、數(shù)據(jù)用戶的屬性集合S,輸出屬性私鑰SK。
3)TransKeyGen(PP,SK) →{TK,RK}。外包密鑰生成算法由DU 執(zhí)行,主要用于生成外包密鑰用于用戶解密。算法輸入PP和SK,輸出外包密鑰TK和解密密鑰RK。
4)OfflineEnc(PP,(M,ρ)) →{IT,s}。離線加密算法由DO 執(zhí)行,主要用于加密計(jì)算的預(yù)處理工作。算法輸入PP以及訪問策略(M,ρ),輸出中間密文IT和秘密值s。
5)OnlineEnc(PP,IT,m,s) →CT。在線加密算法由DO執(zhí)行,主要用密文的加密。算法輸入PP、IT、消息m和s,輸出密文CT。
6)EncIndex(PP,W) →{CTθ}θ∈W。關(guān)鍵字索引加密算法由DO 執(zhí)行,主要用于生成關(guān)鍵字索引。算法輸入PP和關(guān)鍵字索引集合W,輸出關(guān)鍵字索引{CTθ}θ∈W。
7)Trapdoor(PP,ω) →Tω。陷門生成算法由DU 執(zhí)行,主要用于生成關(guān)鍵字陷門。算法輸入PP和關(guān)鍵字ω,輸出陷門Tω。
8)Search(PP,QID,S,CT,{CTθ}θ∈W,Tω,TK) →DTor ⊥。關(guān)鍵字搜索與部分解密算法由CS 執(zhí)行,主要用于生成部分解密數(shù)據(jù)。算法輸入PP、數(shù)據(jù)用戶身份QID、屬性集合S、CT、關(guān)鍵字索引{CTθ}θ∈W、Tω和TK,輸出部分解密數(shù)據(jù)DT或⊥。
9)UserDecrypt(DT,RK) →m。用戶解密算法由DU 執(zhí)行,主要用于用戶解密操作。算法輸入部分解密數(shù)據(jù)DT和DU 生成的RK,輸出m。
10)Revocation(PP,ID) →QID。用戶撤銷算法由TA 執(zhí)行,主要用于撤銷用戶。算法輸入PP和待撤銷數(shù)據(jù)用戶的身份ID,輸出QID。
本文方案具備選擇明文攻擊不可區(qū)分安全性,針對(duì)所提出的方案描述敵手A與挑戰(zhàn)者B之間的游戲如下:
初始化階段 敵手A向挑戰(zhàn)者B提交挑戰(zhàn)訪問策略(M*,ρ*)作為挑戰(zhàn)目標(biāo)。
系統(tǒng)建立階段 挑戰(zhàn)者B執(zhí)行Setup 算法,然后將公開參數(shù)PP發(fā)送給敵手A,并保存MSK。
詢問階段1 敵手A可以向挑戰(zhàn)者B發(fā)起以下詢問:
1)私鑰詢問。敵手A向挑戰(zhàn)者B提交一個(gè)屬性集S,但要求敵手A不得對(duì)滿足挑戰(zhàn)訪問策略的屬性集發(fā)起私鑰詢問。挑戰(zhàn)者B執(zhí)行KeyGen 算法,然后返回給敵手A一個(gè)私鑰SK。
2)轉(zhuǎn)換密鑰詢問。敵手A向挑戰(zhàn)者B提交一個(gè)私鑰SK,挑戰(zhàn)者B運(yùn)行TransKeyGen 算法,將{TK,RK}返回給敵手A。
挑戰(zhàn)階段 敵手A選擇2 個(gè)長(zhǎng)度相等的消息m0和m1提交給挑戰(zhàn)者B,挑戰(zhàn)者B拋出一枚硬幣ξ∈{0,1},并使用挑戰(zhàn)訪問策略(M*,ρ*)加密mξ。然后,挑戰(zhàn)者B執(zhí)行OfflineEnc算法和OnlineEnc 算法生成挑戰(zhàn)密文CT*返回給敵手A。
詢問階段2 與詢問階段1 相同。
猜測(cè)階段 敵手給出對(duì)ξ的猜測(cè)ξ′。當(dāng)且僅當(dāng)ξ=ξ′時(shí),敵手A獲勝。
本局游戲中敵手A的優(yōu)勢(shì)定義為AdvA(λ)=|Pr[ξ′=ξ]-1/2|。
定義3若敵手A不能在概率多項(xiàng)式時(shí)間(Probabilistic Polynomial Time,PPT)內(nèi)以不可忽略的優(yōu)勢(shì)AdvA打破上述安全性游戲,說明本文方案具備選擇明文攻擊不可區(qū)分安全性。
本文方案由以下算法構(gòu)成:
1)Setup(λ) →(PP,MSK)。該算法由TA 執(zhí)行。令e:G × G →GT為雙線性映射,G 和GT是階為p的循環(huán)群,且與安全系數(shù)λ相關(guān)。g為群G 的生成元,TA 選擇隨機(jī)值α,u,h∈Zp并計(jì)算PK0=e(g,g)αu,PK1=gαu,PK2=gh。令H0:Zp→G 為抗碰撞的哈希函數(shù),H1為變色龍哈希函數(shù),F(xiàn)為消息認(rèn)證函 數(shù) 。算法輸出PP={G,GT,p,e,g,PK0,PK1,PK2,H0,H1,F(xiàn)}和MSK=α。
2)KeyGen(PP,MSK,S) →SK。該算法由TA 執(zhí)行。TA設(shè)置Ver=0,隨機(jī)選取v,wVer∈Zp,DU 將自己的屬性集合S={A1,A2,…,Ak,Ak+1,}?Zp發(fā)送給TA,其中Ak+1是一個(gè)身份標(biāo)簽,用來區(qū)別具有相同屬性的不同DU,令I(lǐng)D=Ak+1,ID用于對(duì)DU 進(jìn)行標(biāo)記。TA 選取隨機(jī)數(shù)r1,r2,…,rk+1∈Zp并計(jì)算H0(ID))},SKi=H1(Ai,Ver,R)其 中?Ai∈S。算法輸出SK={QID,{SKi}i=1,2,…,k+1},TA 將SK發(fā)送給DU,QID發(fā)送給CS。
5)OnlineEnc(PP,IT,m,s) →CT。該算法由DO 執(zhí)行。在這個(gè)階段,DO 對(duì)消息m加密時(shí),只需要計(jì)算C0==me(g,g)αus,算法生成最終密文CT={(M,ρ),C0,{C1,τ,C2,τ}τ=1,2,…,l}。
6)EncIndex(PP,W) →{CTθ}θ∈W。該算法由DO 執(zhí)行。關(guān)鍵字索引加密算法輸入PP和由數(shù)據(jù)文件生成的W,對(duì)每個(gè)關(guān)鍵字θ∈W,算法生成與關(guān)鍵字θ相關(guān)的字符串tθ,并計(jì)算kθ=e(H0(θ)PK1,PK2),然后將tθ和kθ作為消息認(rèn)證函數(shù)F的輸入,最終算法輸出加密后的關(guān)鍵字索引CTθ={tθ,F(xiàn)(kθ,tθ)}θ∈W。DO 將{CT,{CTθ}θ∈W}上傳至CS 存儲(chǔ)。
7)Trapdoor(PP,ω) →Tω。該算法由DU 執(zhí)行。陷門生成算法輸入PP和用戶需要查詢的關(guān)鍵字ω,計(jì)算關(guān)鍵字ω的陷門Qω=H0(ω) ×PK1,算法生成與關(guān)鍵字ω相關(guān)的字符串tω,最終輸出Tω=(Qω,tω)。
8)Search(PP,QID,S,CT,{CTθ}θ∈W,Tω,TK) →DTor ⊥。該算法由CS 執(zhí)行。DU 將生成的陷門Qω、TA 發(fā)送給DU 的SK中的身份QID以及自己的屬性集合S發(fā)送給CS,CS 首先將用戶的身份QID與存儲(chǔ)的QID進(jìn)行比較,如果存儲(chǔ)在CS 中的QID已被標(biāo)記為撤銷狀態(tài),則它為撤銷用戶,算法終止,并返回⊥。否則,CS 驗(yàn)證用戶屬性集合是否滿足密文CT中的訪問策略,如果不滿足,算法終止,返回⊥。如果滿足,CS 計(jì)算kω=e(PK2,Qω)=e(g,g)αuhe(gh,H0(ω))。CS 計(jì) 算F(kω,tω),并且與在云端存儲(chǔ)的加密關(guān)鍵字索引CTθ中的F(kθ,tθ)進(jìn)行比較,如果匹配成功,CS 將執(zhí)行下一步算法。首先,找出一個(gè)集合I?{1,2,…,l},使I={i:ρ(i) ∈S},|I|=t,并且選擇一個(gè)可計(jì)算的集合{ωi∈Zp}i∈I,使成立,CS 根據(jù)所計(jì)算出的t和s繼續(xù)計(jì)算DT,具體計(jì)算如下:
最終,CS 將DT返回給DU 進(jìn)行最終解密。
9)UserDecrypt(DT,RK) →m。該解密算法由DU 執(zhí)行。DU 接收到CS 發(fā)送的部分解密密文,并根據(jù)自己生成的RK=z計(jì)算
10)Revocation(PP,ID) →QID。該算法由TA執(zhí)行。TA將用戶撤銷后,計(jì)算QID=(H(ID))v發(fā)送至CS,并告知CS將此QID標(biāo)記為撤銷狀態(tài)。因此被撤銷的用戶無(wú)法訪問密文。
定理1在隨機(jī)預(yù)言機(jī)模型中,假設(shè)變色龍哈希函數(shù)生成的數(shù)據(jù)用戶的私鑰{SKi}i=1,2,…,k+1是抗碰撞、語(yǔ)義安全的。如果對(duì)于多項(xiàng)式時(shí)間的敵手解決DBDH 的優(yōu)勢(shì)是可以忽略的,說明DBDH 問題是困難的。
證明 給定(g,gx,gy,gz)作為DBDH 實(shí)例,模擬器B通過與敵手A交互計(jì)算e(g,g)xyz。首先,模擬器B執(zhí)行Setup 算法,并設(shè)置X=gx。然后,模擬器B發(fā)送公開參數(shù)PP=(G,GT,p,g,PK0,PK1,PK2,H0,H1,F(xiàn),X)給敵手A。
1)抗碰撞性。假設(shè)ID*是目標(biāo)身份,Ver*是目標(biāo)版本號(hào)。敵手A最多對(duì)KeyGen 算法進(jìn)行qKG次查詢,模擬器B選擇di∈,其中i=1,2,…,qKG,并執(zhí)行以下操作:
其中ai為對(duì)應(yīng)屬性Ai∈S的隨機(jī)值。因此,模擬器B的成功概率也為ε。
2)語(yǔ)義安全。對(duì)于當(dāng)前版本號(hào)Ver,給定一個(gè)身份ID和一個(gè)屬性集S,并且哈希值h=H1(S,Ver,R) 和字符串R=(gβ,e(Xβ,H0(ID)))之間存在一一對(duì)應(yīng)的關(guān)系。因此,條件概率Pr(Ver|h)和Pr(Ver|R)是相等的,其中Ver和R是自變量,等式Pr(Ver|h)=Pr(Ver) 成立。則條件熵Η(Ver|h) 等于熵Η(Ver),具體如下所示:
因此,變色龍哈希函數(shù)和私鑰SKi不會(huì)泄露版本號(hào)Ver和bVer的相關(guān)信息。
綜上所述,即使在進(jìn)行了一些撤銷操作之后,本文方案仍然能夠保持私鑰{SKi}i=1,2,…,k+1的安全性。
定理2如果DBDH 假設(shè)成立,則本文方案在選擇明文攻擊下具有不可區(qū)分安全性。
證明 假設(shè)存在一個(gè)PPT 敵手A可以以不可忽略的優(yōu)勢(shì)AdvA攻破本文方案,利用DBDH 假設(shè)條件構(gòu)建一個(gè)與敵手A在游戲中交互的挑戰(zhàn)者B。
初始化階段 敵手A向挑戰(zhàn)者B提交挑戰(zhàn)訪問策略(M*,ρ*)作為目標(biāo)。
系統(tǒng)建立階段 挑戰(zhàn)者B執(zhí)行Setup 算法,挑戰(zhàn)者B隨機(jī)選取g∈G,然后選擇隨機(jī)值h,u,a,b,α∈Zp,并計(jì)算PK0=e(g,g)αu,PK1=gαu,PK2=gh,最后將公開參數(shù)PP={G,GT,p,g,ga,gb,e(g,g)α,PK0,PK1,PK2,H0,H1,F(xiàn)} 發(fā)送給敵手A,并保存MSK={a,b,α}。
詢問階段1 敵手A可以向挑戰(zhàn)者B發(fā)起以下詢問:
詢問階段2 與詢問階段1 相同。
猜測(cè)階段 敵手A將對(duì)ξ的猜測(cè)ξ′提交給挑戰(zhàn)者B。如果CTc為有效密文,此時(shí)敵手A僅能隨機(jī)猜測(cè),其猜對(duì)的概率為:
在以上安全證明中,挑戰(zhàn)者B模擬的系統(tǒng)參數(shù)、用戶密鑰和密文的分布都與本文方案完全一致。
將本文方案與文獻(xiàn)[17,24,28-30]方案進(jìn)行功能對(duì)比,結(jié)果如表1 所示。在所有方案中只有本文方案支持在線/離線加密,可以減小IoMT 系統(tǒng)中DO 加密EHR 的計(jì)算開銷。在密文搜索方面,本文方案支持關(guān)鍵字搜索,且搜索階段的陷門長(zhǎng)度固定,能有效減小用戶的計(jì)算開銷。此外,本文方案還支持高效的用戶撤銷,相較于其他方案,本文方案在用戶撤銷上的計(jì)算開銷更低,更適合資源受限的IoMT 系統(tǒng),而文獻(xiàn)[17]方案未提供有關(guān)用戶撤銷的關(guān)鍵功能,因此缺乏一定的適用性。

表1 功能比較Tab.1 Function comparison
本文方案將加密算法分為在線階段和離線階段,將大量的預(yù)加密工作轉(zhuǎn)移到離線加密階段。當(dāng)用戶的智能終端不繁忙時(shí),通過離線階段自動(dòng)完成,從而節(jié)省了智能終端設(shè)備的計(jì)算開銷,而在線階段只需進(jìn)行一次求冪運(yùn)算即可完成加密。同時(shí),為了節(jié)省數(shù)據(jù)用戶計(jì)算資源,本文將部分復(fù)雜的解密過程外包給了云服務(wù)器,且云服務(wù)器無(wú)法獲取有關(guān)明文信息,進(jìn)一步減小了用戶端的計(jì)算代價(jià)。
表2 是文獻(xiàn)[17,24,28-30]方案和本文方案之間的理論性能比較。

表2 計(jì)算開銷比較Tab.2 Computational overhead comparison
本文方案包括以下算法:Setup、KeyGen、TransKey、OfflineEnc、OnlineEnc、EncIndex、Trapdoor、Search、UserDecrypt、Revocation。在系統(tǒng)初始化階段,文獻(xiàn)[28]方案的時(shí)間開銷與屬性數(shù)呈線性增長(zhǎng)趨勢(shì),而本文方案的時(shí)間開銷不受屬性數(shù)影響,一直處于常數(shù)狀態(tài)。在數(shù)據(jù)加密階段,本文方案在計(jì)算開銷上明顯優(yōu)于文獻(xiàn)[17,24,28-30]方案,其中,文獻(xiàn)[28]方案的時(shí)間效率與屬性數(shù)呈線性增長(zhǎng)關(guān)系,需要大量的時(shí)間開銷,文獻(xiàn)[29-30]方案還涉及大量的散列運(yùn)算,加密時(shí)間隨著屬性數(shù)的增長(zhǎng)而線性增加。在陷門生成階段,本文方案陷門長(zhǎng)度固定。在搜索與部分解密階段,本文方案明顯優(yōu)于文獻(xiàn)[24,28,30]方案。此外,本文方案在用戶撤銷階段的時(shí)間開銷遠(yuǎn)小于文獻(xiàn)[24,29-30]方案,且文獻(xiàn)[29]方案的計(jì)算開銷與雙線性配對(duì)運(yùn)算相關(guān),文獻(xiàn)[30]方案的計(jì)算開銷與散列運(yùn)算相關(guān)??傮w地,本文方案在計(jì)算開銷方面具有一定的優(yōu)勢(shì)。
本文通過仿真實(shí)驗(yàn)對(duì)比分析了本文方案與文獻(xiàn)[17,24,28-30]方案的實(shí)際性能。實(shí)驗(yàn)基于密碼函數(shù)庫(kù)JPBC(Java Pairing-Based Cryptography),采用A 型奇異曲線y2=x3+x進(jìn)行仿真。實(shí)驗(yàn)的硬件環(huán)境為Intel Core i7,2.7 GHz 處理器、操作系統(tǒng)為Windows 11 的筆記本電腦。在實(shí)驗(yàn)中,屬性數(shù)n的取值范圍為[0,100],滿足訪問策略的屬性數(shù) |I|的取值范圍為[0,100]。
系統(tǒng)初始化時(shí)間開銷如圖2 所示。在系統(tǒng)初始化階段,文獻(xiàn)[28]方案的時(shí)間開銷隨屬性數(shù)線性增長(zhǎng),而本文方案的時(shí)間開銷一直處于常數(shù)狀態(tài),并且開銷非常低,只有10 ms。當(dāng)n=100 時(shí),文獻(xiàn)[28]方案的時(shí)間開銷為672 ms,而本文方案和文獻(xiàn)[17,24,29-30]方案的時(shí)間開銷分別為10 ms、27 ms、21 ms、47 ms 和35 ms。因此,本文方案在系統(tǒng)初始化階段具有明顯的優(yōu)勢(shì)。
在加密階段,對(duì)比方案中只有本文方案支持在線和離線加密,因此將這兩部分結(jié)合在一起統(tǒng)稱為加密階段進(jìn)行對(duì)比,其時(shí)間開銷如圖3 所示。本文方案與文獻(xiàn)[24,28-30]方案的時(shí)間開銷都隨著屬性數(shù)的增加而增加。相比之下,本文方案只涉及3|I|E,與文獻(xiàn)[17]方案的計(jì)算開銷相近,而文獻(xiàn)[24,28-30]方案不僅涉及大量的指數(shù)運(yùn)算,還涉及大量的散列運(yùn)算,所以本文方案計(jì)算開銷的增長(zhǎng)速度最低。

圖3 加密階段的時(shí)間開銷Fig.3 Time overhead of encryption stage
搜索陷門生成時(shí)間開銷如圖4 所示。在搜索陷門生成階段,文獻(xiàn)[17,29-30]方案的時(shí)間開銷明顯高于本文方案,且時(shí)間開銷與屬性數(shù)呈線性增長(zhǎng),而本文方案的計(jì)算開銷是23 ms 且恒定不變,相比之下,本文方案在此階段的計(jì)算更高效。

圖4 搜索陷門生成階段的時(shí)間開銷Fig.4 Time overhead of search trapdoor generation stage
由于本文方案和文獻(xiàn)[17,24,28-30]方案的搜索和部分解密操作均在一個(gè)算法中,因此將這兩部分結(jié)合在一起進(jìn)行比較,搜索和部分解密時(shí)間開銷如圖5 所示。在此階段,本文方案的時(shí)間開銷與文獻(xiàn)[17,29]方案相近。當(dāng)|I|=100時(shí),文獻(xiàn)[17,29]方案的時(shí)間開銷分別是1 207 ms 和1 219 ms,而本文方案是1 178 ms,顯然本文方案更優(yōu)。

圖5 搜索和部分解密階段的時(shí)間開銷Fig.5 Time overhead of search and partial decryption stage
用戶撤銷階段時(shí)間開銷如圖6 所示。在用戶撤銷階段,文獻(xiàn)[24,28-29]方案三者的時(shí)間開銷都隨著屬性數(shù)的增加而增加。相比之下,本文方案的計(jì)算開銷只涉及一個(gè)nE,所以增長(zhǎng)速度最低。當(dāng)n=100 時(shí),文獻(xiàn)[24,28-29]方案的時(shí)間開銷分別是1 584 ms、2 385 ms 和1 761 ms,而本文方案的時(shí)間開銷為619 ms,相比之下,本文方案的時(shí)間開銷只有對(duì)比方案的39%、25%和35%。

圖6 用戶撤銷階段的時(shí)間開銷Fig.6 Time overhead of user revocation stage
綜上所述,本文方案僅在搜索和部分解密階段的計(jì)算開銷接近文獻(xiàn)[17,29]方案,在其他階段具有一定的優(yōu)勢(shì),整體開銷也低于其他方案。特別是在搜索陷門生成階段,本文方案的計(jì)算開銷是恒定的常數(shù)級(jí),極大減輕了可信中心和用戶的計(jì)算負(fù)擔(dān),更適用于資源受限的IoMT 系統(tǒng)。
存儲(chǔ)開銷主要對(duì)公開參數(shù)、密鑰、關(guān)鍵字索引、搜索陷門和密文的長(zhǎng)度進(jìn)行對(duì)比。其中|G|、|GT|、|Zp|分別表示群G、GT、Zp上的元素長(zhǎng)度。表3 分別給出了本文方案與文獻(xiàn)[17,24,28-30]方案在系統(tǒng)公共參數(shù)、屬性私鑰、轉(zhuǎn)換密鑰、搜索陷門與密文上的存儲(chǔ)開銷對(duì)比。

表3 幾種方案的存儲(chǔ)開銷比較Tab.3 Storage overhead comparison of several schemes
從表3 可以看出,本文方案中系統(tǒng)公共參數(shù)所需的存儲(chǔ)開銷是恒定的,只需要|G|+|GT|,明顯小于對(duì)比方案。本文方案在屬性私鑰上的存儲(chǔ)開銷只與文獻(xiàn)[24]方案相近,而文獻(xiàn)[28-30]方案的存儲(chǔ)開銷幾乎是本文方案的2 倍。本文方案在轉(zhuǎn)換密鑰上的存儲(chǔ)開銷同樣低于文獻(xiàn)[24,28]方案。最后,在密文上的存儲(chǔ)開銷,本文方案與文獻(xiàn)[28]相近,相比之下,略高于文獻(xiàn)[29-30]方案。綜上所述,本文方案最優(yōu)。
本文提出了一種支持用戶撤銷的可搜索電子健康記錄共享方案,該方案采用在線/離線加密、外包解密、用戶撤銷等密碼學(xué)技術(shù),在保障用戶隱私和數(shù)據(jù)安全的同時(shí)提高了效率。安全性分析表明,本文方案在DBDH 假設(shè)下是選擇明文攻擊安全的。理論和實(shí)驗(yàn)分析表明,本文方案滿足IoMT 系統(tǒng)的效率和實(shí)際實(shí)施要求。在IoMT 系統(tǒng)的復(fù)雜環(huán)境下,本文方案可能還缺乏一定的靈活性,未來可以考慮為醫(yī)院中的不同科室提供協(xié)同數(shù)據(jù)訪問功能,并對(duì)協(xié)同次數(shù)做出限制,以確?;颊逧HR 的安全性。