CN115883214A - 基于联盟链和cp-abe的电子医疗数据共享系统及方法 - Google Patents

基于联盟链和cp-abe的电子医疗数据共享系统及方法 Download PDF

Info

Publication number
CN115883214A
CN115883214A CN202211527224.9A CN202211527224A CN115883214A CN 115883214 A CN115883214 A CN 115883214A CN 202211527224 A CN202211527224 A CN 202211527224A CN 115883214 A CN115883214 A CN 115883214A
Authority
CN
China
Prior art keywords
user
attribute
medical data
electronic medical
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211527224.9A
Other languages
English (en)
Inventor
黄婵颖
杨宇豪
颜克冬
尹丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN202211527224.9A priority Critical patent/CN115883214A/zh
Publication of CN115883214A publication Critical patent/CN115883214A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于联盟链和CP‑ABE的电子医疗数据共享系统及方法。该系统包括CA、联盟链账本、IPFS、服务器和AA;方法为:CA进行系统初始化,公开系统公共参数,将系统主密钥分发给AA;AA审核用户的注册申请,为注册用户分发用户证书和属性密钥;用户A将医疗数据原始数据加密后存储在IPFS中,将原始医疗数据的哈希值、元数据及在IPFS中的地址存储在区块链上;当联盟链中的用户B访问数据时,用户B的属性满足该密文的访问策略才能正确解密进行访问;恶意用户E不正当的访问时,AA利用区块链分布式共识机制完成恶意用户的追溯,确保电子医疗数据的安全使用。本发明提高了医疗数据共享的安全性和系统的吞吐量。

Description

