張正昊 李 勇 張振江
(北京交通大學電子信息工程學院 北京 100044)(19120172@bjtu.edu.cn)
在當今大數據時代,人們的日常生活中會產生大量數據,這些數據代表著一個人的日常習慣、行為動態、生活軌跡等,是極其重要的隱私數據.數據產生的源頭可能多種多樣,不同的公司、企業、部門之間都持有用戶數據.在大數據背景下,這些蘊涵著巨大價值的數據必然走向共享、開放[1],即數據只有流動起來才能發揮其最大效能,進一步挖掘出數據背后的隱藏信息,為企業和個人提供更好的服務質量[2-3].如果不同數據只存放于獨立的機構內部,就會形成“數據孤島”,數據得不到充分利用,造成數據浪費.
然而,數據共享過程中存在的突出問題是,數據擁有方往往難以控制數據的流向,數據是否能得到合法使用也難以保證.例如2020年11月,國內某快遞公司的40余萬條客戶個人信息被內部用戶獲取之后倒賣,被泄露的信息包括客戶的收發件地址、姓名、電話等,這是一起嚴重的數據泄露事件.因此有必要研究隱私數據在各方之間共享時的安全性,實現數據的可控共享.另外,許多信息泄露事件都是內部人員所為,因此數據共享也需要設置監管方對數據共享進行監管,確保所有的數據獲取請求和數據響應合規合法,最大程度避免數據泄露情況的發生.
針對敏感數據共享過程中的痛點和難點,文獻[4]基于大數據平臺提出了一種安全的敏感數據共享框架.該框架從平臺中數據的生命周期出發,分別從數據提交、存儲、使用和銷毀4個方面考慮數據的安全共享問題.文獻[4]的作者設計了一種異構代理重加密方案,支持從身份基加密[5]到公鑰加密[6]之間的轉換.另外為了避免隱私信息的泄露,數據請求者將在基于虛擬機監視器(virtual machine monitor, VMM)[7]的私有進程中對數據進行下載操作,所有的密鑰將保存在私有進程的內存中.框架為所有隱私數據設置了一種基于租約的機制,在租約到期后,明文和密鑰將從云中徹底銷毀.但是該框架對請求者的隱私問題考慮不充分,任何發生在平臺上的數據共享行為都會被無關第三方得知,并且其訪問控制功能的實現主要依賴于數據擁有方是否為請求方生成了重加密密鑰,對數據請求方的權限控制相對較弱.
2008年,Nakamoto[8]提出比特幣概念,區塊鏈開始引起關注.由于區塊鏈具有分布式、防篡改等特性,一些學者開始使用區塊鏈進行訪問控制,以設計可控的敏感數據共享方案.文獻[9]針對云環境下的電子病歷共享場景,設計了一個輕量可擴展的聯盟鏈,所有的用戶實體都將經過授權之后才能進入共享系統,并且所有的共享行為都會被實時記錄.該方案利用區塊鏈分布式與防篡改等特性,構造了比較強的訪問控制方案.文獻[10]研究了醫療數據在無信任環境下的數據共享問題,基于區塊鏈技術提出了醫療數據管理系統MeDShare.在該系統內,對數據的操作行為都將以防篡改的方式記錄下來,并且通過訪問控制機制進行用戶權限的管理.但是其訪問控制通過訪問控制表實現,驗證用戶權限時開銷比較大.文獻[11]基于聯盟鏈并使用可搜索加密技術[12]和秘密分享技術[13],設計了一個基于區塊鏈的醫療數據共享方案.在該方案中,希望得到共享數據的多個用戶將獲得搜索憑證的密鑰份額,并提供給聯盟鏈進行驗證,驗證通過后會得到搜索憑證,進而向數據服務器請求相應的密文,密文會被提交給智能合約進行解密,從而得到數據明文.此方案考慮到了云存儲服務器并非完全可信的問題,并使用秘密分享技術來支持多個用戶的共享,但該方案的交互過程相對復雜,聯盟鏈、云服務器、數據擁有方和請求方之間都有交互,系統耦合性比較高.
隨著使用區塊鏈進行訪問控制的相關研究不斷深入,學者們開始注意到數據共享過程中的監管問題.文獻[14]使用代理重加密技術[15]進行數據共享,同時保證數據擁有方對數據有一定程度的可控性.當用戶有下載文件的權限時,第三方代理就會將數據密文和密鑰的重加密密文發給用戶,用戶用自己的私鑰解密出密鑰,從而獲得數據明文.該方案使用區塊鏈對用戶權限進行驗證,并且記錄請求內容,實現一定程度的監管性.文獻[16]從時間維度的訪問控制出發,結合屬性基加密[17]和區塊鏈,設計了醫療數據的共享方案.數據擁有方在給其他用戶授權時,會部署一個限時智能合約,只有用戶同時滿足訪問控制結構和時間范圍才能獲得數據.該方案雖然設置了監管中心對用戶的身份進行管理,但是監管中心無法監管共享請求,也不知道是否有非法共享行為發生.另外,從時間維度對數據共享進行限制的靈活性不高,只要用戶符合訪問控制結構,那么在相應的時間段內用戶可以隨意獲得數據,擁有方無法撤回授權.
從上述分析中可知,敏感數據共享過程仍存在待解決的問題:1)數據擁有方無法靈活地進行權限更新和撤銷.2)數據共享本身缺乏監管性,有方案確實設置了監管中心,但監管性比較弱.鑒于敏感數據的重要性,必須有一個強監管方來保證數據共享過程的合法合規.3)共享過程中的用戶身份隱私問題也需要考慮,共享本身是雙方之間的交互過程,不相關的第三方不能獲取到參與方的身份信息.針對這3個問題,本文以區塊鏈技術為背景,提出了一個可控、可追責的敏感數據共享方案,旨在提高數據共享的隱私性、可控性和可監管性.該方案可以確保數據擁有方對數據的控制權,設置監管方以監督共享全過程,避免非法行為的出現.并且數據共享的行為將記錄在區塊鏈上,利用區塊鏈不可篡改等特性,監管方可以追溯數據的使用過程,在非法行為出現時找到相關參與方進行問責.引入強指定驗證者簽名技術,保護了數據請求方的身份隱私.在訪問控制方面使用動態累加器,使得數據擁有方可以靈活地對授權用戶進行管理,包括權限的更新和撤銷等,增強了擁有方對自己數據的可控程度.
設n=pq為RSA模,c∈強RSA假設是指在不知道n的分解的前提下,計算a,b∈使得ab=cmodn是困難的.
給定生成元為g的q階循環群,對于x,y∈R已知(g,gx,gy),CDH假設是指對于任何運行在多項式時間t內的算法A,正確計算gxy的概率是可以忽略的.
給定生成元為g的q階循環群,對于x,y,z∈R已知(g,gx,gy,gz),DDH假設是指對于任何運行在多項式時間t內的算法A,正確判斷是否有z=xymodq成立的概率是可以忽略的.
給定生成元為g的q階循環群,對于x,y∈R已知(g,gx,gy),GDH假設是指借助于DDH預言機的前提下,對于任何運行在多項式時間t內的算法A,正確計算gxy的概率是可以忽略的.
本文方案包含的算法有10個:
1)Setup(1k)→params為系統初始化算法.以安全性參數1k為輸入,輸出公共參數params.
2)KeyGen(params)→(skA,pkA,skB,pkB,skR,pkR)為密鑰生成算法.輸入公共參數params,輸出數據擁有方密鑰對(skA,pkA)、數據請求方密鑰對(skB,pkB)和監管方密鑰對(skR,pkR).
3)AccInit(params)→(Acc,C)為累加器初始化算法,由數據擁有方執行.為屬于自己的數據設置一個訪問控制結構,輸出累加器Acc和授權集合C.
4)ShareRequest(params,skB,pkB,pkA)→reqShare為共享請求算法,由數據請求方執行.輸入公共參數params、數據請求方的密鑰對(skB,pkB)和數據擁有方的公鑰pkA,輸出共享請求reqShare.
5)Authorization(params,skA,reqShare,Acc,C)→(0|witnessB,witness)為授權算法,由數據擁有方執行.輸入公共參數params、數據擁有方的私鑰skA、共享請求reqShare、當前累加器Acc和授權集合C,數據擁有方根據共享請求判斷是否授權,如果不授權則輸出0,如果授權則輸出數據請求方證據witnessB和其他授權用戶的新證據witness.
6)RegulateRequest(params,msg,pkA,skB,pkB,pkR,witnessB)→reqRegulate為監管請求算法,由數據請求方執行.輸入公共參數params、數據擁有方公鑰pkA、請求方自己的密鑰對skB,pkB、監管方公鑰pkR、請求內容msg和授權憑證witnessB,請求方為監管方生成一個強指定驗證者簽名,并附帶其他附加信息后輸出reqRegulate.
7)RegulateVerify(params,pkB,skR,pkR,reqRegulate)→(0|σR)為監管驗證算法,由監管方執行.輸入公共參數params、請求方公鑰pkB、監管請求和監管方密鑰對skR,pkR,監管方驗證信息的正確性和合法性,如果認為該請求不合法,則輸出0,如果認為請求可以執行,則輸出簽名σR,并將請求上傳到區塊鏈中.
8)DataResponse(params,pkB,pkR,σR,wB,msg)→(0|resData)為數據響應算法,由數據服務器執行.輸入公共參數params、數據請求方發來的信息pkB,σR,wB和監管方公鑰pkR,數據服務器驗證所有憑證是否成立,如果驗證通過,則返回響應的數據,輸出resData,并將響應信息上傳到區塊鏈,否則輸出0.
9)Revoke(params,Acc,C)→(Accnew,witness)為權限撤銷算法,由數據擁有方執行.輸入公共參數params和當前累加器Acc,數據擁有方對在權限集合C中的某個用戶進行權限撤銷,輸出新累加器Accnew和其他還存在于授權集合中的用戶的證據witness.
10)RegulateSim(params,pkB,skR,pkR,reqRegulate)→σSim為副本模擬算法,由監管方在有需要時執行.為了保護數據請求方的隱私,輸入公共參數params、請求方公鑰pkB、監管請求reqRegulate和監管方密鑰對skR,pkR,輸出簽名副本σSim.
在本文方案中,安全性需求描述為4方面:
1) 數據擁有方可以控制自己數據的流向,即可以靈活地將數據訪問權限授權給其他用戶,也可以撤銷對某個用戶的授權;
2) 數據請求方在獲得數據擁有方的授權之后,需要進一步獲得監管方的授權,在與監管方通信的過程中,數據請求方的隱私得到保護;
3) 監管方可以對數據的請求、響應進行全流程的把控,一旦發現非法行為的出現,監管方將追蹤到相應的共享參與方;
4) 在數據請求方與監管方交互的過程中,監管方不能破壞請求方的隱私,也不能冒充數據請求方,向數據擁有方非法請求數據.
本文假設數據服務器是可信的,且各參與方之間與數據服務器之間的信道是安全的.下面給出本文方案的安全性定義.
定義1.數據請求方匿名性.對于一個挑戰者C和敵手D之間的游戲Gameanony,如果不存在任何概率多項式時間敵手能以不可忽略的優勢贏得該游戲,則該方案具有數據請求方匿名性.Gameanony定義為:
1) 對于簽名者S0,S1和驗證者V,挑戰者C為其生成密鑰對——(skS0,pkS0),(skS1,pkS1),(skV,pkV),并將公鑰(pkS0,pkS1,pkV)發送給敵手D.
2) 敵手D在多項式時間內向下列預言機發出查詢.
Osign.輸入待簽名消息M,pkSd(d∈{0,1}),pkV,輸出對消息M的簽名σ.
Osim.輸入待簽名消息M,pkSd(d∈{0,1}),pkV,輸出對消息M的簽名σ.
Over.輸入待簽名消息M,σ,pkSd(d∈{0,1}),pkV,當σ有效時輸出1,否則輸出0.
3) 敵手D輸出消息M*,挑戰者C拋出硬幣選擇一個b∈{0,1},運行指定驗證者簽名算法輸出σ*=Sign(skSb,pkSb,pkV,M*),將σ*發送給敵手D.
4) 敵手D向Osign和Osim發出如步驟2)中的查詢,然后輸出b′,當b′=b時,敵手D贏得這個游戲.
定義2.數據擁有方可控性.如果滿足以下條件,則數據擁有方可以控制自己數據的流向,即方案具備可控性:
Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→
reqShare:Authorization(params,skA,
reqShare,Acc,C)→0]≥1-v(λ),
或者
Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→reqShare:
Authorization(params,skA,reqShare,Acc,C)→
(witnessB,witness)]≥1-v(λ),
其中,v(λ)為可忽略函數,即數據擁有方不給數據請求方授權的概率接近于1,或數據擁有方向數據請求方授權,并為其他授權用戶更新憑證的概率接近于1.
定義3.可監管性.如果滿足以下條件,則監管方可以審核系統中的共享請求和響應,即方案具有可監管性:
Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→reqShare,
Authorization(params,skA,reqShare,Acc,C)→
(witnessB,witness),RegulateRequest(params,
msg,pkA,skB,pkB,pkR,witnessB)→reqRegulate:
RegulateVerify(params,pkB,skR,
pkR,reqRegulate)→0]≥1-v(λ),
或者
Pr[Setup(1k)→params,KeyGen(params)→
(skA,pkA,skB,pkB,skR,pkR),
AccInit(params)→(Acc,C),
ShareRequest(params,skB,pkB,pkA)→
reqShare,Authorization(params,skA,
reqShare,Acc,C)→(witnessB,witness),
RegulateRequest(params,msg,
pkA,skB,pkB,pkR,witnessB)→reqRegulate:
RegulateVerify(params,pkB,skR,
pkR,reqRegulate)→σR]≥1-v(λ),
其中,v(λ)為可忽略函數,即當數據請求方的請求有問題時,監管方否定該請求的概率接近于1,或者當數據請求方的請求正確時,監管方同意該請求并生成監管憑證的概率接近于1.
通過引入動態累加器方案和強指定驗證者簽名方案,基于區塊鏈技術設計了一種適用于敏感數據共享的方案.在該方案中,各數據共享方擁有對自己數據的控制權,在將數據上傳時就設置好訪問控制結構,只有滿足訪問控制結構的數據請求方才有機會獲得數據.監管方負責驗證每一次數據的請求過程,數據的請求和響應情況將被上傳到區塊鏈中,這些記錄只有監管方可以讀取,并且由于區塊鏈具有不可篡改等特性,監管方可以在出現非法行為時追溯數據的共享全過程,定位相關責任方,進而采取必要措施.
在本節中,假設有2個參與方A和B,A將數據上傳到數據服務器中,B請求獲得A的某些數據,共享流程如圖1所示.其中,本文假設數據服務器與各參與方之間的信道是安全可信的,其余信道不可靠,需要借助如SSL/TLS等技術進行傳輸.本文方案約定Encpk(m)=c,Decsk(c)=m為非對稱加/解密算法,Sigsk(m)=σ,Verpk(σ)=0或1為數字簽名和簽名驗證算法,具體計算過程不再贅述.方案構造9個算法:

