基于区块链的电子医疗记录存储和共享的模型及方法与流程

文档序号:16848254发布日期:2019-02-12 22:30阅读:366来源:国知局
基于区块链的电子医疗记录存储和共享的模型及方法与流程

本发明属于信息安全技术领域,特别涉及改进的股份授权证明机制dpos、智能合约、云存储以及可截取签名等技术,具体是一种基于区块链的电子医疗记录存储和共享的模型及方法,可用于区块链技术下的数据安全存储与共享。



背景技术:

随着互联网、云计算、物联网技术的快速发展,数据规模急剧增大,“互联网+健康医疗”和“医疗健康大数据”等概念也随之而来。作为医疗大数据的重要数据来源,电子病历(electronicmedicalrecord,emr)的共享在医院发展、临床服务和临床科研等领域都有巨大的应用价值。其实,早在20世纪90年代,美英等西方国家已经开始推进emr的研究,而我国在这方面的研究起步较晚,2009年中共中央国务院发布的《意见》中,特别提出“以建立居民健康档案为重点,推进医院信息化建设”。

电子病历(emr)是由医疗机构以电子化方式创建、保存和使用的,重点针对门诊、住院患者(或保健对象)临床诊疗和指导干预信息的数据集成系统。电子病历发展的最终目的是实现信息共享,其优势在于不同医疗机构可以使用这些数据与其它电子健康记录数据相关联,以便于健康监测,疾病诊断和治疗,减少医疗错误。共享电子病历还能实现远程医疗以及通过多家医院的会诊制定准确及时的治疗方案。

然而现阶段还是以纸质病历为主且由具有中心化特点的医疗机构保存,患者很难获取所需的医疗记录和病史情况,影响就医质量。医疗机构之间无法共享数据,不利于医学研究。而且传统的中心化网络容易遭受攻击,导致数据泄露,比如anthem曾泄露过8000万病人及相关人员记录,uclahealth曾泄露过450万病人数据。幸运的是,区块链技术的诞生提供了一种解决医疗“孤岛信息”现象的可能性。它提出了一种可去除中间机构、增加数据安全性、分布式共享的全新模式。

区块链技术是比特币的底层支撑技术,被认为是继大型计算机、个人计算机、互联网、移动社交之后的第五次颠覆式计算范式。其核心技术包括分布式账本技术、非对称加密算法以及智能合约等,具有去中心化、高冗余存储、防篡改以及高安全性等特征。基于区块链技术的上述特征,被广泛应用于金融、选举、医疗、供应链等各大领域。其中,医疗健康领域可能将会是继金融领域之后的第二大应用市场。当面向医疗数据跨院诊治数据共享时,区块链上所有的病历信息都将含有不同的时间戳和加密密钥,通过这种方式将患者的病历数据存储在分布式的服务器上。由于记账的过程采用了一系列数据加密、签名和完整性验证,这些分布存储的病历数据无法被随意篡改,它们只会被记录在相同的服务器或者患者的病历中,以此来提高病历数据的保密性。

但是,管理医疗数据,获取、存储、共享都不是简单的任务,尤其是隐私问题。电子医疗记录包含大量个人信息,多国的法律法规明确规定电子医疗记录的使用要注意病人的隐私保护。比如病人通过出示有效的处方在电商药店购买药物时并不想透漏自己的真实姓名身份证号码等信息,以科学研究为目的的数据使用并不需要知道患者的真实姓名、身份证号码等信息,使用时应将这些敏感个人隐私数据从患者健康数据中删除。因此,可截取签名非常适用于电子医疗记录,患者可以根据自己的意愿删除个人隐私数据,无需交互就可获得有效的截取签名。

区块链技术可以帮助医生、病人和研究人员快速安全地认证权限,实现自由的数据访问和分享。因此,目前区块链在医疗领域的应用和研究备受关注,位于瑞士的healthbank公司是全球数字健康的创新者,通过区块链采用透明化的方式处理健康系统的事务,保证了健康数据存储的绝对安全。gemhealth联手飞利浦区块链实验室构建了一个包含区块链的健康生态系统,推动全球医疗一体化,使得医疗健康更加个性化和平民化。在国内,阿里健康与常州市合作的医联体(区域医疗联合体)+区块链试点项目最引人注目。但现阶段还没有具体明确实施方案或方法的披露。

现阶段医疗机构还是以纸质病历为主且由具有中心化特点的医疗机构保存,患者很难获取所需的医疗记录和病史情况,影响就医质量。医疗机构之间无法共享数据,不利于医学研究。电子病历发展的最终目的是实现信息共享,其优势在于不同医疗机构可以使用这些数据与其它电子健康记录数据相关联以便进行治疗或者科学研究。但传统的中心化网络容易遭受攻击,导致数据泄露。且医疗数据中经常涉及病人的敏感信息,医疗数据的分散性和信息流转特性使得联盟区块链非常适用。但现有的股份授权证明机制dpos的预选节点是由101家机构充当的,这样的dpos共识机制是根据股份授权来确定代表节点的,而显然关系病人健康和医学研究的医疗领域不能根据股份授权的选择标准来确定代表节点,因为它需要医疗水平高、具有权威性的医疗机构作为代表节点来评判医疗数据的发布的合法性及医疗数据共享的访问权限,只有这样才具有科学性,因此现有的dpos机制不能适用于医疗领域。



技术实现要素:

本发明的目的在于针对上述的不足,提出一种使得医疗数据能安全地得到存储与共享的基于区块链的电子医疗记录安全存储和共享模型及方法。

