2. 深圳技术大学 大数据与互联网学院, 广东 深圳 518118;
3. 西北师范大学 数学与统计学院, 兰州 730070
2. College of Big Data and Internet, Shenzhen Technology University, Shenzhen, Guangdong 518118, China;
3. College of Mathematics and Statistics, Northwest Normal University, Lanzhou 730070, China
病历是医务人员对病人患病经过和治疗情况所作的文字记录,是医生诊断和治疗疾病的依据。随着医院现代化建设的发展和计算机信息技术的普及,电子病历(Electronic Medical Record,EMR)逐步取代纸质病历,在病人信息的收集、储存、分析、传递和利用中得到广泛应用,解决了纸质病历易丢失、易损坏等问题。对于疾病的研究[1],医生或医疗机构需对大量相同或类似的EMR进行系统分析对比以找出准确的病因和更好的医疗办法[2-4]。随着大量EMR的生成,不仅占用医院本地服务器资源,而且难以进行数据共享和计算[5-7],因此越来越多的医院选择存储空间大、计算效率高和响应速度快的云服务器进行存储[8-10]。但是,如果云服务器受到攻击或缺乏监控,数据可能会被窃取、泄露或篡改,而且云服务器可能存在未经授权访问等安全问题,所以云服务器不能被用户完全信任,而去中心化分布式存储的区块链技术[11-13]为EMR提供了安全不可修改的记录,然而很多EMR文件数据由于具有高度保密性和敏感性,因此不能直接存储在区块链中,以太坊[14]是一个具备图灵完备性的开源区块链平台,为实现EMR在区块链上的存储提供了技术支持[15]。
在文件上传存储前必须将数据文件进行加密,以保证数据的安全性和隐私性,但在搜索大量数据时,数据使用者需要将全部数据文件下载并解密,然后进行数据搜索,因此该方法的搜索效率极低。文献[16]提出在密文上实现关键字搜索的可搜索加密(Searchable Encryption,SE)方案,该方案的搜索效率较高并保证了服务器执行搜索操作时的隐私性和保密性,但在存放加密数据时对不同文档通常使用不同的密钥,用户持有的密钥会随文档数量的增多而增加,因此用户必须生成大量的陷门进行搜索,导致工作效率低下。文献[17]提出一种可搜索的聚合密钥加密方案,解决了用户持有大量不同密钥时的复杂困难搜索问题,但在用户得到数据后一般需要在相关文档集上进行验证,当用户完成对大量文档集的搜索后也会拥有大量的可验证令牌,因此文献[18]提出一种可验证的可搜索聚合密钥加密方案,该方案实现了对通过密钥聚合得到数据的简单快速验证。本文提出一种面向区块链电子病历的基于密钥聚合的密文检索方案。该方案利用密钥聚合技术,当数据用户请求多个文件数据时,仅需生成一个聚合陷门即可进行数据检索,同时通过智能合约技术确保用户进行数据验证,从而得到正确完整的文件。
1 基础知识 1.1 双线性映射和困难性假设定义1 令
1)双线性:对任意的
2)非退化性:存在
3)可计算性:对任意的
定义2 基于l阶的双线性Diffie-Hellman指数假设(l-BDHE)问题给定包含(
定义3 设
$ H\left(\boldsymbol{v}\right)\stackrel{\mathrm{d}\mathrm{e}\mathrm{f}}{̿}\prod\limits_{j=1}^{d}{g}_{j}^{{v}_{j}} $ |
向量哈希函数满足以下性质:
1)同态性:对任意2个向量
2)免碰撞性:不存在一个多项式时间的攻击者伪造一个向量
定理1 同态向量哈希函数在离散对数问题是困难问题假设下是安全的[19]。
1.3 密钥聚合的密文检索方案为防止数据在上传过程中的信息泄露,通常采用加密云存储[20],具体方法为:在数据上传至云端前数据拥有者将所有文件加密,加密数据只能被解密密钥拥有者进行搜索和解密。假如文件拥有者希望通过云服务器安全共享敏感文件,同时拥有者希望向部分用户授权,使得用户可以在拥有者提供的子集中搜索文件。针对该关键字搜索问题,文献[21-22]提出可搜索加密技术,保证了服务器执行搜索时的隐私性和保密性。
如图 1所示,在传统密文检索方案中,Alice对其不同的文档集
![]() |
Download:
|
图 1 传统密文检索方案 Fig. 1 Traditional ciphertext retrieval scheme |
![]() |
Download:
|
图 2 密钥聚合的密文检索方案 Fig. 2 Ciphertext retrieval scheme of key aggregation |
智能合约由密码学家尼克·萨博于1995年提出[23],是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务。智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术,区块链技术的出现解决了该问题。区块链系统中的每个节点用户可以通过发布一笔交易创建智能合约[24],并利用编程方式将智能合约设置为自己的所有权转移规则、交易方式和状态转换函数。本文利用以太坊区块链中的智能合约技术,并使用
算法形式化定义如下:
1)系统建立
2)密钥生成
3)数据加密
4)聚合密钥提取
5)陷门生成
6)搜索验证
7)数据验证
本文电子病历系统模型如图 3所示,该系统主要包括患者、数据拥有者、数据用户、医疗云服务器和联盟链5个实体:
![]() |
Download:
|
图 3 电子病历系统模型 Fig. 3 System model of electronic medical record |
1)患者:患者在医院就医时需要用个人身份证/医保卡进行医院注册,当患者在医院注册后,医生会根据对患者的诊断创建其个人的电子病历,本文中当患者在医院就医并创建了电子病历,即默认患者将个人的电子病历授权给了医院和医生。
2)数据拥有者:数据拥有者指的是医院和医生。医生在得到患者的授权后负责生成电子病历,在电子病历中提取并生成一系列关键字,将电子病历和关键字进行加密并计算加密文件的哈希值,并将加密文件和加密的关键字共同上传至医疗云服务器,然后将医疗云服务器返回的文件地址和密文的哈希值构建为新交易广播至联盟链。
3)数据用户:数据用户指的是医疗机构和政府等权威机构,且包括医院和医生在内的联盟链中的成员。数据用户向医院进行数据请求,当医院授权给医生后,医生生成相关文件的聚合密钥,数据用户将生成的聚合陷门发送给医疗云服务器得到数据文件,获取数据后计算密文的哈希值并发送给联盟链,同时通过智能合约验证数据是否完整正确。
4)医疗云服务器:医疗云服务器主要负责存储医生上传的加密文件和加密关键字,并将存储的数据文件地址返回给数据拥有者。当数据用户上传聚合陷门时,医疗云服务器会进行搜索验证,只有当结果为正确时才会将数据文件和文件地址一起返回给数据用户,否则检索失败。
5)联盟链:联盟链节点负责将医生上传的对应密文哈希值和文件地址构建的新交易进行验证并打包放入区块中,当用户发送密文哈希值和相应的文件地址时,联盟链通过已部署好的智能合约验证用户得到的数据正确性和完整性,当数据正确时触发智能合约返回正确验证结果,否则返回错误验证。
2.3 方案设计目标 2.3.1 功能性需求本文方案需满足以下3个功能性需求:
1)紧凑性,确保聚合密钥的大小独立于分享的文件数量。对于一组密钥
2)可搜索性,使用户提供的任何关键字在可搜索加密文档上生成所需的陷门,即在减少密钥数量的同时保留搜索功能。对于每一个包含关键字
3)安全授权,通过聚合密钥将关键字的搜索权委托给数据用户。为确保任何拥有委托聚合密钥的用户都可以执行关键字搜索,要求陷门生成算法的输入是不能公开的,即这些输入不应该依赖任何用户的私人信息。
2.3.2 安全性需求任何可搜索的聚合密钥加密方案应满足以下两个安全性需求:
1)聚合密钥安全性,攻击者无法搜索没有数据拥有者授权的任意关键字,即攻击者不能对已知聚合密钥但无关的文档进行关键字搜索,也不能根据已知密钥为其他文档集生成新的聚合加密密钥。
2)陷门和关键字安全性,攻击者无法从陷门中确定检索中使用的关键字,只能通过观察获得关键字信息,即用户可能会要求不受信任的云服务器搜索敏感词,但不会将该敏感词透露给云服务器。
3 基于密钥聚合的密文检索方案基于密钥聚合的密文检索流程具体如下:
1)系统建立:医疗云服务器输入安全参数
2)密钥生成:医生使用该算法生成密钥对,并随机选择
3)数据加密:医生使用该算法加密数据,将每个患者的电子病历
(1)对每一个文件随机选取
(2)对每一个关键字
(3)对每一个加密的密文文件
![]() |
Download:
|
图 4 联盟链区块数据结构 Fig. 4 Consortium chain block data structure |
4)聚合密钥提取:医生使用该算法生成一个可搜索聚合加密密钥
5)陷门生成:数据用户使用该算法生成可搜索的关键字陷门。当数据用户得到聚合密钥
6)搜索验证:云服务器使用该算法执行关键字搜索。根据该算法输入陷门
$ {C}_{\mathrm{w}}=\frac{\prod\limits_{i=1}^{n}e{\left(g, {{g}_{i}}^{{w}_{i}}\right)}^{t}}{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{g}_{i}\right)}^{t}}=\frac{e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{g}_{i}\right)}^{t}} $ |
$ \begin{array}{l}\frac{e\left(\mathrm{T}\mathrm{r}, {c}_{1}\right)}{e\left({P}_{S}, \prod\limits_{i=1}^{n}{c}_{2}\right)}=\frac{e\left({k}_{\mathrm{a}\mathrm{g}\mathrm{g}}, {g}^{t}\right)\cdot e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{\left(v\cdot {g}_{i}\right)}^{t}\right)}=\\ \frac{e\left(\prod\limits_{j\in S}{g}_{n+1-j}^{\gamma }, {g}^{t}\right)\cdot e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e\left(\prod\limits_{j\in S}{g}_{n+1-j}, {\left(\prod\limits_{i=1}^{n}{g}_{i}\cdot {g}^{\gamma }\right)}^{t}\right)}=\\ \frac{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, {g}^{\gamma }\right)}^{t}\cdot e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, {g}^{\gamma }\right)}^{t}\cdot e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{g}_{i}\right)}^{t}}=\\ \frac{e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{g}_{i}\right)}^{t}}={C}_{\mathrm{w}}\end{array} $ |
7)数据验证:将服务器部署的智能合约相关变量和函数接口采用
算法1 验证阶段的智能合约算法
输入
输出
1.
2.
3.
4.if H(
5.
6.
7.
8.
为满足本文方案的安全需求,假设医疗云服务器仅根据本文方案提供合法的服务,授权用户可以尝试访问权限范围内或权限范围外的数据。此外,涉及医疗云服务器的通信通道被认为是不安全的。基于以上考虑,本节将在聚合密钥以及陷门和关键字安全性方面进行具体分析。
4.1 聚合密钥安全性分析本文要求任何拥有聚合密钥的用户都可以对集合
$ \begin{array}{l}\frac{e\left(\mathrm{T}\mathrm{r}, {c}_{1}\right)}{e\left({P}_{S}, \prod\limits_{i=1}^{n}{c}_{2}\right)}\mathrm{ }=\frac{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, {g}^{\gamma }\right)}^{t}\cdot e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, {g}^{\gamma }\right)}^{t}\cdot e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{g}_{i}\right)}^{t}}\mathrm{ }=\\ \frac{e\left(\prod\limits_{i=1}^{n}{g}_{i}^{{w}_{i}}, {g}^{t}\right)}{e{\left(\prod\limits_{j\in S}{g}_{n+1-j}, \prod\limits_{i=1}^{n}{g}_{i}\right)}^{t}}\mathrm{ }={C}_{\mathrm{w}}\end{array} $ |
由此可知,拥有聚合密钥的数据用户可以成功地执行关键字检索。攻击者无法对任何不在聚合密钥范围内的文档执行关键字检索,即使服务器与恶意授权用户串通,也无法对任何不在聚合密钥范围内的文档执行关键字检索。攻击者
攻击者无法通过已知的聚合密钥为任何新文档集合生成新的聚合密钥。假设一个拥有文档集合
假设攻击者
假设攻击者
假设云服务器和攻击者
1)从已知的
2)已知
将本文方案与文献[17-18, 23]方案在区块链应用、安全搜索、密钥聚合和可验证性方面进行对比,如表 1所示,其中,“√”表示具备该功能特性,“×”表示不具备该功能特性,文献[17-18, 23]方案的应用环境均为云服务器,而本文方案是云服务器和区块链的结合。可以看出,文献[17, 23]方案不具备可验证功能,而本文方案通过应用区块链智能合约技术可验证医疗云服务器是否恶意修改信息或丢失数据,保证了用户获取文件的正确性和完整性,相比其他方案在区块链应用、安全搜索、密钥聚合和可验证性方面更具优势。
![]() |
下载CSV 表 1 4种方案的功能特性对比 Table 1 Comparison of functional characteristics of four schemes |
表 2为本文方案与文献[17-18]方案的运算时间对比结果,其中,
![]() |
下载CSV 表 2 3种方案的运算时间对比 Table 2 Comparison of computing time of three schemes |
为更准确地评估密文检索方案的实际性能,本文基于2.60 GHz CPU、8 GB内存的联想笔记本和Linux虚拟机,并在真实数据集和由C语言编写的PBC库上进行模拟实验。在实验中,将最大文件值
![]() |
Download:
|
图 5 数据加密阶段的时间开销 Fig. 5 Time cost of data encryption phase |
![]() |
Download:
|
图 6 数据搜索阶段的时间开销 Fig. 6 Time cost of data search phase |
本文提出一种面向区块链电子病历的基于密钥聚合的密文检索方案。该方案基于云服务器和联盟链进行构建,将医院医生和医疗机构、政府等权威机构在内的联盟成员分别定义为数据拥有者和数据用户,使数据加密上传至医疗云服务器,并将数据密文哈希值打包至联盟链,同时使用密钥聚合技术对多个文件生成一个聚合陷门进行安全检索,并利用联盟链的智能合约技术实现数据验证,防止医疗云服务器的恶意攻击行为。通过理论分析与数值模拟实验验证了该方案的安全性与高效性。
[1] |
PATIL H K, SESHADRI R. Big data security and privacy issues in healthcare[C]//Proceedings of International Congress on Big Data. Washington D.C., USA: IEEE Press, 2014: 762-765.
|
[2] |
CHEN L X, LEE W, CHANG C, et al. Blockchain based searchable encryption for electronic health record sharing[J]. Future Generation Computer Systems, 2019, 95: 420-429. DOI:10.1016/j.future.2019.01.018 |
[3] |
WANG Hao, SONG Yujiao. Secure cloud-based EHR system using attribute-based cryptosystem and blockchain[J]. Journal of Medical Systems, 2018, 42(8): 1-9. |
[4] |
WANG Yong, ZHANG Aiqing, ZHANG Peiyun, et al. Cloud-assisted EHR sharing with security and privacy preservation via consortium blockchain[J]. IEEE Access, 2019, 7: 136704-136719. DOI:10.1109/ACCESS.2019.2943153 |
[5] |
LIU J H, HUANG X Y, LIU J K. Secure sharing of personal health records in cloud computing: ciphertext-policy attribute-based signcryption[J]. Future Generation Computer Systems, 2015, 52: 67-76. DOI:10.1016/j.future.2014.10.014 |
[6] |
LIU Xuejiao, XIA Yingjie, YANG Wei, et al. Secure and efficient querying over personal health records in cloud computing[J]. Neurocomputing, 2018, 274: 99-105. DOI:10.1016/j.neucom.2016.06.100 |
[7] |
LIU Xuhui, LIU Qin, PENG Tao, et al. Dynamic access policy in cloud-based Personal Health Record(PHR) systems[J]. Information Sciences, 2017, 379: 62-81. DOI:10.1016/j.ins.2016.06.035 |
[8] |
LIU Zheli, WENG Jian, LI Juan, et al. Cloud-based electronic health record system supporting fuzzy keyword search[J]. Soft Computing, 2016, 20(8): 3243-3255. DOI:10.1007/s00500-015-1699-0 |
[9] |
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): 1-11. |
[10] |
MAN H A, 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: 46-62. DOI:10.1016/j.jcss.2017.03.002 |
[11] |
YUAN Yong, NI Xiaochun, ZENG Shuai, et al. Blockchain consensus algorithms: the state of the art and future trends[J]. Acta Automatica Sinica, 2018, 44(11): 2011-2022. (in Chinese) 袁勇, 倪晓春, 曾帅, 等. 区块链共识算法的发展现状与展望[J]. 自动化学报, 2018, 44(11): 2011-2022. |
[12] |
HAN Xuan, YUAN Yong, WANG Feiyue. Security problems on blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2019, 45(1): 206-225. (in Chinese) 韩璇, 袁勇, 王飞跃. 区块链安全问题: 研究现状与展望[J]. 自动化学报, 2019, 45(1): 206-225. |
[13] |
CHEN Liyan, RUI Tingxian, LÜ Guangjin. Privacy protection scheme of personal credit based on smart contract in blockchain[J]. Computer Engineering, 2020, 46(7): 30-35. (in Chinese) 陈丽燕, 芮廷先, 吕光金. 基于区块链智能合约的个人征信隐私保护方案[J]. 计算机工程, 2020, 46(7): 30-35. |
[14] |
BUTERIN V. A next-generation smart contract and decentralized application platform[EB/OL]. [2020-08-19]. https://github.com/ethereum/wiki/wiki/White-Paper.
|
[15] |
CAO Ning, WANG Cong, LI Ming, et al. Privacy-preserving multi-keyword ranked search over encrypted cloud data[J]. IEEE Transactions on Parallel & Distributed Systems, 2014, 25(1): 222-233. |
[16] |
DAWN X, DAVID W, ADRIAN P, et al. Practical techniques for searches on encrypted data[C]//Proceedings of IEEE Symposium on Security and Privacy. Washington D.C., USA: IEEE Press, 2000: 44-55.
|
[17] |
CUI Baojiang, LIU Zheli, WANG Lingyu, et al. Key-Aggregate Searchable Encryption(KASE) for group data sharing via cloud storage[J]. IEEE Transactions on Computers, 2016, 65(8): 2374-2385. DOI:10.1109/TC.2015.2389959 |
[18] |
LIU Zheli, LI Tong, LI Ping, et al. Verifiable searchable encryption with aggregate keys for data sharing system[J]. Future Generation Computer Systems, 2018, 78: 778-788. DOI:10.1016/j.future.2017.02.024 |
[19] |
BONEH D, GENTRY C, LYNN B, et al. Aggregate and verifiably encrypted signatures from bilinear maps[C]//Proceedings of the 22nd International Conference on Theory and Applications of Cryptographic Techniques. New York, USA: ACM Press, 2003: 416-432.
|
[20] |
CURTMOLA R, GARAY J A, KAMARA S, et al. Searchable symmetric encryption: improved definitions and efficient constructions[J]. Journal of Computer Security, 2011, 19(5): 895-934. DOI:10.3233/JCS-2011-0426 |
[21] |
BELLARE M, BOLDYREVA A, ONEILL A, et al. Deterministic and efficiently searchable encryption[C]//Proceedings of International Cryptology Conference. Berlin, Germany: Springer, 2007: 535-552.
|
[22] |
KAMARA S, PAPAMANTHOU C, ROEDER T.Dynamic searchable symmetric encryption[EB/OL].[2020-08-19].https://eprint.iacr.org/2012/530.pdf.
|
[23] |
CHU C K, CHOW S S, TZENG W, et al. Key-aggregate cryptosystem for scalable data sharing in cloud storage[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(2): 468-477. DOI:10.1109/TPDS.2013.112 |
[24] |
ZHANG Liang, LIU Baixiang, ZHANG Ruyi, et al. Overview of blockchain technology[J]. Computer Engineering, 2019, 45(5): 1-12. (in Chinese) 张亮, 刘百祥, 张如意, 等. 区块链技术综述[J]. 计算机工程, 2019, 45(5): 1-12. |