陳向陽,凌寶紅,胡東輝
國外早些年間就已經(jīng)提出健康管理的概念[1]。所謂健康管理,就是基于身體保健、醫(yī)學(xué)診療服務(wù)系統(tǒng),結(jié)合信息管理技術(shù)實(shí)現(xiàn)對個人健康的維護(hù)和監(jiān)測,其意義和目的在于通過日常和初期的健康咨詢來幫助人們遠(yuǎn)離一些疾病和健康隱患,維護(hù)個人健康?;ヂ?lián)網(wǎng)模式的健康服務(wù)已經(jīng)漸漸轉(zhuǎn)變成為一種全新的生活方式,但是遠(yuǎn)程醫(yī)療技術(shù)也埋下了一系列可能發(fā)生的健康數(shù)據(jù)隱私問題的隱患。病人的資料、病史等信息存儲在服務(wù)器上,一旦這些數(shù)據(jù)被泄露出去,將會給用戶(即病人)帶來許多未知的損失或傷害。所以在遠(yuǎn)程醫(yī)療技術(shù)中,病人的健康數(shù)據(jù)隱私保護(hù)問題是安全問題的重中之重。
因此,本文提出一種基于屬性加密網(wǎng)絡(luò)的健康數(shù)據(jù)隱私保護(hù)方法,優(yōu)化解密策略及解密計(jì)算公式,為基于互聯(lián)網(wǎng)的健康服務(wù)提供安全保障。
在基于身份加密體制(IBE)的基礎(chǔ)上,Sahai和Waters[2]首次于2005年提出基于屬性的加密體制(ABE)。之后,為了提升訪問控制策略的復(fù)雜性和有效性,密鑰策略基于屬性的加密(KP-ABE)方案在2006年被Goyal[3]等提出,該方案把一個屬性集與密文關(guān)聯(lián)到一起,而密鑰則被關(guān)聯(lián)到訪問結(jié)構(gòu),只有通過驗(yàn)證發(fā)現(xiàn)密文中的屬性集與使用者的訪問結(jié)構(gòu)相對應(yīng),用戶才能獲取明文信息。2007年,首個基于屬性的密文策略加密(CP-ABE)方案[4]被提出,與KP-ABE不同,Bethencourt等將用戶私鑰和一個屬性集關(guān)聯(lián)起來,而密文和一個訪問結(jié)構(gòu)關(guān)聯(lián),用戶要想將密文解密,其屬性集必須要使訪問結(jié)構(gòu)得到滿足。只有通過驗(yàn)證發(fā)現(xiàn)用戶的屬性集與訪問結(jié)構(gòu)相符合,才能獲取明文信息。
密文策略的屬性加密方案包含4個部分[5],分別如圖1~4所示,其中第4步的解密算法中,訪問結(jié)構(gòu)A是隱藏在密文CT中的。
圖1 系統(tǒng)初始化
圖2 加密算法Encrypt(PK,M,A)
圖3 密鑰抽取
圖4 解密算法Decrypt(PK,CT,SK)
CP-ABE的安全模型與其他一些身份加密相似[6-7],攻方可以向守方詢問任意的SK,但是它無法對守方所掌握的CT進(jìn)行解密。整個攻防過程如下:
(1)守方通過圖1的算法將系統(tǒng)生成的PK共享給攻方。
(2)攻守雙方第一階段:攻方生成若干個與管理屬性集S相對應(yīng)的私鑰,向守方提交長度一樣的兩個消息及一個用于進(jìn)攻的訪問策略B,而且S中的任何一個屬性集都不滿足此處的訪問策略B。守方隨機(jī)選擇x(0或1)并在B下加密明文Mx,再將密文傳送給攻方。
(3)攻守雙方第二階段:攻方繼續(xù)生成若干個與管理屬性集S相對應(yīng)的私鑰,依然保證任意一個屬性集不能滿足B,守方進(jìn)行上面相同的操作。
(4)攻方猜測一個x',如果x=x'的概率達(dá)到50%表示攻方獲勝。
每個用戶可以發(fā)出多條咨詢消息,每條咨詢消息僅由一位用戶發(fā)出。每個用戶每天都可記錄多條信息,每次保存的記錄內(nèi)容都會顯示記錄時(shí)間,每條內(nèi)容僅有一位用戶記錄??梢杂卸鄠€醫(yī)生對同一個咨詢內(nèi)容進(jìn)行回復(fù),每條回復(fù)單獨(dú)顯示且每條信息的發(fā)出者為一個人;一個醫(yī)生也可以給多條信息發(fā)出回復(fù),如圖5所示。
圖5 E-R圖
2.2.1 數(shù)據(jù)庫庫外加密
采用屬性加密技術(shù)是一種數(shù)據(jù)庫外的加密方法[8]。在庫外加密方式[9]中,加解密過程發(fā)生在DBMS(Database Management System)之外,密文由數(shù)據(jù)庫管理系統(tǒng)管理,用戶在客戶端完成加密與解密,該過程也可由專門設(shè)備完成。數(shù)據(jù)庫庫外加密的優(yōu)勢主要表現(xiàn)在:1)為數(shù)據(jù)庫管理系統(tǒng)減負(fù);2)加密密鑰與加密數(shù)據(jù)分開存儲,安全性更高;3)實(shí)現(xiàn)端到端的網(wǎng)絡(luò)密文傳遞。
2.2.2 屬性加密設(shè)計(jì)
數(shù)據(jù)庫中使用屬性加密,是對數(shù)據(jù)庫中部分字段信息進(jìn)行加密[10],較少的使用密鑰,因而可行。本設(shè)計(jì)中,用戶并不是所有資料都需要加密,對于其所分享的醫(yī)生來說,如身份證號、具體住址等信息是不需要可見的。
(1)系統(tǒng)角色
在此人體健康數(shù)據(jù)隱私保護(hù)系統(tǒng)中,連接服務(wù)器后的4個角色包括[11]:1)向醫(yī)生進(jìn)行健康咨詢普通用戶為數(shù)據(jù)提供者;2)為病人進(jìn)行診斷的醫(yī)生為數(shù)據(jù)接收者;3)數(shù)據(jù)共享存儲中心;4)密鑰分發(fā)者。密鑰分發(fā)中心為可信第三方。
(2)系統(tǒng)構(gòu)造
在此系統(tǒng)中,有3個主要階段[11],分別是系統(tǒng)初始化、數(shù)據(jù)生成和數(shù)據(jù)分享。具體描述如下:
(?。┫到y(tǒng)初始化:該階段可分為系統(tǒng)生成和密鑰生成兩個子階段。系統(tǒng)生成階段,輸入系統(tǒng)安全參數(shù)K,獲得所用到的Hash函數(shù)與群結(jié)構(gòu)等并取得公鑰-私鑰對。密鑰生成階段,驗(yàn)證咨詢醫(yī)生屬性,如果符合,運(yùn)行基于屬性加密的密鑰生成算法,得到一個與醫(yī)生屬性相應(yīng)的密鑰sk,并將其傳送給咨詢醫(yī)生。
(ⅱ)數(shù)據(jù)生成:普通用戶根據(jù)數(shù)據(jù)共享的要求找到符合自己的咨詢醫(yī)生,運(yùn)用自己的公鑰運(yùn)行基于屬性加密算法并將獲得的密文傳送到數(shù)據(jù)共享中心,只要屬性符合共享要求,普通用戶即可使用手中的私鑰對密文信息進(jìn)行解密。
(ⅲ)數(shù)據(jù)共享:屬性相符的數(shù)據(jù)提供者或數(shù)據(jù)接收者向數(shù)據(jù)共享存儲中心發(fā)出數(shù)據(jù)獲取請求,數(shù)據(jù)共享存儲中心返回?cái)?shù)據(jù)即可。
系統(tǒng)初始化時(shí),需要選擇一個素?cái)?shù)階的雙線性群,再隨機(jī)選擇兩個參數(shù),決定公開參數(shù)PK,從而確定主密鑰MK;加密算法Encrypt(PK,M,A)是在訪問結(jié)構(gòu)A中對明文M進(jìn)行加密,算法首先為A中的每個結(jié)點(diǎn)x選擇一個多項(xiàng)式qx,這些多項(xiàng)式會以自頂向下的方式逐一確定,對每個qx設(shè)置其次數(shù)為其門限值減一;解密算法Decrypt(PK,CT,SK)也是一個遞歸算法,需要定義每個結(jié)點(diǎn)的遞歸解密算法。CP-ABE的遞歸運(yùn)算中,要判斷每個葉子結(jié)點(diǎn)是否滿足訪問結(jié)構(gòu)A需要對它進(jìn)行兩次雙線性運(yùn)算,還需做一次指數(shù)運(yùn)算打開門限。如果A很復(fù)雜會嚴(yán)重影響解密效率。文獻(xiàn)[12]對這一算法進(jìn)行了優(yōu)化,并提出了兩種方案。
(1)優(yōu)化解密策略
實(shí)際上,對訪問結(jié)構(gòu)樹的所有節(jié)點(diǎn)來說,除了門限值K個子節(jié)點(diǎn)外,其余子結(jié)點(diǎn)都可以去除,因此在尋找屬性是否滿足訪問策略時(shí),不考慮多余的子節(jié)點(diǎn)將會省去許多雙線性配對運(yùn)算??梢詷?gòu)造一個遞歸函數(shù)restrict(T,M),M為訪問結(jié)構(gòu)樹T的一個子集,其中M滿足條件:只包含T中為其定義的節(jié)點(diǎn)個數(shù)N,去除其子節(jié)點(diǎn)X中的孩子樹小于X的門限值的節(jié)點(diǎn)。
(2)優(yōu)化解密計(jì)算公式
M所有的葉節(jié)點(diǎn)記為集L,對L中任一元素l,定義從葉節(jié)點(diǎn)l到根節(jié)點(diǎn)r的路徑為
定義節(jié)點(diǎn)x的兄弟節(jié)點(diǎn)集合為
定義了上面的符號,解密算法可直接運(yùn)算得到,省去了遞歸過程中的雙線性運(yùn)算。首先對于l∈L,計(jì)算:
其中,i=index(i),S={index(y)|y∈sibs(x)},那么可以直接運(yùn)算根節(jié)點(diǎn)的解密算法得到整個方案的解密結(jié)果:
假如屬性空間全集為U,則原始方法需要進(jìn)行雙線性配對的次數(shù)為2|U|。通過這種方法可以將雙線性運(yùn)算減少到2|L|對,極大地提高了解密效率。
采用數(shù)據(jù)庫外加密,即屬性加密,對用戶數(shù)據(jù)庫中少部分字段進(jìn)行加密,如用戶的身份證號、家庭住址等;用戶在編輯資訊內(nèi)容時(shí)會選擇咨詢對象,用戶的選擇就構(gòu)成了一個屬性范圍,只有其屬性符合這個屬性范圍的醫(yī)生才可以查看用戶發(fā)出的該條咨詢內(nèi)容;這有效地保護(hù)了用戶隱私信息。例如在圖6的醫(yī)院信息系統(tǒng)中,患者需要遠(yuǎn)程上傳自己的電子病歷到醫(yī)院信息系統(tǒng)中,以供醫(yī)生翻閱?;颊呖梢詫ψ约旱碾娮硬v中不同的就診信息指定不同的醫(yī)療專業(yè)人員的屬性(例如職務(wù)、所處科室等),然后患者可以在客戶端利用以上屬性加密策略對自己的就診信息進(jìn)行加密、上傳,加入自己的電子健康檔案。因此保存在醫(yī)院信息系統(tǒng)中的只有加密之后的患者信息。為了保護(hù)患者的個人信息,可信第三方(如政府衛(wèi)生機(jī)構(gòu))向患者和醫(yī)護(hù)人員發(fā)放了私鑰。只有患者本人或者滿足該訪問控制策略的醫(yī)護(hù)人員才能對數(shù)據(jù)進(jìn)行解密。
圖6 屬性加密結(jié)構(gòu)圖
本文給出了CP-ABE算法描述、安全模型及方案構(gòu)造,對網(wǎng)絡(luò)健康數(shù)據(jù)采用屬性加密,優(yōu)化了解密策略及解密計(jì)算公式,使用戶的健康數(shù)據(jù)得到了一定的保障。下一步研究將考慮在屬性加密過程中加入時(shí)間戳,即可實(shí)現(xiàn)分時(shí)段的解密,醫(yī)生只能解密提取某段時(shí)間的數(shù)據(jù)。
參考文獻(xiàn):
[1]熊嬌.家庭健康管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[D].北京:北京交通大學(xué),2008.
[2]SAHAI A,WATERS B.Fuzzy Identity-based Encryption[C].Proceedings of EUROCRYPT'O5,Berlin,Germany:Springer-Verlag,2005:457-473.
[3]GOYAL V,PANDEY O,SAHAI A,et al.Attribute based encryption for fine-grained access control of encrypted data[C].Proceedings of the 13th ACM Conference on Computer and Communications Security(CCS'06),New York,USA:ACM,2006:89-98.
[4]BETHENCOURT J,SAHAI A,WATERS B.Ciphertext-policy Attribute-based Encryption[C].Proceedings of the 2007 IEEE Symposium on Security and Privacy,Washington D.C.,USA:IEEE Computer Society,2007:321-334.
[5]孫國梓,董宇,李云.基于CP-ABE算法的云存儲數(shù)據(jù)訪問控制[J].通信學(xué)報(bào),2011(32):146-152
[6]BELLARE M,ROGAWAY P.Random oracles are practical:A paradigm for designing efficient protocols[C].In ACM cronference on Computer and Communications Security(ACM CCS),1993:62-73.
[7]SHAMIR A.Identity based cryptosystems and signature schemes[M]//BLAKLEYGR,CHAUMD.Lecture.Note in Computer Science.Betlin:Springer,1984:47-53.
[8]潘大四.基于數(shù)據(jù)綁定技術(shù)構(gòu)建Flex組件的XML數(shù)據(jù)源[J].電腦知識與技術(shù),2007(14):3-5.
[9]王勁東.目基于高級數(shù)據(jù)加密標(biāo)準(zhǔn)AES的數(shù)據(jù)庫加密技術(shù)研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.
[10]朱勤,駱軼姝,樂嘉錦.數(shù)據(jù)庫加密與密文數(shù)據(jù)查詢技術(shù)綜述[J].東華大學(xué)學(xué)報(bào)(自然科學(xué)版),2007(33):543-547.
[11]俞海燕.安全高效的跨高校檔案信息共享系統(tǒng)[J].現(xiàn)代教育技術(shù),2010(20):126-129.
[12]張玉鳳.基于CPABE的云存儲訪問控制研究[D].武漢:華中科技大學(xué),2013.