本发明首先是一种基于区块链的电子医疗记录安全存储和共享的模型,其特征在于,包括有数据创建者、数据所有者、云存储、联盟区块链及数据使用者,数据创建者首先将病人的电子医疗记录发给数据所有者;数据所有者根据可截取规则截取数据后,经加密后存入云端;数据所有者将存入云端的医疗数据的引用发布于联盟区块链中,并利用智能合约设置访问权限;数据使用者得到联盟区块链的访问申请通过后,在云存储中解密后得到想要访问的数据;

数据创建者是医疗机构或者医生,数据所有者是病人,数据使用者是医生或医疗机构或者研究所或其他想要获取数据者。

本发明还是一种基于区块链的电子医疗记录安全存储和共享的方法,在权利要求1—3的基于区块链的电子医疗记录安全存储和共享的模型上使用,其特征在于,包括有如下步骤:

(1)模型初始化:联盟区块链中的证书颁发(认证)机构ca负责为每个新用户颁发证书,证书包括账户id,公私钥对(pk,sk);病人个人信息的电子病历、检查报告等医疗数据,按照医疗数据分类,细化医疗数据为m={姓名,性别,年龄,身份证号码,病史,体检或化验单,医药处方},记为m=(m1,m2,m3,m4,m5,m6,m7};

(2)数据获取:数据创建者(医疗机构)将数据m划分为n段后执行可修订签名并将签名和原始emrs发给数据所有者:

(2a)将病人的电子医疗数据m划分为n段,即:m={mi|i=1,2,…,n};

(2b)随机选取一个整数计算r=gk(modp);

(2c)对原始数据m的每个子数据mi,求哈希值hi=h(mi‖ceas‖t‖i),1≤i≤7,其中ceas为可截取签名的截取规则,t为ceas标记;

(2d)计算子数据mi的签名,δi=(hi-ar)k-1mod(p-1),1≤i≤7;

(2e)输出数据m的全局签名δfull=(ceas‖t‖δ1‖δ2‖…‖δ7);

(2f)数据创建者将原始医疗数据mi、哈希值hi、全局签名δfull、ceas以及标记t级联后用医生的对称密钥加密,再将加密密钥kdoc用病人的公钥pkpat加密后一起发送给病人;

(3)采用截取签名的数据存储:数据所有者(病人)收到医生发来的医疗数据后,用自己的私钥skpat解密出医疗数据的加密密钥kdoc,然后解密出原始医疗数据mi,其次验证全局签名δfull的正确性,若正确,数据所有者将生成修订签名(截取签名)并将修订签名、原始数据的密文存入云端,其步骤如下:

(3a)对数据m的每个子数据mi,计算hi=h(mi‖ceas‖t‖i),其中1≤i≤7;

(3b)从全局签名δfull中得到δi并验证是否成立,即若签名δfull验证通过,则执行下面的步骤,否则返回失败;

(3c)病人按照医生规定的ceas和自己的意愿,截取相应子数据的签名;

(3d)数据所有者将截取后的医疗数据和对应的截取签名加密存放到云存储中;

(4)采用改进的dpos共识机制的数据发布:病人将医疗数据存放在云存储后,病人须将元数据、哈希值和签名存放于联盟区块链,并利用智能合约设置访问权限,其步骤如下:

(4a)病人采用自己独一无二的身份账号idpat(无关个人身份隐私)在区块链上注册并登录;

(4b)对于子数据编号i∈ci(m′),患者用自己的私钥skpat对元数据metadatai,原始数据哈希值hi和时间戳t进行普通数字签名,得到

(4c)请求将该医疗记录存储在区块链,发布请求:

(4d)区块链网络中的当值代表节点接受交易请求并负责生成有效区块,用改进的dpos共识机制进行区块共识;

(5)基于智能合约的数据共享:数据使用者向区块链提交访问申请,须提供自己的公钥,访问对象,访问目的等信息,基于cp-abe访问控制即区块链访问权限认证,利用urlsi即可获取emrs,并且通过哈希值和签名验证原始数据的完整性和有效性,该过程有以下步骤:

(5a)cp-abe访问控制;

(5b)云存储中的医疗数据共享;

(5c)数据使用者验证签名δext以确保所需原始医疗数据mi的有效性和完整性,如果截取签名验证通过,则表明原始医疗数据未被篡改,该用户可进行访问操作,获得共享数据,如果验证未通过,用户将此消息通知云存储管理者进行处理。

本发明有效实现病人对个人医疗数据的所有权和访问权限的控制以及对敏感医疗数据的安全存储与共享。

本发明与现有技术相比具有以下优点:

1)安全性:

本发明中医疗数据的存储利用标准的对称加密和非对称加密技术,对传统的安全攻击具有良好的抵御能力。例如,通过加密和验证机制,攻击者无法通过短时间的暴力破解打开加密信息;时间戳的加入很好地抵御了重放攻击;在通信的过程中,通信节点使用数字签名技术抵御攻击者伪装成合法实体或者伪造虚假信息的攻击;任何实体在没有签名者的私钥的情况下,无法伪造其他实体的数字签名;合法实体能通过数字签名技术验证接收信息的发送者以及查验接收的信息是否被更改过。这些技术可以保证电子医疗数据的真实性和有效性。

2)可靠性:

①权威性:本发明基于联盟区块链基础架构,其共识流程由部分预选节点控制,而不是整个网络的所有节点,从而大大减少网络开销。此外,使用改进的dpos共识,选定的医疗机构在排名上具有影响力和权威性,从而保证了数据共享的可靠性。