Fig. 1 Data requester B requests shared from data owner A圖1 數據請求方B向數據擁有方A請求共享數據
1)Setup(1k)→params.輸入安全參數1k,得到一個長度為k的隨機數N,使得N=pq,其中p=2p′+1,q=2q′+1,p和q的長度相等,并且p,q,p′,q′都是素數,從N的二次剩余循環群QRN中選擇一個隨機數u.接著選取一個乘法群,階為m,生成元為g,H:{0,1}×3→m為一個抗碰撞的Hash函數.輸出公共參數params=(N,u,,m,g,H).
2)KeyGen(params)→(skA,pkA,skB,skR,pkR).參與數據共享的雙方A和B各自生成一個隨機數x1,x2∈m,令skA=x1,skB=x2,pkA=gskAmodm,pkB=gskBmodm,A的密鑰對為(skA,pkA),B的密鑰對為(skB,pkB).監管方R選取隨機數x∈m,監管私鑰skR=x,pkR=gskRmodm,得到監管密鑰對(skR,pkR).A,B,R分別保管各自的私鑰,并公開公鑰.
3)AccInit(params)→(Acc,C).A在本地維護一個授權集合C={c1,c2,…,cn},其中{c1,c2,…,cn}為n個授權用戶的公鑰,計算累加器Acc=uc1c2…cnmodN,輸出Acc.
4)ShareRequest(params,skB,pkB,pkA)→reqShare.設B想要獲取的內容為msg,當前系統時間為T,計算r1=EncpkA(pkB,msg,T),r2=SigskB(pkB,msg,T),輸出共享請求reqShare={r1,r2}發送給A.