基于联盟链和CP-ABE的电子医疗数据共享系统及方法
技术领域
本发明涉及网络安全技术领域,特别是一种基于联盟链和CP-ABE的电子医疗数据共享系统及方法。
背景技术
随着全球医疗机构数量呈现指数级增长,医疗机构产生的医疗数据也呈现爆炸性增长。由于纸质病历难保存、易篡改、易丢失损坏,越来越多的医院使用电子医疗系统存储病人的病历记录。随着数字化和云存储等技术的发展,各个医疗信息系统均采用了数字化存储技术,医疗数据信息化已经基本成熟。
现有医疗数据多存储于医院内部的数据库中,存在着严重的数据孤岛现象。不同的医疗服务提供者使用不同的标准和模式来存储患者数据,数据共享困难,数据通用性差,导致患者在不同医院进行就诊时需要重复进行很多检查,造成医疗资源的浪费,并且加重了病人的经济负担。同时医疗系统中通常会包含一些敏感数据,如患者个人隐私信息、就医记录等数据,医疗数据存在泄露、滥用和篡改等风险。
目前基于云存储的医疗数据共享系统通常会将医疗数据存储在云服务器上,在不可信的云存储环境中,用户将共享数据加密后存储,并通过获取解密密钥来实现对密文的访问控制。但由于云服务提供商不完全可信,加密后医疗数据仍可能存在滥用或篡改数据的可能,并且无法对数据使用和访问记录提供可信审查和追溯。此外,使用传统的对称、非对称密钥进行数据的保护虽然可以保障数据安全性,但是密钥协商和管理过程复杂,同时难以实现细粒度访问控制。
发明内容
本发明的目的在于提供一种能够保证医疗数据机密性、数据完整性、数据可用性,实现用户医疗数据访问记录的可追溯性的电子医疗数据共享系统及方法。
实现本发明能够目的的技术解决方案为:一种基于联盟链和CP-ABE的电子医疗数据共享系统,包括联盟链端和医疗机构端,其中联盟链端包括CA、联盟链账本和IPFS,医疗机构端包括服务器和AA;
所述CA,为可信第三方证书授权机构,用于生成和公开系统公共参数;
所述联盟链账本,用于存储交易记录;
所述IPFS,为星际文件系统,用于存储电子医疗数据密文;
所述服务器,用于进行交易过程管理;
所述AA,为属性认证节点,用于管理属性认证和属性密钥分发,实现属性认证和属性密钥分发记录的可追溯和追责。
一种基于联盟链和CP-ABE的电子医疗数据共享方法,包括以下步骤:
步骤1、系统初始化:CA进行系统初始化,公开系统公共参数,并通过加密安全通道将系统主密钥分发给AA节点;
步骤2、属性密钥分发:所有想加入联盟链的用户,均需要在系统内进行注册;AA负责完成用户的注册申请,并通过安全信道为所有注册用户分发用户证书和属性密钥;
步骤3、医疗数据的加密与存储:用户A通过联盟链和链上智能合约,配合IPFS将医疗数据原始数据经过CP-ABE方案属性加密后存储在IPFS中,将原始医疗数据的哈希值、元数据及在IPFS中的地址存储在区块链上;
步骤4、医疗数据的获取与访问:当联盟链中的用户B需要访问由属性基加密后的电子医疗数据时,只有用户B的属性满足该密文的访问策略,才能够正确解密进行访问,以此实现对电子医疗数据细粒度的访问控制;
步骤5、恶意用户追溯:当出现恶意用户E不正当的访问行为,AA利用区块链分布式共识机制完成恶意用户的追溯,确保电子医疗数据的安全使用。
本发明与现有技术相比,其显著优点为:(1)利用联盟链分布式共识机制,解决了传统中心化云服务器不完全可信问题,降低了传统加密方案及中心化CA机构遭受攻击的风险,缓解了CA机构的计算压力,实现分散的电子医疗数据的安全共享;(2)在联盟链中引入AA节点来实现属性认证及恶意行为溯源功能,利用分布式共识实现了属性认证,联盟中的AA节点可以查询用户共享过程记录,实现了恶意用户的追溯和追责;(3)通过在链上存储电子医疗数据密文地址,链下IPFS中存储电子医疗数据密文,缓解了区块链链上的存储压力,提高了系统的吞吐量。
附图说明
图1是本发明一种基于联盟链和CP-ABE的电子医疗数据共享系统的系统架构图。
图2是本发明实施例中电子医疗数据共享的交互流程图。
图3是本发明实施例中恶意用户的追溯的交互流程图。
图4是本发明实施例中电子医疗数据共享工作流的流程示意图。
具体实施方式
本发明一种基于联盟链和CP-ABE的电子医疗数据共享系统,包括联盟链端和医疗机构端,其中联盟链端包括CA、联盟链账本和IPFS,医疗机构端包括服务器和AA;
所述CA,为可信第三方证书授权机构,用于生成和公开系统公共参数;
所述联盟链账本,用于存储交易记录;
所述IPFS,为星际文件系统,用于存储电子医疗数据密文;
所述服务器,用于进行交易过程管理;
所述AA,为属性认证节点,用于管理属性认证和属性密钥分发,实现属性认证和属性密钥分发记录的可追溯和追责。
作为一件具体示例,所述电子医疗数据共享系统包括一个联盟链端和多个医疗机构端,每个医疗机构端相对独立,各医疗机构端的数据全部保存于联盟链端的IPFS和联盟链账本中;设定用户A为医疗机构A的用户,用户B为医疗机构B的用户,恶意用户E为医疗机构E的用户。
一种基于联盟链和CP-ABE的电子医疗数据共享方法,包括以下步骤:
步骤1、系统初始化:CA进行系统初始化,公开系统公共参数,并通过加密安全通道将系统主密钥分发给AA节点;
步骤2、属性密钥分发:所有想加入联盟链的用户,均需要在系统内进行注册;AA负责完成用户的注册申请,并通过安全信道为所有注册用户分发用户证书和属性密钥;
步骤3、医疗数据的加密与存储:用户A通过联盟链和链上智能合约,配合IPFS将医疗数据原始数据经过CP-ABE方案属性加密后存储在IPFS中,将原始医疗数据的哈希值、元数据及在IPFS中的地址存储在区块链上,防止其内容被非法篡改和破坏,并提供访问和验证功能,从而达到保护医疗数据的目的。
步骤4、医疗数据的获取与访问:当联盟链中的用户B需要访问由属性基加密后的电子医疗数据时,只有用户B的属性满足该密文的访问策略,才能够正确解密进行访问,以此实现对电子医疗数据细粒度的访问控制;
步骤5、恶意用户追溯:当出现恶意用户E不正当的访问行为,AA利用区块链分布式共识机制完成恶意用户的追溯,确保电子医疗数据的安全使用。
作为一件具体示例,步骤1所述的系统初始化,具体如下:
步骤1.1、系统进行初始化:
CA首先输入系统安全参数λ,生成一个阶为素数p、生成元为g的双线性群G0和一个双线性映射e:G0×G0→G1;接下来选择两个随机指数α,β∈Zp,产生公开参数PKsys(G0,g,h=gβ,e(g,g)α)和主密钥MKsys(β,gα);
步骤1.2、系统密钥分发:
CA在系统内公布公开参数PKsys,联盟链中所有节点和用户都能够获得公开参数PKsys的值;同时,CA通过加密安全通道将主密钥MKsys分别发送给联盟负责属性授权的AA节点。
作为一件具体示例,步骤2所述的属性密钥分发,具体如下:
步骤2.1、加入联盟链的用户A和用户B分别在本地秘密地生成公私密钥对(PKA,SKA)和(PKB,SKB),其中私钥SKA、SKB分别在本地秘密存储;
步骤2.2、用户A和用户B分别向医疗机构A和医疗结构B的服务器节点发送属性认证请求UAR(User Attribute Request),其中用户UA发送的属性认证请求UARA包括用户A的公钥PKA和用户身份标识IDA,用户UB发送的属性认证请求UARB包括用户B的公钥PKB和用户身份标识IDB
步骤2.3、医疗机构A和医疗结构B的服务器节点分别收到用户A和用户B的属性认证请求并进行身份验证,将用户A的属性集SA和用户B的属性集SB分别发送至医疗机构A和医疗结构B的AA节点,医疗机构A和医疗结构B的AA节点分别验证用户A的属性集SA和用户B的属性集SB并签名,并将带有签名的用户属性集SA和SB发送到系统内其它医疗机构的AA节点,其它医疗机构的AA节点在验证过用户属性集后签名返回背书结果至医疗机构A和医疗结构B的AA节点;在医疗机构A和医疗结构B的AA节点收集到背书策略要求的足够AA节点背书后,将背书结果打包发送给排序节点,排序节点验证签名的有效性,并将结果进行排序打包成区块,然后发给所有AA节点,AA节点对区块进行验证后将其更新到联盟链账本中;
步骤2.4、用户属性认证通过后,医疗机构A和医疗结构B的AA节点分别为用户A和用户B计算属性密钥
Figure BDA0003975293950000041
Figure BDA0003975293950000042
并进行分发:
医疗机构A的AA节点使用用户A的属性SA和系统主密钥集MKsys(β,gα)为用户A生成相应的属性私钥
Figure BDA0003975293950000043
选择随机数t∈Zp,对于用户A的每个属性i∈SA选择随机数ti∈Zp,计算用户A的属性密钥
Figure BDA0003975293950000044
Figure BDA0003975293950000045
然后将用户A的属性密钥
Figure BDA0003975293950000046
使用用户A的公钥PKA加密成为属性密钥密文CTA发送给用户A;同样的,医疗结构B的AA节点首先使用用户B的属性SB和系统主密钥集MKsys(β,gα)为用户B生成相应的属性私钥
Figure BDA0003975293950000049
选择随机数r∈Zp,对于用户B的每个属性j∈SB选择随机数rj∈Zp,计算用户B的属性密钥
Figure BDA0003975293950000048
Figure BDA0003975293950000051
然后将用户B的属性密钥
Figure BDA00039752939500000510
使用用户B的公钥PKB加密成为密文CTB发送给用户B;
步骤2.5、用户A利用自己的私钥SKA对属性密钥密文CTA进行解密后得到属性密钥
Figure BDA0003975293950000053
用户B利用自己的私钥SKB对属性密钥密文CTB进行解密后得到属性密钥
Figure BDA00039752939500000511
作为一件具体示例,步骤3所述的电子医疗数据的加密与存储,具体如下:
步骤3.1、当用户A需要共享自己的数据时,用户A首先生成电子医疗数据明文M,然后指定访问树TR,自上而下的为访问树中的节点x随机选择多项式qx,其中多项式的度dx=kx-1;对根节点R,随机选择s∈Zp,令qR(0)=s;对其他节点x,qR(0)=qparent(index(x));然后设Y为TR中的子节点集,得到密文CT:
Figure BDA0003975293950000055
步骤3.2、用户A通过医疗机构A的服务器节点将电子医疗数据密文CT存入IPFS中;
步骤3.3、医疗机构A的服务器节点返回用户A上传的密文数据地址
Figure BDA0003975293950000056
步骤3.4、用户A通过医疗机构A的服务器节点与联盟链进行交互,向联盟链中的节点发起电子医疗数据存储请求,将用户A身份标识IDA、电子医疗数据元数据MetadataA、哈希值HashM、访问控制策略P、以及密文在IPFS中的地址
Figure BDA0003975293950000057
打包成交易
Figure BDA0003975293950000058
后广播到联盟链中;
步骤3.5、联盟链节点在接收到用户A提交的交易后,首先按照背书策略进行背书,对交易提案格式、交易提交重复性、交易签名以及交易提交者权限进行验证,进而模拟执行电子医疗数据,存储智能合约,生成背书响应;在收集到足够的背书响应后,进一步封装并发送至联盟链进行排序;在对交易进行排序打包生成区块之后,联盟链节将交易附上时间戳生成
Figure BDA0003975293950000059
并存入联盟链账本中。
作为一件具体示例,步骤4所述的电子医疗数据的获取与访问,具体如下:
步骤4.1、当用户B需要访问用户A共享的电子医疗数据时,用户B通过医疗结构B的服务器与联盟链进行交互,向联盟链中的账本发起电子医疗数据密文获取请求,将用户B的身份标识IDB、属性集SB以及电子医疗数据元数据MetadataM打包成交易Tx(MetadataM,IDB,SB)后广播到联盟链中;
步骤4.2、联盟链中的账本在接收到用户B提交的交易请求之后,查询用户B的属性认证记录,验证用户B的身份标识IDB、属性集SB
步骤4.3、如验证成功则联盟链中的账本继续执行电子医疗数据访问智能合约,若用户B属性集SB符合用户A指定的访问策略P,则将电子医疗数据密文CT在IPFS中的地址
Figure BDA0003975293950000061
返回给用户B;
步骤4.4、用户B调用医疗结构B的服务器在IPFS中对电子医疗数据密文CT进行下载,IPFS将电子医疗数据密文CT返回给用户B;
步骤4.5、用户B输入电子医疗数据密文CT和属性密钥
Figure BDA0003975293950000062
客户端执行解密算法,对于访问树TR,用户B的属性集SB需满足以下属性集中的一个才能成功解密:(参与X课题研究、医院X)、(心脏病专家、心内科)、(心脏病专家、医院Y)、(心内科、医院Y);若上述属性集中一个或多个为用户B属性集SB的子集,则能解密出秘密值;
下面开始解密处理,首先定义递归算法DecryptNode(CT,SK,x),其中
Figure BDA0003975293950000063
Figure BDA0003975293950000064
SK为与属性集S关联的属性密钥,x为访问树中的节点;
若x为叶子节点,令i=attr(x),并且定义如下:若i∈S,则
Figure BDA0003975293950000065
Figure BDA0003975293950000066
则DecryptNode(CT,SK,x)=⊥;
若x为非叶子节点,对于x的所有子节点z,令Fz=DecryptNode(CT,SK,x),设Sx是任意kx大小的满足Fz≠⊥的子节点z的集合;如果不存在这样的集合,则节点不满足,函数返回⊥;否则,计算
Figure BDA0003975293950000067
并且返回结果;若SB满足访问树TR,设
Figure BDA0003975293950000068
最后计算电子医疗数据明文
Figure BDA0003975293950000069
完成电子医疗数据共享过程。
作为一件具体示例,步骤5所述的恶意用户追溯,具体如下:
步骤5.1、恶意用户篡改电子医疗数据;
步骤5.2、医疗机构A的AA节点对非法用户进行识别和追溯。
作为一件具体示例,步骤5.1所述的恶意用户篡改电子医疗数据,具体如下:
步骤5.1.1、恶意用户E按照步骤4获取电子医疗数据M;
步骤5.1.2、恶意用户E在M的基础上进行篡改,生成新的电子医疗数据M′,并根据访问策略P对M′进行属性加密生成CT′,然后通过服务器节点将CT′存入IPFS中;
步骤5.1.3、医疗机构E的服务器节点返回恶意用户E上传的密文数据地址
Figure BDA0003975293950000071
步骤5.1.4、恶意用户E通过医疗机构E的服务器与联盟链进行交互,向联盟链中的节点发起数据存储请求,将恶意用户E的身份标识IDB、M′的哈希值HashM′、M的元数据MetadataM、访问控制策略P、以及M′在IPFS中的地址
Figure BDA0003975293950000072
打包成交易
Figure BDA0003975293950000073
后广播到联盟链中;
步骤5.1.5、联盟链节点在接收到恶意用户E提交的交易
Figure BDA0003975293950000074
后,首先按照背书策略进行背书,对交易提案格式、交易提交重复性、交易签名以及交易提交者权限进行验证,进而模拟执行电子医疗数据,存储智能合约,生成背书响应;在收集到足够的背书响应后,进一步将交易进行封装并发送至联盟链进行排序;在对交易进行排序打包生成区块之后,联盟链节点将交易附上时间戳生成
Figure BDA0003975293950000075
并存入联盟链账本中。
作为一件具体示例,步骤5.2所述的医疗机构A的AA节点对非法用户进行识别和追溯,具体如下:
医疗机构A的AA节点根据M的元数据MetadataM进行追溯,若对MetadataM查询得到两个不同的交易
Figure BDA0003975293950000076
Figure BDA0003975293950000077
对比时间戳先后顺序识别用户E为恶意用户,进行后续追责。
下面结合附图和具体实施例,对本发明进一步的详细说明。
实施例
结合图1,本发明一种基于联盟链和CP-ABE的电子医疗数据共享系统,包括联盟链端和医疗机构端,其中联盟链端包括CA、联盟链账本和IPFS,医疗机构端包括服务器和AA;
所述CA,为可信第三方证书授权机构,用于生成和公开系统公共参数;
所述联盟链账本,用于存储交易记录;
所述IPFS,为星际文件系统,用于存储电子医疗数据密文;
所述服务器,用于进行交易过程管理;
所述AA,为属性认证节点,用于管理属性认证和属性密钥分发,实现属性认证和属性密钥分发记录的可追溯和追责。
进一步地,所述电子医疗数据共享系统包括一个联盟链端和多个医疗机构端,每个医疗机构端相对独立,各医疗机构端的数据全部保存于联盟链端的IPFS和联盟链账本中;设定用户A为医疗机构A的用户,用户B为医疗机构B的用户,恶意用户E为医疗机构E的用户。
结合图2、图3、图4,一种基于联盟链和CP-ABE的电子医疗数据共享方法,包括以下步骤:
步骤1、系统初始化:CA进行系统初始化,公开系统公共参数,并通过加密安全通道将系统主密钥分发给AA节点,具体如下:
步骤1.1、系统进行初始化:
CA首先输入系统安全参数λ,生成一个阶为素数p、生成元为g的双线性群G0和一个双线性映射e:G0×G0→G1;接下来选择两个随机指数α,β∈Zp,产生公开参数PKsys(G0,g,h=gβ,e(g,g)α)和主密钥MKsys(β,gα);
步骤1.2、系统密钥分发:
CA在系统内公布公开参数PKsys,联盟链中所有节点和用户都能够获得公开参数PKsys的值;同时,CA通过加密安全通道将主密钥MKsys分别发送给联盟负责属性授权的AA节点。
步骤2、属性密钥分发:所有想加入联盟链的用户,均需要在系统内进行注册;AA负责完成用户的注册申请,并通过安全信道为所有注册用户分发用户证书和属性密钥,具体如下:
步骤2.1、加入联盟链的用户A和用户B分别在本地秘密地生成公私密钥对(PKA,SKA)和(PKB,SKB),其中私钥SKA、SKB分别在本地秘密存储;
步骤2.2、用户A和用户B分别向医疗机构A和医疗结构B的服务器节点发送属性认证请求UAR,其中用户UA发送的属性认证请求UARA包括用户A的公钥PKA和用户身份标识IDA,用户UB发送的属性认证请求UARB包括用户B的公钥PKB和用户身份标识IDB
步骤2.3、医疗机构A和医疗结构B的服务器节点分别收到用户A和用户B的属性认证请求并进行身份验证,将用户A的属性集SA和用户B的属性集SB分别发送至医疗机构A和医疗结构B的AA节点,医疗机构A和医疗结构B的AA节点分别验证用户A的属性集SA和用户B的属性集SB并签名,并将带有签名的用户属性集SA和SB发送到系统内其它医疗机构的AA节点,其它医疗机构的AA节点在验证过用户属性集后签名返回背书结果至医疗机构A和医疗结构B的AA节点;在医疗机构A和医疗结构B的AA节点收集到背书策略要求的足够AA节点背书后,将背书结果打包发送给排序节点,排序节点验证签名的有效性,并将结果进行排序打包成区块,然后发给所有AA节点,AA节点对区块进行验证后将其更新到联盟链账本中;
步骤2.4、用户属性认证通过后,医疗机构A和医疗结构B的AA节点分别为用户A和用户B计算属性密钥
Figure BDA0003975293950000091
Figure BDA0003975293950000092
并进行分发:
医疗机构A的AA节点使用用户A的属性SA和系统主密钥集MKsys(β,gα)为用户A生成相应的属性私钥
Figure BDA0003975293950000093
选择随机数t∈Zp,对于用户A的每个属性i∈SA选择随机数ti∈Zp,计算用户A的属性密钥
Figure BDA0003975293950000094
Figure BDA0003975293950000095
然后将用户A的属性密钥
Figure BDA0003975293950000096
使用用户A的公钥PKA加密成为属性密钥密文CTA发送给用户A;同样的,医疗结构B的AA节点首先使用用户B的属性SB和系统主密钥集MKsys(β,gα)为用户B生成相应的属性私钥
Figure BDA0003975293950000097
选择随机数r∈Zp,对于用户B的每个属性j∈SB选择随机数rj∈Zp,计算用户B的属性密钥
Figure BDA0003975293950000098
Figure BDA0003975293950000099
然后将用户B的属性密钥
Figure BDA00039752939500000914
使用用户B的公钥PKB加密成为密文CTB发送给用户B;
步骤2.5、用户A利用自己的私钥SKA对属性密钥密文CTA进行解密后得到属性密钥
Figure BDA00039752939500000911
用户B利用自己的私钥SKB对属性密钥密文CTB进行解密后得到属性密钥
Figure BDA00039752939500000912
步骤3、医疗数据的加密与存储:用户A通过联盟链和链上智能合约,配合IPFS将医疗数据原始数据经过CP-ABE方案属性加密后存储在IPFS中,将原始医疗数据的哈希值、元数据及在IPFS中的地址存储在区块链上,具体如下:
步骤3.1、当用户A需要共享自己的数据时,用户A首先生成电子医疗数据明文M,然后指定访问树TR,自上而下的为访问树中的节点x随机选择多项式qx,其中多项式的度dx=kx-1;对根节点R,随机选择s∈Zp,令qR(0)=s;对其他节点x,qR(0)=qparent(index(x));然后设Y为TR中的子节点集,得到密文CT:
Figure BDA00039752939500000913
步骤3.2、用户A通过医疗机构A的服务器节点将电子医疗数据密文CT存入IPFS中;
步骤3.3、医疗机构A的服务器节点返回用户A上传的密文数据地址
Figure BDA0003975293950000101
步骤3.4、用户A通过医疗机构A的服务器节点与联盟链进行交互,向联盟链中的节点发起电子医疗数据存储请求,将用户A身份标识IDA、电子医疗数据元数据MetadataA、哈希值HashM、访问控制策略P、以及密文在IPFS中的地址
Figure BDA0003975293950000102
打包成交易
Figure BDA0003975293950000103
后广播到联盟链中;
步骤3.5、联盟链节点在接收到用户A提交的交易后,首先按照背书策略进行背书,对交易提案格式、交易提交重复性、交易签名以及交易提交者权限进行验证,进而模拟执行电子医疗数据,存储智能合约,生成背书响应;在收集到足够的背书响应后,进一步封装并发送至联盟链进行排序;在对交易进行排序打包生成区块之后,联盟链节将交易附上时间戳生成
Figure BDA0003975293950000104
并存入联盟链账本中。
步骤4、医疗数据的获取与访问:当联盟链中的用户B需要访问由属性基加密后的电子医疗数据时,只有用户B的属性满足该密文的访问策略,才可以正确解密进行访问,以此实现对电子医疗数据细粒度的访问控制,具体如下:
步骤4.1、当用户B需要访问用户A共享的电子医疗数据时,用户B通过医疗结构B的服务器与联盟链进行交互,向联盟链中的账本发起电子医疗数据密文获取请求,将用户B的身份标识IDB、属性集SB以及电子医疗数据元数据MetadataM打包成交易Tx(MetadataM,IDB,SB)后广播到联盟链中;
步骤4.2、联盟链中的账本在接收到用户B提交的交易请求之后,查询用户B的属性认证记录,验证用户B的身份标识IDB、属性集SB
步骤4.3、如验证成功则联盟链中的账本继续执行电子医疗数据访问智能合约,若用户B属性集SB符合用户A指定的访问策略P,则将电子医疗数据密文CT在IPFS中的地址
Figure BDA0003975293950000105
返回给用户B;
步骤4.4、用户B调用医疗结构B的服务器在IPFS中对电子医疗数据密文CT进行下载,IPFS将电子医疗数据密文CT返回给用户B;
步骤4.5、用户B输入电子医疗数据密文CT和属性密钥
Figure BDA0003975293950000106
客户端执行解密算法,对于访问树TR,用户B的属性集SB需满足以下属性集中的一个才能成功解密:(参与X课题研究、医院X)、(心脏病专家、心内科)、(心脏病专家、医院Y)、(心内科、医院Y);若上述属性集中一个或多个为用户B属性集SB的子集,则能解密出秘密值;
下面开始解密处理,首先定义递归算法DecryptNode(CT,SK,x),其中
Figure BDA0003975293950000107
Figure BDA0003975293950000111
SK为与属性集S关联的属性密钥,x为访问树中的节点;
若x为叶子节点,令i=attr(x),并且定义如下:若i∈S,则
Figure BDA0003975293950000112
Figure BDA0003975293950000113
则DecryptNode(CT,SK,x)=⊥;
若x为非叶子节点,对于x的所有子节点z,令Fz=DecryptNode(CT,SK,x),设Sx是任意kx大小的满足Fz≠⊥的子节点z的集合;如果不存在这样的集合,则节点不满足,函数返回⊥;否则,计算
Figure BDA0003975293950000114
并且返回结果;
若SB满足访问树TR,设
Figure BDA0003975293950000115
最后计算电子医疗数据明文
Figure BDA0003975293950000116
完成电子医疗数据共享过程。
步骤5、恶意用户追溯:当出现恶意用户E不正当的访问行为,AA利用区块链分布式共识机制完成恶意用户的追溯,确保电子医疗数据的安全使用,具体如下:
步骤5.1、恶意用户篡改电子医疗数据,具体如下:
步骤5.1.1、恶意用户E按照步骤4获取电子医疗数据M;
步骤5.1.2、恶意用户E在M的基础上进行篡改,生成新的电子医疗数据M′,并根据访问策略P对M′进行属性加密生成CT′,然后通过服务器节点将CT′存入IPFS中;
步骤5.1.3、医疗机构E的服务器节点返回恶意用户E上传的密文数据地址
Figure BDA0003975293950000117
步骤5.1.4、恶意用户E通过医疗机构E的服务器与联盟链进行交互,向联盟链中的节点发起数据存储请求,将恶意用户E的身份标识IDB、M′的哈希值HashM′、M的元数据MetadataM、访问控制策略P、以及M′在IPFS中的地址
Figure BDA0003975293950000118
打包成交易
Figure BDA0003975293950000119
后广播到联盟链中;
步骤5.1.5、联盟链节点在接收到恶意用户E提交的交易
Figure BDA00039752939500001110
后,首先按照背书策略进行背书,对交易提案格式、交易提交重复性、交易签名以及交易提交者权限进行验证,进而模拟执行电子医疗数据,存储智能合约,生成背书响应;在收集到足够的背书响应后,进一步将交易进行封装并发送至联盟链进行排序;在对交易进行排序打包生成区块之后,联盟链节点将交易附上时间戳生成
Figure BDA0003975293950000121
并存入联盟链账本中。
步骤5.2、医疗机构A的AA节点对非法用户进行识别和追溯,具体如下:
医疗机构A的AA节点根据M的元数据MetadataM进行追溯,若对MetadataM查询得到两个不同的交易
Figure BDA0003975293950000122
Figure BDA0003975293950000123
对比时间戳先后顺序识别用户E为恶意用户,进行后续追责。
本发明利用联盟链分布式共识机制,解决了传统中心化云服务器不完全可信问题,降低了传统加密方案及中心化CA机构遭受攻击的风险,缓解了CA机构的计算压力,实现分散的电子医疗数据的安全共享。在联盟链中引入AA节点来实现属性认证及恶意行为溯源功能,利用分布式共识实现了属性认证,联盟中的AA节点可以查询用户共享过程记录,实现恶意用户的追溯和追责。通过在链上存储电子医疗数据密文地址,链下IPFS中存储电子医疗数据密文,缓解了区块链链上的存储压力,使得系统的吞吐量大大提高。