②防篡改:医疗联盟链上的所有信息都是公开不可篡改的,每个数据区块都加盖有时间戳,按照一定的时序排列。分布式共识机制使信任建立在密码算法的基础之上,无需依赖可信第三方。数据一旦被写入到医疗链中就无法被篡改,因为每个区块都保存了其前一个区块的哈希,如果要修改某个区块的数据至少需要全网51%以上的算力,这几乎是不可能的事。本发明医疗链中保存了医疗记录的原始数据的哈希,对原始数据的任何改变都会引起其哈希值的改变,所以这也直接保证了医疗记录的不可篡改性。

3)隐私保护:

由于病人的电子病历包含了很多敏感信息,如姓名,身份证号,特殊病情等,不想被公开传播。由于以下技术特点,本发明的隐私得到了很好的保护。

①匿名交易:区块链上的每个节点都匿名参与交易,用户可以为每个交易使用不同的公钥和私钥对。另外,区块链的共识机制解决了对等网络中的信任问题,因此数据传输甚至交易都可以是匿名的,只需要知道用户的区块链地址即可。

②云存储:医疗记录原始数据都加密存放在云存储中。以这种方式,区块链存储容量有限的问题得以解决同时也很大限度地减少了原始医疗数据在区块链的公开并安全存储数据。

③可截取签名:本发明在医生签署医疗数据时采用可截取签名,目的是方便病人对自己的敏感数据进行截取,无需多次交互即可获得有效签名。可截取签名的引入,从一开始就减少了敏感数据的传输。和普通数字签名一样,任何实体在没有签名者的私钥的情况下,无法伪造其他实体的数字签名。

4)安全存储:

数据的存储安全是医疗联盟链的重要特性,在本方面的方案中,用户对自己的医疗记录具有所有权,并完全控制它的使用。从数据的生产到数据的使用过程都是安全的。

①病人将原始数据和签名加密后存储在链下的云存储中,云存储的分布式特点保证了数据存储的安全性。

②医疗记录的公开信息(元数据,哈希值,访问权限)都存储在区块链上,公共可见无法修改。区块链是个安全可靠的分布式数据库,从而避免了中心化机构容易遭受攻击而导致数据泄露的风险。而且区块链上的每个节点存储着相同的数据,单点攻击不会影响整个系统。这种非中心化的存储系统具有良好的可扩展性和可靠性。

③数据共享权限完全由用户自己预定义在智能合约,只有已授权的用户或机构才可以访问数据,访问交易也会被记录。由于时间戳的存在,违背规则或恶意使用数据的行为均可被追溯。用户有权撤销其访问权并使其接受审计。

附图说明

图1是本发明的实现总流程图;

图2是本发明中签名生成算法sig的子流程图;

图3是本发明中医疗记录数据存储的子流程图;

图4是本发明中医疗记录数据存储中可截取签名算法的子流程图;

图5是本发明中基本密文访问控制方案(bcac)的子流程图。

具体实施方式

下面结合附图对本发明的实施例和效果做详细的描述。

实施例1

由于现阶段还是以纸质病历为主且由具有中心化特点的医疗机构保存,患者很难获取所需的医疗记录和病史情况,影响就医质量;医疗机构之间无法共享数据,不利于医学研究;传统的中心化网络容易遭受攻击,导致数据泄露;病历数据被人随意篡改的情况频繁发生;病人敏感信息无法得到隐私保护等。为此,本发明提出一种基于区块链的电子医疗记录安全存储和共享的模型。

本发明基于区块链的电子医疗记录安全存储和共享的模型,参见图1,包括有数据创建者、数据所有者、云存储、联盟区块链及数据使用者,数据创建者首先将病人的电子医疗记录发给数据所有者;数据所有者根据可截取规则截取数据后,经加密后存入云端即云存储;数据所有者将存入云端的医疗数据的引用发布于联盟区块链中,并利用智能合约设置访问权限;数据使用者得到联盟区块链的访问申请通过后,在云存储中解密后得到想要访问的数据。

数据创建者是医疗机构或者医生,数据所有者是病人,数据使用者是医生或医疗机构或者研究所或其他想要获取数据者。

从该模型的结构上来看,数据创建者作为整个模型的数据源,有着指向数据所有者的单向数据流向;作为整个模型控制中心的联盟区块链,它与其它四个重要节点即模型的其他四个构成部分有着密切的联系:数据所有者将病历数据的发布请求及智能合约访问权限发向联盟区块链,联盟区块链请求通过后,会设置智能合约,它们之间是数据所有者指向联盟区块链的单向关系;数据使用者(包括数据创建者)将请求访问的信息的数据流发送到联盟区块链,联盟区块链通过审核后,会将数据在云端的链接反馈给数据使用者,数据使用者和联盟区块链之间是双向链接的关系。云端存储病人的医疗数据,联盟区块链里存储的病人医疗数据的引用及其它的控制信息,云端和联盟区块链数据链路层上没有直接的数据流向,但网络层上有着引用联系。作为整个模型存储中心的云端,数据所有者将加密后的医疗数据指向云端,云端会返回医疗数据在其的链接给数据所有者,数据使用者和云端之间是双向链接的关系;数据使用者通过联盟区块链返回给其的数据访问链接,去访问云端,云端会将医疗数据返回给数据使用者,数据用者和云端之间是双向链接的关系。