6)RegulateRequest(params,msg,pkA,skB,pkB,pkR,witnessB)→reqRegulate.B收到witnessB后,計算DecskB(EncpkB(wB)),VerpkA(SigskA(wB))驗證簽名的正確性.若驗證失敗,則算法終止,回到ShareRequest;若驗證成功,則生成強指定驗證者簽名(strong designated verifier signature, SDVS)[20].為了避免惡意監管方收到wB后,冒充數據請求方B向數據服務器S請求數據,B不能將wB直接發送給R,而是應該發送隨機化后的wB,過程有4個步驟.
① 隨機生成r,z,t,r′∈m;


④ 輸出簽名σDVS=(t,z,t′,z′).


① 將σDVS解析為(t,z,t′,z′);



算法1.關于累加器證據的零知識證明.

e(Acc,g);
②B生成隨機數s∈m,計算
e(Acc,g)s,并將w發送給R;
③ R生成隨機數η∈m,并將η發送給B;
④B計算μ=s+ηr,并將μ發給R;



本節分析本文方案的安全性.
定理1.如果Hash函數H為隨機預言機,且GDH假設在群上成立,則該方案滿足監管過程中的數據請求方隱私性.
證明.設存在一個敵手D,以(1/2+δ)的概率攻破了監管過程中數據請求方的隱私性,即攻破了強指定驗證者簽名SDVS的隱私性,下面使用D作為子程序,構建算法E解決GDH假設.
步驟1.E初始化GDH參數(,g,q,gu,gw)和DDH預言機,E選擇一個隨機數u′∈q,令pkS0=gu,pkS1=gugu′,pkV=gw,將(pkS0,pkS1,pkV)發給D,E生成初始為空的2個表格HT和ST.
步驟2.D向E進行如下查詢,其中,本文假設D不進行重復查詢.
1) Hash查詢.輸入(M,K,R1,R2),如果E發現HT中已經存在對應的記錄((M,K,R1,R2),l),則直接返回c,否則,將(g,pkS0,pkV,K)和(g,pkS1,pkV,K)輸入DDH預言機,分別得到b0和b1.如果b0=1,則輸出K并中斷;如果b1=1,則輸出K/(gw)u′并中斷.如果b0=b1=0,則生成隨機數τ∈q,將τ返回給D并在HT中增加((M,K,R1,R2),l).




