賀智明,徐億達(dá)
江西理工大學(xué) 信息工程學(xué)院,江西 贛州341000
電子病歷(Electronic Medical Record,EMR)作為在醫(yī)療中臨床診斷和治療的高度敏感的私人信息,而EMR共享是提高醫(yī)療服務(wù)質(zhì)量、加速生物醫(yī)學(xué)發(fā)現(xiàn)和降低醫(yī)療成本的一種有效的方法[1]。然而,大多數(shù)私人診所和醫(yī)療機(jī)構(gòu)通常使用內(nèi)部網(wǎng)絡(luò)來(lái)跟蹤他們的患者,但不與其他醫(yī)療機(jī)構(gòu)實(shí)現(xiàn)數(shù)據(jù)共享[2],從而導(dǎo)致醫(yī)療服務(wù)難度大和費(fèi)用高以及信息孤島現(xiàn)象。為了解決現(xiàn)有EMR共享的問(wèn)題,需要構(gòu)建一個(gè)安全的數(shù)據(jù)共享基礎(chǔ)設(shè)施。如今,隨著醫(yī)療數(shù)據(jù)激增,對(duì)存儲(chǔ)和計(jì)算資源的需求也日益增加[3],很多醫(yī)療機(jī)構(gòu)傾向于將數(shù)據(jù)外包存儲(chǔ)在數(shù)據(jù)中心。因?yàn)榭赡艽嬖诿舾行畔?,甚至?shù)據(jù)中心也可能是惡意的,所以數(shù)據(jù)通常在外包前加密。然而,加密反過(guò)來(lái)會(huì)阻礙數(shù)據(jù)的利用,例如頻繁的搜索操作會(huì)消耗帶寬。因此,需要提出關(guān)鍵字可搜索加密技術(shù)來(lái)解決上述問(wèn)題。
使用傳統(tǒng)的加密機(jī)制來(lái)確保靜態(tài)數(shù)據(jù)和傳輸數(shù)據(jù)的機(jī)密性。但是,這種方法限制了用戶共享和搜索加密數(shù)據(jù)的能力,從而影響了用戶的搜索體驗(yàn)。為了最小化強(qiáng)加給數(shù)據(jù)用戶的解密開(kāi)銷,外包解密機(jī)制的密文-策略屬性基加密利用轉(zhuǎn)換密鑰將原始密文轉(zhuǎn)換成一個(gè)可以用一次冪運(yùn)算解密的密文。然而,不能保證惡意云服務(wù)器執(zhí)行轉(zhuǎn)換的正確性。另一個(gè)缺點(diǎn)是密文長(zhǎng)度隨著每個(gè)訪問(wèn)策略的復(fù)雜性而線性增加,因?yàn)槊枋鲈L問(wèn)策略的布爾公式通常是根據(jù)線性秘密共享方案(Linear Secret Sharing Scheme,LSSS)設(shè)計(jì)的[4]。布爾公式的大小通常比析取范式(Disjunctive Normal Form,DNF)[5]中子句的數(shù)量大得多。考慮到惡意云服務(wù)器可能執(zhí)行一小部分搜索操作并返回一小部分錯(cuò)誤的搜索結(jié)果,因此,出現(xiàn)了可靠性問(wèn)題。
區(qū)塊鏈技術(shù)顯示了其解決可靠性問(wèn)題的潛力。在醫(yī)療保健領(lǐng)域,隱私、安全和互操作性這三個(gè)因素極其重要。醫(yī)療機(jī)構(gòu)之間的互操作性仍然是一個(gè)嚴(yán)峻的挑戰(zhàn)。一種名為區(qū)塊鏈的新興技術(shù)被研究作為EMR管理的潛在解決方案[6]。區(qū)塊鏈?zhǔn)且环N適用于EMR存儲(chǔ)和查詢的高度分布式數(shù)據(jù)結(jié)構(gòu),區(qū)塊鏈固有地使EMR中的添加、查詢和修改能夠通過(guò)所有相關(guān)方的共識(shí)得到驗(yàn)證和記錄[7]。然而,EMR使用區(qū)塊鏈的一個(gè)關(guān)鍵挑戰(zhàn)是,區(qū)塊鏈設(shè)計(jì)的最初重點(diǎn)不是限制未經(jīng)授權(quán)的粒度訪問(wèn),以避免使用區(qū)塊鏈實(shí)施的EMR的特定機(jī)密部分[8],這意味著區(qū)塊鏈設(shè)計(jì)可以保護(hù)EMR的數(shù)據(jù)完整性。
到目前為止,已經(jīng)有很多關(guān)于區(qū)塊鏈技術(shù)與可搜索加密技術(shù)的方案被提出。Liu等提出了一種具有高效撤銷和解密功能的區(qū)塊鏈輔助可搜索屬性加密算法,在區(qū)塊鏈的協(xié)助下解決了在選擇明文攻擊和選擇關(guān)鍵字攻擊下的安全性安全問(wèn)題[9],但是造成了密文長(zhǎng)度過(guò)大的問(wèn)題。Yang等提出了一種基于區(qū)塊鏈的EMR數(shù)據(jù)搜索方案,基于屬性加密機(jī)制,實(shí)現(xiàn)了云數(shù)據(jù)的細(xì)粒度訪問(wèn)控制,并利用屬性簽名技術(shù)驗(yàn)證了EMR數(shù)據(jù)源的真實(shí)性[10],這無(wú)疑使帶寬和通信消耗過(guò)大。Niu等提出了一種基于許可區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享方案,該方案使用基于密文的屬性加密來(lái)保證醫(yī)療數(shù)據(jù)的機(jī)密性和訪問(wèn)控制,在隨機(jī)預(yù)言模型下對(duì)自適應(yīng)選擇關(guān)鍵詞攻擊具有不可區(qū)分性[11],但是存在計(jì)算開(kāi)銷大的問(wèn)題。Jiang等提出了一個(gè)布隆過(guò)濾器支持的多關(guān)鍵字搜索協(xié)議,提高了效率和隱私保護(hù),基于屬性加密機(jī)制的解密開(kāi)銷隨著訪問(wèn)策略的復(fù)雜性或數(shù)據(jù)用戶屬性的數(shù)量而線性增加[12],但是存在較高的誤報(bào)率。
因此,為了解決現(xiàn)有的問(wèn)題,本文提出了基于區(qū)塊鏈的可搜索EMR數(shù)據(jù)共享方案,解決了帶寬和通信消耗大、密文長(zhǎng)度長(zhǎng)、搜索速度慢且計(jì)算開(kāi)銷大的問(wèn)題。本方案的主要貢獻(xiàn)如下:
(1)原始的EMR存儲(chǔ)在私有鏈中,索引存儲(chǔ)在防篡改的聯(lián)盟鏈中。
(2)通過(guò)基于密文策略屬性的關(guān)鍵字搜索實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制。通過(guò)用屬性上的任何布爾公式指定表達(dá)性訪問(wèn)策略,實(shí)現(xiàn)了對(duì)加密數(shù)據(jù)的細(xì)粒度訪問(wèn)控制,可以進(jìn)一步最小化帶寬和通信消耗。
(3)短密文長(zhǎng)度。本文的方案中的密文長(zhǎng)度隨DNF形式的子句數(shù)或訪問(wèn)結(jié)構(gòu)中布爾公式的大?。ㄈQ于哪個(gè)值較?。┒`活地線性增長(zhǎng)。此外,門(mén)限簽名機(jī)制將由門(mén)限數(shù)目的數(shù)據(jù)擁有者生成的多個(gè)簽名轉(zhuǎn)換為單個(gè)門(mén)限簽名,進(jìn)一步減少了密文長(zhǎng)度。
(4)快速(外包)解密。允許私有鏈服務(wù)器通過(guò)使用其密鑰來(lái)執(zhí)行最耗時(shí)的配對(duì)操作,這在數(shù)據(jù)用戶方留下了一小部分輕量級(jí)操作。外包解密開(kāi)銷不會(huì)隨著DNF形式的子句數(shù)量或訪問(wèn)布爾公式的大小而變化,這進(jìn)一步加快了搜索過(guò)程。
(5)搜索結(jié)果驗(yàn)證。允許公共驗(yàn)證者代表數(shù)據(jù)用戶檢查搜索結(jié)果的正確性,而不會(huì)泄露隱私。這降低了資源受限的數(shù)據(jù)用戶的計(jì)算需求。
區(qū)塊鏈?zhǔn)且环N分布式數(shù)據(jù)庫(kù)或公共分類賬本[13],其中經(jīng)過(guò)驗(yàn)證的交易和數(shù)字事件在數(shù)據(jù)區(qū)塊中按時(shí)間順序保存和連接在一起。所謂的數(shù)據(jù)塊由交易發(fā)起者提交的數(shù)據(jù)和交易驗(yàn)證者產(chǎn)生的新記錄組成。此外,每個(gè)塊都標(biāo)有時(shí)間戳和前一個(gè)塊的散列,這使得區(qū)塊鏈的數(shù)據(jù)不可改變且可追蹤。該分布式P2P網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都保留相同的事務(wù)記錄副本,這提供了對(duì)單點(diǎn)失效和攻擊的魯棒性[14]。一個(gè)區(qū)塊鏈由許多與哈希值鏈接的區(qū)塊組成,每個(gè)塊包含數(shù)據(jù)、加密哈希值和時(shí)間戳,并且數(shù)據(jù)可以包含幾個(gè)屬性及其值。一個(gè)塊的哈希值由先前的哈希值和當(dāng)前塊中的數(shù)據(jù)產(chǎn)生。這意味著哈希值用于建立兩個(gè)塊之間的鏈接,任何錯(cuò)誤和失真的數(shù)據(jù)都將通過(guò)驗(yàn)證哈希值計(jì)算出來(lái)。
設(shè)Q、QT代表f階的兩個(gè)有限乘法群,其中f為大素?cái)?shù)[15]。此外,設(shè)q為Q的生成元,Zf為有限域,則雙線性映射e:Q×Q→QT對(duì)所有有三個(gè)特征。
設(shè)O表示GA上的訪問(wèn)結(jié)構(gòu)[16],則存在一個(gè)LSSS矩陣和一個(gè)將Ψ的每一行映射到O中的一個(gè)屬性的函數(shù)Θ。元組( )Ψ,Θ通過(guò)與列向量o=組合來(lái)表示LSSS訪問(wèn)策略,其中m表示要共享的秘密值。假設(shè)M表示( )Ψ,Θ所描述的一個(gè)授權(quán)集,N*表示Ψ中的一組行,使得N*=,那么可以找到滿足的常數(shù)
計(jì)算Diffie-Hellman問(wèn)題(The Computational Diffie-Hellman Problem,CDH):
給定循環(huán)群Q,取階為f,設(shè)q∈Q為循環(huán)群Q的
離散對(duì)數(shù)問(wèn)題(The Discrete Logarithm Problem,
DLP):
給定阿貝爾群(Abelian Group)又稱交換群或加群G,對(duì)于任意q∈G,設(shè)m>1且令qm表示為q×q×…×q,其中q出現(xiàn)了m次,而尋找m是困難的。
本章介紹基于區(qū)塊鏈的可搜索EMR數(shù)據(jù)共享模型和區(qū)塊鏈系統(tǒng)中EMR交易序列模型。
本方案基于密文策略屬性的關(guān)鍵字搜索實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制。其中,私有鏈中存儲(chǔ)原始的EMR,聯(lián)盟鏈中存儲(chǔ)關(guān)鍵詞索引。使用門(mén)限簽名機(jī)制減小密文長(zhǎng)度,利用快速外包解密加快搜索過(guò)程。在本文的設(shè)計(jì)中,系統(tǒng)由以下各參與方組成:聯(lián)盟鏈(CB)、私有鏈(PB)、患者(PA)和數(shù)據(jù)請(qǐng)求用戶(DRU)。圖1為本方案的系統(tǒng)模型。
圖1 基于區(qū)塊鏈的可搜索EMR模型Fig.1 Searchable EMR model based on blockchain
(1)聯(lián)盟鏈(CB):所有的醫(yī)療機(jī)構(gòu)共同構(gòu)成,負(fù)責(zé)生成公共參數(shù)、系統(tǒng)密鑰以及控制點(diǎn)和信息系統(tǒng)的密鑰,負(fù)責(zé)授予密鑰;負(fù)責(zé)存儲(chǔ)EMR的關(guān)鍵字密文;一旦接收到搜索結(jié)果,CB通過(guò)以挑戰(zhàn)-應(yīng)答模式與私有鏈服務(wù)器交互來(lái)調(diào)用搜索結(jié)果驗(yàn)證機(jī)制。如果搜索結(jié)果正確,CB將它們以及轉(zhuǎn)換后的密文發(fā)送給DRU,否則,拒絕服務(wù)。請(qǐng)注意,CB可以檢查搜索結(jié)果的正確性。
(2)私有鏈(PB):負(fù)責(zé)存儲(chǔ)加密后的EMR;私有鏈服務(wù)器(PBS):負(fù)責(zé)分發(fā)密鑰,一個(gè)醫(yī)療機(jī)構(gòu)的內(nèi)部服務(wù)器進(jìn)行部分計(jì)算,以處理搜索查詢。根據(jù)DRU的搜索請(qǐng)求提供密文檢索服務(wù)。PBS還在搜索階段執(zhí)行代價(jià)高昂的密文轉(zhuǎn)換,從而在DRU上留下輕量級(jí)的密文解密操作。一旦DRU的屬性和陷門(mén)分別與訪問(wèn)策略和索引匹配,PBS將搜索結(jié)果和轉(zhuǎn)換后的密文一起返回給CB。
(3)患者(PA):根據(jù)公共參數(shù)生成自己的公鑰和私鑰對(duì),使用指定的訪問(wèn)策略對(duì)EMR加密密鑰進(jìn)行加密,并根據(jù)提取的關(guān)鍵字建立索引,并將帶有可搜索密文的文檔存儲(chǔ)在PB上。
(4)數(shù)據(jù)請(qǐng)求用戶(DRU):每個(gè)請(qǐng)求用戶基于動(dòng)態(tài)口令生成自己的公鑰和私鑰對(duì),并計(jì)算感興趣的特定關(guān)鍵字的陷門(mén)。它解密從私有鏈返回的搜索結(jié)果,并獲得滿足搜索查詢的文檔的索引。授權(quán)用戶可以發(fā)出基于關(guān)鍵字的搜索查詢,包括單個(gè)關(guān)鍵字或多個(gè)關(guān)鍵字,從用戶終端接收經(jīng)過(guò)驗(yàn)證和轉(zhuǎn)換的密文,并執(zhí)行輕量級(jí)解密,以明文形式獲得所需的搜索結(jié)果。
為了保障基于區(qū)塊鏈的可搜索EMR數(shù)據(jù)共享方案中PA和DRU與PBS的安全交易,設(shè)計(jì)了EMR交易序列模型,主要由三個(gè)部分構(gòu)成,如圖2所示。
(1)患者決定DRU的操作權(quán)限和加密持續(xù)時(shí)長(zhǎng),然后通過(guò)智能合約將EMR密文和關(guān)鍵字密文上傳到PBS。智能合約控制PBS,并將標(biāo)記有患者ID的數(shù)據(jù)進(jìn)行加密。
(2)有操作權(quán)限的DRU通過(guò)智能合約對(duì)數(shù)據(jù)進(jìn)行操作,但DRU只能通過(guò)智能合約向PBS發(fā)出合法的操作指令,不能直接操作數(shù)據(jù)。
(3)在預(yù)定的加密持續(xù)時(shí)間結(jié)束時(shí),智能合約將共享可向所有DRU解密密鑰,所有DRU確認(rèn)交易成功。
在交易過(guò)程中引入激勵(lì)機(jī)制,在交易需要保密的時(shí)候,智能合約不會(huì)將解密密鑰發(fā)送給DRU,使得交易內(nèi)容私有化、安全化。經(jīng)過(guò)一段時(shí)間的交易后,交易內(nèi)容的隱私不再重要,智能合約將向所有DRU共享解密密鑰。在沒(méi)有欺騙者的交易中,當(dāng)DRU獲得密鑰并解密EMR密文時(shí),智能合約的工作就結(jié)束了。
若交易中存在欺騙者,則欺騙者的存在會(huì)傷害誠(chéng)實(shí)的DRU,誠(chéng)實(shí)的DRU在獲得密鑰后將能夠看到所有數(shù)據(jù)。通過(guò)假數(shù)據(jù)上的ID標(biāo)簽,誠(chéng)實(shí)的DRU可以很容易地找到騙子。此時(shí),智能合約會(huì)跟進(jìn),按照設(shè)定的程序?qū)ζ垓_者做出足夠的懲罰,以補(bǔ)償受傷的誠(chéng)實(shí)DRU。欺騙者高成本的欺騙行為降低了欺騙的概率,使系統(tǒng)更加健康和穩(wěn)定。
基于區(qū)塊鏈的可搜索EMR數(shù)據(jù)共享方案分為三個(gè)階段:系統(tǒng)初始化階段、EMR加密存儲(chǔ)階段和EMR搜索與共享階段。
本階段分為Setup()和KeyGen()兩個(gè)步驟。Setup():給定公共雙線性參數(shù)CB選擇?1,?2,χ∈Zf,?∈Q,計(jì)算,其中?=?1+?2。然后,為全局屬性集生成n個(gè)隨機(jī)元素?1,?2,…,?n∈Q。最后,選擇兩個(gè)防沖突散列函數(shù)H0:{0,1}*→Zf,H1:{0,1}*→Q。輸出公鑰PK=(BCP,?,H,?1,…,?n,e(q,q)?,qχ)和主密鑰MSK=( ?1,?2)。
KeyGen(PK,MSK,Μ,Y):CB運(yùn)行該算法分別為每個(gè)DRU、PBS和PA生成秘密/公共密鑰對(duì)。對(duì)于屬性集為M={Ma1,Ma2,…,Man′}的每個(gè)DRU,CB執(zhí)行算法1。
算法1KeyGen()
假設(shè)存在PA的Y={Y1,Yν}的PA,CB為PA分配一個(gè)公私鑰對(duì)(skY=s,pkY=qs),其中s∈Zf。然后,PA輸出一個(gè)(ξ-1)次多項(xiàng)式h(u)=αξ-1uξ-1+…+α1u+α0,其中αη∈Zf(η∈[1,ξ-1]),α0=s,2ξ-1≥ν,此外,PA根據(jù)h(μ)選擇ν點(diǎn){(u1,ο1),(u2,ο2),…,(uν,oν)},其中oi′通過(guò)安全通道返回最后,CB用式(1)標(biāo)記每個(gè)DRU、PBS和PA的公私鑰對(duì)。
Enc(PK,pkκ,pkm,skΥ,E,T,O)。給定文件集E={l}和關(guān)鍵字集T={t},PA需要生成文件密文和關(guān)鍵字索引,如下所示。
對(duì)于每個(gè)帶有身份ID標(biāo)識(shí)的文件l∈E,PA首先使用傳統(tǒng)的對(duì)稱加密密鑰Λ∈QT將其加密為Cl。假設(shè)指定的訪問(wèn)結(jié)構(gòu)O用DNF形式表示,其大小為||O,即O=co1∨co2∨…∨co?,其中每個(gè)子句是一組屬性。如果A選擇秘密共享m∈Zf并輸出密鑰密文。否則,PA將A描述為L(zhǎng)SSS矩陣然后選擇隨機(jī)向量并計(jì)算,最后生成密文因此,PA可以通過(guò)比較?和來(lái)實(shí)現(xiàn)短密文長(zhǎng)度。
為了稍后驗(yàn)證搜索結(jié)果的正確性,每個(gè)Yi′生成他的簽名在獲得至少ξ(閾值)簽名后,PA輸出閾值簽名以縮短密文長(zhǎng)度,其中
此外,PA執(zhí)行算法2為每個(gè)關(guān)鍵字t∈T建立索引。
算法2IndGen()
Trap(I,skκ,pkm,PK,t′)。當(dāng)搜索包含關(guān)鍵字t′的加密文件時(shí),DRU首先選擇兩個(gè)隨機(jī)元素x1,x2∈Zf,然后計(jì)算qβx1x2。最后,DRU將其屬性M和陷門(mén)TR=(TR1,TR2,TRt′)發(fā)送給PBS。
Search( )PK,GA,CA,N,TR,M,skm。PBS首先檢查DRU的屬性集M是否滿足GA。如果不滿足,PBS結(jié)束這個(gè)過(guò)程。否則,PBS繼續(xù)驗(yàn)證陷門(mén)TR是否與方程如果這個(gè)公式不成立,PBS返回出錯(cuò)。否則,PBS返回相應(yīng)的搜索結(jié)果為了減輕資源有限的DRU的解密負(fù)擔(dān),PBS根據(jù)以下兩種情況執(zhí)行部分解密。如果CA中的密文分量數(shù)等于o+5,PBS通過(guò)調(diào)用等式(2)計(jì)算轉(zhuǎn)換后的密文ρ,其中o表示DNF形式的子句數(shù)。否則,PBS可以通過(guò)計(jì)算注 意。最后,PBS將元組發(fā)送給CBs。
Verify(PK,ζ)。設(shè)搜索結(jié)果的個(gè)數(shù)為Δ,每個(gè)搜索結(jié)果的恒等式為CBs執(zhí)行算法3進(jìn)行驗(yàn)證。
算法3Verify()
Dec(PK,?,skκ)。為了獲得每個(gè)結(jié)果的文件解密密鑰,DRU首先計(jì)算
本節(jié)在陷門(mén)不可區(qū)分性和不可偽造性方面進(jìn)行具體的安全性分析。
4.1.1 陷門(mén)不可區(qū)分性
為了抵御外部關(guān)鍵詞猜測(cè)攻擊,提出的方案應(yīng)該保證陷門(mén)的不可區(qū)分性,并且不允許惡意攻擊者測(cè)試索引和陷門(mén)之間的關(guān)系。方案是利用乘法雙線性映射而不是加法雙線性映射構(gòu)造的。為了進(jìn)一步避免外部攻擊者以窮盡的方式測(cè)試索引和陷門(mén)之間的關(guān)系,關(guān)鍵字通常是從低熵關(guān)鍵字空間中選擇的,如果沒(méi)有密鑰,外部攻擊者無(wú)法檢查提交的陷門(mén)是否與索引匹配,從而避免了關(guān)鍵字猜測(cè)的可能性。
在搜索結(jié)果驗(yàn)證機(jī)制方面,要求CBs能夠檢查搜索結(jié)果的正確性,而敵方不能偽造可疑搜索結(jié)果的有效證明信息?;诶窭嗜斩囗?xiàng)式插值,將由至少一個(gè)門(mén)限數(shù)的PA貢獻(xiàn)的門(mén)限簽名轉(zhuǎn)化為PA的簽名,CBs利用公鑰pk驗(yàn)證搜索結(jié)果的正確性,搜索結(jié)果驗(yàn)證機(jī)制可以被認(rèn)為是修改的公共審計(jì)方案[17]。如果沒(méi)有存儲(chǔ)完整元組(ID,Cipl,Ξ*)的惡意PBS不能說(shuō)服CBs,那么提出的方案被認(rèn)為是合理的。提出的方案的完備性要求,對(duì)于所有文件E={l}的所有密鑰對(duì)和元組(ID,Cipl,Ξ*),CBs在接收到PBS的有效證明信息時(shí),總是決定搜索結(jié)果通過(guò)搜索結(jié)果驗(yàn)證。
4.1.2 不可偽造性
用以下兩種案例來(lái)證明本方案的不可偽造性:
案例1假設(shè)對(duì)手A能夠偽造有效的門(mén)限簽名,那么就可以找到解決CDH的方法。對(duì)于(ξ-v)門(mén)限簽名( 2ξ-1>v),它要求至少ξ個(gè)PA正確地輸出它們各自的簽名。即使惡意的敵手A可以與多達(dá)(ξ-1)個(gè)PA串通并獨(dú)立輸出(ξ-1)個(gè)公私/私鑰對(duì),仍然不能生成有效的門(mén)限簽名。接下來(lái),將展示一個(gè)安全游戲,其中允許A訪問(wèn)散列和簽名預(yù)言。在給定元組(q,qα′,qβ′)的情況下,B對(duì)上述兩個(gè)預(yù)言的查詢結(jié)果進(jìn)行標(biāo)記,如下模擬這個(gè)安全游戲。
設(shè)置查詢:敵手A請(qǐng)求初始化這個(gè)系統(tǒng),首先為(ξ-1)損壞的PA輸出秘密/公鑰對(duì){skη=oη,pkη=qoη}。然后,B為PA的其余部分設(shè)置相同的公鑰pkηω=qα′,并將pkηω發(fā)送給A。
哈希查詢:A首先對(duì)具有標(biāo)識(shí)ID的文件l發(fā)出哈希查詢,然后B檢查元組(l,ID)是否屬于表T。如果這是真的,B將相應(yīng)的結(jié)果T*返回給A。否則,B選擇?∈Zf。注意,B需要將元組(l,Cl,ID,?,T)保留在T中。由于q,q?,qβ′是q中的群元素,q?和q?,qβ′在q中都是隨機(jī)分布的,因此A不能根據(jù)收到的哈希結(jié)果來(lái)區(qū)分查詢的結(jié)果。
簽名查詢:A對(duì)元組(l,ID)發(fā)出簽名查詢的結(jié)果,然后B檢查(l,ID)是否是表T中的實(shí)體。如果為真,則B將相關(guān)結(jié)果Ξ′返回給A;否則,B設(shè)置,并生成閾值特征碼注意,B還需要將元組(l,Cl,ID,?,Ξ′)添加到表S中。
偽造:A在(l′,ID′)上返回偽造的門(mén)限簽名Ξ′。根據(jù)哈希查詢和簽名查詢過(guò)程中生成的相應(yīng)結(jié)果?,B具有-1也就是說(shuō),如果A成功地偽造了門(mén)限簽名,B就可以解決CDH問(wèn)題,這與CDH問(wèn)題假設(shè)相沖突。因此,敵手A在本方案中輸出有效的閾值簽名在計(jì)算上是不可行的。
如果A能夠根據(jù)所有有效的門(mén)限簽名生成有效的證明信息,那么就可以解決DLP,這也與DLP假設(shè)相沖突。在本方案中使用的門(mén)限簽名機(jī)制是基于Boneh-Lynn-Shacham簽名[18]。
根據(jù)以上分析,本方案對(duì)于敵手A偽造有效的門(mén)限簽名和證明信息在計(jì)算上是不可行的,因此滿足不可偽造性。
將本方案與現(xiàn)有的可搜索加密方案進(jìn)行對(duì)比,從帶寬和通信消耗、密文長(zhǎng)度、搜索速度、計(jì)算開(kāi)銷方面進(jìn)行比較,結(jié)果如表1所示??梢钥闯?,Liu[9]、Yang[10]和Niu[11]的方案帶寬和通信消耗大,Liu[9]、Yang[10]的方案搜索速度慢,Liu[9]、Yang[10]、Jiang[12]和Niu[11]的方案密文長(zhǎng)度大,Yang[10]和Niu[11]的方案計(jì)算開(kāi)銷大。而本方案通過(guò)用屬性上的任何布爾公式指定表達(dá)性訪問(wèn)策略使得帶寬和通信消耗更小,使用門(mén)限簽名機(jī)制縮短了密文長(zhǎng)度,通過(guò)私有鏈服務(wù)器使用密鑰執(zhí)行配對(duì)操作加快了搜索過(guò)程,允許公共驗(yàn)證者代表數(shù)據(jù)用戶檢查搜索結(jié)果的正確性使得計(jì)算開(kāi)銷更少,相比其他方案,本方案在帶寬和通信消耗、密文長(zhǎng)度、搜索速度和計(jì)算開(kāi)銷方面更具優(yōu)勢(shì)。
表1 不同方案的功能特性對(duì)比Table 1 Comparison of functional characteristics of different schemes
將本方案與輕量級(jí)的WBANs加密數(shù)據(jù)細(xì)粒度搜索方案[19]在密鑰生成時(shí)間、加密時(shí)間、陷門(mén)生成時(shí)間、陷門(mén)生成成本、結(jié)果搜索時(shí)間和結(jié)果搜索成本方面進(jìn)行性能分析比較。通過(guò)Python語(yǔ)言和基于配對(duì)的密碼學(xué)庫(kù),在AMD Ryzen 5 2500U with Radeon Vega MobileGfx2.00 GHz的Ubuntu 20.04.2.0 LTS上模擬了一系列的實(shí)證測(cè)試。實(shí)驗(yàn)結(jié)果如圖3所示。
從圖3(a)中,注意到這兩種方案在KeyGen()中具有相似的密鑰生成計(jì)算時(shí)間,本方案可以很容易地實(shí)現(xiàn)在PBS上提供密文轉(zhuǎn)換。
圖3 (b)所示的實(shí)驗(yàn)結(jié)果表明,本方案具有更少的密文加密開(kāi)銷,這與E的值具有近似的線性關(guān)系。因此,得出的結(jié)論在創(chuàng)建閾值簽名時(shí),本方案中的Enc()在實(shí)踐中仍然是有效和可行的。
在圖3(c)、(d)中分析陷門(mén)生成時(shí)間和存儲(chǔ)成本。本方案的性能只受變量的影響,而另一個(gè)方案中Trap的性能隨著每個(gè)DRU的屬性個(gè)數(shù)和查詢關(guān)鍵字個(gè)數(shù)的增加而提高[19]。
在圖3(e)、(f)中,考慮了查詢關(guān)鍵詞的個(gè)數(shù)和搜索文件的個(gè)數(shù)這兩個(gè)因素,通過(guò)改變變量的值來(lái)分析兩個(gè)方案的結(jié)果搜索時(shí)間和搜索成本的性能。兩個(gè)方案的結(jié)果搜索時(shí)間和成本隨著z值的增加而增加。
圖3 算法的實(shí)際性能分析Fig.3 Performance analysis of algorithm
當(dāng)對(duì)每個(gè)加密文件執(zhí)行密文檢索時(shí),本方案所需時(shí)間更少。
通過(guò)分析表明性能受查詢關(guān)鍵詞數(shù)量和搜索文件數(shù)量的影響,當(dāng)基于單個(gè)關(guān)鍵字搜索一個(gè)加密文件時(shí),本方案的性能更優(yōu)。雖然在本方案中驗(yàn)證的性能并不比基于文件/關(guān)鍵字哈希表的簡(jiǎn)單檢查機(jī)制有效多少,但是可以支持通過(guò)利用公共驗(yàn)證器來(lái)保護(hù)隱私的搜索結(jié)果驗(yàn)證,這進(jìn)一步減輕了資源有限的用戶設(shè)備的額外計(jì)算負(fù)擔(dān)。不可偽造性,且陷門(mén)生成時(shí)間和存儲(chǔ)成本少、密文加密開(kāi)銷低、結(jié)果搜索時(shí)間短和搜索成本低,該方案具有更高的效率。
本文提出了一個(gè)基于區(qū)塊鏈的EMR隱私保護(hù)數(shù)據(jù)共享方案。該方案將原始數(shù)據(jù)和關(guān)鍵詞索引分別存儲(chǔ)在私有鏈和聯(lián)盟鏈中,解決了EMR數(shù)據(jù)存儲(chǔ)的安全性問(wèn)題。通過(guò)改進(jìn)的基于密文策略屬性的關(guān)鍵字搜索算法,使得該方案帶寬和通信消耗小且密文長(zhǎng)度短。該方案通過(guò)快速外包解密提高了搜索效率,利用搜索結(jié)果驗(yàn)證機(jī)制優(yōu)化了計(jì)算開(kāi)銷。通過(guò)對(duì)該方案的安全性和性能進(jìn)行評(píng)估,表明該方案具備陷門(mén)不可區(qū)分性和