实施例2

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1,在本发明中,联盟区块链是整个模型的控制中心,其中的证书颁发(认证)机构ca负责为每个新用户(数据创建者或数据所有者)颁发证书,证书包括账户id,公私钥对(pk,sk),为实现医疗数据的共享,数据所有者首先须采用自己独一无二的身份账号在联盟区块链上注册并登录;由于联盟区块链的存储容量受限制,所以个人医疗记录都加密存放在的云存储中,区块链中只保留对数据在云存储中的引用即元数据、哈希值和签名,患者用自己的私钥skpat对元数据metadatai,原始数据哈希值hi和时间戳t进行普通数字签名,生成将该医疗记录存储在区块链的请求。本发明采用改进的dpos共识机制进行区块共识,其中的当值代表节点rpn验证每笔交易,在本发明中当值代表节点rpn指医疗水平高、信誉良好的权威医疗机构的代表,当值代表节点rpn并把这段时间内所有收集到的有效数据整合成数据集合,再附上自己的数字签名和新数据区块的哈希值构成新数据块,并向其他审计节点atns广播新生成的数据区块以待验证,在本发明中审计节点atns是指其它的医疗水平高、信誉良好、有机会成为代表的权威医疗机构,一般每个atn收到数据区块后,通过rpn发送过来的区块哈希值和数字签名等信息验证数据区块的合法性和正确性,并把它的审计结果附上自己的数字签名并用rpn的公钥加密后作为回复发送给当值代表点,rpn查看所有atns的审计回复,若审计通过的票数超过51%则认为区块生成成功。rpn将把数据区块连同审计节点atns的公钥集合和对应的数字签名整合后发送给所有节点,所有节点更新数据以成为有效区块;根据数据创建者设置的访问权限,设置智能合约。基于cp-abe访问控制即区块链访问权限认证,数据使用者想要得到病人的医疗数据时须向联盟区块链提交访问申请,访问申请中包括数据使用者自己的公钥,访问对象,访问目的等信息,若访问申请通过,根据数据访问者的身份信息来判断是否满足病人预先设定好的访问条件,如果满足,则触发智能合约用患者提供的私钥将元数据解密,并返回给数据使用者的公钥对元数据加密的密文信息,然后利用数据存储的链接获取病历数据,并且通过哈希值和签名验证原始数据的完整性和有效性。

实施例3

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-2,联盟区块链上所有的病历数据的引用都将含有不同的时间戳和加密密钥,即对于医疗子数据,患者用自己的私钥skpat对元数据metadatai,原始数据哈希值hi和时间戳t进行普通数字签名,得到然后向联盟区块链发布请求,区块链网络中的当值代表节点采用改进的dpos共识机制接受交易请求并进行区块共识。当值代表节点rpn验证每笔交易,并把这段时间内所有收集到的有效数据整合成数据集合(表示为mset={req‖t}),再附上自己的数字签名和新数据区块的哈希值构成新数据块,并向其他审计节点atns广播新生成的数据区块以待验证。每个atn收到数据区块后,通过rpn发送过来的区块哈希值和数字签名等信息验证数据区块的合法性和正确性,并把它的审计结果(result)附上自己的数字签名并用rpn的公钥加密后作为回复(reply)发送给当值代表节点。rpn查看所有atns的审计回复,若审计通过的票数超过51%则认为区块生成成功。rpn将把数据区块连同审计节点atns的公钥集合和对应的数字签名整合后发送给所有节点,所有节点更新数据。此后,该数据区块将以时间先后顺序存储在联盟链中,该当值代表节点和参与审计的节点都将获得信用积分的奖励。请求通过后,患者将这些医疗数据的引用存储在分布式的服务器上。由于记账的过程采用了一系列数据加密、签名和完整性验证,这些分布式存储的病历数据无法被随意篡改,因此使得本模型具有去中心化、防篡改以及高安全性等特征。

实施例4

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-3,

本发明还是基于区块链的电子医疗记录安全存储和共享的方法。在上述的基于区块链的电子医疗记录安全存储和共享的模型上使用,参见图1,包括有如下步骤:

(1)模型初始化:联盟区块链中的证书颁发机构ca负责为每个新用户颁发证书,证书包括账户id,公私钥对(pk,sk),对于每个有加密解密需求的新用户即数据创建者、数据所有者及数据使用者均需要初始化,得到属于自己的公私钥对(pk,sk),另外有的可能还需要对称加密密钥。本发明采用现有的一种可截取签名算法设计签名,数字签名技术的使用能够抵御攻击者伪装成合法实体或者伪造虚假信息的攻击。数据创建者执行以下操作:密钥生成算法gk:设p是一个使得在乘法循环群zp上离散对数问题难处理的素数,是一个本原元,h为哈希函数,随机选取整数计算v=ga(modp),则签名者的公钥pkdoc={p,g,v},私钥skdoc=a。

(2)数据创建者获取数据:数据创建者(医疗机构)将医疗数据m划分为n段后执行可修订签名并将签名和原始电子病历emrs发给数据所有者:

(2a)病人在医院看病或在医院等医疗机构做检查时,医生会为该病人产生包含病人个人信息的电子病历、检查报告等医疗数据,数据创建者将病人的电子医疗数据m划分为n段,即:m={mi|i=1,2,…,n},其中包括姓名,性别,年龄,身份证号码,病史,体检或化验单,医药处方,相似病历等医疗重要信息。这里的n可以灵活地根据实际情况和需求进行设计。

(2b)数据创建者随机选取一个整数计算r=gk(modp)。