步驟4.D輸出b′作為對b的猜測.
在步驟2中,D要想在驗證查詢階段得到返回值為1,則需要其輸入的簽名σM*合法,而合法的簽名將通過Hash查詢獲得,但D有可能不通過Hash查詢而猜出一個合法的簽名,這種情況的概率為1/q.因此,通過Hash查詢獲得合法簽名的概率最小為(1-1/q).而D贏得Gameanony的概率為(1/2+δ),但是D有可能沒有通過Hash查詢,只是隨機選擇lM*使其贏得Gameanony,這種情況的概率為(1/2+1/q),因此D經過上述步驟得到正確結果的概率為((1/2+δ)-(1/2+1/q)),所以E解決GDH問題的概率為:
由上式,εGDH不可忽略,與GDH假設矛盾.
證畢.
定理2.在數據共享過程中,只有持有數據擁有方憑證的其他參與方,才有可能獲得數據,即數據擁有方具備數據的可控性.

證畢.
定理3.對于系統中的所有數據共享請求,監管方能夠審核共享請求與響應,即方案具有可監管性.


證畢.
定理4.監管方權力限制.監管方無法破壞數據請求方隱私性,也不能冒充獲得授權的數據請求方非法獲得數據.
證明. 在本文方案中,數據請求方將用SDVS來請求監管方的審核,由于該SDVS方案具有非授權性和非傳遞性的特征,因此沒有第三方可以驗證或者生成合法的簽名.除此之外,在監管方驗證授權憑證時,通過交互式證明協議,在不泄露憑證本身的前提下證明了正確性,因此監管方無法冒充合法的被授權方去獲取數據.
證畢.
定理5.監管方可以通過對區塊鏈上存儲的信息進行讀取,獲取到某個敏感數據共享過程的相關信息,在發現問題時進行追責.
證明.在本文方案中,數據服務器S在返回給數據請求方數據時,需要構建resData=(msg′,pkB,T′),并計算EncpkR(resData)上傳至區塊鏈中.resData包含數據共享過程的參與方、共享內容等信息,監管方R可以解密這些信息從而進行追責.
證畢.
將本文方案與文獻[4,9,11,14]中的方案進行安全性對比,如表1所示:

Table 1 Comparison of Security表1 安全性對比
由表1可以看到,本文方案對比其他方案,在實現敏感數據可控的前提下還具有一定程度的隱私性,對于共享過程,監管方可以進行監管,同時監管方的權力將受到限制.
文獻[10]同樣使用訪問控制技術進行權限的更新與撤銷,將本文方案與文獻[10]中的方案進行復雜度的對比,結果如表2所示:

Table 2 Comparison of Complexity表2 復雜度對比
由于文獻[10]中通過訪問控制表進行訪問控制,當需要驗證用戶權限時,需要遍歷整個訪問控制表,所以其時間復雜度為O(n),且需要存儲整張表,空間復雜度為O(n).而本文方案中使用累加器進行訪問控制,只需要用戶自己的憑證,結合公開的累加器即可驗證,其時間復雜度為O(1),并且驗證方只需要累加器本身即可進行驗證,無需額外存儲信息,空間復雜度為O(1).所以本文方案的訪問控制結構比較高效.并且本文方案相比文獻[10],在做到高效訪問控制的同時,還實現了一定的隱私性和追責性.
文獻[21]使用代理重加密和可搜索加密技術進行醫療數據共享,其數據共享階段包括陷門生成、搜索、解密3個階段.表3展示了常用密碼學計算步驟的計算成本,將本文方案與文獻[21]進行比較,2個方案的計算成本如表4所示.

