[发明专利]一种基于分布式属性签名的区块链医疗数据管理方法和系统有效
申请号: | 201910114188.5 | 申请日: | 2019-02-14 |
公开(公告)号: | CN109979550B | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 孙优;章睿;薛锐;苏倩倩 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G16H10/60 | 分类号: | G16H10/60;G06F21/62;G06F21/60 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分布式 属性 签名 区块 医疗 数据管理 方法 系统 | ||
1.一种基于分布式属性签名的区块链医疗数据管理方法,其特征在于,包括以下步骤:
S1.生成分布式属性签名的全局公共参数并选定使用的哈希函数;
S2.各属性权威机构端利用步骤S1生成的全局公共参数生成每个属性对应的签名密钥和验证密钥,并将验证密钥公开;
S3.对于用户端拥有的属性集合中的属性,属性权威机构端将步骤S2生成的属性对应的签名密钥颁发给用户端,用户端利用步骤S1生成的全局公共参数和哈希函数,以及签名秘钥,生成与其全局身份标识和属性集合对应的签名密钥集合;
S4.数据发布端生成电子健康记录数据后,利用步骤S3生成的签名密钥集合对其进行签名并存储在链下数据库中,并将链下数据库的地址利用签名密钥集合签名后作为交易发布到区块链上;
S5.数据验证端利用步骤S2生成的验证秘钥,验证区块链上的交易中存储的地址的签名属性,然后通过该地址找到链下数据库中的电子健康记录数据并验证数据发布端的属性;
步骤S1通过以下步骤计算全局公共参数GP和哈希函数H:
(1)根据系统安全参数λ选取一个双线性群G,其中,双线性群G的生成元为g,阶为N,全局公共参数GP=(N,g);
(2)选择一个哈希函数H,使得哈希函数H能够将用户的全局身份标识GID映射到双线性群G中的元素;
步骤S2通过以下公式计算获得属性i对应的签名密钥SIK和验证密钥VK:
其中,为每个属性i随机选取两个随机数表示模N的剩余类环,e(g,g)表示双线性映射关系,g为双线性群G的生成元;
步骤S3所述签名密钥集合中的每个签名密钥按照以下方式计算:
步骤S4包括:
1)数据发布端在生成电子健康记录数据后,用自己拥有的属性对应的签名密钥的集合SIKi,GID对数据进行签名,存储在链下的数据库中;
2)数据发布端将链下数据库的地址用签名密钥的集合SIKi,GID签名,并作为一条交易发布到网络中;
3)主节点将一段时间内网络中的交易打包入新的区块中,直到此条交易被写入到链上的区块中,该条交易发布成功;
步骤S5验证数据发布端的属性的步骤包括:
(1)通过访问控制矩阵A计算向量cx使得:
(2)利用哈希函数H′计算出消息的哈希值H′(M);
(3)验证以下等式是否成立:
如果上述等式成立,则对数据发布端的属性验证通过,如果不成立,则验证不通过;(4)仅当对电子健康记录数据地址和电子健康记录数据的两次验证都通过时,交易有效,否则验证失败,为无效交易。
2.根据权利要求1所述的方法,其特征在于,步骤1)和步骤2)中的签名过程包括:
(1)根据属性集合定义一个规模为n×l的访问控制矩阵A,映射ρ将访问控制矩阵A的每一行映射到一个属性;
(2)随机选取和一个向量令向量v的第一个元素的值为s;
(3)定义Ax为矩阵A的第x行,计算λx=Ax·v;
(4)随机选取向量并计算ωx=Ax·w;
(5)为矩阵A的每一行Ax选取一个随机数
(6)计算签名其中:
其中,M为待签名的消息,即EHR数据或EHR数据地址。
3.根据权利要求1所述的方法,其特征在于,步骤3)采用实用拜占庭容错算法生成所述新的区块。
4.根据权利要求1所述的方法,其特征在于,通过区块链的链上链下协同存储,实现大规模分布式电子健康记录数据的安全共享,在不同医疗服务提供组织之间安全共享电子健康记录数据,使得存储和共享的电子健康记录数据不可篡改,不可伪造以及可验证。
5.一种采用权利要求1~4中任一权利要求所述方法的基于分布式属性签名的区块链医疗数据管理系统,其特征在于,包括:
管理端,负责生成分布式属性签名的全局公共参数并选定使用的哈希函数;
属性权威机构端,负责利用管理端生成的全局公共参数生成每个属性对应的签名密钥和验证密钥,并将验证密钥公开;对于用户端拥有的属性集合中的属性,属性权威机构端将属性对应的签名密钥颁发给用户端;
用户端,负责利用管理端生成的全局公共参数和哈希函数,以及签名秘钥,生成与其全局身份标识和属性集合对应的签名密钥集合;
数据发布端,负责在生成电子健康记录数据后,利用生成的签名密钥集合对其进行签名并存储在链下数据库中,并将链下数据库的地址利用签名密钥集合签名后作为交易发布到区块链上;
数据验证端,负责利用属性权威机构端生成的验证秘钥,验证区块链上的交易中存储的地址的签名属性,然后通过该地址找到链下数据库中的电子健康记录数据并验证数据发布端的属性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910114188.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种呼救方法
- 下一篇:一种基于网页的电子病历文档的编辑器