(2c)数据创建者对原始数据m的每个子数据mi,计算哈希值hi=h(mi‖ceas‖t‖i),1≤i≤7,其中ceas为可截取签名的截取规则,t为ceas标记,截取规则是医生在去除病人隐私的前提下,最大化保留对病人医疗数据有效性的规定,比如:病人的性别和年龄是影响一部分病理的重要参考因素,因此数据创建者针对这种情况,就需要把性别和年龄设为必须截取的对象,而病人的姓名和身份证信息,电话等联系方式是病人的隐私,也是对医疗数据没有太大关系的,就可以设置为非截取对象。采用ceas的截取签名能在保证医疗数据的有效性的前提下最大化保护病人的隐私。

(2d)数据创建者计算每个子数据mi的签名,即:δi=(hi-ar)k-1mod(p-1),1≤i≤7。

(2e)数据创建者得到完整数据m的全局签名δfull=(ceas‖t‖δ1‖δ2‖…‖δ7)。

(2f)数据创建者将原始医疗数据mi、哈希值hi、全局签名δfull、ceas以及标记t级联后用医生的对称密钥加密,再将加密密钥kdoc用病人的公钥pkpat加密后一起发送给病人,即:

通过对医疗数据进行对称加密,对对称加密的密钥采用非对称加密。攻击者无法通过短时间的暴力破解打开加密信息,使得这些医疗数据具有对传统安全攻击良好的抵御能力。

(3)采用截取签名的数据存储:数据所有者(病人)收到数据创建者发来的医疗数据及加密的密钥后,用自己的私钥skpat解密出医疗数据的加密密钥kdoc,然后解密出原始医疗数据mi,其次验证全局签名δfull的正确性,若正确,数据所有者将生成修订签名(截取签名)并将截取签名、原始数据的密文存入云端,其步骤如下:

(3a)数据所有者解密出数据m的每个子数据mi后,计算每个子数据的哈希值hi=h(mi‖ceas‖t‖i),其中1≤i≤7。

(3b)从全局签名δfull中得到每个子数据mi的签名δi,并验证是否成立,

若签名δfull验证通过,则执行下面的步骤,否则返回失败。数据所有者能通过数字签名技术验证接收来的医疗数据的发送者的身份以及查验所得的医疗数据是否被更改过,该技术可以保证电子医疗数据的真实性和有效性。

(3c)病人按照医生规定的截取规则ceas和自己的隐私保护意愿,比如:病人希望保护自己的姓名和地址,而这些需求又满足截取规则ceas,所以病人可以将这部分数据进行隐藏。截取相应子数据的签名,方便了病人对自己的敏感数据进行保护,无需多次交互即可获得有效签名。可截取签名的引入,从一开始就减少了病人敏感数据的传输。

(3d)数据所有者将截取后的医疗数据和对应的截取签名加密存放到云存储中,原始医疗数据都加密存放在链下的云存储中,为实现医疗数据的共享打下基础。以这种方式,区块链存储容量有限的问题得以解决同时也很大限度地减少了原始医疗数据在区块链的公开并安全存储数据,而且云存储的分布式特点也保证了数据存储的安全性。

(4)采用改进的dpos共识机制的数据发布:病人将医疗数据存放在云存储后,为了能真正安全可靠的实现医疗数据的共享,病人须将自己医疗数据的引用即元数据、哈希值和签名存放于联盟区块链,并利用智能合约设置访问权限。医疗联盟链上的所有信息都是公开不可篡改的,每个数据区块都加盖有时间戳,按照一定的时序排列。分布式共识机制使信任建立在密码算法的基础之上,无需依赖可信第三方。数据一旦被写入到联盟区块链中就无法被篡改,因为每个区块都保存了其前一个区块的哈希,如果要修改某个区块的数据至少需要全网51%以上的算力,这几乎是不可能的事。本发明医疗链中保存了医疗记录的原始数据的哈希,对原始数据的任何改变都会引起其哈希值的改变,所以这也直接保证了医疗记录的不可篡改性。该模型中数据发布的步骤如下:

(4a)数据所有者在联盟区块链上注册后采用自己独一无二的身份账号idpat(无关个人身份隐私)在联盟区块链上登录。

(4b)数据所有者对于子数据编号i∈ci(m′),患者用自己的私钥skpat对元数据metadatai,原始数据哈希值hi和时间戳t进行数字签名,得到其中时间戳的加入能够很好地抵御重放攻击。

(4c)数据所有者请求将该医疗数据的引用存储在区块链,发布请求req:

区块链是个安全可靠的分布式数据库,避免了中心化机构容易遭受攻击而导致数据泄露的风险。而且区块链上的每个节点存储着相同的数据,单点攻击不会影响整个系统,这种非中心化的存储系统具有良好的可扩展性和可靠性。

(4d)区块链网络中的当值代表节点接受交易请求并负责生成有效区块,本发明基于联盟区块链基础架构,其共识流程由部分预选节点控制,而不是整个网络的所有节点,大大减少网络开销。区块链的共识机制解决了对等网络中的信任问题,因此数据传输甚至交易都可以是匿名的,只需要知道用户的区块链地址即可。本发明采用改进的dpos共识机制进行区块共识,选定的医疗机构在排名上具有影响力和权威性,保证了数据共享的可靠性

(5)基于智能合约的数据共享:随着社会进步,人们对自己健康的关注越来越多,社会医疗水平的提高除了医疗技术的进步,还有一个不能忽视的是医疗数据的共享。医疗数据是病人病理情况,治疗情况,治疗史的纪录,对病人进一步的治疗、科研机构对该病理的医学研究以及其他相同病理或相似病理病人的治疗,有着非常重要的参考价值,因此数据共享的重要性不言而喻。数据使用者想要获取病人的医疗数据,其须向区块链提交访问申请,需提供自己的公钥,访问对象,访问目的等信息,基于cp-abe访问控制即区块链访问权限认证,利用数据访问链接urlsi即可获取电子病历数据emrs,并且通过哈希值和签名验证原始数据的完整性和有效性,该过程有以下步骤:

