一种基于联盟区块链的医疗数据存储共享方法及系统转让专利
申请号 : CN202110047989.1
文献号 : CN112910840B
文献日 : 2022-04-05
发明人 : 唐宏 , 刘双 , 向俊玲 , 周磊
申请人 : 重庆邮电大学
摘要 :
权利要求 :
1.一种基于联盟区块链的医疗数据存储共享方法,其特征在于,包括以下步骤:S1、搭建联盟区块链及私有IPFS网络,将模型中的各实体注册到系统中,获得公私钥对,初始化系统,生成系统的公共参数与主密钥;
S2、采用链上链下混合存储结构实现医疗数据的安全存储:患者从医院获取自身医疗数据,本地生成与医疗数据相关的访问策略,利用多权限属性基加密算法对医疗数据及访问策略加密,得到密文,将密文本地存储在搭建的私有IPFS网络中,私有IPFS网络为存储在网络中的密文分配一个独一无二的IPFS哈希值并反馈给患者;患者将与密文对应的IPFS哈希值存储在联盟区块链中;
多权限属性基加密算法实现数据的加解密过程包括:S211:初始化算法:输入安全参数K,输出全局公共参数GP、授权机构标识符aid和用户身份标识符uid;
Setup(k)→(GP,aid,uid)其中,Setup(·)表示初始化阶段的输入;
S212:属性授权机构初始化算法:输入全局公共参数GP;输出该属性相关授权机构的公钥PKaid与私钥SKaid,其中公钥PKaid广播给组织中各实体;
AuthSetup(GP)→{PKaid,SKaid}其中,AuthSetup(GP)表示输入全局公共参数GP;
S213:密钥生成算法:输入系统的全局公共参数GP,授权机构的私钥SKaid,用户标识符uid及属性集S;输出用户属性集相关联的解密密钥SKuid;
KeyGen(GP,{SKaid},uid,S)→SKuid其中,KeyGen(·)表示密钥生成阶段的输入;
S214:加密算法:输入系统的全局公共参数GP,该属性相关授权机构的公钥PKaid,明文M,访问策略A;输出密文CT;
Encrypt(GP,{PKaid},M,A)→CT其中,Encrypt(·)表示加密阶段的输入;
S215:解密算法:输入系统的全局公共参数GP,密文CT,与用户属性集相关联的解密密钥SKuid;若属性大于访问策略中的属性阈值,解密输出明文M;否则,解密失败,表达式如下:Dec(GP,CT,SKuid)→M;
S3、当数据请求者请求访问患者的医疗数据时,通过在链上检索类交易获得密文的IPFS哈希值,数据请求者通过密文的IPFS哈希值在IPFS网络中下载患者加密的原始医疗数据,但能否解密成功取决于数据请求者的自身属性集合是否满足患者设定的加密医疗数据访问策略中的属性阈值,若数据请求者的属性集合满足患者设定的访问策略中的属性阈值,则成功解密患者医疗数据,获得数据明文;反之解密不成功。
2.根据权利要求1所述的一种基于联盟区块链的医疗数据存储共享方法,其特征在于,步骤S2中,采用链上链下混合存储结构实现医疗数据的安全存储,具体包括以下步骤:S221:患者从医院获取到自身的医疗数据后,本地生成与医疗数据相关的访问策略,利用多权限属性基加密算法将医疗数据原文以及访问策略进行加密,生成密文,利用私钥SKaid对密文进行数字签名,将密文及密文对应的数字签名发送到模型中的IPFS节点集群;
S222:IPFS节点集群中的某个IPFS节点接收到患者上传的数据,首先通过验证患者的数字签名来证实患者身份;确认患者身份后将密文上传到模型中的私有IPFS网络中,IPFS网络根据节点上传的内容为该IPFS节点返回一个独一无二的哈希值;IPFS节点利用公钥PKaid对收到的哈希值进行数字签名,得到哈希值的数字签名,将密文、返回的哈希值及哈希值的数字签名发送给IPFS网络节点集群中的每个IPFS节点验证;
S223:IPFS节点集群中的每个IPFS节点验证患者身份,并本地计算密文的哈希值,若与IPFS网络返回的哈希值一致,则通过验证,并向与患者交互的IPFS节点发送确认消息;该IPFS节点收到其他IPFS节点的确认消息后,将患者身份及发送的密文哈希值、密文发送时的时间戳打包成类交易,用患者公钥为类交易编号;将编号后的类交易发送到联盟区块链Fabric中;
S224:联盟区块链Fabric中的某备份节点收到IPFS节点发送的类交易后,首先验证IPFS节点身份,接着验证元数据中的各项内容,若通过验证,则将类交易本地备份,利用基于可验证随机函数来随机选取交互的共识节点,将类交易发送给共识节点;
S225:共识节点收到备份节点发送的类交易后,验证类交易中的各项内容及节点身份,验证成功后,对类交易签名,发送给联盟区块链中验证节点群中的每一个节点,利用PBFT算法对类交易进行共识验证,得到超过2/3的共识确认后,将类交易打包上链。
3.根据权利要求2所述的一种基于联盟区块链的医疗数据存储共享方法,其特征在于,联盟区块链Fabric中的验证节点群包含两类节点:备份节点和共识节点;其中备份节点负责与IPFS节点交互、接收信息,同时将接收到的信息发送到共识节点;共识节点负责交易的验证打包及确认上链。
4.根据权利要求1所述的一种基于联盟区块链的医疗数据存储共享方法,其特征在于,步骤S3中,数据请求者访问患者加密医疗数据的流程具体包括:S31:数据请求者向中央授权机构CA发送的真实身份,获取CID,向各属性授权机构AA发送CID,获取与身份相关的属性集合S与私钥集合P;
S32:数据请求者向联盟区块链Fabric验证节点群中的节点发送访问数据请求,请求中包含医生的CID、访问数据的名称及所有者;节点收到访问请求后,首先验证数据请求者的身份,身份验证通过后,根据被访问数据的名称及所有者在链上检索类交易,找到对应的类交易后,将包含请求内容的相关类交易及数据请求者的CID发送到IPFS节点群;
S33:IPFS节点群中的节点首先验证数据请求者的身份,验证通过后,从类交易中提取访问数据对应的IPFS哈希值,根据该哈希值在模型中的私有IPFS网络中检索患者完整的加密数据,找到后,将密文发送给数据请求者;
S34:数据请求者收到患者加密的原始医疗数据后,利用自身属性集合S及与属性相关的密钥解密密文,若数据请求者的属性值满足患者设定的访问策略,则成功解密出患者完整的医疗数据;反之,解密失败。
5.一种基于联盟区块链的医疗数据存储共享系统,用于实现权利要求1所述基于联盟区块链的医疗数据存储共享方法,其特征在于,包括联盟区块链网络、数据存储模块和数据共享模块,所述联盟区块链网络用于提供联盟区块链网络环境;所述数据存储模块用于将患者的医疗数据链上链下存储到对应网络中;所述数据共享模块用于将患者的医疗数据安全共享给获得许可的数据请求者。
6.根据权利要求5所述的一种基于联盟区块链的医疗数据存储共享系统,其特征在于,所述数据存储模块包含混合存储模型,所述混合存储模型为链上链下混合存储结构,首先在链下利用私有IPFS网络存储原始的大宗医疗数据;私有IPFS网络为存储的内容分配一个独一无二的IPFS哈希值,再将该IPFS哈希值存储在联盟区块链上。
说明书 :
一种基于联盟区块链的医疗数据存储共享方法及系统
技术领域
背景技术
导致难以获得患者完整的就诊记录。随着互联网和大数据技术的发展,医疗数据信息化进
程已逐步走向正轨,然而类似电子病历系统(Electronic medical records,EMR)、电子健
康记录系统(Electronic health records,EHR)、个人健康记录(Personal health
records,RHR)这类中心化的医疗数据存储共享平台,大多数由第三方机构管理医疗数据,
不但易遭遇恶意攻击,导致数据被篡改、隐藏、遗失,无法保证数据的安全性与完整性;同时
因管理方式、存档习惯存在差异,使得各机构之间数据共享成为困扰。因此急需一种不可篡
改、安全高效、透明可信赖的技术解决当前医疗行业出现的问题。区块链作为当下最受关注
的新兴技术,成为首选的解决方案。
System》。区块链技术的核心特点在于去中心化,即系统中各个节点地位相同,没有超级节
点,抛弃第三方管理机构,各个节点共同监管维护这个分布式记账本。同时区块链集成共识
算法、密码学原理、分布式存储等多项成熟技术,用以确保链上存储数据的安全性和完整
性。如区块链系统中,数据上链前被组织成默克尔树的结构打包成区块,区块头存储树根的
哈希值,一旦树中某个位置作出细微修改,块头中的哈希值会发生变化,保证了链上存储数
据不可篡改。区块链按系统控制权与交易信息是否公开分成三类:公有链、联盟链、私有链,
其中联盟链介于公有链和私有链之间,指只有被授予身份认证的节点才能加入网络,联盟
链的使用必须是带有权限的限制访问,因此联盟区块链最适合解决医疗数据存储共享的架
构。
影像、诊断流程视频等大宗文件。区块链则对链上区块的大小存在约束;同时数据只能添加
到链上,不能从链上删除,导致区块链账本不断扩张,链上存储压力过大。除此之外区块链
系统要求每个节点都要本地存储完整的账本,数据的重复存储造成了系统出现数据冗余,
对新加入系统的节点也提出较高的存储空间要求。
发明内容
有IPFS网络中,私有IPFS网络为存储在网络中的密文分配一个独一无二的IPFS哈希值并反
馈给患者;患者将与密文对应的IPFS哈希值存储在联盟区块链中(由于IPFS哈希值大小仅
为几十比特,因此该混合存储模型有效释放了链上存储空间);
IPFS哈希值在IPFS网络中下载患者加密的原始医疗数据,但能否解密成功取决于数据请求
者的自身属性集合是否满足患者设定的加密医疗数据访问策略中的属性阈值,若数据请求
者的属性集合满足患者设定的访问策略中的属性阈值,则成功解密患者医疗数据,获得数
据明文;反之解密不成功。
如下:
钥SKaid对密文进行数字签名,将密文及密文对应的数字签名发送到模型中的IPFS节点集
群;
IPFS网络根据节点上传的内容为该IPFS节点返回一个独一无二的哈希值;IPFS节点利用公
钥PKaid对收到的哈希值进行数字签名,得到哈希值的数字签名,将密文、返回的哈希值及哈
希值的数字签名发送给IPFS网络节点集群中的每个IPFS节点验证;
该IPFS节点收到其他IPFS节点的确认消息后,将密文名称、哈希值及患者身份、时间戳类交
易发送到联盟区块链Fabric中;类交易中包含医疗数据拥有者及对应的IPFS哈希值;
基于可验证随机函数来随机选取交互的共识节点,将类交易发送给共识节点;
PBFT算法对类交易进行共识验证,得到超过2/3的共识确认后,将类交易打包上链。
到共识节点;共识节点负责交易的验证打包及确认上链。
者的身份,身份验证通过后,根据被访问数据的名称及所有者在链上检索类交易,找到对应
的类交易后,将包含请求内容的相关类交易及数据请求者的CID发送到IPFS节点群;
的加密数据,找到后,将密文发送给数据请求者;
者完整的医疗数据;反之,解密失败。
模块用于将患者的医疗数据链上链下存储到对应网络中;所述数据共享模块用于将患者的
医疗数据安全共享给获得许可的数据请求者。
有IPFS网络为存储的内容分配一个独一无二的IPFS哈希值,再将该IPFS哈希值存储在联盟
区块链上。
IPFS网络中,元数据存储在联盟链上,实现大宗医疗数据的有效存储,同时利用多权限属性
基加密算法保护患者上传及数据访问者访问过程中医疗数据的安全性,实现患者对自身医
疗数据的访问控制。
附图说明
具体实施方式
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。本发明说明书中涉及到的各英文缩写对应实体表如图2
所示。
涉及不同应用场景下,采用各类适配的加解密算法实现医疗数据共享模型。具体地,本发明
将分布式文件系统IPFS作为原始医疗数据的链下存储平台,星际文件系统
(InterPlanetary File System,IPFS)是一个点对点的分布式文件系统,能够为添加到网
络中的文件分配独一无二的哈希值,IPFS作为存储大宗文件的理想选择,能够永久保存文
件同时提供较高吞吐量。由于IPFS是基于内容寻址而非常见的基于地址寻址,因此相同文
件返回的哈希值是相同的,能够删除内容相同的冗余文件,同时提供高效检索服务。在存储
医疗数据时,患者首先将原始医疗数据链下存储到IPFS中,将返回的IPFS哈希值链上存储
在联盟链Fabric上。由于IPFS采用SHA256算法计算哈希值,故返回的哈希值只占几十比特,
极大释放了链上存储空间,提高医疗数据存储效率及安全性。医疗数据上链后,为了使患者
能够决定接受或拒绝数据请求者对自身医疗数据的访问请求,本发明采用多权限属性基加
密算法(MA‑ABE);
同位置,ABE可分为基于密钥策略的属性加密(KP‑ABE):密文的解密策略在生成密钥时嵌入
到用户的私钥中,相关属性在加密时嵌入到密文中,即访问策略与密钥相关联;基于密文策
略的属性加密(CP‑ABE):密文的解密策略在加密时嵌入到密文中,用户相关属性在生成密
钥时嵌入到私钥中,即访问策略与密文相关联。二者区别在于患者是否有权决定接收或拒
绝加密数据请求,由于本发明想要赋予患者对自身医疗数据的掌控权,因此选用将患者制
定的解密策略嵌入到密文中的CP‑ABE算法,但由于CP‑ABE算法中引入单一授权机构AA为每
个用户分发密钥,易造成用户隐私泄露,且面对大量请求,单一属性授权机构(AA)处理的工
作量太大成为提高系统效率的瓶颈。因此选用多授权机构的属性基加密算法(MA‑ABE)作为
本文的加密算法;
赋予医疗数据存储共享系统更高的安全性与高效性,提高用户医疗数据的隐私性。
链)能够实现私有网络中数据的快速下载,提高系统效率。
私有IPFS网络中,私有IPFS网络为存储的密文生成一个独一无二的IPFS哈希值并反馈给患
者,获得数据的安全保障。
医疗数据进行安全存储,混合存储主要思想是患者首先将原始的大宗医疗数据通过IPFS节
点群验证,存储在私有IPFS系统上,IPFS系统会为存储在网络中的医疗数据内容分配一个
独一无二的哈希值,然后再将该IPFS哈希值通过验证节点群验证存储在联盟区块链上。由
于IPFS哈希值大小仅为几十比特,因此该混合存储模型有效释放了链上存储空间。
混合存储模型有效释放了链上存储空间。
钥SKaid对密文进行数字签名,将密文及密文对应的数字签名发送到模型中的IPFS节点集
群;
IPFS网络根据节点上传的内容为该IPFS节点返回一个独一无二的哈希值;IPFS节点利用公
钥PKaid对收到的哈希值进行数字签名,得到哈希值的数字签名,将密文、返回的哈希值及哈
希值的数字签名发送给IPFS网络节点集群中的每个IPFS节点验证;
该IPFS节点收到其他IPFS节点的确认消息后,将患者身份及发送的密文哈希值、密文发送
时的时间戳打包成类交易,用患者公钥为类交易编号;将编号后的类交易发送到联盟区块
链Fabric中;
基于可验证随机函数来随机选取交互的共识节点,将类交易发送给共识节点;
PBFT算法对类交易进行共识验证,得到超过2/3的共识确认后,将类交易打包上链。
到共识节点;共识节点负责交易的验证打包及确认上链。
请求者根据类交易中的密文IPFS哈希值在IPFS网络中下载患者加密的原始医疗数据,但能
否解密成功取决于数据请求者的自身属性集合是否满足患者设定的加密医疗数据访问策
略中的属性阈值,若数据请求者的属性集合满足患者设定的访问策略中的属性阈值,则成
功解密患者医疗数据,获得数据明文;反之解密不成功。
数据时,具体包括以下过程:
验证通过后,根据被访问数据的名称及所有者在链上检索类交易,找到对应的类交易后,将
包含请求内容的相关类交易及医生的CID发送到IPFS节点群;
数据,找到后,将密文发送给医生;
数据;反之,解密失败。
供联盟区块链网络环境;所述数据存储模块用于将患者的医疗数据链上链下存储到对应网
络中;所述数据共享模块用于将患者的医疗数据安全共享给获得许可的数据请求者。
私有IPFS网络会为存储在网络中的内容分配一个独一无二的IPFS哈希值,再将该IPFS哈希
值存储在联盟区块链上。链下IPFS存储患者的原始医疗数据;链上存储医疗数据对应的
IPFS哈希值),由于IPFS哈希值大小仅为几十比特,因此该链上链下混合存储模型有效释放
了链上存储空间。
储压力。
可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储
介质可为磁碟、光盘、只读存储记忆体(Read‑0nly Memory,ROM)或随机存储记忆体(Random
Access Memory,RAM)等。
可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由
于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明
即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模
块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或
者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动
的情况下,即可以理解并实施。
改、替换和变型,本发明的范围由所附权利要求及其等同物限定。