211171343_基于区块链的以患者为中心的医疗数据共享方法
第31卷第1期北京电子科技学院学报
2023年3月Vol.31No.1
Journal of Beijing Electronic Science and Technology Institute Mar.2023
基于区块链的以患者为中心的医疗数据共享方法
倪安发㊀王志强
北京电子科技学院,北京市㊀100070
摘㊀要:传统的医疗保健信息管理系统都是医疗数据的 孤岛 ,系统之间缺乏安全有效的医疗数据共享渠道,现有医疗数据共享方法由于缺乏患者的参与而导致患者的共享积极性低下㊂此外,传统的医疗保健信息管理系统采用中心化的存储方式,一旦遭遇网络攻击或自然灾害的影响,可能会导致单点故障问题产生,难以确保存储数据的完整性和可用性㊂基于以上问题,研究一种基于区块链的以患者为中心的医疗数据共享方法,通过以太坊智能合约设置医疗数据的访问控制策略,实现患者对其医疗数据的细粒度访问控制与数据授权追踪㊂实现医疗数据共享 患者参与管理 , 数据安全保密 , 共享高效稳定 三大特点㊂关键词:区块链;以太坊;智能合约;医疗数据共享;分布式存储中图分类号:TP309.2㊀㊀㊀文献标识码:A
文章编号:1672-464X (2023)1-74-82
∗㊀作者简介:倪安发(1999-),男,硕士研究生,研究方向:网络空间安全㊂E-mail:anfa_ni@foxmail
王志强(1985-),男,通信作者,博士,副教授,研究方向:网络空间安全㊂E-mail:wangzq@besti.edu
0㊀引言
㊀㊀随着信息技术在医疗领域的高速发展,医疗数据共享技术促进了各地医疗水平的提升,也给医护人员和患者带来了极大的便利㊂但目前传统的医疗数据共享方法仍存在着以下问题:(1)传统的医疗保健信息管理系统之间缺乏安全有效的医疗数据共享渠道[1],导致医疗保健信息管理系统相互之间成为医疗数据的 孤岛 ㊂此外,由于这些系统采用中心化的数据存储方法可能会因为不可抗力因素(如自然灾害㊁黑客攻击等)而使用户数据不可用,在数据遭到破坏和恶意篡改后一般难以恢复,系统无法有效应对单点故障问题㊂(2)医疗数据属于高度敏感数据,在传统医疗数据共享方法中由于缺乏患者的深度参与,导致患者无法得知其医疗数据被用于何处或是被何人所获取,致使患者的个人权益可能因
医疗数据流失而遭受损害,因此使患者的共享积极性低下㊁使医疗数据共享效率低下㊂随着区块链在分布式数据存储㊁点对点传输㊁共识机制等技术上的快速发展,区块链技术被应用于金融㊁医学㊁工业等各行各业的数据共享方案中㊂基于区块链的分布存储技术可以解决传统云存储系统中的单点故障问题,
与集中存储相比,具有价格低㊁高吞吐量等优点㊂使用以太坊智能合约可设置医疗数据访问控制策略并实现系统审计,使得患者可以实时追溯已共享的医疗数据去向㊂
基于上述问题,开展研究㊂本文的主要工作如下:
(1)利用区块链技术实现了医疗保健信息
管理系统的互通互达,建立了一个安全有效的医疗数据共享渠道㊂
(2)利用智能合约实现了以患者为中心的细粒度访问控制,让患者参与数据管理,增强患
第31卷基于区块链的以患者为中心的医疗数据共享方法㊀
者共享积极性㊂
(3)医疗数据共享过程中的采用国密SM系列算法体系对数据进行加解密,确保了密码技术自主可控,医疗数据安全保密㊂
1㊀研究的现状与趋势
㊀㊀当前的主流医疗保健信息管理系统(例如电子病历㊁基于计算机㊁基于客户端服务器㊁基于云)所面
临的主要问题之一是,医疗保健数据通常集中在某一地并使用中心化的数据存储方式,一旦存储数据的中心节点遭遇难以抵御的网络攻击就可能会造成大量的医疗隐私数据泄露[2]㊂
其次,医疗信息管理系统因为缺乏患者的参与而导致医疗保健数据的访问㊁共享和管理受到了限制,多数医疗保健信息管理系统仅仅允许患者读取并访问其医疗数据,而缺少进行数据共享的功能[3]㊂
在医疗数据共享方面,可以将目光放在患者对于数据的管理和授权上来提高患者共享积极性,访问控制技术可以让患者对于使用数据的实体进行管理,例如Li等人[4]提出了一种使用区块链和无认证密码学的物联网安全系统㊂Maesa 等人[5]实现了一个基于比特币平台的访问控制系统,该系统可以管理访问策略,并通过交易实现用户之间的权限转移㊂Gao等人[6]提出了一种基于区块链的可信安全密文策略和属性隐藏访问控制方案,即信任访问,在保证策略和属性隐私的情况下实现可信访问㊂
在区块链分布式存储技术上,Wang等人[7]提出了一个结合分散存储系统星际文件系统㊁以太坊区块链和ABE技术的框架,方案实现了对数据的细粒度访问控制㊂Kumar等人[8]提出了一个基于IPFS的区块链存储模型来解决块中的事务以及特定块的事务访问的存储问题,以节约区块链的空间消耗㊂
在区块链结合IPFS技术实现数据管理上,Li等人[9]结合以太坊区块链分布式和不可篡改的特点,集成了IPFS分布式存储技术,在新的技术环境下提出了一个数据共享平台,以确保数据安全㊁用户权利保护和高速数据处理,为当前的数据共享提供一个新的技术应用环境㊂候雨桐等人[10]提出了一种基于区块链
的数据安全共享与受控分发模型,可适用于大多数类型的数据共享与分发场景,同时最大程度保护数据安全性与隐私性㊂
2㊀系统模型
㊀㊀基于区块链的以患者为中心的医疗数据共享方法可以解决传统医疗信息保健系统中的单点故障问题,其分布式存储技术与中心式存储相比,具有价格低㊁高吞吐量等优点㊂针对于传统医疗数据共享方案中患者缺乏共享积极性的问题,本文利用区块链分布式存储技术和以太坊智能合约技术构建了一个可以使患者设置访问控制策略的医疗数据共享模型,并采用国密算法对医疗数据进行加解密,保障医疗数据的安全性以及隐私性㊂
2.1㊀系统模型设计
系统流程分为7个阶段,分别是系统初始化阶段㊁数据加密阶段㊁数据上传阶段㊁信息上链阶段㊁数据访问阶段㊁数据授权阶段㊁数据下载和解密阶段㊂这7个阶段利用IPFS㊁国密加密模块和智能合约三个模块建立起了医疗数据的共享渠道,并完成了以患者为中心的医疗数据访问控制功能㊂在本系统中不考虑以太坊区块链的矿工挖掘过程,IPFS的节点由各医疗机构组成㊂系统框架如图1所示,双向箭头表示智能合约已部署在以太坊区块链上㊂
数据数据交互实体分别有两个,分别是电子医疗记录拥有者Record owner(RO)和电子医疗记录使用者Record user(RU),RO是指拥有电子医疗记录的个人或机构组织实体,欲将其拥有的医疗数据共享给其他人㊂RU是拥有RO授权的
㊃57㊃
北京电子科技学院学报2023
图1㊀系统框架
实体,可以查看和下载RO所拥有的医疗数据㊂图1中各步骤的对应描述如下所示:
2.1.1㊀系统初始化阶段
①RO部署智能合约在以太坊区块链上㊂
②RO㊁RU从数字证书颁发机构(Certificate Authority)获取个人以太坊账户地址㊂
③RO㊁RU使用个人以太坊账户地址在智能合约中输入个人信息注册账户㊂
2.1.2㊀数据加密阶段
④RO选择文件File并输入加密密码enc_ key,在国密加密系统中对RO输入的加密密码enc_key使用SM3杂凑算法将其变为SM4的加密密钥sm4_key,然后使用sm4_key对文件File 进行SM4分组加密获得已加密的文件enc_File㊂文件File被SM4算法加密后,国密加密系统再根据时间戳产生SM2密钥对sm2_sk(私钥)和sm2_pk(公钥),然后使用SM2公钥sm2_pk对SM4加密密钥sm4_key进行加密获得enc_sm4_ key,最后返回已加密的文件enc_File㊁被加密的SM4密钥enc_sm4_key和SM2私钥sm2_sk㊂
2.1.3㊀数据上传阶段
⑤国密加密系统将已加密的文件enc_File 上传至IPFS,并获得该加密文件的唯一识别信息哈希地址hash enc_File㊂
⑥国密加密系统将生成的被加密的SM4密钥enc_sm4_key和SM2私钥sm2_sk返回给RO㊂⑦IPFS将加密文件的识别信息哈希地址hash enc_File传给RO㊂
2.1.4㊀信息上链阶段
⑧RO将医疗记录描述关键词description㊁加密文件的识别信息哈希地址hash enc_File㊁被加密的SM4密钥enc_sm4_key和SM2私钥sm2_sk 嵌入到以太坊transaction中,使用自己的以太坊账户地址AddressRO提交transaction并自动将AddressRO添加到该医疗数据的授权地址数组中去,最后在医疗数据区块链中生成块㊂
2.1.5㊀数据访问阶段
⑨RU请求智能合约查询并浏览医疗数据区块链,通过医疗记录描述关键词description寻自己想要的医疗数据,再请求智能合约输入该医疗数据的RID和该医疗数据拥有者的以太坊账户地址AddressRO,将其嵌入到以太坊transac-tion中,然后使用自己的以太坊账户地址Addre-ssRU提交transaction,待事务
在请求区块链中生
㊃67㊃共享文件如何加密
第31卷基于区块链的以患者为中心的医疗数据共享方法㊀
成块后,最终通过医疗机构与RO进行授权沟通㊂
2.1.6㊀数据授权阶段
⑩RO请求智能合约查询并浏览请求区块链,受理RU对于自己共享已共享医疗数据的请求,然后输入医疗数据的RID和请求者的以太坊账户地址AddressRU,对RU进行授权,授权后AddressRU被添加到该医疗数据的授权地址数组中,最后医疗数据区块链中生成新块,该医疗数据的授权状态得到更新㊂
RU获得RO授权以后,请求智能合约获取到医疗数据加密文件的识别信息哈希地址hash enc_File㊁被加密的SM4密钥enc_sm4_key和SM2私钥sm2_sk㊂
2.1.7㊀数据下载和解密阶段
RU使用医疗数据加密文件的识别信息哈希地址hash enc_File在IPFS中查询到被加密的文件enc_File并下载获取㊂
RU将被加密的文件enc_File,被加密的SM4密钥enc_sm4_key和SM2私钥sm2_sk提交到国密加密系统中,国密加密系统首先使用SM2私钥sm2_sk对被加密的SM4密钥enc_sm4_key 解密得到SM4密钥sm4_key,然后再使用sm4_ key对enc_File进行解密得到医疗数据文件File㊂
国密加密系统将医疗数据文件File返回给RU㊂
2.2㊀IPFS模块
IPFS模块主要实现了医疗数据的上传与下载功能,其擦除编码的冗余备份技术确保了数据的可靠性和可用性,其分布式的部署方式保障了数据的安全性,可避免DDOS攻击导致的单点故障问题㊂除此之外,IPFS以点对点的方式运行,采用DHT路由技术和比特流技术,具有更高的数据吞吐量和更低的资源消耗㊂
在医疗数据存储过程中,被加密的医疗文件enc_File通过智能合约中的CreateRecord功能上传至IPFS中,IPFS使用分布式存储的方式存储数据,并对数据进行哈希,可以得到一个哈希地址hash e nc_File,此哈希地址用于寻数据文件以
及验证医疗数据完整性㊂
2.3㊀智能合约模块
智能合约模块主要包括用户账号的注册㊁医疗数据病历摘要的生成以及医疗数据授权三个部分,通过监听智能合约并发出指令,将数据的信息和相应的加㊁解密信息部署到区块链上,与IPFS交互实现医疗数据共享功能㊂智能合约确保了患者对医疗数据的细粒度访问控制,使患者能够在区块链网络上动态的管理其医疗数据㊂智能合约包括createUser功能:用户输入个人信息包括姓名㊁性别和角(机构㊁医生和患者等)然后使用自己的以太坊账户提交transaction即可产生一个唯一的用户user并添加到智能合约的用户数组users[]中㊂createRecord功能:用户将医疗记录的唯一识别信息哈希地址㊁加密过后的SM4密钥㊁SM2私钥以及医疗记录描述关键词嵌入到以太坊transaction中,并使用自己的以太坊账户提交transaction并自动将AddressRO添加到该医疗数据的授权地址数组proofed[]中去,最后生成一个以RID为唯一标识符的医疗记录record并添加到智能合约的病历数组records[]中㊂RecordPermissionToUser功能:拥有医疗记录授权的用户将待授权用户的以太坊地址Ad-dressRU以及该医疗记录的唯一标识符RID嵌入以太坊transaction中,提交transaction将Ad-dressRU添加该医疗数据的授权地址数组proofed[]中去㊂
getRecord功能:拥有医疗记录授权的用户输入医疗记录的唯一标识符RID,随即可获取该医疗记录的record信息(包括医疗记录的唯一标识符㊁医疗记录的唯一识别信息哈希地址㊁加密过后的SM4密钥㊁SM2私钥以及医疗记录描述关键词)㊂
㊃77㊃
北京电子科技学院学报2023年requestRecord 功能:用户将医疗记录的唯一标识符RID 和该医疗记录拥有者的以太坊账户地址AddressRO 嵌入到以太坊transaction 中,并使用自己的以太坊账户提交transaction 并自动将AddressUO 设置为该请求的请求来源,最后生
成一个以TID 为唯一标识符的医疗记录请求re-
quest 并添加到智能合约的医疗记录请求数组requests[]中㊂
2.4㊀
国密加密模块
图2㊀国密加密模块流程
㊀㊀国密加密模块实现了对医疗数据的加解密功能,分别使用了SM2㊁SM3㊁SM4三个密码算法对医疗数据文件以及用户输入的密码明文实现了加解密,保障了医疗数据的安全性和隐私性㊂
3㊀系统实现
3.1㊀实验环境
实现系统使用的处理器为Intel  Core
(TM)i7-8750H CPU @2.20GHz ˑ4,操作系统为Ubuntu 20.04.4LTS,内存为3G㊂3.2㊀系统实现
如图2所示,输入待上传数据的医疗记录描
述关键词以及加密密码明文,选择要上传的医疗记录文件后提交,在上传过程中,文件被国密加密模块自动加密㊂因为医疗病历数据较大不应直接存储在区块链块中,为了实现数据的有效存储,我们将事务存储在IPFS 上㊂
假如该用户需要医疗记录描述关键词为an-fer s record 的医疗数据,记录下该医疗数据的RID 和Owner 后进入到医疗请求区块链界面提交授权请求即可通过智能合约产生授权请求信息,并记录在请求区块链中,保障数据授权可溯源性㊂
医疗数据拥有者输入RID 与待授权账
图3㊀
上传并加密病历数据
图4㊀更新医疗记录权限信息
AddressRU,通过智能合约即可更新授权信息如图3所示㊂3.3㊀成本测试
合约创建者可以设置gas 价格,进行试验时
我们将设置gas 价格为0.2Gwei,1Gwei =109wei =10-9ether㊂
在表1中列出了智能合约的某些操作成本,
这些操作的多次执行成本几乎没有变化㊂医疗
87㊃

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。