(5a)区块链访问权限认证,数据共享权限完全由数据所有者自己预定义在智能合约,只有已授权的用户或机构才可以访问数据,而且每次访问交易也会被记录。由于时间戳的存在,违背规则或恶意使用数据的行为均可被追溯,用户有权撤销其访问权并使其接受审计。

(5b)云存储中的医疗数据共享,数据使用者的身份可以是负责该数据创建者治疗的医生或护士、用于医学研究的科研机构以及具有相同或相似病理的病人,以便对其治疗有所帮助。

(5c)数据使用者需要验证签名δext以确保所需原始医疗数据mi的有效性和完整性,如果截取签名验证通过,则表明原始医疗数据未被篡改,该用户可进行访问操作,获得共享数据,如果验证未通过,表明原始医疗数据mi的有效性和完整性遭到破坏,数据使用者将此消息通知云存储管理者进行处理。

本发明中所提的医疗数据的发送及存储,医疗数据的引用存储于联盟区块链等过程中,利用了对称加密和非对称加密技术,对传统的安全攻击具有良好的抵御能力。在数据传输的过程中,通信节点使用数字签名技术抵御攻击者伪装成合法实体或者伪造虚假信息的攻击。由于联盟区块链的记账的过程采用了一系列数据加密、签名和完整性验证,使得这些分布式存储的病历数据无法被随意篡改。这些技术可以保证电子医疗数据的真实性和有效性。另外智能合约的实施,有效的保障了数据所有者对自己医疗数据的访问所有权。总之,本发明中基于区块链的电子医疗记录安全存储和共享的模型能有效保证数据医疗的安全存储与共享。

实施例5

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-4,步骤(3c)中病人按照医生规定的ceas和自己的意愿,截取相应子数据的签名,该过程按照以下步骤进行:

(3c1)根据医生指定的ceas构造截取子集ci(m′)。

(3c2)根据截取子集ci(m′),生成截取子数据集m′={mi|i∈ci(m′)}。

(3c3)对每个i∈ci(m′),从δfull中取出δi。

(3c4)生成截取签名δext=(ceas‖ci(m′)‖t‖δ1‖δ2‖…‖δf),其中δi(i=1,2,…,f)为ci(m′)中对应子数据的签名。

本发明病人按照医生规定的可截取规则ceas和自己的意愿,截取相应子数据的签名,在满足截取规则ceas的前提下最大化地实现了病人对自己的敏感数据的保护。

实施例6

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-5,步骤(4d)中采用改进的dpos共识机制进行区块共识,将原有的采用股份授权证明机制dpos改进为针对医疗领域上的dpos共识机制。具体步骤如下:

(4d1)当值代表节点rpn验证每笔交易,并把这段时间内所有收集到的有效数据整合成数据集合(表示为mset={req‖t}),再附上自己的数字签名和新数据区块的哈希值构成新数据块,并向其他审计节点atns广播新生成的数据区块records以待验证,上述过程具体表述如下:

(4d2)每个atn收到数据区块后,通过rpn发送过来的区块哈希值和数字签名等信息验证数据区块的合法性和正确性,并把它的审计结果(result)附上自己的数字签名并用rpn的公钥加密后作为回复(reply)发送给当值代表节点,上述过程具体表述如下:

atns→rpn:

(4d3)rpn查看所有atns的审计回复,若审计通过的票数超过51%则认为区块生成成功,rpn将把数据区块连同审计节点atns的公钥集合和对应的数字签名整合后发送给所有节点,所有节点更新数据,此后,该数据区块将以时间先后顺序存储在联盟链中,该当值代表节点和参与审计的节点都将获得信用积分的奖励,上述过程具体表述如下:

rpn→all:

本发明中采用改进的dpos共识机制进行区块共识,将原有的采用股份授权证明机制dpos改进为针对医疗领域上的dpos共识机制。本发明选定的医疗机构在排名上具有影响力和权威性,保证了数据共享的可靠性。

实施例7

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-6,步骤(5a)中区块链访问权限认证,具体步骤如下:

(5a1)共享访问请求:节点n向区块链发起医疗数据共享请求交易req,请求中包含自己的公钥pkn对象账号idpat、数据访问目的obj、访问内容mi、时间t等信息,当值节点查验节点n身份,验证通过后把交易信息记入区块链,上述过程具体表述如下:

n→rpn:req=(pkn||idpat‖obj‖mi‖t),

注释:此处mi表示节点n只请求访问病人的mi数据,若访问部分数据,则表示为(mi|i=1,2,…),若节点想要访问该患者的全部数据,则用m表示。

(5a2)智能合约执行:智能合约自动执行,根据节点n的身份信息来判断是否满足病人预先设定好的访问条件,如果满足,则触发智能合约用患者idpat提供的私钥将元数据解密,并返回给使用节点n的公钥对元数据加密的密文信息:

(5a3)提取数据存储位置:节点n收到密文信息后,使用自己的私钥解密,得到元数据metadatai,并提取其中的存储位置urlsi,去云存储查找所需的原始数据。

本发明中区块链访问权限认证,访问权限认证即数据共享权限完全是由数据所有者自己预定义在智能合约中,只有数据所有者已授权的用户或机构(医生、护士、病人或医疗机构)才可以访问数据,有效地保障了数据所有者对自己医疗隐私权的保护和数据访问权限的控制。