Claims (10)

1.一种基于联盟链和CP-ABE的电子医疗数据共享系统,其特征在于,包括联盟链端和医疗机构端,其中联盟链端包括CA、联盟链账本和IPFS,医疗机构端包括服务器和AA;
所述CA,为可信第三方证书授权机构,用于生成和公开系统公共参数;
所述联盟链账本,用于存储交易记录;
所述IPFS,为星际文件系统,用于存储电子医疗数据密文;
所述服务器,用于进行交易过程管理;
所述AA,为属性认证节点,用于管理属性认证和属性密钥分发,实现属性认证和属性密钥分发记录的可追溯和追责。
2.根据权利要求1所述的基于联盟链和CP-ABE的电子医疗数据共享系统,其特征在于,所述电子医疗数据共享系统包括一个联盟链端和多个医疗机构端,每个医疗机构端相对独立,各医疗机构端的数据全部保存于联盟链端的IPFS和联盟链账本中;设定用户A为医疗机构A的用户,用户B为医疗机构B的用户,恶意用户E为医疗机构E的用户。
3.一种基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,包括以下步骤:
步骤1、系统初始化:CA进行系统初始化,公开系统公共参数,并通过加密安全通道将系统主密钥分发给AA节点;
步骤2、属性密钥分发:所有想加入联盟链的用户,均需要在系统内进行注册;AA负责完成用户的注册申请,并通过安全信道为所有注册用户分发用户证书和属性密钥;
步骤3、医疗数据的加密与存储:用户A通过联盟链和链上智能合约,配合IPFS将医疗数据原始数据经过CP-ABE方案属性加密后存储在IPFS中,将原始医疗数据的哈希值、元数据及在IPFS中的地址存储在区块链上;
步骤4、医疗数据的获取与访问:当联盟链中的用户B需要访问由属性基加密后的电子医疗数据时,只有用户B的属性满足该密文的访问策略,才能够正确解密进行访问,以此实现对电子医疗数据细粒度的访问控制;
步骤5、恶意用户追溯:当出现恶意用户E不正当的访问行为,AA利用区块链分布式共识机制完成恶意用户的追溯,确保电子医疗数据的安全使用。
4.根据权利要求3所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤1所述的系统初始化,具体如下:
步骤1.1、系统进行初始化:
CA首先输入系统安全参数λ,生成一个阶为素数p、生成元为g的双线性群G0和一个双线性映射e:G0×G0→G1;接下来选择两个随机指数α,β∈Zp,产生公开参数PKsys(G0,g,h=gβ,e(g,g)α)和主密钥MKsysβ,gα);
步骤1.2、系统密钥分发:
CA在系统内公布公开参数PKsys,联盟链中所有节点和用户都能够获得公开参数PKsys的值;同时,CA通过加密安全通道将主密钥MKsys分别发送给联盟负责属性授权的AA节点。
5.根据权利要求3所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤2所述的属性密钥分发,具体如下:
步骤2.1、加入联盟链的用户A和用户B分别在本地秘密地生成公私密钥对(PKA,SKA)和(PKB,SKB),其中私钥SKA、SKB分别在本地秘密存储;
步骤2.2、用户A和用户B分别向医疗机构A和医疗结构B的服务器节点发送属性认证请求UAR,其中用户UA发送的属性认证请求UARA包括用户A的公钥PKA和用户身份标识IDA,用户UB发送的属性认证请求UARB包括用户B的公钥PKB和用户身份标识IDB
步骤2.3、医疗机构A和医疗结构B的服务器节点分别收到用户A和用户B的属性认证请求并进行身份验证,将用户A的属性集SA和用户B的属性集SB分别发送至医疗机构A和医疗结构B的AA节点,医疗机构A和医疗结构B的AA节点分别验证用户A的属性集SA和用户B的属性集SB并签名,并将带有签名的用户属性集SA和SB发送到系统内其它医疗机构的AA节点,其它医疗机构的AA节点在验证过用户属性集后签名返回背书结果至医疗机构A和医疗结构B的AA节点;在医疗机构A和医疗结构B的AA节点收集到背书策略要求的足够AA节点背书后,将背书结果打包发送给排序节点,排序节点验证签名的有效性,并将结果进行排序打包成区块,然后发给所有AA节点,AA节点对区块进行验证后将其更新到联盟链账本中;
步骤2.4、用户属性认证通过后,医疗机构A和医疗结构B的AA节点分别为用户A和用户B计算属性密钥
Figure FDA0003975293940000021
Figure FDA0003975293940000022
并进行分发:
医疗机构A的AA节点使用用户A的属性SA和系统主密钥集MKsysβ,gα)为用户A生成相应的属性私钥
Figure FDA0003975293940000023
选择随机数t∈Zp,对于用户A的每个属性i∈SA选择随机数ti∈Zp,计算用户A的属性密钥
Figure FDA0003975293940000024
Figure FDA0003975293940000031
然后将用户A的属性密钥
Figure FDA0003975293940000032
使用用户A的公钥PKA加密成为属性密钥密文CTA发送给用户A;同样的,医疗结构B的AA节点首先使用用户B的属性SB和系统主密钥集MKsysβ,gα)为用户B生成相应的属性私钥
Figure FDA0003975293940000033
选择随机数r∈Zp,对于用户B的每个属性j∈SB选择随机数rj∈Zp,计算用户B的属性密钥
Figure FDA0003975293940000034
Figure FDA0003975293940000035
然后将用户B的属性密钥
Figure FDA0003975293940000036
使用用户B的公钥PKB加密成为密文CTB发送给用户B;
步骤2.5、用户A利用自己的私钥SKA对属性密钥密文CTA进行解密后得到属性密钥
Figure FDA0003975293940000037
用户B利用自己的私钥SKB对属性密钥密文CTB进行解密后得到属性密钥
Figure FDA0003975293940000038
6.根据权利要求3所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤3所述的电子医疗数据的加密与存储,具体如下:
步骤3.1、当用户A需要共享自己的数据时,用户A首先生成电子医疗数据明文M,然后指定访问树TR,自上而下的为访问树中的节点x随机选择多项式qx,其中多项式的度dx=kx-1;对根节点R,随机选择s∈Zp,令qR(0)=s;对其他节点x,qR(0)=qparent(index(x));然后设Y为TR中的子节点集,得到密文CT:
Figure FDA0003975293940000039
步骤3.2、用户A通过医疗机构A的服务器节点将电子医疗数据密文CT存入IPFS中;
步骤3.3、医疗机构A的服务器节点返回用户A上传的密文数据地址
Figure FDA00039752939400000310
步骤3.4、用户A通过医疗机构A的服务器节点与联盟链进行交互,向联盟链中的节点发起电子医疗数据存储请求,将用户A身份标识IDA、电子医疗数据元数据MetadataA、哈希值HashM、访问控制策略P、以及密文在IPFS中的地址
Figure FDA00039752939400000311
打包成交易
Figure FDA00039752939400000312
后广播到联盟链中;
步骤3.5、联盟链节点在接收到用户A提交的交易后,首先按照背书策略进行背书,对交易提案格式、交易提交重复性、交易签名以及交易提交者权限进行验证,进而模拟执行电子医疗数据,存储智能合约,生成背书响应;在收集到足够的背书响应后,进一步封装并发送至联盟链进行排序;在对交易进行排序打包生成区块之后,联盟链节将交易附上时间戳生成
Figure FDA00039752939400000313
并存入联盟链账本中。
7.根据权利要求3所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤4所述的电子医疗数据的获取与访问,具体如下:
步骤4.1、当用户B需要访问用户A共享的电子医疗数据时,用户B通过医疗结构B的服务器与联盟链进行交互,向联盟链中的账本发起电子医疗数据密文获取请求,将用户B的身份标识IDB、属性集SB以及电子医疗数据元数据MetadataM打包成交易Tx(MetadataM,IDB,SB)后广播到联盟链中;
步骤4.2、联盟链中的账本在接收到用户B提交的交易请求之后,查询用户B的属性认证记录,验证用户B的身份标识IDB、属性集SB
步骤4.3、如验证成功则联盟链中的账本继续执行电子医疗数据访问智能合约,若用户B属性集SB符合用户A指定的访问策略P,则将电子医疗数据密文CT在IPFS中的地址
Figure FDA0003975293940000041
返回给用户B;
步骤4.4、用户B调用医疗结构B的服务器在IPFS中对电子医疗数据密文CT进行下载,IPFS将电子医疗数据密文CT返回给用户B;
步骤4.5、用户B输入电子医疗数据密文CT和属性密钥
Figure FDA0003975293940000042
客户端执行解密算法,对于访问树TR,用户B的属性集SB需满足以下属性集中的一个才能成功解密:(参与X课题研究、医院X)、(心脏病专家、心内科)、(心脏病专家、医院Y)、(心内科、医院Y);若上述属性集中一个或多个为用户B属性集SB的子集,则能解密出秘密值;
下面开始解密处理,首先定义递归算法DecryptNode(CT,SK,x),其中
Figure FDA0003975293940000043
Figure FDA0003975293940000044
SK为与属性集S关联的属性密钥,x为访问树中的节点;
若x为叶子节点,令i=attr(x),并且定义如下:若i∈S,则
Figure FDA0003975293940000045
Figure FDA0003975293940000046
则DecryptNode(CT,SK,x)=⊥;
若x为非叶子节点,对于x的所有子节点z,令Fz=DecryptNode(CT,SK,x),设Sx是任意kx大小的满足Fz≠⊥的子节点z的集合;如果不存在这样的集合,则节点不满足,函数返回⊥;否则,计算
Figure FDA0003975293940000047
并且返回结果;若SB满足访问树TR,设
Figure FDA0003975293940000048
最后计算电子医疗数据明文
Figure FDA0003975293940000049
完成电子医疗数据共享过程。
8.根据权利要求3所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤5所述的恶意用户追溯,具体如下:
步骤5.1、恶意用户篡改电子医疗数据;
步骤5.2、医疗机构A的AA节点对非法用户进行识别和追溯。
9.根据权利要求8所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤5.1所述的恶意用户篡改电子医疗数据,具体如下:
步骤5.1.1、恶意用户E按照步骤4获取电子医疗数据M;
步骤5.1.2、恶意用户E在M的基础上进行篡改,生成新的电子医疗数据M′,并根据访问策略P对M′进行属性加密生成CT′,然后通过服务器节点将CT′存入IPFS中;
步骤5.1.3、医疗机构E的服务器节点返回恶意用户E上传的密文数据地址
Figure FDA0003975293940000051
步骤5.1.4、恶意用户E通过医疗机构E的服务器与联盟链进行交互,向联盟链中的节点发起数据存储请求,将恶意用户E的身份标识IDB、M′的哈希值HashM′、M的元数据MetadataM、访问控制策略P、以及M′在IPFS中的地址
Figure FDA0003975293940000052
打包成交易
Figure FDA0003975293940000053
后广播到联盟链中;
步骤5.1.5、联盟链节点在接收到恶意用户E提交的交易
Figure FDA0003975293940000054
后,首先按照背书策略进行背书,对交易提案格式、交易提交重复性、交易签名以及交易提交者权限进行验证,进而模拟执行电子医疗数据,存储智能合约,生成背书响应;在收集到足够的背书响应后,进一步将交易进行封装并发送至联盟链进行排序;在对交易进行排序打包生成区块之后,联盟链节点将交易附上时间戳生成
Figure FDA0003975293940000055
并存入联盟链账本中。
10.根据权利要求8所述的基于联盟链和CP-ABE的电子医疗数据共享方法,其特征在于,步骤5.2所述的医疗机构A的AA节点对非法用户进行识别和追溯,具体如下:
医疗机构A的AA节点根据M的元数据MetadataM进行追溯,若对MetadataM查询得到两个不同的交易
Figure FDA0003975293940000056
Figure FDA0003975293940000057
对比时间戳先后顺序识别用户E为恶意用户,进行后续追责。
CN202211527224.9A 2022-12-01 2022-12-01 基于联盟链和cp-abe的电子医疗数据共享系统及方法 Pending CN115883214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211527224.9A CN115883214A (zh) 2022-12-01 2022-12-01 基于联盟链和cp-abe的电子医疗数据共享系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211527224.9A CN115883214A (zh) 2022-12-01 2022-12-01 基于联盟链和cp-abe的电子医疗数据共享系统及方法

