2. 西北师范大学 数学与统计学院, 兰州 730070
2. College of Mathematics and Statistics, Northwest Normal University, Lanzhou 730070, China
开放科学(资源服务)标志码(OSID):
电子病历(Electronic Medical Record,EMR)是保存在计算机中的患者医疗记录,其有助于医生对患者进行正确诊断并制定合理的治疗方案[1]。电子病历信息不是静态孤立的,而是动态和相互关联的。相较传统的纸质病历,电子病历具有更强的动态性与关联性,新补充信息会与原有全部信息建立必要的联系,电子病历结构也不断保持更新。近年来,随着云计算技术不断发展,电子病历得到更广泛的应用并趋于完善,越来越多的医疗机构与患者使用电子病历,并将数据上传到云端保存以方便使用。基于云的存储系统比传统存储系统具有更多优势,可使患者更快捷地存储和维护数据,享受云计算带来的高品质数据存储服务。值得注意的是,由于云服务器可能被恶意破坏,云计算会造成患者隐私信息泄露等问题。
为确保患者隐私信息的安全性和保密性,电子病历在上传云端之前应进行加密。面对数量庞大的电子病历,如何准确搜索加密数据成为难题。有研究人员提出下载所有加密数据,在解密密文后再进行检索。该方法计算开销较大且需要大存储量设备,对于大型数据库而言,其计算效率较低。近年来兴起一种新型可搜索加密技术,其在完成密文检索的同时可有效保证数据的隐私性。文献[2]提出一种代理重加密方案对外包数据进行访问控制,实现了云端密文数据共享。当数据拥有者Alice与Bob进行数据共享时,Alice用自身解密密钥和Bob的加密密钥生成重加密密钥并发送给云服务器,云服务器用重加密密钥对密文进行重加密并保存在云端,此时Bob可下载密文,并用自身私钥进行解密得到原始明文,从而实现数据共享[3]。
为满足数据用户访问患者电子病历的需求,本文提出一种基于代理重加密的电子病历数据共享方案。利用可搜索加密技术进行关键字搜索,通过代理重加密技术实现数据用户对患者电子病历的数据共享,并分别从关键字隐私和消息隐私两方面证明数据用户使用数据的安全性。
1 相关工作为实现对密文的直接搜索,文献[4]提出基于流密码的对称搜索加密方案。但基于对称密钥的可搜索加密方案的密钥分发困难,从而造成其应用场景受限。为解决该问题,文献[5]提出一种带关键字的公钥可搜索加密方案,并证明其在随机预言机模型下具有安全性,但其密钥传输需要安全通道。文献[6]提出不需要安全通道的SCF-PEKS模型,解决了文献[5]中因使用安全通道造成原始可搜索加密方案效率低下的问题。文献[7]提出基于模糊关键字搜索的公钥加密概念。服务器对所有密文进行模糊关键字搜索后,返回结果给接收方,接收方对结果执行更精确的关键字搜索。可搜索加密通过给定关键字提供查询加密数据的能力,将其应用于电子病历中可保护患者的身份信息、通信信息和既往病史等隐私信息。文献[8]提出一种高效、安全的细粒度访问控制方案,可授权用户访问云存储系统中的电子病历。文献[9]设计了一种云计算中基于属性的可搜索加密电子病历系统,使多用户环境下密钥管理难度降低,并实现了数据拥有者对电子病历的细粒度访问控制。文献[10]提出用于移动医疗系统的无证书可搜索公钥加密方案,采用无证书公钥密码体制解决了密钥托管问题。用户可将关键字及明文进行加密,并将密文上传到云服务器。文献[11]提出一种基于层次比较的加密方案,在基于云的电子病历系统中利用代理重加密技术实现了动态访问控制,并设计出动态策略更新方案。用户在检索数据时首先提交关键字限门,云服务器在搜索关键字后返回密文给用户。然而由于只有患者知道密文解密密钥,因此在患者将电子病历用自身公钥加密并将密文上传到云服务器,同时授权数据用户查看电子病历时,数据用户不知患者的私钥,此时共享数据成为难题[12]。
为解决上述问题,文献[13]提出密码学原语带关键字搜索的代理重加密(Proxy Re-Encryption with Keyword Search,PRES)的概念,并设计了双向PRES方案,在随机预言机模型中验证其具有安全性。文献[14]提出指定检验者的具有关键字搜索性质的代理重加密的概念和安全模型,在标准模型下验证其具有安全性。文献[15]提出一种带关键字搜索的限制性代理重加密的模型,在改进双线性Diffie-Hellman(modified Bilinear Diffie-Hellman,mBDH)假设和随机预言机模型的q决策双线性Diffie-Hellman逆转(q-Decisional Bilinear Diffie-Hellman Inversion,q-DBDHI)假设下证明其具有安全性。
针对目前只有医生和患者中的一方才能对加密的电子病历进行解密的现状,本文以安全存储、共享电子病历数据为目标,利用可搜索加密和代理重加密技术提出一种基于代理重加密的电子病历数据共享方案。医生将患者的电子病历加密后上传到云服务器,患者利用可搜索加密技术对电子病历进行搜索与解密。云服务器对上传的电子病历密文进行代理重加密后,经患者授权的数据用户也可解密电子病历。
2 理论基础 2.1 双线性对令
1)双线性:对于任意
2)非退化性:存在
3)可计算性:对任意
本文提出相关困难性假设如下:
1)mBDH问题[16]:对于任意
2)mBDH假设[16]:任何概率多项式时间(PPT)算法均不能以不可忽视的优势解决mBDH问题。
3)q-DBDHI问题[17]:对于任意
4)q-DBDHI假设[17]:任何PPT算法均不能以不可忽视的优势解决q-DBDHI问题。
3 系统模型本文提出的电子病历系统模型结构如图 1所示,指定电子病历为
		  						 
		  					 | 
		  						
                                 Download: 
                                
							 | 
							