实施例8

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-7,步骤(3d)中数据所有者将医疗数据和对应的截取签名加密存放到云存储的过程具体实现步骤如下:

(3d1)用户随机生成文档密钥kpat。

(3d2)运行对称加密算法e,对于子数据编号i∈ci(m′),使用密钥kpat加密(mi‖hi‖t),其中t为时间戳,得到子数据密文

(3d3)运行对称加密算法e,使用主密钥umk加密kpat得到密钥密文eumk(kpat)。

(3d4)将数据密文可截取签名δext和密钥密文eumk(kpat)按医疗数据类别依次上传到云存储中,返回给患者对应的存储位置urls和时间戳t,二者构成元数据metadatai=(t‖urls),即用户上传到云存储的数据为:

本发明使用了对称加密算法和非对称加密算法,能有效地使医疗数据在存储过程中得到安全的保护。

实施例9

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-8,步骤(5b)中云存储中的医疗数据共享具体步骤如下:

(5b1)数据使用者通过存储位置urlsi取回eumk(kpat)、δext。

(5b2)数据使用者运行对称算法e,使用主密钥umk解密eumk(kpat),解出加密密钥kpat。

(5b3)数据使用者运行对称算法e,使用密钥kpat解密得到原始医疗数据(mi‖hi‖t)和截取签名δext。

本发明使用了对称加密算法,能有效地使医疗数据在读取过程中得到安全的保护。

实施例10

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-9,步骤(5c)中数据使用者验证签名δext以确保所需原始医疗数据mi的有效性和完整性的具体步骤如下:

(5c1)验证者首先验证是否成立,若成立,则执行下面的步骤,否则返回失败,说明医疗数据mi的有效性和完整性遭到破坏。

(5c2)对每个医疗子数据序号i∈ci(m′),计算hi=h(mi‖ceas‖t‖i),通过验证是否成立,来验证截取签名δext的正确性。

本发明使用了数字签名,能有效地验证读取到的医疗数据的有效性和完整性。

下面结合附图对本发明的实施例和效果做进一步的描述。

实施例11

基于区块链的电子医疗记录安全存储和共享的模型的总体构成同实施例1-10,

参照图1,本发明的实现步骤如下:

步骤1,系统初始化:证书颁发机构ca负责为每个新用户颁发证书,包括账户id,公私钥对(pk,sk)。患者在医院看病或者在医院等医疗机构做检查时,医生会为该患者产生包含患者个人信息的电子病历、检查报告等医疗数据,按照医疗数据分类,细化医疗数据为m={姓名,性别,年龄,身份证号码,病史,体检或化验单,医药处方},本例中将医疗子数据划分为7类,即n=7,记m={m1,m2,m3,m4,m5,m6,m7}。

本发明采用现有的一种可截取签名算法设计签名,数据创建者执行以下操作:密钥生成算法gk:设p是一个使得在乘法循环群zp上离散对数问题难处理的素数,是一个本原元。随机选取整数计算v=ga(modp),则签名者的公钥pkdoc={p,g,v},私钥skdoc=a。

步骤2,数据获取:数据创建者将数据m划分为7段后执行可修订签名。

参照图2,数据获取的具体实现如下:

(2a)随机选取一个整数计算r=gk(modp)。

(2b)对原始数据m的每个子数据mi,求哈希值hi=h(mi‖ceas‖t‖i),1≤i≤7。

(2c)计算子数据mi的签名,δi=(hi-ar)k-1mod(p-1),1≤i≤7。

(2d)输出数据m的全局签名δfull=(ceas‖t‖δ1‖δ2‖…‖δ7)。

步骤3,数据存储:数据所有者生成修订签名并将将修订签名、原始数据密文存入云端。患者收到医生发来的医疗数据后,用自己的私钥skpat解密出医疗数据的加密密钥kdoc,然后解密出原始医疗数据mi,首先验证全局签名δfull的正确性:

参照图3,接收数据的签名验证的具体实现步骤如下:

(3a)对数据m的每个子数据mi,计算hi=h(mi‖ceas‖t‖i),其中1≤i≤7。

(3b)从全局签名δfull中得到δi并验证是否成立,

若签名δfull验证通过,则执行下面的步骤,否则返回失败。

(3c)病人按照医生规定的ceas和自己的意愿,截取相应子数据的签名。

参照图4,数据截取签名过程的具体实现步骤如下:

(3c1)根据医生指定的ceas构造截取子集ci(m′)。

(3c2)根据截取子集ci(m′),生成截取子数据集m′={mi|i∈ci(m′)}。

(3c3)对每个i∈ci(m′),从δfull中取出δi。

(3c4)生成截取签名δext=(ceas‖ci(m′)‖t‖δ1‖δ2‖…‖δf),其中δi(i=1,2,…,f)为ci(m′)中对应子数据的签名。

(3d)数据所有者将截取后的医疗数据和对应的截取签名加密存放到云存储中,按类别分别保存在相应的文件夹中,采用基本密文访问控制方案(bcac)。

参照图5,数据存储的具体实现步骤如下:

(3d1)用户随机生成文档密钥kpat。

(3d2)运行对称加密算法e,对于子数据编号i∈ci(m′),使用密钥kpat加密(mi‖hi‖t),其中t为时间戳,得到密文

(3d3)运行对称加密算法e,使用主密钥umk加密kpat得到密文eumk(kpat)。