Publications (1)

Publication Number Publication Date
CN115883214A true CN115883214A (zh) 2023-03-31

Family

ID=85765184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211527224.9A Pending CN115883214A (zh) 2022-12-01 2022-12-01 基于联盟链和cp-abe的电子医疗数据共享系统及方法

Country Status (1)

Country Link
CN (1) CN115883214A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116185974A (zh) * 2023-04-28 2023-05-30 北京市农林科学院信息技术研究中心 基于区块链的渔业种质资源数据共享方法及系统
CN117390699A (zh) * 2023-11-09 2024-01-12 河南大学 基于区块链的隐私保护在线医疗预诊断方法和系统
CN117574440A (zh) * 2024-01-17 2024-02-20 浙江大学 基于多种签名技术的联盟链医疗数据确权溯源方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116185974A (zh) * 2023-04-28 2023-05-30 北京市农林科学院信息技术研究中心 基于区块链的渔业种质资源数据共享方法及系统
CN116185974B (zh) * 2023-04-28 2023-08-04 北京市农林科学院信息技术研究中心 基于区块链的渔业种质资源数据共享方法及系统
CN117390699A (zh) * 2023-11-09 2024-01-12 河南大学 基于区块链的隐私保护在线医疗预诊断方法和系统
CN117574440A (zh) * 2024-01-17 2024-02-20 浙江大学 基于多种签名技术的联盟链医疗数据确权溯源方法及系统
CN117574440B (zh) * 2024-01-17 2024-04-30 浙江大学 基于多种签名技术的联盟链医疗数据确权溯源方法及系统