| 图 1 电子病历系统模型结构 Fig. 1 Structure of electronic medical record system model | |
5个实体具体说明如下:
1)患者。患者前往医院就诊时,医院为其生成诊号
2)医生。医生为患者提供医疗服务。在患者诊断结束后,医生将诊断结果记录在电子病历
3)数据用户。本文数据用户指需要使用某患者电子病历的用户。例如,当患者病情复杂时,需要来自不同医院的多位专家(数据用户)进行会诊,此时只需上传患者的私钥,云服务器使用生成的代理重加密密钥
4)医院系统。医院系统负责为患者生成诊号
5)云服务器。云服务器具有电子病历存储与搜索功能。云服务器先存储由医院系统所发送患者诊号的哈希值
带关键字搜索的代理重加密方案由以下9个概率多项式算法组成:
1)公共参数生成算法
2)密钥生成算法
3)加密算法
4)陷门生成算法
5)测试算法
6)患者解密算法
7)重加密密钥生成算法
8)重加密算法
9)数据用户解密算法
本文中安全性包括关键字隐私和消息隐私。
本文采用文献[18]中的假设来定义关键字隐私,即静态损坏。在该安全定义中,敌手必须在计算开始前确定损坏的云服务器,不允许出现自适应选择损坏服务器和未损坏服务器。
游戏1(关键字隐私) 在本文安全定义下,敌手可获得除了两个指定关键字相关的陷门之外所有陷门,但其不能判断哪个关键字对应于给定的密文,从而保证只有拥有陷门的人才能进行测试。在后续选择关键字明文攻击下的不可区分性(Indistinguishability under Chosen-Plaintext Attack for Keyword,IND-CPA-K)游戏(游戏1)中,若无多项式有界敌手A对挑战者具有不可忽略的优势,则称本文方案具有关键字隐私。
1)询问阶段1。敌手A进行如下询问:
(1)未损坏密钥询问
(2)损坏密钥询问
(3)陷门生成询问
(4)重加密密钥询问
2)挑战。阶段1完成后,敌手向挑战者发送来自关键字空间相同长度的
3)询问阶段2。该过程与询问阶段1相同,但不能询问挑战密文,具体如下:
(1)未损坏密钥询问
(2)损坏密钥询问
(3)陷门生成询问
4)猜测。最终敌手A输出猜测
本文定义游戏的优势为:
| $ \mathrm{A}\mathrm{d}{\mathrm{v}}_{\mathrm{A}, w}\left(k\right)=\left|\mathrm{P}\mathrm{r}\left({b}^{\mathrm{'}}=b\right)-1/2\right| $ | (1) | 
对于任何多项式时间敌手A,如果
游戏2(消息隐私) 在本文安全定义下,敌手可以获得所有陷门,但其不能判断哪个消息对应于给定的密文,从而保证只有拥有私钥的人才能对消息进行解密。在后续选择消息明文攻击下的不可区分性(Indistinguishability under Chosen-Plaintext Attack for Message,IND-CPA-M)游戏(游戏2)中,若无多项式有界对手A对挑战者具有不可忽略的优势,则称本文方案具有消息隐私。
1)询问阶段1。该过程与关键字隐私的安全模型相同。
2)挑战。阶段1完成后,敌手向挑战者发送来自消息空间相同长度的
3)询问阶段2。该过程与询问阶段1相同,但是不能询问挑战密文。
(1)未损坏密钥询问
(2)损坏密钥询问
(3)陷门生成询问
(4)重加密密钥询问
4)猜测。最终敌手A输出猜测
本文定义游戏的优势为:
| $ \mathrm{A}\mathrm{d}{\mathrm{v}}_{\mathrm{A}, m}\left(k\right)=\left|\mathrm{P}\mathrm{r}\left({b}^{\mathrm{'}}=b\right)-1/2\right| $ | (2) | 
对于任何多项式时间敌手A,如果
本文定义患者为P,医生为D,数据用户为R。本文方案分为算法初始化、数据处理、数据搜索和数据共享4个阶段。为让除患者以外的数据用户共享电子病历数据,本方案在阶段4中分别给出患者解密电子病历和数据用户解密电子病历两种情况。
1)阶段1:算法初始化
在该阶段,系统运行参数生成算法生成公共参数
(1)
(2)
2)阶段2:数据加密
患者在就诊时向医生出示
为匹配到该患者在云服务器中的诊号,医生随机选择
证明1 上述正确性证明如下:
| $ \begin{array}{l}{H}_{1}\left({\beta }^{\mathrm{*}}\right)={H}_{1}\left({H}_{0}\right({\alpha }^{\mu }\cdot \mathrm{p}{\mathrm{k}}_{\mathrm{D}}^{-1})\oplus {\beta }^{'})=\\ {{ }^{{}^{}}}_{}\mathrm{ }\mathrm{ }{H}_{1}\left({H}_{0}\left({g}^{\frac{a+d}{{H}_{1}\left(\beta \right)}}\cdot {H}_{1}\left(\beta \right)\cdot {g}^{-d}\right)\oplus {\beta }^{'}\right)=\\ {{ }^{{}^{}}}_{}\mathrm{ }\mathrm{ }{H}_{1}\left({H}_{0}\right({g}^{a})\oplus {H}_{0}({g}^{a})\oplus \beta )={H}_{1}\left(\beta \right)=\mu \end{array} $ | (3) | 
3)阶段3:数据搜索
为搜索到加密后电子病历的密文,患者需采用陷门生成算法计算关键字
(1)
(2)
证明2 上述正确性证明如下:
| $ \begin{array}{l} {H}_{2}\left(e\left({C}_{2}\mathrm{ }, {T}_{{w}^{'}}\right)\right)={H}_{2}\left(e\left({g}^{p\cdot k}, {H}_{1}{\left({w}^{'}\right)}^{\frac{\beta }{p}}\right)\right)=\\ {H}_{2}\left(e{\left(g, {H}_{1}\left({w}^{'}\right)\right)}^{\frac{\beta }{p}\cdot p\cdot k}\right)= {H}_{2}\left(e{\left(g, {H}_{1}\left({w}^{'}\right)\right)}^{\beta \cdot k}\right)= \\ {H}_{2}\left(e{\left({H}_{1}\left({w}^{'}\right), g\right)}^{\beta \cdot k}\right)={H}_{2}\left({t}^{\beta }\right)\end{array} $ | (4) | 
若
4)阶段4:数据共享
患者在收到电子病历密文
证明3 上述正确性证明如下:
| $ \frac{{C}_{1}}{e{\left(g, {C}_{2}\right)}^{\frac{1}{p}}}=\frac{m\cdot e{\left(g, g\right)}^{k}}{e{\left(g, {g}^{p\cdot k}\right)}^{\frac{1}{p}}}=\frac{m\cdot e{\left(g, g\right)}^{k}}{e{\left(g, g\right)}^{k}}=m $ | (5) | 
数据用户若想获取某患者的电子病历,需请求患者和云服务器与其进行交互,生成代理重加密密钥
(1)
(2)
(3)
证明4 上述正确性证明如下:
| $ \frac{{C}_{1}^{\mathrm{'}}}{e(g, {C}_{2}^{\mathrm{'}}{)}^{\frac{1}{r\cdot {C}_{3}^{\mathrm{'}}}}}=\frac{m\cdot e{\left(g, g\right)}^{k}}{e{(g, g)}^{\frac{r\cdot k\cdot {H}_{3}\left({C}_{1}^{\mathrm{'}}\right)}{r\cdot {H}_{3}\left({C}_{1}^{\mathrm{'}}\right)}}}=\frac{m\cdot e{\left(g, g\right)}^{k}}{e{\left(g, g\right)}^{k}}=m $ | (6) | 
由于患者使用数据时与数据用户使用数据类似,因此本文仅证明数据用户使用数据时的安全性。
6.1 关键字隐私定理1 假设mBDH问题是困难的,那么本文方案为语义安全的,可抵抗随机预言机模型中关键字的选择明文攻击。
证明5   假设存在敌手A以优势
设
1)询问阶段1。敌手A进行如下询问:
(1)未损坏密钥询问
(2)损坏密钥询问
(3)陷门生成询问
(4)重加密密钥询问
2)挑战。当询问阶段结束时,A生成一对关键字
(1)若公钥
(2)B进行两次
(3)
(4)B回复A挑战密文
该挑战隐式定义
| $ \begin{array}{l}V={H}_{2}\left(e{\left({H}_{1}\left({w}_{b}\right), g\right)}^{\frac{\beta }{\gamma }}\right)={H}_{2}\left(e{\left({g}^{\alpha {a}_{b}}, g\right)}^{\frac{\beta }{\gamma }}\right)=\\ {H}_{2}\left(e\left({\left({g}^{\alpha {a}_{b}}\right)}^{\frac{1}{\gamma {x}_{i}}}, {g}^{\beta {x}_{i}}\right)\right)={H}_{2}\left(e{\left(g, g\right)}^{\frac{\beta \alpha {a}_{b}}{\gamma }}\right)\end{array} $ | (7) | 
根据该定义,
3)询问阶段2。该过程与询问阶段1相同,但是不能询问挑战密文。
(1)未损坏密钥询问
(2)损坏密钥询问
(3)陷门生成询问
(4)重加密密钥询问
4)猜测。A输出猜测
引理1 若无多项式时间算法在求解简化的q-DBDHI问题上具有不可忽略的优势,则简化的q-DBDHI问题是难以解决的。
定理2 假设q-DBDHI问题是困难的,则本文方案是语义安全的,可抵抗随机预言机模型中关键字的选择明文攻击。
这部分证明的部分过程与定理1中相同,以下只进行简单证明,并说明q-DBDHI假设是如何应用于本文方案。
证明6   对于
| $ \left\{\begin{array}{l}{C}_{1}^{\mathrm{'}}=m\cdot {Z}^{k}\\ {C}_{2}^{\mathrm{'}}={g}^{d\cdot k\cdot {H}_{3}\left({C}_{1}^{\mathrm{'}}\right)}\\ {C}_{3}^{\mathrm{'}}={H}_{3}\left({C}_{1}^{\mathrm{'}}\right)\end{array}\right. $ | (8) | 
若
本节讨论本文方案在加密阶段、搜索阶段和解密阶段的运算时间,并比较已有的可搜索加密方案与本文方案在运算时间上的优劣。在Linux操作系统下利用双线性包实现算法,使用C语言进行编程,在PC机(惠普电脑,3.1 GHz CPU,4GB RAM)的虚拟机中运行。
7.1 理论分析以下从理论角度分析本文方案与文献[12]方案、文献[20]方案在运算时间上的优劣。表 1为上述方案中基本运算执行时间的符号和时长。由于计算开销中指数运算、配对运算和哈希运算时间较长,因此只考虑这3方面的运算时间。
 
               | 
            下载CSV 表 1 基本运算的执行时间 Table 1 Execution time of basic operations | 
利用表 1中数据得出加密阶段、搜索阶段和解密阶段的运算时间,结果如表 2所示。由表 2可以看出:在加密阶段,各方案运算时间由大到小依次为文献[12]方案、本文方案和文献[20]方案;在搜索阶段,各方案运算时间由大到小依次为文献[12]方案、文献[20]方案和本文方案;在解密阶段,各方案运算时间由大到小依次为文献[12]方案、文献[20]方案和本文方案。
 
               | 
            下载CSV 表 2 3种方案不同阶段的运算时间 Table 2 Operation time of different stages of three schemes | 
本节数值实验通过改变关键字个数,对比本文方案与文献[20]方案在加密阶段和搜索阶段的算法的时间开销。关键字个数分别取10、20、30、40、50、60、70、80、90和100,取算法运行50次所得结果的平均值作为最终实验结果。
本文方案和文献[20]方案在加密阶段的时间开销如图 2所示。可以看出,两种方案在加密阶段的时间均随关键字个数的增加而增长,但本文方案的时间增幅较缓,即关键字个数越多,本文方案在加密阶段的运算时间较文献[20]方案的优势更明显。例如:当关键字个数为10时,两种方案在加密阶段的时间差距可忽略不计;当关键字个数为100时,文献[20]方案在加密阶段的运算时间高于本文方案600 ms。因此,对于云服务器中大批量数据而言,本文方案更能满足实际需求。
		  						 
		  					 | 
		  						
                                 Download: 
                                
							 | 
							
| 图 2 2种方案加密阶段的时间开销 Fig. 2 Time cost of encryption phase of two schemes | |
本文方案和文献[20]方案在搜索阶段的时间开销如图 3所示。可以看出,两种方案在搜索阶段的时间开销随关键字数量的增加呈线性增长,但本文方案的时间开销增幅较缓,其在实际应用中云服务器的响应时间更短,用户搜索更迅速。
		  						 
		  					 | 
		  						
                                 Download: 
                                
							 | 
							
| 图 3 2种方案搜索阶段的时间开销 Fig. 3 Time cost of search phase of two schemes | |
本文提出一种基于代理重加密的电子病历数据共享方案。在保证隐私安全的基础上,患者获取以其私钥解密的加密电子病历,数据用户经患者授权能查阅其电子病历。基于随机预言机模型的实验结果表明,该方案有效实现了关键字隐私安全和消息隐私安全,可满足实际应用需求。由于本文方案仅支持单关键字搜索,搜索效率较低,后续将拓展为支持连接关键字搜索,以提高关键字搜索效率。
| [1] | 
    AU M H, YUEN T H, LIU J K, et al. A general framework for secure sharing of personal health records in cloud system[J].  Journal of Computer and System Sciences, 2017, 90(12): 46-62.          | 
| [2] | 
    BLAZE M, BLEUMER G, STRAUSS M. Divertible protocols and atomic proxy cryptography[C]//Proceedings of 1998 International Conference on the Theory and Applications of Cryptographic Techniques. Berlin, Germany: Springer, 1998: 127-144.                  
  | 
| [3] | 
    ZENG P, CHOO K K R. A new kind of conditional proxy re-encryption for secure cloud storage[J]. IEEE Access, 2018, 6: 70017-70024. DOI:10.1109/ACCESS.2018.2879479          | 
| [4] | 
    SONG D X, WAGNER D, PERRIG A. Practical techniques for searches on encrypted data[C]//Proceedings of 2000 IEEE Symposium on Security and Privacy. Washington D.C., USA: IEEE Press, 2000: 44-55.                  
  | 
| [5] | 
    BONEH D, CRESCENZO D G, OSTROVSKY R, et al. Public key encryption with keyword search[C]//Proceedings of 2004 International Conference on the Theory and Applications of Cryptographic Techniques. Berlin, Germany: Springer, 2004: 506-522.                  
  | 
| [6] | 
    BAEK J, SAFAVI-NAINI R, SUSILO W. Public key encryption with keyword search revisited[C]//Proceedings of 2008 International Conference on Computational Science and Its Applications. Berlin, Germany: Springer, 2008: 1249-1259.                  
  | 
| [7] | 
    XU Peng, JIN Hai, WU Qianlong, et al. Public-key encryption with fuzzy keyword search: a provably secure scheme under keyword guessing attack[J].  IEEE Transactions on Computers, 2012, 62(11): 2266-2277.          | 
| [8] | 
    LIU Xuejiao, XIA Yingjie, YANG Wei, et al. Secure and efficient querying over personal health records in cloud computing[J]. Neurocomputing, 2018, 274(1): 99-105.          | 
| [9] | 
    LI Xiaorong, SONG Ziye, REN Jingyi, et al. Attribute-based searchable encryption of electronic medical records in cloud computing[J]. Computer Science, 2017, 44(Z11): 342-347. (in Chinese) 李晓蓉, 宋子夜, 任婧怡, 等. 云计算中基于属性的可搜索加密电子病历系统[J]. 计算机科学, 2017, 44(Z11): 342-347.  | 
| [10] | 
    MA M, HE D, KHAN M K, et al. Certificateless searchable public key encryption scheme for mobile healthcare system[J].  Computers and Electrical Engineering, 2018, 65(1): 413-424.          | 
| [11] | 
    LIU Xuhui, LIU Qin, PENG Tao, et al. Dynamic access policy in cloud-based personal health record systems[J].  Information Sciences, 2017, 379(2): 62-81.          | 
| [12] | 
    WANG Xiao, ZHANG Aiqing, XIE Xiaojuan, et al. Secure-aware and privacy-preserving electronic health record searching in cloud environment[J].  International Journal of Communication Systems, 2019, 32(8): 31-37.          | 
| [13] | 
    SHAO Jun, CAO Zhenfu, LIANG Xiaohui, et al. Proxy re-encryption with keyword search[J]. Information Sciences, 2010, 180(13): 2576-2587. DOI:10.1016/j.ins.2010.03.026          | 
| [14] | 
    GUO Lifeng, LU Bo. Efficient proxy re-encryption with keyword search scheme[J]. Journal of Computer Research and Development, 2014, 51(6): 1221-1228. (in Chinese) 郭丽峰, 卢波. 有效的带关键字搜索的代理重加密方案[J]. 计算机研究与发展, 2014, 51(6): 1221-1228.  | 
| [15] | 
    CHEN Zhenhua, LI Shundong, GUO Yinmin, et al. A limited proxy re-encryption with keyword search for data access control in cloud computing[C]//Proceedings of 2015 International Conference on Network and System Security. Berlin, Germany: Springer, 2015: 82-95.                  
  | 
| [16] | 
    SAHAI A, WATERS B. Fuzzy identity-based encryption[C]//Proceedings of 2005 Annual International Conference on the Theory and Applications of Cryptographic Techniques. Berlin, Germany: Springer, 2005: 457-473.                  
  | 
| [17] | 
    DODIS Y, YAMPOLSKIY A. A verifiable random function with short proofs and keys[C]//Proceedings of 2005 International Workshop on Public Key Cryptography. Berlin, Germany: Springer, 2005: 416-431.                  
  | 
| [18] | 
    CANETTI R, HOHENBERGER S. Chosen-ciphertext secure proxy re-encryption[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security. New York, USA: ACM Press, 2007: 185-194.                  
  | 
| [19] | 
    ZHANG Aiqing, LIN Xiaodong. Towards secure and privacy-preserving data sharing in e-health systems via consortium blockchain[J]. Journal of Medical Systems, 2018, 42(8): 140-143. DOI:10.1007/s10916-018-0995-5          | 
| [20] | 
    WU Yilun, LU Xicheng, SU Jinshu, et al. An efficient searchable encryption against keyword guessing attacks for sharable electronic medical records in cloud-based system[J]. Journal of medical systems, 2016, 40(12): 1-9. DOI:10.1007/s10916-016-0609-z          | 
 2021, Vol. 47
 