English Version
网络空间安全 | 更新时间:2024-04-03
    • 支持受控共享的医疗数据隐私保护方案

    • Medicaldata privacy protection scheme supporting controlled sharing

    • 郭庆

      12 ,  

      田有亮

      123 ,  
    • 西安电子科技大学学报   2024年51卷第1期 页码:165-176
    • DOI:10.19665/j.issn1001-2400.20230104    

      中图分类号: TP309
    • 收稿日期:2022-10-27

      网络出版日期:2023-09-05

      纸质出版日期:2024-01-20

    移动端阅览

  • 引用本文

    阅读全文PDF

  • 郭庆, 田有亮. 支持受控共享的医疗数据隐私保护方案[J]. 西安电子科技大学学报, 2024,51(1):165-176. DOI: 10.19665/j.issn1001-2400.20230104.

    Qing GUO, Youliang TIAN. Medicaldata privacy protection scheme supporting controlled sharing[J]. Journal of xidian university, 2024, 51(1): 165-176. DOI: 10.19665/j.issn1001-2400.20230104.

  •  
  •  
    论文导航

    摘要

    患者医疗健康数据信息的合理利用促进了医学研究机构的发展。针对目前患者与医疗研究机构间共享医疗数据隐私易泄露,以及患者对医疗数据的使用情况不可控的问题,提出一种支持受控共享的医疗数据隐私保护方案。首先,将区块链与代理服务器结合设计医疗数据受控共享模型,区块链矿工节点分布式构造代理重加密密钥,使用代理服务器存储和转换医疗数据密文,利用代理重加密技术在保护患者隐私的同时实现医疗数据安全共享。其次,设计用户权限动态调整机制,由患者与区块链授权管理节点交互通过授权列表来更新医疗数据访问权限,实现患者对医疗数据的可控共享。最后,安全性分析表明,所提方案可以在医疗数据隐私保护的同时,实现医疗数据动态共享,并且可以抵抗共谋攻击。性能分析表明,该方案在通信开销、计算开销方面具有优势,适用于患者或医院与研究机构间的数据受控共享。

    Abstract

    The rational use of patient medical and health data information has promoted the development of medical research institutions.Aiming at the current difficulties in sharing medical data between patients and medical research institutions,data privacy is easy to leak,and the use of medical data is uncontrollable,a medical data privacy protection scheme supporting controlled sharing is proposed.Firstly,the blockchain and proxy server are combined to design a medical data controlled sharing model that the blockchain miner nodes are distributed to construct proxy re-encryption keys,and the proxy server is used to store and convert medical data ciphertext,and proxy re-encryption technology is used to bring about the secure sharing of medical data while protecting the privacy of patients.Secondly,a dynamic adjustment mechanism of user permissions is designed that the patient and the blockchain authorization management nodes update the access permissions of medical data through the authorization list to realize the controllable sharing of medical data by patients.Finally,the security analysis shows that the proposed scheme can bring about the dynamic sharing of medical data while protecting the privacy of medical data,and can also resist collusion attacks.Performance analysis shows that this scheme has advantages in communication overhead and computing overhead,and is suitable for controlled data sharing between patients or hospitals and research institutions.

    关键词

    区块链; 医疗数据; 受控共享; 代理重加密; 隐私保护

    Keywords

    blockchain; medical data; controlled sharing; proxy re-encryption; privacy protection

    1 引言

    数字化在医疗卫生领域中迅速发展遍及,大量的有关患者的医疗健康数据随之产生。这些信息及数据的合理利用对医学研究机构的发展十分重要。然而目前医疗信息在共享过程中存在很多问题,医疗数据在传输的过程中容易被篡改或丢失,难以互相分享,“数据孤岛”的现象十分明显[

    1]。此外,医疗数据大多由医院掌握,数据很可能在不知情的情况下被传输利用[2],引发安全风险与医患矛盾[3]

    云计算可以对海量数据进行分析处理,为实现医疗数据安全共享,YANG等[

    4]提出云上健康数据分享方案,患者授予部分访问权限给数据用户使其在指定的时间内搜索数据。然而,半诚实的云服务器在执行用户命令的同时仍会对用户的敏感信息好奇,传统的集中式医疗数据存储方案[5-6]有数据隐私泄露风险,已经无法满足数据可用性和可扩展性的要求。区块链可以在不可信的多个参与方中构造出可信的数据共享环境[7],使其得到了广泛的应用[8],可为医疗数据安全共享提供平台支撑[9-10]。区块链可分为公有链、联盟链、私有链,笔者提出的医疗数据隐私保护受控共享方案适用于联盟链。联盟链是部分去中心化的许可链,通常由多个机构共同参与,节点的加入需要其他联盟成员的同意,区块链上的交易信息可以只对联盟成员可见,也可以是公开的。

    IVAN等[

    11]分析了利用区块链来存储患者医疗数据以及保护数据隐私的可行性,然而在进行医疗数据共享时忽略了身份管理和用户认证的问题。ZHANG等[12]提出了基于区块链的隐私保护个人健康信息共享方案,构造私有链和联盟链分别存储患者个人健康信息和安全索引。SHEN等[13]提出了一种医疗数据共享框架MedChain,该框架使用区块链和摘要链以及结构化P2P网络技术来保证医疗物联网数据流的完整性,利用智能合约管理数据访问权限,实现医疗数据安全高效共享。DAGHER等[14]提出一种使用区块链技术实现医疗健康记录访问控制和互操作性的隐私保护框架Ancile,利用以太坊智能合约来实现访问控制和医疗数据隐私保护。ZHENG等[15]结合区块链技术和机器学习,以云存储为辅提出医疗数据共享方案;该方案可以轻松实现各机构之间的医疗数据共享,但是无法验证云端医疗数据的完整性,数据使用者无法确定自己是否收到了正确的医疗数据。WU等[16]针对各个医疗研究机构之间共享医疗信息困难问题,引入星际文件系统(IPFS)构建基于区块链的电子病历安全共享模型,利用数据脱敏技术实现了医疗数据的隐私保护,但是却牺牲掉了一些数据的准确性。HUANG等[17]结合区块链智能合约提出了医疗数据隐私保护安全共享方案,通过代理重加密技术来保证医疗数据安全共享,利用零知识证明实现了患者与研究机构间共享医疗数据的可用性和一致性。WANG等[18]提出了一种基于许可链的医疗数据共享平台,使用同态加密确保用户对自己的医疗数据拥有完全的自主权,利用智能合约技术让用户设置不同的医疗数据访问权限,在保护用户隐私的同时实现医疗数据共享。CHEN等[19]提出了一种基于区块链技术的医疗信息系统模型,利用基于物联网(IoT)的数据采集系统,实现患者医疗记录的实时采集,同时通过设计一种基于云服务器和代理重加密的匿名医疗数据共享方案,提高了医疗隐私数据共享的安全性。以上方案主要通过零知识证明、同态加密、代理重加密等密码学技术来实现医疗数据共享的隐私保护,对医疗数据授权变更的问题并未考虑,在进行医疗数据共享时局限于预先设定的数据用户,可用性较低,无法满足医疗数据共享的实际需要,医疗数据安全高效共享成为亟待解决的问题。

    鉴于上述分析,笔者结合区块链技术和代理云服务器,提出一种基于区块链的数据隐私保护受控共享方案,通过代理重加密技术来完成医疗数据隐私保护,患者可以自主定义授权列表实现医疗数据受控共享。笔者的主要贡献如下:

    (1) 设计医疗数据受控共享模型。由区块链矿工节点分布式构造出代理重加密密钥,利用代理服务器存储和转换医疗数据密文,通过代理重加密技术实现数据安全共享,同时减轻了区块链的存储和计算压力,使方案更具有可扩展性。

    (2) 提出用户权限动态调整机制。患者构造授权参数并与区块链上授权管理节点交互通过授权列表来更新医疗数据的访问权限,实现医疗数据动态共享,并且授权变更时,无需对数据进行重复加密,进一步提高医疗数据可用性。

    (3) 对方案的安全性与性能进行分析,结果表明,笔者提出的方案能够在保护患者隐私的同时实现医疗数据动态共享,可抵抗共谋攻击,并且在通信开销、计算开销方面具有优势,更好地适用于患者或医院与研究机构间的医疗数据安全共享。

    2 预备知识

    2.1 双线性映射

    定义1 令群G1G2为两个阶为素数p的乘法循环群,定义一个双线性映射e:G1×G1G2满足以下性质:

    (1) 双线性性:对于任意的两个随机数a,b Zp*,g,hG1存在e(ga,hb)=e(g,h)ab;

    (2) 非退化性:存在g,hG1,使得e(g,h)≠1;

    (3) 可计算性:对于任意的两个点g,hG1,e(g,h)是容易计算的。

    2.2 判定性双线性Diffie-Hellman问题

    定义2 令判定性双线性Diffie-Hellman(Decisional Bilinear Diffie-Hellman,DBDH)问题:定义5元组(g,ga,gb,gc,e(g,g)abc),敌手A计算z=abc mod p,当且仅当|Pr[A(g,ga,gb,gc,e(g,g)abc)=0]|-|Pr[A(g,ga,gb,gc,e(g,g)z)=0]|ε,A具有优势ε解决DBDH问题。

    DBDH假设:没有多项式时间的敌手A,至少能以优势ε解决DBDH问题。

    2.3 代理重加密

    代理重加密(Proxy Re-Encryption,PRE)在公钥加密的基础上支持解密权限的转移,由BLAZE等[

    20]在1998年的欧洲密码学年会上首次提出。用户对数据进行初始加密,代理者基于初始密文针对不同共享用户生成重加密密文,在共享数据时不用对数据进行重复加密[21]。该算法的具体定义如下:

    Setup(κ)→(pp):输入安全参数κ,输出系统公开参数pp

    KeyGen(pp)→(skA,pkA):输入系统公开参数pp,输出用户公私钥对(skA,pkA)。

    Enc(m,pkA)→CA:输入待加密的数据明文m,数据拥有者公钥pkA,输出数据密文CA

    RekeyGen(pkA,skA,pkB)→rkAB:输入数据拥有者公钥pkA,私钥skA,数据使用者公钥pkB,输出重加密密钥rkAB

    ReEnc(CA,rkAB)→CB:输入密文CA,重加密密钥rkAB,生成重加密密文CB

    Dec(skB,CB)→m:输入数据使用者私钥skB,密文CB,得到数据明文m

    3 系统设计

    3.1 系统模型

    笔者所提方案的系统模型如图1所示,包含有7个参与实体:患者、医院、研究机构、代理服务器、密钥生成中心(KGC)、区块链系统矿工节点、区块链授权管理节点,其功能说明如下。

    fig

    图1  系统模型

    icon 下载:  | 高精图 |

    (1) 患者:医疗数据的实际数据拥有者,自主决定各个医疗研究机构对其数据的访问权限,可有条件地共享医疗数据。对医疗数据进行初始加密生成初始医疗数据密文,并把医疗数据初始密文上传到半诚实的代理服务器;规定数据访问权限,构造授权列表发送给区块链系统授权管理节点;构造代理重加密密钥参数和医疗数据哈希值,并将其广播到区块链网络。

    (2) 医院:患者医疗数据的管理者,不完全受信任,可在患者的授权委托下作为数据拥有者来执行医疗数据共享任务。

    (3) 研究机构:需要患者医疗数据进行研究的数据使用者,从代理服务器上获取医疗数据重加密密文,可用其私钥和区块链系统授权管理节点发送的解密参数对重加密密文进行解密,获取医疗数据明文;从区块链上获取医疗数据哈希值,进行医疗数据的完整性验证。

    (4) 半诚实代理服务器:存储和转换医疗数据初始密文。存储由数据拥有者进行初始加密的医疗数据密文;对于合法研究机构的数据请求,从区块链上获取代理重加密密钥,对初始密文进行代理重加密后,把医疗数据重加密密文发送给研究机构。

    (5) 密钥生成中心:在系统建立阶段进行系统参数初始化,生成用户的公私钥对,完成密钥分发。

    (6) 区块链矿工节点:对于合法用户,利用患者上传的重加密密钥参数以及授权管理节点发送的授权参数生成代理重加密密钥,发送给半诚实代理服务器;把一段时间内的交易信息广播,各个节点进行验证,验证通过后加入区块链账本。

    (7) 授权管理节点:根据患者或医院给定的授权列表验证研究机构的医疗数据访问权限,对于合法医疗数据访问请求,把授权参数发送给矿工节点来构造针对合法研究机构的代理重加密密钥,同时发送解密参数给研究机构,完成医疗数据共享;通过与患者或医院交互,更新授权列表。该节点是可信的参与实体,可利用区块链共识算法进行选取。

    3.2 安全模型

    笔者所提方案的安全模型由以下游戏定义。该游戏在随机预言机模型下进行,敌手A与挑战者C之间的交互过程如下:

    初始化阶段:挑战者C选择安全参数,生成系统公开参数pp发送给敌手A

    查询阶段一:敌手A做出如下询问:

    A询问KeyGen,ReKeyPara,ReKeyGen,ReEncrypt,Decrypt。用KeyGen生成的密钥查询ReKeyPara,ReKeyGen,ReEncrypt,Decrypt。

    挑战阶段:A提交消息(m0,m1)∈MC,以及解密参数 Sj*,重加密参数β*,公钥pk*,且pk*由KeyGen产生,私钥未被泄露。当A以(β*,β', Sj*)查询ReKeyGen时,β'对应的私钥不能泄露。C选取b∈{0,1},运行初始密文生成算法来生成挑战密文Cb=Encrypt(mb,pk*),发送给A

    查询阶段二:与阶段一相同,并且有下述条件。

    (1) 当A以(β*,β', Sj*)对ReKeyGen查询时,β'的私钥不能泄露;

    (2) 当A以(Cb,β*,β', Sj*)对ReEncrypt查询时,pk'的不能泄露;

    (3) 当A以(β*,β', Sj*)对ReKeyGen查询时,则不能利用C'b查询Decrypt,C'b是由运行ReEncrypt(Cb,β*,β', Sj*)生成的。

    猜测阶段:敌手A输出b'∈{0,1},若b'=b,则敌手赢得该游戏。

    若敌手A赢得上述挑战的优势定义为ε= Pr[b'=b]-12,且对于任意的概率多项式时间敌手赢得以上安全游戏的优势是可忽略的,则文中方案在选择密文攻击下是安全的。

    4 医疗数据受控共享方案

    4.1 方案概述

    笔者所提方案的流程图如图2所示。

    fig

    图2  方案流程图

    icon 下载:  | 高精图 |

    方案设计了4个阶段:系统建立阶段、数据存储阶段、医疗数据共享阶段以及用户授权更新阶段。

    (1) 系统建立阶段:初始化系统参数,输入系统安全参数λ,输出系统公开参数pp,得到用户公私钥对(sk,pk)。

    (2) 数据存储阶段:患者Pi或医院Hn加密医疗数据产生初始医疗数据密文 CPi,并发送给代理服务器。构造代理重加密密钥参数β以及医疗数据哈希值H(m),并将其广播到区块链网络,同时划分医疗数据访问权限生成授权参数Sj,把包含了授权参数Sj的授权列表L发送给区块链系统的授权管理节点。

    (3) 医疗数据共享阶段:研究机构Rj向区块链发送医疗数据访问请求,授权管理节点通过列表L验证研究机构Rj的访问权限,对于合法的研究机构,授权管理节点发送授权参数Sj给区块链矿工节点,矿工节点利用重加密密钥参数β和授权参数Sj构造代理重加密密钥r kPiRj,发送给代理服务器。代理服务器使用代理重加密密钥r kPiRj和初始密文 CPi计算出医疗数据重加密密文,并把重加密医疗数据密文C'  Pi发送给合法医疗研究机构Rj。研究机构Rj可用其私钥s kRj和授权管理节点发送的解密参数Sj对医疗数据密文进行解密,获取医疗数据明文m,同时可从区块链上获取医疗数据哈希值,进行数据完整性验证。若为非法数据用户,则拒绝用户请求。

    (4) 用户授权更新阶段:患者或医院与区块链系统授权管理节点交互,更新授权列表L,实现医疗数据访问权限的更新,实现研究机构的撤销或者是重加入。

    4.2 方案构造

    笔者所提出的方案包含4个阶段:系统建立、数据存储、医疗数据共享、用户授权更新阶段。

    阶段1 系统建立。

    包括系统初始化生成公开参数以及密钥生成2个步骤。

    (1) 系统初始化:Setup(λ)→pp

    密钥生成中心执行该算法初始化系统。选择安全参数λ,输入系统安全参数λ后,输出系统公开参数。随机选取阶为p的乘法循环群G1G2,生成元gG1,双线性对e:G1×G1G2,定义哈希函数组H1,H2,H3,H4,其中:H1:{0,1}*G1,H2:{0,1}* Ζp*,H3:G2→{0,1}l,H4:{0,1}*G1。公布系统公开参数pp={p,G1,G2,g,H1,H2,H3,H4}。

    (2) 密钥生成:KeyGen(pp)→(s kPi,p kPi)。

    KGC执行该算法为用户生成相关的公私钥对。患者Pi向KGC提交其身份标识符i dpi,KGC为患者Pi生成公私钥对。输入系统公开参数pp,选择随机数 xpi Zq*,私钥s kpi= xpi,公钥p kpi= gxpi。医院Hn和研究机构Rj同样可通过向KGC提交其身份标识符i dHn、i dRj获取公私钥对。

    阶段2 数据存储。

    包含患者Pi对医疗数据初始加密、构造代理重加密密钥参数以及针对合法研究机构的授权列表L={S1,S2,…,Sj}。患者在医院治疗后产生医疗数据m,为实现医疗数据安全共享,可用其公钥p kpi对医疗数据进行初始加密,得到初始医疗数据密文 CPi,发送给代理服务器。可使用安全哈希函数SM3生成医疗数据哈希值H(m),构造针对合法研究机构Rj的代理重加密密钥参数β和授权参数Sj,并把授权参数Sj添加到授权列表L中发送给授权管理节点,同时把重加密密钥参数β和医疗数据的哈希值H(m)写入交易,广播到区块链网络中,由矿工节点验证后加入区块链账本。经过患者授权委托的医院可作为医疗数据的拥有者来执行上述工作以完成医疗数据安全共享。具体算法如下:

    (1) 初始加密:Encrypt(m,p kpi)→ CPi

    患者Pi使用公钥p kpi加密医疗数据m,得到医疗数据初始密文,随机选取kG2;加密运算如下:

    $C_{1}=g^{r}, \quad r=H_{2}(m \| k),$ (1)
    $C_{2}=k e\left(p k_{p_{i}}, H_{1}\left(p k_{p_{i}}\right)\right)^{r} \quad,$ (2)
    $C_{3}=m \oplus H_{3}(k),$ (3)
    $C_{4}=H_{1}\left(p k_{p_{i}}\right) \quad,$ (4)
    $C_{5}=H_{4}\left(C_{1}\left\|C_{2}\right\| C_{3} \| C_{4}\right)^{r},$ (5)
    $C_{p_{i}}=\left(C_{1}, C_{2}, C_{3}, C_{4}, C_{5}\right)。$ (6)

    (2) 代理重加密密钥参数生成:RekeyPara(p kPi,p kRj,s kPi,r)→β

    患者执行该算法构造针对合法研究机构Rj的代理重加密密钥参数:β= pkRj,H1(pkPi)skPi,r

    阶段3 医疗数据共享。

    包含矿工节点生成代理重加密密钥r kPiRj,代理服务器对初始医疗数据密文进行重加密生成重加密密文,以及合法研究机构对重加密密文的解密。区块链系统授权管理节点验证研究机构的数据访问权限,对于合法数据请求,发送授权参数Sj给矿工节点,区块链矿工节点用患者或者医院上传的代理重加密密钥参数β和授权参数Sj生成代理重加密密钥r kPiRj,发送给代理服务器。服务器用重加密密钥r kPiRj对初始医疗数据密文 CPi进行重加密后,把重加密密文C'  Pi发送给合法研究机构。研究机构可用其私钥s kRj和授权管理节点发送的解密参数Sj对重加密密文进行解密以获取医疗数据明文m。由于区块链公开透明、防篡改、可追溯的性质,研究机构可从区块链上获取医疗数据哈希值H(m),确保医疗数据的完整性。同时记录了患者Pi与研究机构Rj间医疗数据共享信息的交易由矿工节点验证通过后加入区块链账本,存储在区块链上可作为公证。具体算法如下:

    (1) 代理重加密密钥:RekeyGen(Sj,β)→r kPiRj

    区块链上矿工节点执行该算法构造代理重加密密钥:

    $r k_{P_{i} \rightarrow R_{j}}=\left(p k_{R_{j}}, p k_{R_{j}}^{r}, H_{1}\left(p k_{R_{j}} \| S_{j}\right) \cdot H_{1}\left(p k_{P_{i}}\right)^{k_{P_{i}}}, g^{-r}\right)。$

    (2) 重加密:ReEncrypt(CP,r kPiRj)→C'  Pi

    代理服务器执行该算法对初始医疗数据密文进行重加密,生成重加密密文,重加密运算如下:

    C'1=C1, (7)
    $C_{2}^{\prime}=k e\left(p k_{R_{j}}^{r}, H_{1}\left(p k_{R_{j}} \| S_{j}\right)\right),$ (8)
    C'3=C3, (9)
    $C_{4}^{\prime}=H_{1}\left(p k_{R_{j}}\right),$ (10)
    $C_{5}^{\prime}=H_{4}\left(C_{1}^{\prime}\left\|C_{2}^{\prime}\right\| C_{3}^{\prime} \| C_{4}^{\prime}\right)^{r},$ (11)
    $C_{P_{i}}^{\prime}=\left(C_{1}^{\prime}, C_{2}^{\prime}, C_{3}^{\prime}, C_{4}^{\prime}, C_{5}^{\prime}\right)。$ (12)

    (3) 解密:Decrypt(s kRj,C'  Pi,Sj)→m

    研究机构使用其私钥s kRj和解密参数Sj对医疗数据重加密密文进行解密,解密运算如下:

    $k=\frac{C_{2}^{\prime}}{e\left(C_{1}^{\prime}, H_{1}\left(p k_{R_{j}} \| S_{j}\right)\right)^{s_{R_{j}}}},$ (13)
    $m=C_{3}^{\prime} \oplus H_{3}(k)。$ (14)

    计算r=H2(mk),若C'1=grC'2=ke(p kRjr,H1(p kRjSj)),输出明文m

    阶段4 用户授权更新。

    患者或医院与区块链上的授权管理节点交互,通过更新之前的授权列表L,来更新研究机构的医疗数据访问权限。代理重加密密钥参数β广播到了区块链上,矿工节点存储代理重加密密钥参数β,根据授权管理节点的验证结果决定是否构造代理重加密密钥r kPiRj发送给半诚实代理服务器,来实现医疗研究机构对数据的安全访问。患者或医院通过删除授权列表L中的授权参数来撤消研究机构对医疗数据的访问权限,通过在L中添加新的授权参数来授予医疗研究机构新的医疗数据访问权限。

    在笔者所提方案当中初始化2个医疗数据拥有者,即患者Pi和医院Hn,3个医疗研究机构,即研究机构Ra、研究机构Rb、研究机构Rc。定义一个医疗数据的隐私保护需求,如表1所示。医疗数据的访问权限应该由患者来进行划分规定,假设医疗数据可由患者自身将其定义为基础医疗数据和敏感医疗数据,医疗数据只有授权的研究机构可见。例如,患者Pi定义的基础医疗数据,有研究机构RaRc可见,只有研究机构Rb不可见。患者Pi定义的敏感医疗数据,只有研究机构Ra可见,研究机构RbRc都不能访问。患者或医院可以与授权管理节点交互来更新授权列表L,让医疗数据的访问权限进行动态更新,具体有如下情况:

    表1  医疗数据隐私保护需求表
    数据拥有者医疗数据类型研究机构
    研究机构Ra研究机构Rb研究机构Rc
    患者Pi 基础医疗数据 可见 不可见 可见
    敏感医疗数据 可见 不可见 不可见
    医院Hn 基础医疗数据 可见 可见 不可见
    敏感医疗数据 不可见 可见 不可见
    icon 下载:  CSV

    (1) 若患者Pi要授权共享敏感医疗数据给原本没有访问权限的研究机构Rc,则患者Pi与授权管理节点交互,在授权列表L中添加医疗研究机构Rc的授权参数Sc,同时构造对应的代理重加密密钥参数β广播到区块链网络,由区块链矿工节点生成代理重加密密钥r kPiRc发送给代理服务器,以计算医疗数据重加密密文。

    (2) 若患者Pi要授权共享医疗数据给新的研究机构Rd,则患者Pi与授权管理节点交互,在L中添加针对医疗研究机构Rd的授权参数Sd,同时将相应的代理重加密密钥参数β广播到区块链网络来生成r kPiRd发送给代理服务器。

    (3) 若医院Hn要撤销原来合法的医疗研究机构Rb的访问权限,则医院Hn与授权管理节点交互,在L中删除相应的授权列表参数Sb

    在授权更新阶段,患者或医院在对医疗数据进行初始加密后存储在代理服务器中,后续更新研究机构对数据的访问权限不用再对医疗数据进行重复加密,只需定义新的授权列表发送给授权管理节点,以及构造对应的代理重加密密钥参数广播到区块链网络,由区块链矿工节点生成代理重加密密钥后发送给代理服务器,服务器对医疗数据密文进行转换。

    5 方案分析

    5.1 安全性分析

    定理1 若DBDH假设成立,则不存在一个概率多项式时间敌手以不可忽略的优势赢得选择密文攻击安全挑战,因此笔者所提方案的代理重加密算法在随机预言机模型中是CCA安全的。

    证明 假设存在一个概率多项式时间(PPT)敌手A,以不可忽略的优势ε= Prb'=b-12攻破方案的安全性,那么在游戏中,敌手能够以不可忽略的优势打破DBDH假设。即证明敌手A是以可忽略的优势ε赢得挑战游戏。有挑战游戏gi(i=0,1,…,5),Ti表示在gib'=b的事件。敌手A和挑战者C之间进行游戏如下:

    (1) g0:C响应敌手A的随机查询,同时在表格 Hilist(i=1,2,3,4)中进行初始化,令δ0=Pr b'=b,有 δ0-12=ε

    (2) g1:Cg0一样进行该查询,并且C要随机选择τ 1,2,,p+1,对H1完成τ次查询,在C接到AH1的查询时就中止,C能够有至少 1p+1的概率成功,g1δ1=Pr b'=b,则Pr T1= δ1p+1

    (3) g2:Cg1一样的步骤执行游戏,由于哈希函数是标准的随机过程,则可以将 PrT1-PrT2忽略。

    (4) g3:Cg2一样的执行游戏过程,仅在运行Decrypt时产生区别,如果以(C,β*, Sj*)来进行计算,A没有利用(β* Sj*)对H1进行查询,则游戏就会中止,否则C将进行计算并且把结果发送给A。在其中所使用的哈希函数是随机过程,则可以将 PrT2-PrT3忽略。

    (5) g4:CG3一样执行游戏过程,仅在运行ReKeyGen,ReEncrypt时不一样。

    运行ReKeyGen时,C使用A发送的(β,Sj)在重加密密钥列表中进行查询。若存在,C将发送r kPiRj给敌手A;若不存在,则C利用βSj在密钥列表中进行查询;若所提方案中的患者Pi的私钥泄露,则有s kPi= xPi,计算出代理重加密密钥r kPiRj=(p kRj,p kRjr,H1(p kRjSjH1(p kPi)skPi,g-r);若所提方案中的患者Pi的私钥没有泄露,则取αG1,令s kPi=α xPi,计算代理重加密密钥r kPiRj=(p kRj,p kRjr,H1(p kRjSjH1(p kPi)skPi,g-r);若所提方案中的医疗研究机构Rj的私钥泄露,则C中止。在运行ReEncrypt时,CA发送的(β,Sj,Ci)计算出ReEncrypt中所需的解密参数,若不存在,则C中止;否则查找密钥和重加密密钥列表,发送密文给A。若A没有在ReKeyGen中使用由KeyGen计算的pki,则C中止游戏。可以将 PrT3-PrT4忽略。

    (6) g5:C和G4一样执行游戏过程。在收到A发送的(m0,m1,Sj)后,挑战者C计算密文,选取kG2,计算$C_{1}=g^{r}, r=H_{2}(m \| k), C_{2}=k \cdot e\left(p k_{p_{i}}, H_{1}\left(p k_{p_{i}}\right)\right)^{r}, C_{3}=m \oplus H_{3}(k), C_{4}=H_{1}\left(p k_{p_{i}}\right), C_{5}=H_{4}\left(C_{1}\left\|C_{2}\right\| C_{3} \| C_{4}\right)^{r}, C_{p_{i}}=\left(C_{1}, C_{2}, C_{3}, C_{4}, C_{5}\right)。 g_{5}$和g4的不同之处,在于对H3是否进行了查询,对H3的查询基于DBDH问题,则可以将 PrT4-PrT5忽略。因此Pr T5= 12(p+1)。则有

    $\left|\operatorname{Pr}\left[T_{1}\right]-\operatorname{Pr}\left[T_{5}\right]\right|=\left|\frac{\delta_{0}}{p+1}-\frac{1}{2(p+1)}\right|=\left|\frac{\delta_{0}-\frac{1}{2}}{p+1}\right|=\frac{\varepsilon}{p+1}$

    可忽略,即敌手A是以可忽略的概率ε赢得游戏。证毕。

    定理2 笔者所提方案具有隐私保护性。

    证明 (1) 在进行医疗数据共享时,患者或医院与医疗研究机构通过在区块链上的地址共享医疗数据,在区块链上的用户具有匿名性,非法用户不能通过区块链交易获取到用户的真实身份,因此文中方案可以实现医疗数据共享时的身份匿名。

    (2) 患者或者医院构造代理重加密密钥参数β广播到区块链网络,矿工节点为了得到奖励,会利用代理重加密密钥参数β和授权参数Sj生成针对合法研究机构的代理重加密密钥r kPiRj。由于代理重加密算法满足CCA安全,即使重加密密钥r kPiRj被攻击者得到,任何的医疗数据信息也不会被泄露。

    (3) 医疗数据由患者或者医院经过初始加密后上传到代理服务器上,区块链矿工节点发送重加密密钥给代理服务器,让其计算出医疗数据重加密密文,并将其发送给合法医疗研究机构。在此过程中,由于笔者所提方案中代理重加密算法是CCA安全的,代理服务器或者攻击者将无法得到医疗数据明文,初始医疗数据密文 Cpi=(C1,C2,C3,C4,C5)只有患者或者医院可以用其私钥解密,重加密密文C'  Pi=(C'1,C'2,C'3,C'4,C'5)只有被患者授权的研究机构可以用授权管理节点发送的解密参数和其私钥进行解密。综上,笔者所提医疗数据受控共享方案具有隐私保护性。证毕。

    定理3 医疗数据具有动态共享性。

    证明 患者或医院在共享医疗数据时规定数据访问权限,同时把授权列表L= S1,S2,,Sj发送给授权管理节点,由该节点验证研究机构数据访问权限,满足访问权限的医疗研究机构可以从密文C'  Pi=(C'1,C'2,C'3,C'4,C'5)中共享到医疗数据。当研究机构Rj的医疗数据访问权限发生变化时,患者或者医院与可信的授权管理节点交互,更新授权列表为L'= S1,S2,,S' j,区块链上矿工节点根据授权管理节点的验证结果产生新的代理重加密密钥r kPiR' j。故旧医疗研究机构无法通过其私钥和Sj获取到有效医疗数据,而新的研究机构可以用其私钥和解密参数S'j对新的重加密医疗数据密文进行有效访问。故医疗数据具有动态共享性。证毕。

    定理4 笔者所提方案可以抵抗共谋攻击。

    证明 任意医疗研究机构之间的共谋只会得到其被授权访问的医疗数据,若合法的研究机构B与代理方(区块链矿工节点和半诚实代理服务器)共谋也只能获取研究机构B被授权访问的医疗数据。下面主要分析非法的研究机构与区块链矿工节点以及半诚实代理服务器之间的共谋。

    首先,文中方案由区块链上的矿工节点构造代理重加密密钥,非法研究机构要与区块链矿工节点共谋,必须发起51%攻击,代价非常大。其次,即使与区块链矿工节点以及代理服务器成功发生共谋,得到了代理重加密密钥r kPiRj=(p kRj,p kRjr,H1(p kRjSjH1(p kPi)skPi,g-r)和医疗数据初始密文 Cpi=(C1,C2,C3,C4,C5),能够对医疗数据密文进行转换,可以计算出医疗数据重加密密文$C_{P_{i}}^{\prime}=\left(C_{1}^{\prime}, C_{2}^{\prime}, C_{3}^{\prime}, C_{4}^{\prime}, C_{5}^{\prime}\right), C_{1}^{\prime}=C_{1}, C_{2}^{\prime}=k e\left(p k_{R_{j}}^{r}, H_{1}\left(p k_{R_{j}} \| S_{j}\right)\right), C_{3}^{\prime}=C_{3}, C_{4}^{\prime}=H_{1}\left(p k_{R_{j}}\right), C_{5}^{\prime}=H_{4}\left(C_{1}^{\prime}\left\|C_{2}^{\prime}\right\| C_{3}^{\prime} \| C_{4}^{\prime}\right)^{r},$但医疗数据始终以密态的形式进行传输;由于代理重加密算法满足CCA安全,医疗数据明文不会被泄露。证毕。

    5.2 方案对比

    文献[

    22]提出了一种基于联合关键字搜索和代理重加密的安全 EHR 搜索方案,实现了不同医疗机构之间的数据共享。文献[23]提出一种个人健康数据安全共享框架,结合区块链技术在健康信息共享后安全控制个人数据。文献[15]基于云存储、区块链技术和机器学习实现了各机构间的医疗数据共享。文献[17]利用零知识证明实现了患者与研究机构共享医疗数据的可用性和一致性,用代理重加密技术保证医疗数据安全共享。笔者结合区块链技术和代理重加密技术构造分布式医疗数据共享方案,利用代理服务器存储和转换医疗数据密文,由区块链矿工节点分工代理分布式构造出重加密密钥,在授权列表的更新下对医疗数据访问权限动态更新,实现医疗数据的受控共享。如表2所示,针对是否基于区块链技术、隐私保护、访问控制、数据防篡改、代理重加密、授权更新等方面,把笔者所提方案与现有的医疗数据共享方案进行对比分析。

    表2  方案功能对比
    方案区块链隐私保护访问控制数据防篡改代理重加密授权更新
    文献[22] × × ×
    文献[23] × × ×
    文献[15] × × ×
    文献[17] ×
    文中方案

    注:“√”表示“选择”;“×”表示“不选择”。

    icon 下载:  CSV

    6 性能分析

    6.1 通信开销

    分别定义G1中的元素长度为|G1|,G2中的元素长度为|G2|, Zp*中元素长度为| Zp*|,消息明文的二进制长度为l,通信开销主要在系统初始化、数据存储、数据访问这3个阶段中产生,如表3所示,对文中方案进行了通信开销分析。可以看出,文中方案在系统初始化阶段的通信成本远远低于文献[

    17]方案,在数据存储阶段的通信成本也低于文献[17]方案,在数据访问阶段的通信成本和文献[17]相差不大。

    表3  通信开销对比
    阶段文中方案文献[17]方案
    系统初始化 |G1|+| Zp*| 5|G1|+4| Zp*|
    数据存储 3|G1|+|G2|+l 2|G1|+2|G2|
    数据访问 3|G1|+|G2|+l |G1|+2|G2|
    icon 下载:  CSV

    6.2 计算复杂度

    文中定义符号TP表示双线性配对运算,TE表示指数运算,由于hash运算和异或运算的计算开销远比循环群上的双线性配对运算、指数运算小得多,所以忽略不计。在表4中,给出了文中方案与文献[

    17]方案的计算复杂度对比分析,文献[17]方案使用代理重加密来实现医疗数据安全共享,在智能合约中利用零知识证明来验证数据的一致性。从表4中可以看出,文中方案在初始加密阶段的计算开销远低于文献[17]方案,在重加密阶段和解密阶段的计算开销也低于文献[17]方案。构造重加密密钥的计算开销相差不大,但是在文献[17]方案中,由患者或医院来构造代理重加密密钥,加重了用户的计算量。在笔者所提方案中,患者或医院只需构造出代理重加密密钥参数发送到区块链网络,由区块链上的矿工节点来进行构造代理重加密密钥,可以减轻用户的计算量,同时可实现医疗数据访问权限的动态更新。

    表4  计算复杂度对比
    阶段文中方案文献[17]方案
    初始加密 TP+3TE 2TP+4TE
    重加密密钥构造 3TE 3TE
    重加密 TP+2TE TP+3TE
    解密 TP+TE TP+2TE
    icon 下载:  CSV

    6.3 实验分析

    笔者所提方案的实验在主机配置为3.20 GHz、 i7-8700 CPU、8 GB RAM,系统为Windows10下进行。利用编程语言Python 3.7.4进行实现。把文中方案与文献[

    17]方案在初始加密、重加密、解密阶段的计算效率进行分析比较,在不同的数据明文大小下进行对比,分别采用128 B、256 B、512 B、1 024 B,并取算法运行100次的平均值作为实验结果。

    图3-图5可以看出,笔者所提方案在初始加密阶段、重加密阶段、解密阶段的时间成本均低于文献[

    17]方案。例如随着数据的增大,笔者所提方案的加密时间代价约为300 ms~800 ms,文献[17]方案的加密时间代价约为500 ms~1 300 ms;笔者所提方案的解密时间代价约为200 ms~500 ms,文献[17]方案的解密时间代价约为300 ms~700 ms。从用户计算开销角度考虑,文献[17]方案中数据拥有者除了要对医疗数据进行初始加密,还需要构造代理重加密密钥,用户的计算量较大。文中方案数据拥有者在医疗数据初始加密阶段的计算开销较低,并且不用构造代理重加密密钥,只需构造代理重加密密钥参数,减轻了用户的计算成本。在对初始医疗数据密文进行重加密阶段,文中方案与文献[17]方案均使用了代理云服务器,但文中方案重加密阶段计算开销较低。此外,笔者所提方案与文献[17]方案相比,医疗研究机构在解密阶段的计算开销也较低,并且可以实现医疗数据访问权限的动态调整,更好地满足患者或医院与研究机构间进行医疗数据共享的实际需要。

    fig

    图3  加密阶段

    icon 下载:  | 高精图 |
    fig

    图4  重加密阶段

    icon 下载:  | 高精图 |
    fig

    图5  解密阶段

    icon 下载:  | 高精图 |

    在实验中利用4台主机采用Python编写PBFT共识算法模拟笔者所提方案中的数据共享操作,包含数据的上链、数据访问过程。在笔者所提方案中,患者或医院构造针对合法研究机构的代理重加密密钥参数广播到区块链上,由矿工节点分布式构造出代理重加密密钥,并发送给合法研究机构。因此构造代理重加密密钥参数、共识验证、写入本地区块3个步骤为数据上链过程。而数据访问过程有医疗数据访问权限验证、构造代理重加密密钥、共识验证3个步骤。从图6中可以看出,上述交易上链过程以及数据访问过程操作的执行时间代价随着数据大小的增加呈逐渐增长,并且当数据在1 024 B以内时,交易上链以及数据访问过程的执行时间代价维持在1 s以内。

    fig

    图6  交易数据共享执行时间代价

    icon 下载:  | 高精图 |

    7 结束语

    通过结合区块链和代理重加密技术,笔者提出了一种支持受控共享的医疗数据隐私保护方案。利用代理重加密技术对医疗数据进行初始加密后上传到代理服务器,代理服务器存储和转换医疗数据密文实现数据安全共享,同时减轻了区块链的存储和计算压力。区块链矿工节点分布式构造代理重加密密钥,患者确定医疗数据访问权限并与授权管理节点交互进行用户授权更新,实现医疗数据受控共享。最后,安全性和性能分析表明,笔者所提的方案可以在保护患者隐私的同时实现医疗数据动态共享,在功能性、通信开销和计算开销方面整体具有较大优势,提高了医疗数据可用性。

    参考文献

    [1]

    PANDEY P, LITORIYA R. Implementing Healthcare Services on A Large Scale:Challenges and Remedies Based on Blockchain Technology[J]. Health Policy and Technology, 2020, 9(1):69-78. [百度学术] 

    [2]

    应作斌, 斯元平, 马建峰, . 基于区块链的分布式 EHR 细粒度可追溯方案[J]. 通信学报, 2021, 42(5):205-215. [百度学术] 

    YING Zuobin, SI Yuanping, MA Jianfeng, et al. Blockchain-Based Distributed EHR Fine-Grained Traceability Scheme[J]. Journal on Communications, 2021, 42(5):205-215. [百度学术] 

    [3]

    JIANG J X, BAI G. Evaluation ofCauses of Protected Health Information Breaches[J]. JAMA Internal Medicine, 2019, 179(2):265-267. [百度学术] 

    [4]

    YANG Y, MA M D. ConjunctiveKeyword Search with Designated Tester and Timing Enabled Proxy Re-Encryption Function for E-Health Clouds[J]. IEEE Transactions on Information Forensics & Security, 2017, 11(4):746-759. [百度学术] 

    [5]

    RAO S Y. A Secure and Efficient Ciphertext-Policy Attribute-Based Signcryption for Personal Health Records Sharing in Cloud Computing[J]. Future Generations Computer Systems, 2017, 67:133-151. [百度学术] 

    [6]

    LIANG J W, QIN Z, XIAO S, et al. Privacy-Preserving Range Query over Multi-Source Electronic Health Records in Public Clouds[J]. Journal of Parallel and Distributed Computing, 2020, 135:127-139. [百度学术] 

    [7]

    曾辉祥, 习宁, 谢晴晴, . 抗属性篡改的去中心化密文数据安全共享[J]. 西安电子科技大学学报, 2022, 49(2):135-145. [百度学术] 

    ZENG Huixiang, XI Ning, XIE Qingqing, et al. Decentralized Ciphertext Sharing based on Blockchain[J]. Journal of Xidian University, 2022, 49(2):135-145. [百度学术] 

    [8]

    NAKAMOTO S. Bitcoin:A Peer-to-Peer Electronic Cash System(2008)[R/OL].[2022-06-26].http://bitcoin.org/bitcoin.pdf. http://bitcoin.org/bitcoin.pdf. [百度学术] 

    [9]

    WANG Z, TIAN Y L, ZHU J M. DataSharing and Tracing Scheme based on Blockchain[C]//2018 8th International Conference on Logistics,Informatics and Service Sciences. Piscataway:IEEE, 2018:1-6. [百度学术] 

    [10]

    李雪莲, 张夏川, 高军涛, . 支持属性和代理重加密的区块链数据共享方案[J]. 西安电子科技大学学报, 2022, 49(1):1-16. [百度学术] 

    LI Xuelian, ZHANG Xiachuan, GAO Juntao, et al. Blockchain Data Sharing Scheme Supporting Attribute and Proxy Re-Encryption[J]. Journal of Xidian University, 2022, 49(1):1-16. [百度学术] 

    [11]

    IVAN D. MovingToward a Blockchain-Based Method for the Secure Storage of Patient Records[C]//ONC/NIST Use of Blockchain for Healthcare and Research Workshop. Gaithersburg:ONC/NIST, 2016:1-11. [百度学术] 

    [12]

    ZHANG A Q, LIN X D. TowardsSecure and Privacy-Preserving Data Sharing in E-Health Systems via Consortium Blockchain[J]. Journal of Medical Systems, 2018, 42(8):1-18. [百度学术] 

    [13]

    SHEN B Q, GUO J Z, YANG Y L. MedChain:Efficient Healthcare Data Sharing via Blockchain[J]. Applied Sciences, 2019, 9(6):1207. [百度学术] 

    [14]

    DAGHER GG, MOHLER J, MILOJKOVIC M, et al. Ancile:Privacy-Preserving Framework for Access Control and Interoperability of Electronic Health Records Using Blockchain Technology[J]. Sustainable Cities and Society, 2018, 39:283-297. [百度学术] 

    [15]

    ZHENG X C, MUKKAMALA RR, VATRAPU R, et al. Blockchain-Based Personal Health Data Sharing System Using Cloud Storage[C]// 2018 IEEE 20th International Conference on e-Health Networking,Applications and Services(Healthcom). Piscataway:IEEE, 2018:1-6. [百度学术] 

    [16]

    WU S H, DU J. ElectronicMedical Record Security Sharing Model Based on Blockchain[C]// International Conference on Cryptography,Security and Privacy. New York: ACM, 2019:13-17. [百度学术] 

    [17]

    HUANG H P, ZHU P, XIAO F, et al. ABlockchain-Based Scheme for Privacy-Preserving and Secure Sharing of Medical Data[J]. Computers & Security, 2020, 99:102010. [百度学术] 

    [18]

    WANG R, TSAI W T, HE J, et al. A Medical Data Sharing Platform Based on Permissioned Blockchains[C]//Proceedings of the 2018 International Conference on Blockchain Technology and Application. New York: ACM, 2018:12-16. [百度学术] 

    [19]

    CHEN Z, XU W, WANG B, et al. ABlockchain-Based Preserving and Sharing System for Medical Data Privacy[J]. Future Generation Computer Systems, 2021, 124:338-350. [百度学术] 

    [20]

    BLAZE M, BLEUMER G, STRAUSS M. DivertibleProtocols and Atomic Proxy Cryptography[C]//Advances in Cryptology-EUROCRYPT '98,International Conference on the Theory and Application of Cryptographic Techniques. Heidelberg:Springer, 1998:127-144. [百度学术] 

    [21]

    SU M, ZHOU B, FU A M, et al. PRTA:AProxy Re-Encryption Based Trusted Authorization Scheme for Nodes on CloudIoT[J]. Information Sciences, 2020, 527:533-547. [百度学术] 

    [22]

    WANG X, ZHANG A Q, XIE X J, et al. Secure-Aware and Privacy-Preserving Electronic Health Record Searching in Cloud Environment[J]. International Journal of Communication Systems, 2019, 32(8):e3925.1-e3925.11. [百度学术] 

    [23]

    AMOFA S, SIFAH E B, AGYEKUM O, et al. ABlockchain-Based Architecture Framework for Secure Sharing of Personal Health Data[C]// 2018 IEEE 20th International Conference on e-Health Networking,Applications and Services(Healthcom). Piscataway: IEEE, 2018:1-6. [百度学术] 

    152

    浏览量

    79

    下载量

    0

    CSCD

    文章被引用时,请邮件提醒。
    提交
    工具集
    下载
    参考文献导出
    分享
    收藏
    添加至我的专辑

    相关文章

    支持属性和代理重加密的区块链数据共享方案
    区块链隐私保护和扩容关键技术研究
    结合区块链和车辆社交网络的车队成员推荐
    区块链技术在电子病历共享的应用研究
    支持动态反馈决策的拜占庭容错共识算法

    相关作者

    李雪莲
    张夏川
    高军涛
    向登梅
    王慧
    王励成
    柏雪
    刘清华

    相关机构

    西安电子科技大学 通信工程学院
    西安电子科技大学 数学与统计学院
    北京邮电大学 网络空间安全学院
    西安电子科技大学 计算机科学与技术学院
    福州大学 数学与计算机科学学院
    0