本發(fā)明屬于信息安全技術(shù)領(lǐng)域,特別涉及一種個(gè)人醫(yī)療信息隱私保護(hù)方法。
背景技術(shù):
隨著醫(yī)療事業(yè)的蓬勃發(fā)展,相對于傳統(tǒng)紙質(zhì)病例,電子病歷有許多好處。以病人為中心的醫(yī)療病例的隱私/安全保護(hù)也成為醫(yī)療工業(yè)界信息化發(fā)展的迫切需求。
在云技術(shù)創(chuàng)新發(fā)展趨勢的有力推動(dòng)下,云計(jì)算、云存儲(chǔ)的數(shù)據(jù)共享技術(shù)成為允許文件擁有者方便存儲(chǔ),用戶方便訪問的有前途的一種技術(shù)。然而,在存儲(chǔ)、共享數(shù)據(jù)時(shí),文件擁有者越來越關(guān)心存儲(chǔ)的隱私和數(shù)據(jù)的可靠訪問。本發(fā)明,對比于現(xiàn)有數(shù)據(jù)共享方案,重點(diǎn)介紹了安全可靠云數(shù)據(jù)共享服務(wù),特別的,將研究隱私保護(hù)和可抗共謀、可識(shí)別欺騙者的的功能要求,具體體現(xiàn)以下幾方面。
1、由于病人的病例在存儲(chǔ)時(shí),與病情無關(guān)、但會(huì)涉及病人的個(gè)人隱私的一些信息,如姓名、電話、身份證號(hào)碼、家庭住址等,因此在電子病歷資料的存儲(chǔ)時(shí),需要對這部分信息進(jìn)行隱私處理;
2、患者的醫(yī)療病歷由患者本人以密文形式安全存儲(chǔ)于服務(wù)器,例如云服務(wù)器,文件擁有者(owner)并對可訪問用戶進(jìn)行授權(quán);
3、在某些特殊場合(車禍、非正常死亡、醫(yī)療理賠等),因工作需要,如,醫(yī)療取證時(shí),患者電子病歷資料應(yīng)該能夠被查看,特別的,為了公平和公正,防止病歷信息外泄、被不法分子利用,做出一些影響公允判定的行為,因此,病例信息的訪問需要在一種具有相互監(jiān)督的機(jī)制下進(jìn)行,以及當(dāng)有參與者共謀時(shí),可以發(fā)現(xiàn)并指出欺騙者。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種個(gè)人醫(yī)療信息隱私保護(hù)方法,基于具有一般訪問控制結(jié)構(gòu)的秘密分享,在云存儲(chǔ)模式下,以患者為中心進(jìn)行電子病歷安全訪問,具有監(jiān)督功能;為達(dá)到以患者為中心的安全存儲(chǔ),借鑒了cp-abe的結(jié)構(gòu)框架,根據(jù)監(jiān)督群組數(shù),設(shè)立秘密的個(gè)數(shù),將秘密嵌入到密文中。密文恢復(fù)時(shí),秘密份額分配給各組中用戶。其中,在隱藏與病情無關(guān)的患者敏感信息時(shí),采用了bloomfilter對隱私信息進(jìn)行隱藏。為了防止群組中用戶進(jìn)行共謀,采用rs碼糾錯(cuò)技術(shù)檢測欺騙行為和識(shí)別欺騙者。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種個(gè)人醫(yī)療信息隱私保護(hù)方法,包括如下步驟:
(1)系統(tǒng)初始化
密鑰生成中心(thepublickeygeneration,pkg)選擇一個(gè)大素?cái)?shù),取素?cái)?shù)階為p的兩個(gè)循環(huán)群g1和g2,g1中兩個(gè)獨(dú)立的生成元g,
(a)雙線性性:對所有的整數(shù)a和b,均有e(ga,gb)=e(g,g)ab;
(b)非奇異性:e(g,g)≠1;
然后執(zhí)行如下步驟:
(1.1)用戶idi向pkg注冊,設(shè)
(1.2)設(shè)將要分享某文件的所有用戶的集合為u,為便于對用戶的管理,pkg按照用戶身份的屬性,取一個(gè)分組函數(shù)
(1.3)然后,pkg為群組
(1.4)計(jì)算系統(tǒng)公共參數(shù):
(2)密文產(chǎn)生
(2.1)文件擁有者(owner)對每組用戶選擇一個(gè)整數(shù)張成矩陣和一個(gè)隨機(jī)指數(shù)s1,…,sn作為該組要分享的秘密,對劃分后的群組
(2.2)文件擁有者為保護(hù)個(gè)人隱私,采用屬性名和屬性值相分離的方式將個(gè)人屬性信息匿名處理,設(shè)文件擁有者的個(gè)人隱私記錄為
(2.3)文件擁有者將經(jīng)上述得到的bloomfilter函數(shù)bfdatafile作為文件標(biāo)簽,與每個(gè)群組的整數(shù)張成記(mk,ρk),以及產(chǎn)生的密文c0,…,cn,一起構(gòu)成含個(gè)人標(biāo)簽的密文文件<bfdatafile,(mk,ρk),c0,ck>k=1~n以匿名形式上傳至云服務(wù)器;
(2.4)最后,每個(gè)文件是以如下形式存儲(chǔ)于云服務(wù)器上:
(3)密鑰產(chǎn)生及分配
設(shè)用戶idi經(jīng)
(3.1)用戶idi隨機(jī)選取
(3.2)文件擁有者按用戶所在群組uk向用戶idi頒發(fā)密鑰:
a)文件擁有者對該組用戶取一整數(shù)張成為(mk,ρk),其中
b)文件擁有者計(jì)算用戶私鑰
c)文件擁有者隨機(jī)選取一個(gè)t次多項(xiàng)式rk(x)∈gfq(x)和利用單射函數(shù)μ:gf(p)×{1,…,n}→gf(q),計(jì)算
d)文件擁有者從pkg獲得用戶idi的公鑰
(3.3)用戶idi對接收到的秘密份額
a)用戶首先利用份額驗(yàn)證信息
b)對ski→j,利用個(gè)人私鑰
c)用戶idi得到自己的解密密鑰
(4)數(shù)據(jù)解密
記群組
(4.1)所述授權(quán)用戶利用公開的哈希函數(shù)h(·),根據(jù)所知道的文件擁有者的個(gè)人隱私記錄attvalueowner計(jì)算想要解密的數(shù)據(jù)文件的用戶(owner)的標(biāo)簽:tagowner=h(attvalueowner),提交給云服務(wù)器;
(4.2)云服務(wù)器接收到標(biāo)簽tagowner:
a)根據(jù)tagowner首先驗(yàn)證該標(biāo)簽tagowner是否滿足密文記錄信息對應(yīng)的bloom過濾器bf[h1(tagowner)]=bf[h2(tagowner)]=…=bf[ho(tagowner)]=1
b)如果滿足,將相應(yīng)的密文文件<bfdatafile,(mk,ρk),c0,ck>k=1~n發(fā)送給授權(quán)用戶集ak;
(4.3)群組ak中的所有用戶提交個(gè)人密鑰信息
a)由
b)每個(gè)群組
(4.4)如果所有授權(quán)集合中都沒有欺騙者,則授權(quán)用戶按如下方式共同解密密文:
a)授權(quán)集合ak中的用戶首先選擇常數(shù)βk,滿足
b)計(jì)算
最后,利用密文第1項(xiàng)c0再解出消息
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
與現(xiàn)有的數(shù)據(jù)分享方案相比,該方案可提供如下方面的安全性和效率優(yōu)勢:
1)云服務(wù)器可以通過數(shù)據(jù)文件標(biāo)簽輔助搜索記錄,而對數(shù)據(jù)的所有者的明文和所有者的個(gè)人敏感信息一無所知。
2)可以訪問數(shù)據(jù)文件的用戶是由數(shù)據(jù)所有者授權(quán)的,他可以驗(yàn)證由所有者發(fā)送的密鑰,未授權(quán)用戶得不到數(shù)據(jù)文件的任何明文信息。
3)可有效識(shí)別提供虛假解密密鑰的不誠實(shí)的云用戶,從而使密文在這些用戶的監(jiān)督下能夠安全、正確地解密。
附圖說明
圖1是bloom過濾器保護(hù)文件擁有者個(gè)人隱私示意圖。
圖2是本發(fā)明方案總體示意圖。
圖3是本發(fā)明文件存儲(chǔ)于云服務(wù)器上的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例詳細(xì)說明本發(fā)明的實(shí)施方式。
首先介紹理解本發(fā)明所需具備的預(yù)備知識(shí):
1、雙線性映射
設(shè)g1和g2是素?cái)?shù)階為p的兩個(gè)循環(huán)群,g是g1的生成元,取映射e:g1×g1→g2,稱e是一個(gè)雙線性映射,它滿足下列性質(zhì):
(1)雙線性性:對所有的a和b,均有e(ga,gb)=e(g,g)ab。
(2)非奇異性:e(g,g)≠1。
2、訪問結(jié)構(gòu)和單調(diào)張成
定義1訪問結(jié)構(gòu)
設(shè){p1,p2,…,pn}是一組參與方。集合
一個(gè)線性秘密共享方案可以實(shí)現(xiàn)一個(gè)訪問結(jié)構(gòu),分配者持有秘密y并將y分配給用戶,使得y可以從這些授權(quán)集的份額經(jīng)線性組合重構(gòu)。然而,一個(gè)未經(jīng)授權(quán)的組合是得不到秘密的任何信息的。
訪問結(jié)構(gòu)和正是張成具有緊密聯(lián)系。
定義2單調(diào)張成
設(shè)
3、bloom過濾器
bloom過濾器是一個(gè)簡單有效的隨機(jī)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),它是由一組hash函數(shù)bf(x)=(h1(x),…,hk(x))構(gòu)成,滿足兩個(gè)運(yùn)算:add(x)和query(x),在本發(fā)明中x標(biāo)示文件擁有者的標(biāo)簽tagowner。在本發(fā)明中,利用bloom過濾器隱藏文件擁有者的個(gè)人敏感信息,圖1給出了一個(gè)例子:設(shè)文件擁有者的姓名是smith,移動(dòng)電話是13387861910,家庭住址72ndstreet,jacksonheights,newyork,設(shè)一般個(gè)人隱私信息的屬性名稱為attnameowner=(name,telephonenumber,address),則該文件擁有者的隱私取值為attvalueowner=(smith||13387861910||72ndstreet,jacksonheights,newyork),則文件標(biāo)簽為tagowner=h(attvalueowner),通過文件標(biāo)簽tagowner,構(gòu)造了文件的bloom過濾器bfdatafile=bf(tagowner),在圖1中令
4、reed-solomon碼
在編碼理論中rs碼可以用來糾隨機(jī)信息錯(cuò)誤。mceliece和sarwate曾指出shamir的秘密分享方案非常接近于rs糾錯(cuò)編碼,一個(gè)(k,n)秘密分享的份額構(gòu)成了rs碼的一個(gè)碼字,因此,可得出結(jié)論:k+2t個(gè)份額可糾t個(gè)錯(cuò)誤。通過lagrange插值,容易看出一個(gè)k-1次的多項(xiàng)式f(x),可以由f(1),…,f(n)唯一確定,當(dāng)且僅當(dāng)n≥k+2t,其中t是欺騙者的個(gè)數(shù)。早在2011年,obana設(shè)計(jì)了一個(gè)有效的無條件安全的秘密分享,滿足在(k-1)/3≥t條件下,可識(shí)別出t個(gè)欺騙者。
基于以上預(yù)備知識(shí),參考圖2,本發(fā)明執(zhí)行過程如下:
1、系統(tǒng)初始化
密鑰生成中心(thepublickeygeneration,pkg)選擇一個(gè)大素?cái)?shù),取階數(shù)為p的群g1和g2,g1中兩個(gè)獨(dú)立的生成元g,
(1.1)用戶idi向pkg注冊。用戶idi隨機(jī)選取
(1.2)設(shè)將要分享該文件的所有用戶的集合為u。為便于對用戶的管理,pkg按照用戶身份的屬性,取一個(gè)分組函數(shù)
(1.3)然后,對群組
(1.4)計(jì)算系統(tǒng)公共參數(shù):
2、密文產(chǎn)生(數(shù)據(jù)/文件共享)
(2.1)文件擁有者對每組用戶選擇一個(gè)整數(shù)張成矩陣和一個(gè)隨機(jī)指數(shù)作為該組要分享的秘密。對劃分后的群組uk,設(shè)該組用戶數(shù)為lk,該群組對應(yīng)的整數(shù)張成記為(mk,ρk),其中ρk是矩陣mk的行標(biāo)記函數(shù),ρk,j表示mk的第j行。文件擁有者選取n個(gè)隨機(jī)指數(shù){skk∈{1,…,n}}對數(shù)據(jù)
(2.2)文件擁有者為保護(hù)個(gè)人隱私,將個(gè)人屬性信息,如姓名、電話、住址等信息,匿名處理,這里采用屬性名和屬性值相分離的技巧。例如,文件擁有者姓名為smith,移動(dòng)電話是13387861910,家庭住址是72ndstreet,jacksonheights,newyork。如果設(shè)文件擁有者的個(gè)人隱私記錄為
attnameowner=(name,telephonenumber,address),
屬性值為
attvalueowner=(smith||13387861910||72ndstreet,jacksonheights,newyork)。
文件擁有者為保護(hù)隱私信息,首先計(jì)算個(gè)人標(biāo)簽tagowner=h(attvalueowner),然后構(gòu)造一個(gè)bloomfilter函數(shù)bfdatafile=bf(tagowner)。
(2.3)文件擁有者將包含個(gè)人標(biāo)簽的將密文信息
<bfdatafile,(mk,ρk),c0,ck>k=1~n
以匿名形式上傳至云服務(wù)器。
(4)最后,每個(gè)文件是以圖3所示形式存儲(chǔ)于云服務(wù)器上。
3、密鑰產(chǎn)生及分配
設(shè)用戶idi經(jīng)
(3.1)用戶idi隨機(jī)選取
(3.2)文件擁有者按用戶所在群組uk向用戶idi頒發(fā)密鑰。
a)文件擁有者對該組用戶取一整數(shù)張成為(mk,ρk),其中
b)文件擁有者計(jì)算用戶私鑰
c)文件擁有者隨機(jī)選取一個(gè)t次多項(xiàng)式rk(x)∈gfq(x)和利用單射函數(shù)μ:gf(p)×{1,…,n}→gf(q),計(jì)算
d)文件擁有者從pkg獲得用戶idi的公鑰hidi,將
(3.3)用戶idi對接收到的秘密份額
a)用戶首先利用份額驗(yàn)證信息
b)對ski→j,利用個(gè)人私鑰
c)用戶idi得到自己的解密密鑰
4、數(shù)據(jù)解密
記群組uk的(一個(gè))授權(quán)用戶集合為ak,則n個(gè)群組所對應(yīng)的n個(gè)授權(quán)用戶集合即為
(4.1)(這些)授權(quán)集合利用h(·),計(jì)算想要解密的數(shù)據(jù)文件的用戶(owner)的標(biāo)簽:tagowner=h(attvalueowner),提交給云服務(wù)器。
(4.2)云服務(wù)器接收到標(biāo)簽tagowner。
a)根據(jù)tagowner首先驗(yàn)證是否滿足密文(記錄)信息對應(yīng)的bloom過濾器
bf[h1(tagowner)]=bf[h2(tagowner)]=…=bf[ho(tagowner)]=1。
b)如果滿足,將相應(yīng)的密文文件<bfdatafile,(mk,ρk),c0,ck>k=1~n發(fā)送給授權(quán)用戶集ak。
(4.3)ak中的所有用戶提交個(gè)人密鑰信息
a)由
b)每個(gè)群組uk對該組用戶提交的份額
(4.4)如果所有授權(quán)集合中都沒有欺騙者,則授權(quán)用戶按如下方式共同解密密文(若任一個(gè)授權(quán)集合中有用戶提供偽造份額,則導(dǎo)致該群組份額錯(cuò)誤,從而導(dǎo)致密文解密失敗)。
a)授權(quán)集合ak中的用戶首先選擇常數(shù)βk,滿足
b)計(jì)算
最后,利用密文第1項(xiàng)c0再解出消息