Similar Documents

Publication Publication Date Title
CN112989415B (zh) 一种基于区块链的隐私数据存储与访问控制方法及系统
Liang et al. PDPChain: A consortium blockchain-based privacy protection scheme for personal data
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US20230070963A1 (en) Blockchain-implemented method for control and distribution of digital content
WO2022042301A1 (zh) 一种数据处理方法、装置、智能设备及存储介质
Zhu et al. TBAC: Transaction-based access control on blockchain for resource sharing with cryptographically decentralized authorization
US20210089676A1 (en) Methods and systems for secure data exchange
CN111371561A (zh) 基于cp-abe算法的联盟区块链数据访问控制方法
Wang et al. Security-aware and privacy-preserving personal health record sharing using consortium blockchain
CN111797415A (zh) 基于区块链的数据共享方法、电子设备和存储介质
KR102307574B1 (ko) 블록체인을 기반으로 한 클라우드 데이터 저장 시스템 및 데이터 저장 방법
WO2014086166A1 (zh) 一种预防性电子数据保全的方法及系统
CN115883214A (zh) 基于联盟链和cp-abe的电子医疗数据共享系统及方法
CN113326541B (zh) 一种基于智能合约的云边协同多模式隐私数据流转方法
US8806206B2 (en) Cooperation method and system of hardware secure units, and application device
CN106789080A (zh) 数字签名生成方法和系统
CN113065961A (zh) 一种电力区块链数据管理系统
CN111010430B (zh) 一种基于双链结构的云计算安全数据共享方法
CN115065679B (zh) 基于区块链的电子健康档案共享模型、方法、系统和介质
Win et al. Privacy enabled digital rights management without trusted third party assumption
Ramesh et al. Blockchain based efficient tamper-proof EHR storage for decentralized cloud-assisted storage
CN114553582A (zh) 基于国密算法和ipfs的电子病历共享方法
Guo et al. Using blockchain to control access to cloud data
Mittal et al. A novel two-level secure access control approach for blockchain platform in healthcare
CN113673893A (zh) 退役动力电池管理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination