一种基于分布式属性签名的区块链医疗数据管理方法和系统技术方案

技术编号:21550243 阅读:36 留言:0更新日期:2019-07-06 22:53
本发明专利技术公开一种基于分布式属性签名的区块链医疗数据管理方法和系统。该方法包括以下步骤:S1.生成分布式属性签名的全局参数并选定哈希函数;S2.各属性权威机构生产每个属性对应的签名密钥和验证密钥;S3.用户生成与他的全局身份标识和属性集合对应的签名密钥集合;S4.用户生成EHR数据后签名存储在链下数据库中,并将其地址签名后作为交易发布到区块链上;S5.用户首先验证链上交易中存储的地址的签名属性,然后通过地址找到链下数据库中的EHR数据并验证该数据签名者的属性。本发明专利技术在保护签名者身份信息的同时实现了跨不同CDO系统的EHR数据安全共享,并通过链上链下协同存储的方式解决了区块链存储容量限制的问题。

A Block Chain Medical Data Management Method and System Based on Distributed Attribute Signature

【技术实现步骤摘要】
一种基于分布式属性签名的区块链医疗数据管理方法和系统
本专利技术涉及一种基于分布式属性签名的区块链医疗数据管理方法和系统,属于区块链领域。
技术介绍
近年来,区块链技术引起了学术界和工业界的关注,分布式资源的存储与共享在许多领域都得到了广泛的应用。区块链技术不仅有效地解决了拜占庭问题和数字货币双重支付的问题,而且打破了传统的中心化制度的局限性。区块链不依赖可信的第三方,而是通过分布式的验证和共识机制,以完全分散的方式在节点网络之间建立信任。区块链被认为是一个创新的技术框架,在许多商业、科学和工程领域建立分布式和对等信任关系,其中一个典型的应用是在医疗领域。通过构建一个联盟链,电子健康记录(EHR)可以在医疗服务提供组织(CDO)之间轻松安全地共享,并且可以高效和安全的验证数据完整性。当前,国内外已经提出了一些医疗区块链的应用,包括使用区块链来保证医疗数据的真实性,防止恶意攻击者篡改数据。MEDREC框架实现了自动权限管理,将智能合约与访问控制相结合,集成了分布式医疗数据,实现了不同组织的权限管理。区块链虽然具有分布式和不可篡改的性质,但类似比特币中所使用的假名作为公钥的典型区块链系统中,通过交易图谱分析可以追踪和推断用户的真实身份。在基于属性的签名方案中,签名者的签名密钥与他的一系列属性相关联,因此验证者只知道签名者的属性,不知道签名者的身份信息。然而,在现有的基于属性的签名方案中,属性证书是由不同的属性权威机构颁发的,需要一个中央权威机构建立信任、监督和生成全局参数。因此,在不依赖中央权威机构的情况下无法实现跨不同CDO系统的EHR数据安全共享是第一个公开的问题。另外,现有区块链系统存储容量有限。如果每个CDO中存储的所有EHR数据都被移动和存储到用户网络维护的区块链上,将给区块链系统带来巨大的存储和计算负担,特别是当这种区块链系统的网络规模增长的时候。
技术实现思路
为解决上述技术的不足,本专利技术提出了一种基于区块链的电子健康记录(EHR)共享方法。本方案使用分布式属性签名算法代替比特币中使用的椭圆曲线数字签名算法(ECDSA),在医疗区块链环境中实现签名者身份信息的属性验证和隐私保护。结合链上链下协同的存储方式,解决了现有区块链系统存储限制的问题。本专利技术采用如下的技术方案:一种基于分布式属性签名的区块链医疗数据管理方法,包括以下步骤:S1.系统初始化:生成分布式属性签名的全局公共参数并选定系统中使用的哈希函数;S2.属性权威机构初始化:各属性权威机构端利用步骤S1生成的全局公共参数生成每个属性对应的签名密钥和验证密钥,并将验证密钥公开;S3.用户初始化:当用户端拥有某一属性集合,属性权威机构端将步骤S2中生成的该用户端拥有的属性对应的签名密钥颁发给用户端,用户端利用步骤S1生成的全局公共参数和哈希函数,以及步骤S2生成的签名秘钥,生成与他的全局身份标识和属性集合对应的签名密钥集合;S4.提案发布:数据发布端生成EHR数据后,利用步骤S3生成的签名密钥集合对其进行签名并存储在链下数据库中,并将所述链下数据库的地址利用签名密钥集合签名后作为交易发布到区块链上;S5.交易验证:数据验证端利用步骤S2生成的验证秘钥,首先验证链上交易中存储的地址的签名属性,后通过地址找到链下数据库中的EHR数据并验证该数据发布端的属性。步骤S1中,通过以下方法计算全局公共参数GP和哈希函数H:(1)根据系统安全参数λ选取一个双线性群G,其中,双线性群G的生成元为g,阶为N,全局公共参数GP=(N,g)。(2)选择一个哈希函数H,使得哈希函数H能够将用户的全局身份标识GID映射到双线性群G中的元素。步骤S2中所述的各个属性对应的签名密钥SIK和验证密钥VK,具体通过以下公式计算获得:对于每个属性i计算SIK={αi,yi},其中,为每个属性i随机选取其中,αi和yi表示两个随机数,表示模N的剩余类环,e(g,g)表示双线性映射关系。步骤S3中所述的生成与用户的全局身份标识和属性集合对应的签名密钥集合,集合中的每个签名密钥按照以下方式计算:步骤S4中所述的提案发布包括以下步骤:(1)医生在生成EHR数据后,用自己拥有的属性对应的签名密钥的集合SIKi,GID对数据进行签名,存储在链下的数据库中。(2)医生将链下数据库的地址用签名密钥的集合SIKi,GID签名,并作为一条交易发布到网络中。(3)主节点将一段时间内网络中的交易打包入新的区块中,直到此条交易被写入到链上的区块中,该条交易发布成功。优选的,通过以下方式对数据进行签名:(1)根据属性集合定义一个规模为n×l的访问控制矩阵A,映射ρ将访问控制矩阵A的每一行映射到一个属性。(2)随机选取和一个向量令向量v的第一个元素的值为s。(3)定义Ax为矩阵A的第x行,计算λx=Ax·v。(4)随机选取向量并计算ωx=Ax·w。(5)为矩阵A的每一行Ax选取一个随机数(6)计算签名σ=(Sig0,Sig1,x,Sig2,x),其中:Sig0=e(g,g)sH′(M)其中,M为待签名的消息,即EHR数据或EHR数据地址。更优选的,新区块生成采用实用拜占庭容错算法(PracticalByzantineFaultTolerance,PBFT)。步骤S5中所述的交易验证具体包括:(1)验证链上交易中存储的地址的签名属性;(2)通过地址找到链下数据库中的EHR数据并验证该数据签名者(即数据发布端)的属性。优选的,验证数据签名者的属性的具体步骤包括:(1)通过访问控制矩阵A计算向量cx使得:(2)利用哈希函数片′计算出消息的哈希值片′(M)。(3)验证以下等式是否成立:如果上述等式成立,则对数据签名者的属性验证通过,如果不成立,则验证不通过。(4)仅当对EHR数据地址和EHR数据的两次验证都通过时,该条交易有效,否则验证失败,为无效交易。与上面方法对应地,本专利技术还提供一种基于分布式属性签名的区块链医疗数据管理系统,其包括:管理端,负责生成分布式属性签名的全局公共参数并选定使用的哈希函数;属性权威机构端,负责利用管理端生成的全局公共参数生成每个属性对应的签名密钥和验证密钥,并将验证密钥公开;对于用户端拥有的属性集合中的属性,属性权威机构端将属性对应的签名密钥颁发给用户端;用户端,负责利用管理端生成的全局公共参数和哈希函数,以及签名秘钥,生成与其全局身份标识和属性集合对应的签名密钥集合;数据发布端,负责在生成电子健康记录数据后,利用生成的签名密钥集合对其进行签名并存储在链下数据库中,并将链下数据库的地址利用签名密钥集合签名后作为交易发布到区块链上;数据验证端,负责利用属性权威机构端生成的验证秘钥,验证区块链上的交易中存储的地址的签名属性,然后通过该地址找到链下数据库中的电子健康记录数据并验证数据发布端的属性。本专利技术与现有技术相比的有益效果在于:(1)本专利技术提出了一种分布式属性签名(DABS)方案,用于在医疗区块链中以提供隐私保护验证服务。该方案有两个显着特点:首先,可以有效地验证签名者的属性,而不暴露签名者的身份;其次,分布式属性签名更加适用于区块链系统,多个属性机构可以向用户发布属性证书和相应的签名密钥,而不依赖于中央权威机构来监督和管理它们。(2)本专利技术提出了一种基于区块链的EHR数据存储系本文档来自技高网
...

