?

同態聚合簽名方案在區塊鏈+智慧醫療中的研究

2022-04-09 12:56茅磊張廷秀
電腦知識與技術 2022年6期
關鍵詞:智慧醫療云存儲區塊鏈

茅磊 張廷秀

摘要:隨著計算機網絡技術和物聯網技術的不斷發展,智慧醫療已經走進我們的生活。智慧醫療通過打造健康檔案區域醫療信息平臺,利用最先進的物聯網技術,實現患者與醫務人員、醫療機構、醫療設備之間的互動,逐步達到信息化。醫療傳感器所采集患者體征信息數據具有動態增長并且數據量大的特點,因此一般會將這些數據存放在云服務器中。隨之而來的問題就是保護這些數據的完整性以及相關機構對患者醫療數據訪問進行有效的監控。文章基于SM9國家商用密碼算法設計了一種適用于云存儲中動態增長海量數據完整性的驗證方案,并且在該方案中引入區塊鏈技術保障了對患者醫療數據使用的溯源和跟蹤。

關鍵詞:智慧醫療;同態聚合簽名;SM9簽名算法;區塊鏈;云存儲

中圖分類號:TP393? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)06-0027-04

開放科學(資源服務)標識碼(OSID):

1 概述

當代隨著信息科技的不斷進步,大數據、云存儲、物聯網技術正和醫療技術不斷融合,形成了一個綜合交叉的領域——“智慧醫療”。在“智慧醫療”背景下,可以通過可穿戴或嵌入式醫療傳感器收集患者相關的身體數據[1],再將這些數據傳回醫療機構,使醫療服務機構能更好地監控患者病情的變化,提供精準的醫療診斷服務。然而無線醫療傳感網絡收集的患者體征數據具有以下特點:數據量巨大且隨著時間的推移動態增長。因此,醫療機構往往選擇將這些數據存放在云端,但是云服務商并不是完全誠實可信的[2]。所以如何保障存儲在云端的患者醫療數據的機密性和完整性成為研究的一個熱點[3]。云端醫療數據機密性保護不當會造成患者隱私的泄露,云端醫療數據完整性保護不當不但會直接影響醫生對患者病情進展的診斷,而且會影響其他相關醫療機構對患者數據的使用和審計。對于云端數據機密性的保護一般可以通過數據加密的方式來保護,在這方面已有不少研究成果。例如,在文獻[4]中周等人,設計了一套完整的基于區塊鏈技術的數據存證管理系統,以保障數據的安全加密和用戶驗證。文獻[5]中印一聰等人,討論了在云環境下基于區塊鏈技術的云存儲數據完整性增強機制,其實驗結果表明該機制可以抵御云存儲中數據完整性證據被破壞而失去完整性的威脅。但是在無線醫療傳感網絡中,患者數據量隨時間不斷增長[6],目前對于云端動態增長數據完整性的有效解決方案尚不多見。針對上述問題,本文主要針對云端動態增長數據完整性驗證設計出一個基于SM9同態聚合簽名方案,并在此基礎上結合區塊鏈技術,對醫療數據訪問記錄的可溯源性展開了相關討論。

2 相關工作

密碼學中的數字簽名技術可以提供對已簽名數據的真實性、完整性和不可否認性的保障。SM9是中國政府頒布的一種基于身份(標識)的密碼標準,相關標準為“GM/T 0044-2016 SM9標識密碼算法”,其中包括了簽名算法、加密算法、密鑰交換算法。殷等人在文獻[7]中指出,SM9的加密強度等同于3072位密鑰的RSA密碼算法。

同態簽名和聚合簽名是兩種特殊簽名。對于同態簽名而言,如果數字簽名的消息空間M中運算符為+、簽名空間[Σ]中的[·],那么對于來自M和[Σ]上的消息簽名對[m1,σ1]和[m2,σ2](其中[σ1=fm1],[σ2=fm2]),若簽名算法f是代數系統[M,+]到[Σ,·]上同態映射,則有[fm1+m2]=[fm1·fm2]=[σ1?σ2]成立。而聚合簽名可以將來自不同簽名者不同數據的簽名壓縮成一個數字簽名。如果聚合后的這個數字簽名是合法的,那么等同于逐一驗證所有聚合前的單個數字簽名是合法的。如圖1所示,對于云存儲中動態增長的醫療數據,可以將每一個用戶看作一個數據集,對于同一個患者上傳的醫療數據簽名,使用同態簽名的同態組合算法壓縮;而不同患者之間數據的簽名使用聚合簽名算法進一步壓縮。當相關醫療機構從云端下載一些患者的相關醫療數據時,并同時下載對應的同態聚合簽名,只要該同態聚合簽名驗證是合法的,則說明下載的對應數據就是完整的。不難看出,使用同態簽名可以將同一數據集中的數據的簽名進行壓縮,而使用聚合簽名可以將來自不同數據集中數據的簽名進一步壓縮,從而大大減少簽名驗證時的代價。

區塊鏈是比特幣的底層支撐技術,它是一種去中心化的分布式賬本,而且凡是記錄在區塊鏈上的數據都具有防篡改、可追溯的特性[8],所以可將區塊鏈和云存儲中無線醫療數據的訪問相結合,使用聯盟鏈將所有的共享訪問請求與授權作為一種“交易”記錄在鏈中。當患者隱私發生泄漏時,司法部門可通過區塊鏈中訪問記錄追溯泄露數據的節點,使其有據可循。由于區塊鏈所有節點都保存完整的區塊鏈賬本數據,所以敵手篡改單個節點中的相關訪問記錄沒有任何意義,經過每一輪的共識過程后,該節點又可同步到最新的數據。如圖1所示,任何機構節點對患者醫療信息的訪問情況都會被當成區塊鏈中的一個交易記錄在鏈上,并且只要寫入鏈上就無法更改,所有的操作都變成日志記錄在鏈中,包括訪問節點的ID、訪問時間、訪問內容等。因此,當出現患者醫療數據發生泄漏事件時,患者可以通過法律的途徑維護自身的權益。司法部門可通過區塊鏈上不可篡改的訪問記錄進行溯源,追溯到所有訪問該患者醫療數據的相關節點,并進行公正的判決。

3 基于身份的線性同態聚合簽名方案

3.1 基于身份的線性同態聚合簽名算法描述

(1) 系統建立算法Setup:

輸入:安全參數[1k]和正整數N

輸出:公開系統的公開參數params[=(G1,GT,N,e,g,Ppub,H,H0,H1,H2,φ)]

(其中,[G1,G2,GT]是p階的循環群,[P1]是[G1]的生成元,[P2]是[G2]的生成元;雙線性映射[e:G1×G2→GT]。[φ]是[G2]到[G1]上的同態映射[φP2=P1];計算[GT]中的元素[g=eP1,Ppub];系統主私鑰[s],[s∈[1,N-1]],[Ppub=s?P2];四個密碼學Hash函數分別為:[H]:[0,1*→N],[H0]:[0,1*→Z*p],[H1:{0,1}*→G1] ,[H2:{0,1}*→G1])

聚合簽名的驗證者隨機選取[α∈Z*p],設置驗證者驗證私鑰為[α],驗證公鑰為([X',X''])。其中,[X'=α?P2],[X''=α?Ppub]。

(2) Key-Extract:

輸入:系統的公開參數params,主私鑰[s],和用戶身份[ID∈{0,1}*];

輸出:用戶的簽名私鑰[skID]。

(其中,用戶的簽名私鑰[skID=s(h*+s)-1?P1],[h*=H(ID)],KGC秘密的將[skID]發送給用戶)

(3) Sign:

輸入:系統的公開參數params,用戶身份ID,用戶私鑰[skID],數據集標識信息[M]和消息向量[m=m1,m2,…,mn∈Znp],簽名用戶選擇兩個隨機數[β,r∈[1,N-1]]。

輸出:消息的簽名([τ,σ])

其中,([τ,σ])如下進行計算:

① 分別計算[w=eP1,Ppubr=gr]和[Q=β?P2]

② 計算[h=H(M∥w)]

③ 計算[l=r-h mod N]

④ 計算[ε=l?skID]

⑤ 設置[τ=(Q,h,w,ε)]

⑥ 計算[Ti=H2ID∥τ∥i]

⑦ 計算[σ=β?i=1Nmi?Ti]

⑧ 輸出的簽名為:[?]=([τ,σ])

(4) Homomorpic-Combine:

輸入:為用戶身份ID,公鑰[PK],和[k]個元組[βi,mi,σiki=1].

輸出:導出的向量簽名對:[y=i=1kβi?mi],[σ=i=1kβi?σi]

(5) Verify:

輸入:系統公開參數params,用戶身份ID,數據集標識信息[M],消息向量[y=(y1,y2,…,yn)∈Znp]和數據集標識信息[M]、消息向量[y=(y1,y2,…,yn)∈Znp]的簽名[?]=([τ,σ]),其中[τ=(Q,h,w,ε)]。

輸出:簽名驗證的結果,如果合法則輸出1,否則輸出0。

驗證的過程為:

? [h*=H(ID)]

? [P=h*P2+Ppub]

? [w'=eε,PeP1,Ppubh]

? [h'=H(M∥w')]

驗證是否有[h'=h],若成立則進入下一步,否則輸出0。

接下來驗證下面的等式是否成立,其中[Ti=H2ID∥τ∥i]:

[eσ,P2=ei=1NTi?yi,Q]

如果上式成立則該算法輸出1,否則輸出0。

(6) Aggregate:該算法由簽名聚合者執行,設聚合簽名用戶子集為U[∈]U,q=[U],每個用戶在公鑰[PKj]下,對各自數據集標簽[τj]標記的[l]維消息向量子空間基[mj=mj1,mj2,…,mjl?Znp]以及對應的簽名為[σj=σj1,σj2,…,σjl],(其中[mjk=mjk,1,mjk,2,…,mjk,n∈Znp]且k = 1,2,…,[ l] ; j = 1,…,q)。驗證公鑰為([X',X'']),計算[X=h*X'+X''],如下計算聚合簽名([μ,t]):

[μ=H(eε1,X, …,eεq,X )]

[t=H(eσ11,X',…,eσ1l,X',]

[eσ21,X',…,eσ2l,X',]

[… ,]

[eσq1,X',…,eσql,X')]

(7) AggregateVerify:該算法由聚合簽名的驗證者運行,該算法輸入q個用戶在其公鑰[PKj]下,對各自數據集標簽[τj]標記的[l]維消息向量子空間基[mj=mj1,mj2,…,mjl],(其中[mjk=mjk,1,mjk,2,…,mjk,n∈Znp]且k = 1,2,…,[ l];j = 1,…,q)以及對應的聚合簽名t。然后計算[hj=H0ID∥Rj∥Ppub],[Wj=eP1,Ppubrj=grj],聚合簽名的驗證者如下進行驗證:

[μ'=H(wα1g-αh1, … ,wαqg-αhq])

[t'=H(ei=1Nm1k,i?Ti,α?Q1…] ,[ei=1Nmqk,i?Ti,α?Qq])

其中,k = 1,2,…,[ l]. 如果有[μ=μ']且[t=t'],則該算法輸出1,否則輸出0。

3.2 方案正確性驗證

(1) 簽名算法Sign所輸出簽名的第一部分的正確性驗證:

[w'=eε,PeP1,Ppubh]

=[e(lsh*+s-1?P1,h*+s?P2)eP1,Ppubh]

=[eP1,Ppub(l+h)=eP1,Ppubr=w]

故有:

[h'=HM∥w'=HM∥w=h]

(2) 由Hom-Combine算法產生簽名的正確性驗證:設[y=k=1lβkmk],其中[mk=(mk,1,mk,2,…,mk,n)∈Znp],[βk∈Zp],[{(mk,σk)}lk=1]是[l]個合法的向量簽名對;[σ=k=1lβk?σk]。運用雙線性映射的相關性質有:

[eσ,P2][=e(k=1lβk?i=1nmk,i?Ti,α?P2)]

[=e(i=1nyi?Ti,Q)]

(3) 聚合簽名Aggregate算法的正確性:

[μ=Heε1,X, …,eεq,X]

[=Heε1,h*1X'+X'', …,eεq,h*qX'+X'']

[=H(el1sh*1+s-1?P1,h*1α?P2+α?Ppub,]

[…,]

[elqsh*q+s-1?P1,h*qα?P2+α?Ppub)]

[=H(wα1g-αh1, … ,wαqg-αhq])[= μ']

[t=H(eσ11,X',…,eσ1l,X',… ,eσq1,X',…,eσql,X')]

[=H(ei=1Nm1k,i?Ti,α?Q1,…],[ei=1Nmqk,i?Ti,α?Qq])[=t']

3.3 基于身份同態聚合簽名的安全性證明

如前所述,基于SM9同態聚合簽名的安全性證明可分成兩部分:

(1) 基本SM9簽名方案的正確性,賴建昌等學者已經證明SM9數字簽名算法具有EUF-CMIA的安全性,具體證明過程請參照文獻[9]。

(2) 聚合算法的安全性:

定理:設哈希函數H是抗碰撞的,當且僅當在聚合簽名中每個用戶的簽名是合法的,則由聚合算法產生的聚合簽名是合法的。

證明:設每個單個的簽名是合法的,則有[eεj,P=wjghj]成立(其中,[g=eP1,Ppub]),則有[eεj,α?P]=[wαjg-αhj]成立。

故有,

[μ=Heε1,α?P, …,eεq,α?P=Heε1,X, …,eεq,X]

[=Heε1,h*1X'+X'', …,eεq,h*qX'+X'']

[=H(el1sh*1+s-1?P1,h*1α?P2+α?Ppub,]

[…,]

[elqsh*q+s-1?P1,h*qα?P2+α?Ppub)]

[=H(el1s?P1,α?P2,…,elqs?P1,α?P2)]

[=H(wα1g-αh1, … ,wαqg-αhq])[= μ']

所以,聚合簽名是合法的。

另一方面,由[μ=μ'],可得:

[H(wα1g-αh1, … ,wαqg-αhq])

=[ H(el1s?P1,α?P2,…,elqs?P1,α?P2)]

[=H(el1sh*1+s-1?P1,h*1α?P2+α?Ppub,]

[…,]

[elqsh*q+s-1?P1,h*qα?P2+α?Ppub)]

[=Heε1,α?P, …,eεq,α?P]

由于哈希函數H是強抗碰撞的,固有[eεj,α?P]=[wαjg-αhj]成立。所以,[eεj,P=wjghj]。因此每個用戶單個標簽是合法的。

設單個簽名元組[σz=σz1,σz2,…,σzl]是[l]維消息向量子空間基[mz=mz1,mz2,…,mzl]的合法簽名,則有:

[eσzk,P2=ei=1Nmzk,i?Ti,Qz]

故有,

[eσzk,X'=eα?(i=1NmZk,i?Ti),QZ=ei=1NmZk,i?Ti,α?QZ],即[t=t']。

另一方面,由[μ=μ']成立,可得:

[eσzk,X'=ei=1NmZk,i?Ti,α?QZ]

即[eσzk,P2=ei=1Nmzk,i?Ti,Qz]成立。

所以,單個簽名元組[σz=σz1,σz2,…,σzl]是[l]維消息向量子空間基[mz=mz1,mz2,…,mzl]的合法簽名。

4 基于身份線性同態聚合簽名方案性能實驗

在仿真實驗中,針對上述設計的基于SM9同態聚合簽名方案(SM9-Homomorphic Aggregation Signature, SM9-HAS),將其與普通SM9簽名在性能上進行了比較。如表1、圖2所示,可以直觀看出基于SM9同態聚合簽名在驗證數據完整性效率上的優勢。在仿真實驗中,我們對以下5組實驗中的數據的完整性進行了驗證。

從上述實驗中可以看出,使用基于SM9的同態聚合簽名,可以極大地提高動態增長數據完整性效驗的效率。由于醫療傳感器網絡中,傳感器每隔一段時間就會采集患者的體征數據,可見采集的數據是呈動態增長的趨勢,如果使用普通的SM9數字簽名,醫療傳感器每采集一個數據,就需要對應地產生一個數字簽名,隨著時間的推移,產生的數據和簽名會越來越多,最終簽名的數量和數據的數量成正比。在進行數據完整性公開驗證時,如果使用普通SM9數字簽名方案,為了驗證N個患者數據的完整性,則需要獲得所有用戶數據塊的簽名,并對簽名逐一驗證??梢婋S著待驗證文件數據塊個數的不斷增大,用戶在驗證時的計算代價也越來越大。

而采用本文設計的基于SM9的同態聚合簽名就可以極大地壓縮簽名的數量。如圖3所示,將來自同一患者的醫療傳感器看作一個數據集,在該數據集中的數據的簽名可以使用同態簽名的算法進行壓縮,對于來自不同患者的數據集標簽以及對應的同態組合后的簽名,使用聚合簽名中的聚合算法進行第二層簽名的聚合,最終存放在云端就是傳感器采集來的數據和對應的同態聚合簽名?;颊邤祿氖褂谜吆蛯徲嬚咧恍柘螺d所需的數據和對應的同態聚合簽名,即可實現對相關數據完整性的審計。

5 總結

本文在國家密碼管理局頒布的SM9標識密碼算法的基礎上,設計了基于一種SM9的同態聚合簽名方案,將其應用于無線醫療傳感網絡中收集的動態增長的醫療數據完整性的檢驗中,提高了各個機構在驗證患者醫療數據完整性時的效率,并通過區塊鏈技術保障對患者醫療診斷數據使用的共享和可溯源性,在一定程度上遏制了一些醫療機構和醫療保險機構有意無意泄露患者醫療數據的情況。

參考文獻:

[1] 郭瑞,陳宇霜,鄭東.無線醫療傳感網絡中基于區塊鏈的高效無證書聚合簽名方案[J].信息網絡安全,2020,20(10):6-18.

[2] 魏濟澤,汪碩.一種基于區塊鏈技術的醫療數據存儲方案[J].網絡安全技術與應用,2021(7):79-81.

[3] 孫賽.區塊鏈電子病歷系統中共識機制的研究與實現[D].西安:西安電子科技大學,2019.

[4] 周藝華,呂竹青,楊宇光,等.基于區塊鏈技術的數據存證管理系統[J].信息網絡安全,2019(8):8-14.

[5] 印一聰.一種基于區塊鏈的云存儲數據完整性增強機制[J].現代計算機,2021(18):176-180.

[6] 張劍,夏啟,趙雅萍.基于區塊鏈技術的電子病歷數據存儲系統研究[J].中國醫療設備,2021,36(7):106-109.

[7] 殷明.基于標識的密碼算法SM9研究綜述[J].信息技術與信息化,2020(5):88-93.

[8] 常源恒,丁有偉,胡孔法.一種基于區塊鏈的中醫電子病歷共享方法[J].軟件導刊,2021,20(11):163-167.

[9] 賴建昌,黃欣沂,何德彪,等.國密SM9數字簽名和密鑰封裝算法的安全性分析[J].中國科學:信息科學,2021,51(11):1900-1913.

【通聯編輯:代影】

猜你喜歡
智慧醫療云存儲區塊鏈
試析互聯網+醫療在醫院中的應用
基于云存儲的氣象數字化圖像檔案存儲研究
區塊鏈技術的應用價值分析
云存儲技術的起源與發展
“區塊鏈”的茍且、詩和遠方
基于云存儲的數據庫密文檢索研究
基于區塊鏈技術的數字貨幣與傳統貨幣辨析
淺析龍巖煙草業務數據與監控數據中的云存儲與大數據
物聯網技術及在智慧城市建設中的應用
用“區塊鏈”助推中企走出去
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合