(3d4)将δext,eumk(kpat)按医疗数据类别依次上传到云存储中,返回给患者对应的存储位置urls和时间戳t,二者构成元数据metadatai=(urls‖t)。即用户上传到云存储的数据为:

步骤4,数据发布:病人将截取后的医疗数据存放在云存储后,为实现医疗数据的分享,病人只需要将元数据、哈希值和签名存联盟区块链,并利用智能合约设置访问权限。

(4a)病人采用自己独一无二的身份账号idpat(无关个人身份隐私)在区块链上注册并登录。

(4b)对于子数据编号i∈ci(m′),患者用自己的私钥skpat对元数据metadatai,原始数据哈希值hi和时间戳t进行普通数字签名,得到

(4c)请求将该医疗记录存储在区块链。发布请求:

(4d)区块链网络中的当值代表节点接受交易请求并负责生成有效区块,本发明采用改进的dpos共识机制进行区块共识,具体步骤如下:

(4d1)当值代表节点rpn验证每笔交易,并把这段时间内所有收集到的有效数据整合成数据集合(表示为mset={req‖t}),再附上自己的数字签名和新数据区块的哈希值构成新数据块,并向其他审计节点atns广播新生成的数据区块以待验证。上述过程具体表述如下:

rpn→atns:

(4d2)每个atn收到数据区块后,通过rpn发送过来的区块哈希值和数字签名等信息验证数据区块的合法性和正确性,并把它的审计结果(result)附上自己的数字签名并用rpn的公钥加密后作为回复(reply)发送给当值代表节点。上述过程具体表述如下:

atns→rpn:

(4d3)rpn查看所有atns的审计回复,若审计通过的票数超过51%则认为区块生成成功。rpn将把数据区块连同审计节点atns的公钥集合和对应的数字签名整合后发送给所有节点,所有节点更新数据。此后,该数据区块将以时间先后顺序存储在联盟链中,该当值代表节点和参与审计的节点都将获得信用积分的奖励。上述过程具体表述如下:

rpn→all:

步骤5,数据共享:数据使用者向区块链提交访问申请,需提供自己的公钥,访问对象,访问目的等信息。基于cp-abe访问控制,利用urlsi即可获取emrs,并且通过哈希值和签名验证原始数据的完整性和有效性。该过程有以下步骤:

(5a)区块链访问权限认证(cp-abe访问控制):

(5a1)共享访问请求:节点n向区块链发起医疗数据共享请求交易req,请求中包含自己的公钥pkn访问对象账号idpat、数据访问目的obj、访问内容mi、时间t等信息,当值节点查验节点n身份,验证通过后把交易信息记入区块链。上述过程具体表述如下:

n→rpn:req=(pkn||idpat||metadatai||mi||t)

注释:此处mi表示节点n只请求访问病人的mi数据;若访问部分数据,则表示为(mi|i=1,2,…);若节点想要访问该患者的全部数据,则用m表示。

(5a2)智能合约执行:智能合约自动执行,根据节点n的身份信息来判断是否满足病人预先设定好的访问条件,如果满足,则触发智能合约用患者idpat提供的私钥将元数据解密,并返回给使用节点n的公钥对元数据加密的密文信息:

(5a3)提取数据存储位置:节点n收到密文信息后,使用自己的私钥解密,得到metadatai,并提取其中的存储位置urlsi,去云存储查找所需的原始数据。

(5b)云存储中的医疗数据共享:

(5b1)通过存储位置urlsi取回eumk(kpat)、δext。

(5b2)运行对称算法e,使用主密钥umk解密eumk(kpat),解出加密密钥kpat。

(5b3)运行对称算法e,使用密钥kpat解密得到原始医疗数据(mi‖hi‖t)和截取签名δext。

(5c)数据使用者验证签名δext以确保所需原始医疗数据mi的有效性和完整性:

(5c1)验证者首先验证是否成立,若成立,则执行下面的步骤,否则返回失败。

(5c2)对每个i∈ci(m′),计算hi=h(mi‖ceas‖t‖i),通过验证是否成立,来验证截取签名δext的正确性。

如果截取签名验证通过,则表明原始医疗数据未被篡改,该用户可进行他的具体访问操作。如果验证未通过,用户可以将此消息通知云存储管理者进行处理。

综上所述,本发明公开的基于区块链的电子医疗记录安全存储和共享模型及方法,主要解决现阶段病人对个人医疗数据访问权限的控制以及对敏感医疗数据的无法安全存储与共享的问题。模型包括,数据创建者、数据所有者、云存储、联盟区块链及数据使用者,其中区块链是控制中心。该方案流程设计是:1)系统初始化:ca授权机构负责为每个新用户颁发证书,包括账户id,公私钥对(pk,sk);2)数据获取:数据创建者将数据m划分为n段后执行可修订签名并将签名和原始emrs发给数据所有者;3)数据存储:数据所有者生成修订签名并将修订签名、原始数据密文存入云端;4)数据发布:数据所有者上传索引密文、哈希值、签名等信息,得到联区块链的审核通过后生成有效区块;5)数据共享:数据使用者向区块链提交访问申请,需提供自己的公钥,访问对象,访问目的等信息。审核通过后,基于区块链访问权限认证,得到医疗数据的访问链接在云端读取医疗数据。并且通过哈希值和签名验证原始数据的完整性和有效性。本发明满足基本安全需求、可靠性、隐私保护以及安全存储的能力,结合云存储技术和可截取签名,在联盟区块链中,用户通过智能合约设置共享条件,实现数据安全有效的共享访问,有很强的实用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1