Table 3 Computational Cost of Common Cryptographic Algorithms

Table 4 Computational Cost of Schemes表4 方案計算成本
綜合表3和表4可得,本文方案在數據加密階段的計算成本明顯低于文獻[21].在數據共享階段,文獻[21]的計算成本約為29.209 8ms,本文方案的計算成本約為32.761 3ms,計算成本增加了約12%,這主要是因為本文方案在數據共享階段設置監管方對數據共享過程進行監管,提高了方案的安全性,所以計算成本有所增加,但在可接受的范圍內.
在方案仿真部分,本實驗使用Java語言,調用java.math.BigInteger庫與第三方jpbc庫,針對本文方案中的各種算法進行了仿真.實驗環境配置如表5所示:

Table 5 Experimental Environment Configuration表5 實驗環境配置
實驗分別設置安全參數長度為512 b和1 024 b,記錄每個算法的運行時間,為了保證實驗數據的可靠性,每一個算法的運行時間均多次重復運行后取平均值,不同安全參數下各算法的運行時間如表6所示.
從表6中可以看出,在安全性參數長度為512 b時,Setup算法和AccInit算法由于需要生成一系列的參數所以耗時比較大,但是這2個算法往往只在系統啟動時執行一次,所以不會對系統整體效率產生影響.其余算法運行時間均為毫秒級別,效率比較高.當提高安全性參數時,只有Setup和AccInit兩個算法受到比較大的影響,其余算法均比較穩定.綜上,本文方案在保證了較高安全性的同時,還具有良好的運行效率.

Table 6 Running Time of Algorithms表6 算法運行時間 ms
本文基于動態累加器、強指定驗證者簽名和區塊鏈技術,提出了一種適用于敏感數據共享的方案,該方案具有隱私性、可控性、可監管性、可問責性和監管約束性的特點.通過對比分析證明了本文方案的安全性.本文的主要貢獻為:
1) 通過動態累加器技術,數據擁有方可以靈活地授予用戶權限或者撤銷已經發出的授權;
2) 設置監管方對整個敏感數據共享過程進行監管,監管方將審核每一個數據共享請求和響應情況,從而避免出現非法共享行為;
3) 引入強指定驗證者簽名技術,使得數據請求方在請求監管方審核時能夠保護自身的身份隱私,從而使得方案具有一定的隱私性;
4) 敏感數據共享過程的有關信息將由數據服務器以監管方公鑰加密后上傳至區塊鏈,監管方可以獲得這些信息來對數據共享過程進行追責;
5) 引入交互式零知識證明技術,在不影響監管方發揮監管職責的前提下,限制監管方能夠獲得的信息,避免惡意監管方破壞系統的安全性.
未來工作將主要聚焦在減弱本文方案的假設,比如考慮在數據存儲服務器半可信或者不可信前提下的共享方案,以及考慮當多個用戶同時發起共享請求時,如何提高系統效率的方法.
作者貢獻聲明:張正昊完成了論文所提方案的設計、仿真工作,以及論文初稿撰寫;李勇、張振江與張正昊一起討論所提方案的可行性,并在方案框架、方案仿真與分析方面進行指導.