【技术保护点】
1.一种基于分布式属性签名的区块链医疗数据管理方法,其特征在于,包括以下步骤:S1.生成分布式属性签名的全局公共参数并选定使用的哈希函数;S2.各属性权威机构端利用步骤S1生成的全局公共参数生成每个属性对应的签名密钥和验证密钥,并将验证密钥公开;S3.对于用户端拥有的属性集合中的属性,属性权威机构端将步骤S2生成的属性对应的签名密钥颁发给用户端,用户端利用步骤S1生成的全局公共参数和哈希函数,以及签名秘钥,生成与其全局身份标识和属性集合对应的签名密钥集合;S4.数据发布端生成电子健康记录数据后,利用步骤S3生成的签名密钥集合对其进行签名并存储在链下数据库中,并将链下数据库的地址利用签名密钥集合签名后作为交易发布到区块链上;S5.数据验证端利用步骤S2生成的验证秘钥,验证区块链上的交易中存储的地址的签名属性,然后通过该地址找到链下数据库中的电子健康记录数据并验证数据发布端的属性。

【技术特征摘要】
1.一种基于分布式属性签名的区块链医疗数据管理方法,其特征在于,包括以下步骤:S1.生成分布式属性签名的全局公共参数并选定使用的哈希函数;S2.各属性权威机构端利用步骤S1生成的全局公共参数生成每个属性对应的签名密钥和验证密钥,并将验证密钥公开;S3.对于用户端拥有的属性集合中的属性,属性权威机构端将步骤S2生成的属性对应的签名密钥颁发给用户端,用户端利用步骤S1生成的全局公共参数和哈希函数,以及签名秘钥,生成与其全局身份标识和属性集合对应的签名密钥集合;S4.数据发布端生成电子健康记录数据后,利用步骤S3生成的签名密钥集合对其进行签名并存储在链下数据库中,并将链下数据库的地址利用签名密钥集合签名后作为交易发布到区块链上;S5.数据验证端利用步骤S2生成的验证秘钥,验证区块链上的交易中存储的地址的签名属性,然后通过该地址找到链下数据库中的电子健康记录数据并验证数据发布端的属性。2.根据权利要求1所述的方法,其特征在于,步骤S1通过以下步骤计算全局公共参数GP和哈希函数H:(1)根据系统安全参数λ选取一个双线性群G,其中,双线性群G的生成元为g,阶为N,全局公共参数GP=(N,g);(2)选择一个哈希函数H,使得哈希函数H能够将用户的全局身份标识GID映射到双线性群G中的元素。3.根据权利要求2所述的方法,其特征在于,步骤S2通过以下公式计算获得属性i对应的签名密钥SIK和验证密钥VK:其中,为每个属性i随机选取两个随机数表示模N的剩余类环,e(g,g)表示双线性映射关系,g为双线性群G的生成元。4.根据权利要求3所述的方法,其特征在于,步骤S3所述签名密钥集合中的每个签名密钥按照以下方式计算:5.根据权利要求1所述的方法,其特征在于,步骤S4包括:1)数据发布端在生成电子健康记录数据后,用自己拥有的属性对应的签名密钥的集合SIKi,GID对数据进行签名,存储在链下的数据库中;2)数据发布端将链下数据库的地址用签名密钥的集合SIKi,GID签名,并作为一条交易发布到网络中;3)主节点将一段时间内网络中的交易打包入新的区块中,直到此条交易被写入到链上的区块中,该条交易发布成功。6.根据权利要求5所述的方法,其特征在于,步骤1)和步骤2)中的签名过程包括:(1)根据属性集合...

【专利技术属性】
技术研发人员:孙优章睿薛锐苏倩倩
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1