CN113764060A - 一种基于双区块链的医疗数据管理系统、病人授权病历共享方法 - Google Patents

一种基于双区块链的医疗数据管理系统、病人授权病历共享方法 Download PDF

Info

Publication number
CN113764060A
CN113764060A CN202111055884.7A CN202111055884A CN113764060A CN 113764060 A CN113764060 A CN 113764060A CN 202111055884 A CN202111055884 A CN 202111055884A CN 113764060 A CN113764060 A CN 113764060A
Authority
CN
China
Prior art keywords
medical record
medical
request
emergency
access control
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.)
Granted
Application number
CN202111055884.7A
Other languages
English (en)
Other versions
CN113764060B (zh
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.)
Anhui Normal University
Original Assignee
Anhui Normal University
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 Anhui Normal University filed Critical Anhui Normal University
Priority to CN202111055884.7A priority Critical patent/CN113764060B/zh
Publication of CN113764060A publication Critical patent/CN113764060A/zh
Application granted granted Critical
Publication of CN113764060B publication Critical patent/CN113764060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

本发明公开了一种基于双区块链的医疗数据管理系统和病人授权病历共享方法,涉及可认证密钥协商算法技术领域,包括:医疗区块链,监管区块链,病历存储端,病历访问控制端,用于:向病历请求端发送访问病历的授权;调用智能合约存储包含病历关键词的健康记录;病历请求端,用于:在病人清醒时获取主动授权并向病历存储端请求数据;在病人昏迷时调用智能合约搜索与病人指纹匹配的健康记录从而向病历存储端请求数据。本发明采用分等级的工作量证明共识机制,实现了根据交易的紧急程度来改变生成新区块的速度,并使用双链结构来形成对链上数据的监管,有效抵御自私挖矿攻击。

Description

一种基于双区块链的医疗数据管理系统、病人授权病历共享 方法
技术领域
本发明涉及可认证密钥协商算法、基于身份的数字签名算法技术领域,具体地,涉及一种基于双区块链的医疗数据管理系统、病人授权的病历共享方法。
背景技术
近年来,电子健康记录(EHR,Electronic health record)系统在世界范围内广泛使用,医疗保健系统之间的及时医疗数据共享在降低卫生保健成本、提高医疗服务质量和加强疾病监测方面显示出巨大的好处。电子健康记录是数字化的患者医疗数据记录的集合,这些信息一般由医疗机构生成并由医疗机构使用以帮助医生有效地评估患者的病情并做出正确的疾病诊断。电子病历涉及病人的体征数据,是高度隐私的。因此,越来越多的研究关注共享电子病历的数据安全性和保护患者的隐私。共享病历本质上是隐私数据的共享,因此共享可能会导致存储安全性和隐私泄漏问题。为了解决这些问题,基于云的电子病历共享已经被提出。由于云服务器是半信任的。如果云服务器受到攻击或缺乏适当的监控,将导致单点故障。区块链技术因为其链上数据不可篡改,上链数据可溯源,网络节点平等地位等特点,被越来越多的研究者引入医疗数据安全共享领域。
此外,最近有迹象表明,医疗数据共享的研究发展已经转向以患者为中心的互操作性。要实现真正的以患者为中心的电子病历共享系统,患者就应该完全控制自己病历的访问权限,创建病历数据列表、确定共享病历权限、确认数据使用、批准共享数据的生命周期。
发明内容
本发明的目的是提供一种基于双区块链的医疗数据管理系统及病人授权病历共享方法,该基于双区块链的医疗数据管理系统及病人授权病历共享方法可以实现病人控制自己病历数据的访问权限,运用基于身份的密钥协商算法提高数据传输的安全性,具有病人授权的病历请求端可以向病历存储端请求对应的病历,并通过和医疗区块中的哈希值对比来验证所得病历的真实性、完整性。本方法结合智能合约,实现了病人清醒情况下和病人昏迷情况下的病历安全共享,使得该发明更加符合医院诊治病人的实际情况。本方法使用监管区块链对较为活跃的医疗区块链进行监管,以防止自私挖矿攻击。为了实现上述目的,本发明提供了一种基于双区块链的医疗数据管理系统,其特征在于,所述基于双区块链的医疗数据管理系统包括:医疗区块链,用于:运行分等级工作量证明共识来生成新的区块;记录包含病历的哈希值的交易;监管区块链,用于:运行实用拜占庭容错共识以对所述新的区块进行排序;记录所述医疗区块链的区块哈希值;病历存储端,用于:为病历访问控制端生成并存储原始的病历数据;将所述原始的病历数据进行散列计算以得到数据摘要;将所述数据摘要写入交易并上传至所述医疗区块链以进行存证;与病历访问控制端协商用于共享病历数据的可认证身份对称密钥;根据病历请求端提供的授权来共享本地存储的所述原始的病历数据;验证待上链的交易并执行分等级工作量证明共识以生成新的医疗区块,并且每隔预设定的时间间隔将所生成的所述新的医疗区块对应的区块哈希值存入所述监管区块链;所述病历访问控制端,用于:在能够主动授权的情况下,向所述病历请求端发送访问所述病历的授权;在无法主动授权的情况下,被动向病历请求端提供指纹信息以查询查询请求对应的相关医疗信息;调用智能合约存储包含病历关键词的健康记录;所述病历请求端,用于:在病人清醒时获取主动授权并向病历存储端发送非紧急病历请求以获取所述原始的病历数据;在病人处于昏迷状态时调用智能合约搜索与病人指纹匹配的健康记录以获得所述病历关键词;向所述医疗区块链发送紧急访问病历的请求并向所述病历存储端请求所述原始的病历数据。
优选地,所述医疗区块链用于:
记录区块的类型;其中,所述类型包括记录包含病历哈希值的交易的普通类型的区块,记录所述紧急访问病历的请求的紧急类型的区块;以及
根据所记录的所述区块的类型调整生成新的区块的速度。
另外,本发明还提供一种基于可认证密钥协商和区块链的病人授权病历共享方法,使用上述的基于双区块链的医疗数据管理系统,所述基于可认证密钥协商和区块链的病人授权病历共享方法包括:
初始化所述医疗数据管理系统;
生成所述病历存储端、病历访问控制端以及病历请求端各自的长期密钥;
生成所述病历存储端与所述病历访问控制端各自的可认证身份对称密钥;
生成所述病历的哈希值并使用分等级工作量证明共识将所述病历的哈希值上传至所述医疗区块链;
生成包含病历关键词和病历在区块链中存储地址符的健康记录;
所述病历请求端在病人清醒时根据所述病历访问控制端的授权向所述病历存储端发送非紧急病历请求;
所述病历请求端在病人处于昏迷状态时使用智能合约搜索与病人指纹匹配的健康记录,上传紧急病历请求到所述医疗区块链并向所述病历存储端发送紧急病历请求;
在接收到所述非紧急病历请求时,所述病历存储端检查所述非紧急病历请求以验证所述病历请求端的授权的合法性,并生成非紧急对称密钥加密病历;
在检查到所述紧急病历请求时,所述病历存储端检查所述紧急病历请求是否存储在所述医疗区块链,并生成紧急对称密钥加密病历;
所述病历请求端收到所述非紧急对称密钥加密病历后,根据所述病历访问控制端的授权生成对应的非紧急对称密钥解密病历,并与所述医疗区块链中的哈希值比对确定病历的完整性,完成数据共享;
所述病历请求端收到紧急的加密病历后,根据所述病历存储端身份信息生成对应的紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定所述病历的完整性,完成数据共享;以及
所述病历存储端每隔预设定的时间间隔将该时间间隔新产生的所述医疗区块链的区块哈希值存入所述监管区块链,完成对所述医疗区块链的监管。
优选地,所述初始化所述医疗数据管理系统包括:
私钥生成中心选择一个大素数q和一个双线性对e:G1×G1→G2,其中,G1是阶数为q的加法循环群,G2是阶数为q的乘法循环群;P是循环群G的一个生成元,计算g=e(P,P);所述私钥生成中心选择一个秘密值
Figure BDA0003254630850000043
作为所述私钥生成中心的主私钥,并计算Ppub=sP作为主公钥;选择以下五个Hash函数:
Figure BDA0003254630850000041
H1:{0,1}*→G1
Figure BDA0003254630850000042
H3:G2→G1×{0,1}*
H:{0,1}*→{0,1}l,其中l表示字串长度;
初始化所述医疗数据管理系统的公共参数为:
param=(G1,G2,e,q,g,P,Ppub,H0,H1,H2,H3,H);
并且,所述生成所述病历存储端、病历访问控制端以及病历请求端各自的长期密钥包括:
将所述病历存储端HN、所述病历访问控制端PN、以及所述病历请求端DN统一记为端U;
所述端U将自身的身份标识符IDU通过安全信道提交给所述私钥生成中心请求生成对应的私钥;
所述私钥生成中心根据所述身份标识符IDU计算QU=H0(IDU),
Figure BDA0003254630850000051
所述私钥生成中心将SU
Figure BDA0003254630850000052
通过安全信道发给所述端U;
所述端U使用(QU,SU)来生成和验证基于身份的短签名,使用
Figure BDA0003254630850000053
来生成基于身份的可认证会话密钥;
并且,所述生成所述病历存储端与所述病历访问控制端各自的可认证身份对称密钥包括:
病历访问控制端C使用病历存储端A的身份标识符IDA计算
Figure BDA0003254630850000054
选择随机数
Figure BDA0003254630850000055
并计算Tc=cP,将Tc传送给所述病历存储端A;其中,所述病历存储端A的身份标识符IDA、病历访问控制端C的身份标识符IDC被配置均为公开信息;
所述病历存储端A收到来自所述病历访问控制端C的Tc后,使用所述病历访问控制端C的身份标识符IDC计算
Figure BDA0003254630850000056
选择随机数
Figure BDA0003254630850000057
并计算Ta=aP,将Ta传送给所述病历访问控制端C,所述病历存储端A计算出与所述病历访问控制端C本次会话的可认证对称密钥skAC=H(IDC||IDA||aTc||KAC||Tc||Ta),并将所述病历加密发送给所述病历访问控制端C;
所述病历访问控制端C收到来自所述病历存储端A的Ta后计算出与病历储端A本次会话的可认证对称密钥skCA=H(IDC||IDA||cTa||KCA||Tc||Ta),并用skCA解密出所述病历。
优选地,所述生成所述病历的哈希值并使用分等级工作量证明共识将所述病历的哈希值上传至所述医疗区块链包括:
所述病历存储端A拥有病历访问控制端C的原始病历MRraw,计算所述原始的病历哈希值digestMR=H(MRraw),生成含有该病历的哈希值的非紧急交易:
tx={IDA,IDC,digestMR0,ts1A},
其中,λ0是非紧急交易标识符,ts1是生成该交易时的时间戳;
Figure BDA0003254630850000061
是所述病历存储端A对该交易的签名;
所述病历存储端A根据交易的类型调整挖矿难度值,其中,非紧急交易的难度值为λ0=0,目标难度值为target=curDifficult×(1+λ0),其中curDifficult是实际挖矿难度值;以及
所述病历存储端A执行分等级工作量证明共识机制将所述非紧急交易tx上传到所述医疗区块链作为存证。
优选地,所述生成包含病历关键词和病历在区块链中存储地址符的健康记录包括:
所述病历访问控制端C根据病历的内容提取关键词集合{keywords},生成健康记录:HR={IDblk,H(tx),{keywords},ts2C},
其中,IDblk是包含所述病历哈希值的交易在医疗区块链的区块编号,H(tx)是交易在区块中的搜索标识符,ts2是生成该健康记录的时间,σC=signC(H(IDblk,H(tx),{keywords},ts2))是所述病历访问控制端对所述健康记录的签名;
所述病历访问控制端C使用自身的指纹信息H(f)对所述健康记录进行加密得到健康记录的密文
Figure BDA0003254630850000071
并调用智能合约将HR'存储到区块链中以及所述病历访问控制端C的医疗区块链的账户中;
所述病历访问控制端C在生成所述健康记录后能够删除所述原始的病历数据;
优选地,所述病历请求端在病人清醒时根据所述病历访问控制端的授权向所述病历存储端发送非紧急病历请求包括:
所述病历访问控制端C根据所述病历请求端B和病历存储端A的身份标识符生成QA=H0(IDA)和QB=H0(IDB),并计算
Figure BDA0003254630850000072
和cP作为授权因子传送给所述病历请求端B;
所述病历请求端B收到授权因子后选择随机数
Figure BDA0003254630850000073
并计算Tb∈bP,gb=gb,RB=b(Ppub+QBP),
Figure BDA0003254630850000074
将对病历的请求request放入m=(Tb||requst)并计算
Figure BDA0003254630850000075
h=H2(m||RB),
Figure BDA0003254630850000076
将(αCB,σ,RB,N)作为非紧急病历请求发给所述病历存储端;
并且,所述病历请求端在病人处于昏迷状态时使用智能合约搜索与病人指纹匹配的健康记录,上传紧急病历请求到所述医疗区块链并向所述病历存储端发送紧急病历请求包括:
所述病历请求端B提取病人指纹信息f,并计算H(f),调用智能合约搜索与H(f)匹配的健康记录HR;
所述智能合约将搜索到的健康记录HR反馈给所述病历请求端B,所述病历请求端B根据HR中的关键词集合{keywords}判断是否要请求该病历原始数据;
所述病历请求端B生成包含病历请求request的紧急交易:
tx'={IDB,IDA,request,λ1,ts3B},
其中λ1是紧急交易标识符,ts3是生成该交易时的时间戳,σB=SignB(H(IDB,IDA,request,λ1,ts3))是所述病历请求端B对该交易的签名;
所述病历请求端B根据交易的类型调整挖矿难度值;其中,非紧急交易的难度值为λ1=1,目标难度值为target=curDifficult×(1+λ1),其中target是目标难度值,curDifficult是实际挖矿难度值;
所述病历请求端B将对病历的请求request放入m=(Tb||requst),将m传送给所述病历存储端A。
优选地,所述病历存储端检查所述非紧急病历请求以验证所述病历请求端的授权的合法性,并生成非紧急对称密钥加密病历包括:
所述病历存储端A根据(αCB,σ,RB,N)和所述病历请求端B的身份标识符IDB计算QB=H0(IDB),gb'=e(Tc+QAP+QBP,αCB),m'=H3(gb')⊕N,h'=H2(m'||RB),检查e(σ,RB+h'(Ppub+QBP))是否等于g,其中g=e(P,P);当检查结果为等于时,证明所述病历请求端拥有来自所述病历访问控制端的合法授权;
所述病历存储端A计算
Figure BDA0003254630850000081
KAB-C=e(Tb,cP)a,生成本次病历共享的会话密钥skAB=H(IDB||IDA||aTb||KAB-C||KAB||Tb||Ta)并对所述病历加密,将Ta和病历密文发送给所述病历请求端B;
并且,所述病历存储端检查所述紧急病历请求是否存储在所述医疗区块链,并生成紧急对称密钥加密病历包括:
所述病历存储端A收到来自所述病历请求端B的m后,使用所述病历请求端B的身份标识符IDB计算
Figure BDA0003254630850000082
将Ta传送给所述病历请求端B,所述病历存储端A计算出与病历请求端B本次会话的可认证对称密钥skAB=H(IDB||IDA||aTb||KAB||Tb||Ta),并将病历加密发送给病历请求端B。
优选地,所述病历请求端收到所述非紧急对称密钥加密病历后,根据所述病历访问控制端的授权生成对应的非紧急对称密钥解密病历,并与所述医疗区块链中的哈希值比对确定病历的完整性,完成数据共享包括:
所述病历请求端B使用病历访问控制端C的授权因子cP以及病历存储端的身份标识符IDA计算
Figure BDA0003254630850000091
KBA-C=e(Ta,cP)b,生成本次病历共享的会话密钥skBA=H(IDB||IDA||bTa||KBA-C||KBA||Tb||Ta)并对病历密文进行解密,得到病历原始数据,完成数据共享;
并且,所述病历请求端收到紧急的加密病历后,根据所述病历存储端身份信息生成对应的紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定所述病历的完整性,完成数据共享包括:
所述病历访问请求端B使用所述病历存储端A的身份标识符IDA计算
Figure BDA0003254630850000092
收到来自所述病历存储端A的Ta后计算出与病历储端A本次会话的可认证对称密钥skBA=H(IDB||IDA||bTa||KBA||Tb||Ta),并用skBA解密出病历,得到病历原始数据,完成数据共享。
优选地,所述病历存储端每隔预设定的时间间隔将该时间间隔新产生的所述医疗区块链的区块哈希值存入所述监管区块链,完成对所述医疗区块链的监管包括:
所述病历存储端A和其他病历存储端一起构成联盟并执行实用拜占庭容错共识机制维护监管区块链;
每隔一个每隔预设定的时间间隔将该时段新生成的医疗区块链的区块进行哈希运算得到H(blk1),H(blk2),...,H(blki),并按照梅克尔树的结构组合并写入监管区块链。
根据上述技术方案,本发明通过结合基于身份的签名算法(IBS)和基于身份的可认证密钥协商算法(IBAKA)实现了病历的安全共享,采用分等级的工作量证明共识机制,实现了根据交易的紧急程度来改变生成新区块的速度,并使用双链结构来形成对链上数据的监管,有效抵御自私挖矿攻击。本发明不仅实现了病历存储端和病历请求端之间病历数据的安全存储和共享功能,还实现了病历访问控制端对共享过程的权限控制,并利用区块链存证病历,使得医院之间可以严格追溯病历数据来源,避免因数据源头不明带来的医疗纠纷风险,符合当下智慧医疗,5G网络背景下医院之间医疗数据共享的发展趋势。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是说明本发明的一种基于双区块链的医疗数据管理系统的交互框图;
图2是说明本发明的一种基于双区块链的医疗数据管理系统的模块框图;以及
图3是说明本发明的一种基于可认证密钥协商和区块链的病人授权病历共享方法的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
实施例1
图1是本发明实施例1所提供的一种基于双区块链的医疗数据管理系统的模块交互框图,如图1、2所示,所述基于区块链的智能医疗网络系统包括:
医疗区块链,用于:
运行分等级工作量证明共识来生成新的区块;
记录包含病历哈希值的交易;
监管区块链,用于:
运行实用拜占庭容错共识以对新区块进行排序;
记录医疗区块链的区块哈希值以防止数据遭受自私挖矿攻击;
病历存储端,用于:
为病历访问控制端生成病历数据并存储;
将原始病历数据散列计算得到数据摘要;
将数据摘要写入交易并上传至区块链以进行存证;
与病历访问控制端协商用于共享病历数据的可认证身份对称密钥;
根据病历请求端提供的授权来共享本地存储的原始病历数据;
验证待上链的交易并执行分等级工作量证明共识以生成新的医疗区块并且每隔一个固定时间间隔将新生成的医疗区块的哈希值存入监管区块链;
病历访问控制端,用于:
可以主动授权的情况下,向病历请求端发送访问病历的授权;
无法主动授权的情况下,被动向病历请求端提供指纹信息以便查询相关医疗信息;
调用智能合约存储包含病历关键词的健康记录;
病历请求端,用于:
在病人清醒时获取主动授权并向病历存储端请求数据;
在病人昏迷时调用智能合约搜索与病人指纹匹配的健康记录从而获知病历关键词;
向医疗区块链发送紧急访问病历的请求并向病历存储端请求病历数据。
优选地,所述病历存储端使用分等级工作量证明共识的医疗区块链对普通类型区块和紧急类型区块采用不同的速度进行共识并上链包括:
所述医疗区块链记录包含病历哈希值的交易为普通类型区块;
所述医疗区块链记录所述紧急访问病历请求为紧急类型区块;
所述分等级工作量证明共识机制用于根据区块的紧急程度来调整生成新区块的速度;
所述使用拜占庭容错共识的监管区块链用于监管医疗区块链。
总结来看,病历存储端保留病例原始数据,病历访问控制端与病历存储端协商一个授权因子以方便对病历请求端授权,得到授权的病历请求端可以向病历存储端发送非紧急病历请求;为了防止病历访问控制端的所有人昏迷无法向病历请求端提供授权因子,病历访问控制端还利用智能合约生成包含病历关键词的健康记录并存储在区块链中以方便昏迷时,病历请求端可以根据病历访问控制端所有人的指纹信息来获取病历信息,从而向病历存储端发送紧急的病历请求。紧急病历请求会被记录在医疗区块链中,可以被溯源,从而避免了紧急请求的滥用和潜在的医疗纠纷。此外双区块链结构中的医疗区块链采用分等级工作量证明共识机制用于根据区块的紧急程度来调整生成新区块的速度,确保紧急交易可以快速上链;双区块链结构中的监管区块链采用实用拜占庭容错共识机制,定期记录医疗区块链的区块哈希值以抵御自私挖矿攻击。本发明实现了病人跨院治疗时对自己病历在医院之间共享的访问控制,实现了根据交易紧急程度改变区块链生成新区块速度,实现了双区块链结构以保证医疗区块链可以抵御自私挖矿攻击。
实施例2
在实施例1中,公开了一种基于双区块链的医疗数据管理系统,对于该系统的建立以及使用该系统来实现基于可认证密钥协商和区块链的病人授权病历共享方法,需要通过下述的方法来实现,如图3所示,建立并使用权利要求1或2所述的基于可认证密钥协商和区块链的病人授权病历共享方法包括:
S301,初始化所述医疗数据管理系统;
S302,生成所述病历存储端、病历访问控制端以及病历请求端的长期密钥;
S303,生成所述病历存储端与所述病历访问控制端的可认证身份对称密钥;
S304,生成所述病历的哈希值并使用分等级工作量证明共识将所述病历哈希值上传医疗区块链;
S305,生成包含病历关键词和病历在区块链中存储地址符的健康记录;
S306,所述病历请求端在病人清醒时根据所述病历访问控制端的授权向病历存储端发送非紧急病历请求;
S307,所述病历请求端在病人昏迷时使用智能合约搜索与病人指纹匹配的健康记录,上传紧急病历请求到医疗区块链并向病历存储端发送紧急病历请求;
S308,所述病历存储端检查非紧急病历请求验证病历请求端的授权的合法性,并生成非紧急对称密钥加密病历;
S309,所述病历存储端检查紧急病历请求是否存储在医疗区块链,并生成紧急对称密钥加密病历;
S310,所述病历请求端收到非紧急的加密病历后,根据病历访问控制端的授权生成对应的非紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定病历的完整性,完成数据共享;
S311,所述病历请求端收到紧急的加密病历后,根据病历存储端身份信息生成对应的紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定病历的完整性,完成数据共享;以及
S312,所述病历存储端根据固定时间间隔将该时段新产生的医疗区块哈希值存入监管区块链,完成对医疗区块链的监管。
优选地,S301,所述初始化所述医疗数据管理系统包括:
S3011,私钥生成中心(PKG)选择一个大素数q和一个双线性对e:G1×G1→G2,其中,G1是阶数为q的加法循环群,G2是阶数为q的乘法循环群;P是循环群G的一个生成元,计算g=e(P,P);
S3012,PKG选择一个秘密值
Figure BDA0003254630850000141
作为PKG的主私钥,并计算Ppub=sP作为主公钥。选择以下五个Hash函数:
Figure BDA0003254630850000142
H1:{0,1}*→G1
Figure BDA0003254630850000143
H3:G2→G1×{0,1}*
H:{0,1}*→{0,1}l,其中l表示字串长度;
S3013,初始化所述医疗数据管理系统的公共参数为:
param=(G1,G2,e,q,g,P,Ppub,H0,H1,H2,H3,H)。
优选地,S302,所述生成所述病历存储端、病历访问控制端以及病历请求端的长期密钥包括:
S3021,不失一般性地将所述病历存储端HN,所述病历访问控制端PN,所述病历请求端DN统一记为端U;
S3022,端U将自己的身份标识符IDU通过安全信道提交给PKG请求生成对应的私钥。PKG根据IDU计算QU=H0(IDU),
Figure BDA0003254630850000144
Figure BDA0003254630850000145
PKG将SU
Figure BDA0003254630850000146
通过安全信道发给U;
S3023,所述端U使用(QU,SU)来生成和验证基于身份的短签名,使用
Figure BDA0003254630850000151
来和其他端协商基于身份的可认证会话密钥。
优选地,S303,生成所述病历存储端与所述病历访问控制端的可认证身份对称密钥包括:
S3031,每个端的身份标识符是公开信息;所述病历访问控制端C使用所述病历存储端A的身份标识符IDA计算
Figure BDA0003254630850000152
选择随机数
Figure BDA0003254630850000153
并计算Tc=cP,将Tc传送给所述病历存储端A;
S3032,所述病历存储端A收到来自所述病历访问控制端C的Tc后,使用所述病历访问控制端C的身份标识符IDC计算
Figure BDA0003254630850000154
选择随机数
Figure BDA0003254630850000155
并计算Ta=aP,将Ta传送给所述病历访问控制端C,病历存储端A计算出与病历访问控制端C本次会话的可认证对称密钥skAC=H(IDC||IDA||aTc||KAC||Tc||Ta),并将病历加密发送给病历访问控制端;
S3033,所述病历访问控制端C收到来自所述病历存储端A的Ta后计算出与病历储端A本次会话的可认证对称密钥skCA=H(IDC||IDA||cTa||KCA||Tc||Ta),并用skCA解密出病历。
优选地,S304,生成所述病历的哈希值并使用分等级工作量证明共识将所述病历哈希值上传医疗区块链包括:
S3041,所述病历存储端A拥有病历访问控制端C的原始病历MRraw,计算所述原始病历哈希值digestMR=H(MRraw),生成含有该病历哈希值的非紧急交易:
tx={IDA,IDC,digestMR0,ts1A},
其中λ0是非紧急交易标识符,
ts1是生成该交易时的时间戳,
Figure BDA0003254630850000156
是所述病历存储端A对该交易的签名。
S3042,所述病历存储端A根据交易的类型调整挖矿难度值,非紧急交易的难度值为λ0=0,目标难度值为target=curDifficult×(1+λ0),其中target是目标难度值,curDifficult是实际挖矿难度值。
S3043,所述病历存储端A执行分等级工作量证明共识机制将非紧急交易tx上传到医疗区块链作为存证。
优选地,S305,生成包含病历关键词和病历在区块链中存储地址符的健康记录包括:
S3051,所述病历访问控制端C根据病历的内容提取关键词集合{keywords},生成健康记录:
HR={IDblk,H(tx),{keywords},ts2C},
其中IDblk是包含所述病历哈希值的交易在医疗区块链的区块编号,
H(tx)是交易在区块中的搜索标识符,
ts2是生成该健康记录的当前时间,
σC=signC(H(IDblk,H(tx),{keywords},ts2))是所述病历访问控制端对所述健康记录的签名。
S3052,所述病历访问控制端C使用自己指纹信息H(f)对所述健康记录进行加密得到健康记录的密文HR'=H(f)⊕HR,并调用智能合约将HR'存储到区块链中以及所述病历访问控制端C的医疗区块链账户中;
S3053,所述病历访问控制端通常是智能手机等资源有限的移动设备,在生成医疗记录后,所述病历访问控制端可以删除原始病历数据节约存储空间以及减少能耗。
优选地,S306,所述病历请求端在病人清醒时根据所述病历访问控制端的授权向病历存储端发送非紧急病历请求包括:
S3061,所述病历访问控制端C根据所述病历请求端B和病历存储端A的身份标识符生成QA=H0(IDA)和QB=H0(IDB),并计算
Figure BDA0003254630850000171
和cP作为授权因子传送给病历请求端B;
S3062,所述病历请求端B收到授权因子后选择随机数
Figure BDA0003254630850000172
并计算Tb∈bP,gb=gb,RB=b(Ppub+QBP),
Figure BDA0003254630850000173
将对病历的请求request放入m=(Tb||requst)并计算
Figure BDA0003254630850000174
h=H2(m||RB),
Figure BDA0003254630850000175
将(αCB,σ,RB,N)作为非紧急病历请求发给所述病历存储端。
优选地,S307,所述病历请求端在病人昏迷时使用智能合约搜索与病人指纹匹配的健康记录,上传紧急病历请求到医疗区块链并向病历存储端发送紧急病历请求包括:
S3071,所述病历请求端B提取病人指纹信息f,并计算H(f),调用智能合约搜索与H(f)匹配的健康记录HR;
S3072,所述智能合约将搜索到的健康记录HR反馈给所述病历请求端B,所述病历请求端B根据HR中的关键词集合{keywords}判断是否要请求该病历原始数据;
S3073,所述病历请求端B使用生成包含病历请求request的紧急交易:
tx'={IDB,IDA,request,λ1,ts3B},
其中λ1是紧急交易标识符,
ts3是生成该交易时的时间戳,
σB=SignB(H(IDB,IDA,request,λ1,ts3))是所述病历请求端B对该交易的签名。
S3074,所述病历请求端B根据交易的类型调整挖矿难度值,非紧急交易的难度值为λ1=1,目标难度值为target=curDifficult×(1+λ1),其中target是目标难度值,curDifficult是实际挖矿难度值;
S3075,所述病历请求端B将对病历的请求request放入m=(Tb||requst),将m传送给所述病历存储端A。
优选地,S308,所述病历存储端检查非紧急病历请求验证病历请求端的授权的合法性,并生成非紧急对称密钥加密病历包括:
S3081,所述病历存储端A根据(αCB,σ,RB,N)以及所述病历请求端B的身份标识符IDB计算QB=H0(IDB),gb'=e(Tc+QAP+QBP,αCB),
Figure BDA0003254630850000181
h'=H2(m'||RB),检查e(σ,RB+h'(Ppub+QBP))是否等于g,其中g=e(P,P);当等式成立时,证明所述病历请求端拥有来自所述病历访问控制端的合法授权;
S3082,所述病历存储端A计算
Figure BDA0003254630850000182
KAB-C=e(Tb,cP)a,生成本次病历共享的会话密钥skAB=H(IDB||IDA||aTb||KAB-C||KAB||Tb||Ta)并对所述病历加密,将Ta和病历密文发送给所述病历请求端B。
优选地,S309,所述病历存储端检查紧急病历请求是否存储在医疗区块链,并生成紧急对称密钥加密病历包括:
S3091,所述病历存储端A收到来自所述病历请求端B的m后,使用所述病历请求端B的身份标识符IDB计算
Figure BDA0003254630850000183
将Ta传送给所述病历请求端B,病历存储端A计算出与病历请求端B本次会话的可认证对称密钥skAB=H(IDB||IDA||aTb||KAB||Tb||Ta),并将病历加密发送给病历请求端B;
优选地,S310,所述病历请求端收到非紧急的加密病历后,根据病历访问控制端的授权生成对应的非紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定病历的完整性,完成数据共享包括:
S3101,所述病历请求端B使用病历访问控制端C的授权因子cP以及病历存储端的身份标识符IDA计算
Figure BDA0003254630850000184
KBA-C=e(Ta,cP)b,生成本次病历共享的会话密钥skBA=H(IDB||IDA||bTa||KBA-C||KBA||Tb||Ta)并对病历密文进行解密,得到病历原始数据,完成数据共享。
优选地,S311,所述病历请求端收到紧急的加密病历后,根据病历存储端身份信息生成对应的紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定病历的完整性,完成数据共享包括:
S3111,所述病历访问请求端B使用所述病历存储端A的身份标识符IDA计算
Figure BDA0003254630850000191
收到来自所述病历存储端A的Ta后计算出与病历储端A本次会话的可认证对称密钥skBA=H(IDB||IDA||bTa||KBA||Tb||Ta),并用skBA解密出病历,得到病历原始数据,完成数据共享。
优选地,S312,所述病历存储端根据固定时间间隔将该时段新产生的医疗区块哈希值存入监管区块链,完成对医疗区块链的监管包括:
S3121,所述病历存储端A和其他病历存储端一起构成联盟并执行实用拜占庭容错共识机制维护监管区块链;
S3122,每隔一个固定的时间间隔将该时段新生成的医疗区块链的区块进行哈希运算得到H(blk1),H(blk2),...,H(blki),并按照梅克尔树的结构组合并写入监管区块链。
其中,实施例2包含了对于所述实施例1中基于双区块链的医疗数据管理系统的生成方法以及整个基于可认证密钥协商和区块链的病人授权病历共享方法,其生成建立过程与共享是同步执行的,也可先建立后实现共享。
举例而言,病历访问控制端可以是一个病人C,病历存储端可以是一家医院A,病历请求端是另一家医院B。病人C先到医院A看病,医院A生成了病人C的相关病历并存储,同时医院A和病人C协商可认证会话密钥来传输病历并将协商中用到的中间量作为下一次访问控制的授权因子。病人还需要调用智能合约生成含有病历关键词以及病历在医疗区块链上存储标识符的健康记录以便在自己昏迷时,医院可以通过智能合约搜索到自己的健康记录。当病人C到医院B看病时,医院B可能需要根据病人C的过往病历来辅助诊断。此时病人C若清醒则向医院B授权;病人C若昏迷,医院采集病人C的指纹并调用智能合约搜索匹配的健康记录从而判断哪些病历有助于本次治疗,随后向区块链以及病历存储端A分别发出紧急病历访问请求。在收到病历访问请求后,病历存储端A判断请求类别。如果是非紧急请求,则验证病历请求端的权限然后共享病历,如果是紧急请求,则查询区块链是否记录该紧急请求然后共享病历。收到加密的病历后,病历请求端生成对应的解密密钥,解出病历明文,完成病历共享。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种基于双区块链的医疗数据管理系统,其特征在于,所述基于双区块链的医疗数据管理系统包括:
医疗区块链,用于:
运行分等级工作量证明共识来生成新的区块;
记录包含病历的哈希值的交易;
监管区块链,用于:
运行实用拜占庭容错共识以对所述新的区块进行排序;
记录所述医疗区块链的区块哈希值;
病历存储端,用于:
为病历访问控制端生成并存储原始的病历数据;
将所述原始的病历数据进行散列计算以得到数据摘要;
将所述数据摘要写入交易并上传至所述医疗区块链以进行存证;
与病历访问控制端协商用于共享病历数据的可认证身份对称密钥;
根据病历请求端提供的授权来共享本地存储的所述原始的病历数据;
验证待上链的交易并执行分等级工作量证明共识以生成新的医疗区块,并且每隔预设定的时间间隔将所生成的所述新的医疗区块对应的区块哈希值存入所述监管区块链;
所述病历访问控制端,用于:
在能够主动授权的情况下,向所述病历请求端发送访问所述病历的授权;
在无法主动授权的情况下,被动向病历请求端提供指纹信息以查询查询请求对应的相关医疗信息;
调用智能合约存储包含病历关键词的健康记录;
所述病历请求端,用于:
在病人清醒时获取主动授权并向病历存储端发送非紧急病历请求以获取所述原始的病历数据;
在病人处于昏迷状态时调用智能合约搜索与病人指纹匹配的健康记录以获得所述病历关键词;
向所述医疗区块链发送紧急访问病历的请求并向所述病历存储端请求所述原始的病历数据。
2.根据权利要求1所述的基于双区块链的医疗数据管理系统,其特征在于,所述医疗区块链用于:
记录区块的类型;其中,所述类型包括记录包含病历哈希值的交易的普通类型的区块,记录所述紧急访问病历的请求的紧急类型的区块;以及
根据所记录的所述区块的类型调整生成新的区块的速度。
3.一种基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,使用权利要求1或2所述的基于双区块链的医疗数据管理系统,所述基于可认证密钥协商和区块链的病人授权病历共享方法包括:
初始化所述医疗数据管理系统;
生成所述病历存储端、病历访问控制端以及病历请求端各自的长期密钥;
生成所述病历存储端与所述病历访问控制端各自的可认证身份对称密钥;
生成所述病历的哈希值并使用分等级工作量证明共识将所述病历的哈希值上传至所述医疗区块链;
生成包含病历关键词和病历在区块链中存储地址符的健康记录;
所述病历请求端在病人清醒时根据所述病历访问控制端的授权向所述病历存储端发送非紧急病历请求;
所述病历请求端在病人处于昏迷状态时使用智能合约搜索与病人指纹匹配的健康记录,上传紧急病历请求到所述医疗区块链并向所述病历存储端发送紧急病历请求;
在接收到所述非紧急病历请求时,所述病历存储端检查所述非紧急病历请求以验证所述病历请求端的授权的合法性,并生成非紧急对称密钥加密病历;
在接收到所述紧急病历请求时,所述病历存储端检查所述紧急病历请求是否存储在所述医疗区块链,并生成紧急对称密钥加密病历;
所述病历请求端收到所述非紧急对称密钥加密病历后,根据所述病历访问控制端的授权生成对应的非紧急对称密钥解密病历,并与所述医疗区块链中的哈希值比对确定病历的完整性,完成数据共享;
所述病历请求端收到紧急的加密病历后,根据所述病历存储端身份信息生成对应的紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定所述病历的完整性,完成数据共享;以及
所述病历存储端每隔预设定的时间间隔将该时间间隔新产生的所述医疗区块链的区块哈希值存入所述监管区块链,完成对所述医疗区块链的监管。
4.根据权利要求3所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述初始化所述医疗数据管理系统包括:
私钥生成中心选择一个大素数q和一个双线性对e:G1×G1→G2,其中,G1是阶数为q的加法循环群,G2是阶数为q的乘法循环群;P是循环群G的一个生成元,计算g=e(P,P);所述私钥生成中心选择一个秘密值
Figure FDA0003254630840000031
作为所述私钥生成中心的主私钥,并计算Ppub=sP作为主公钥;选择以下五个Hash函数:
Figure FDA0003254630840000032
H1:{0,1}*→G1
Figure FDA0003254630840000041
H3:G2→G1×{0,1}*
H:{0,1}*→{0,1}l,其中l表示字串长度;
初始化所述医疗数据管理系统的公共参数为:
param=(G1,G2,e,q,g,P,Ppub,H0,H1,H2,H3,H);
并且,所述生成所述病历存储端、病历访问控制端以及病历请求端各自的长期密钥包括:
将所述病历存储端HN、所述病历访问控制端PN、以及所述病历请求端DN统一记为端U;
所述端U将自身的身份标识符IDU通过安全信道提交给所述私钥生成中心请求生成对应的私钥;
所述私钥生成中心根据所述身份标识符IDU计算QU=H0(IDU),
Figure FDA0003254630840000042
其中s是私钥生成中心的主私钥;
所述私钥生成中心将SU
Figure FDA0003254630840000043
通过安全信道发给所述端U;
所述端U使用(QU,SU)来生成和验证基于身份的短签名,使用
Figure FDA0003254630840000044
生成基于身份的可认证会话密钥;
并且,所述生成所述病历存储端与所述病历访问控制端各自的可认证身份对称密钥包括:
病历访问控制端C使用病历存储端A的身份标识符IDA计算
Figure FDA0003254630840000045
选择随机数
Figure FDA0003254630840000046
并计算Tc=cP,将Tc传送给所述病历存储端A;其中,所述病历存储端A的身份标识符IDA、病历访问控制端C的身份标识符IDC被配置均为公开信息;
所述病历存储端A收到来自所述病历访问控制端C的Tc后,使用所述病历访问控制端C的身份标识符IDC计算
Figure FDA0003254630840000051
选择随机数
Figure FDA0003254630840000052
并计算Ta=aP,将Ta传送给所述病历访问控制端C,所述病历存储端A计算出与所述病历访问控制端C本次会话的可认证对称密钥skAC=H(IDC||IDA||aTc||KAC||Tc||Ta),并将所述病历加密发送给所述病历访问控制端C;
所述病历访问控制端C收到来自所述病历存储端A的Ta后计算出与病历储端A本次会话的可认证对称密钥skCA=H(IDC||IDA||cTa||KCA||Tc||Ta),并用skCA解密出所述病历。
5.根据权利要求4所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述生成所述病历的哈希值并使用分等级工作量证明共识将所述病历的哈希值上传至所述医疗区块链包括:
所述病历存储端A拥有病历访问控制端C的原始病历MRraw,计算所述原始的病历哈希值digestMR=H(MRraw),生成含有该病历的哈希值的非紧急交易:
tx={IDA,IDC,digestMR0,ts1A},
其中,λ0是非紧急交易标识符,ts1是生成该交易时的时间戳;
Figure FDA0003254630840000053
是所述病历存储端A对该交易的签名;
所述病历存储端A根据交易的类型调整挖矿难度值,其中,非紧急交易的难度值为λ0=0,目标难度值为target=curDifficult×(1+λ0),其中curDifficult是实际挖矿难度值;以及
所述病历存储端A执行分等级工作量证明共识机制将所述非紧急交易tx上传到所述医疗区块链作为存证。
6.根据权利要求5所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述生成包含病历关键词和病历在区块链中存储地址符的健康记录包括:
所述病历访问控制端C根据病历的内容提取关键词集合{keywords},生成健康记录:HR={IDblk,H(tx),{keywords},ts2C},
其中,IDblk是包含所述病历哈希值的交易在医疗区块链的区块编号,H(tx)是交易在区块中的搜索标识符,ts2是生成该健康记录的时间,σC=signC(H(IDblk,H(tx),{keywords},ts2))是所述病历访问控制端对所述健康记录的签名;
所述病历访问控制端C使用自身的指纹信息H(f)对所述健康记录进行加密得到健康记录的密文
Figure FDA0003254630840000061
并调用智能合约将HR'存储到区块链中以及所述病历访问控制端C的医疗区块链的账户中;
所述病历访问控制端C在生成所述健康记录后能够删除所述原始的病历数据。
7.根据权利要求6所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述病历请求端在病人清醒时根据所述病历访问控制端的授权向所述病历存储端发送非紧急病历请求包括:
所述病历访问控制端C根据所述病历请求端B和病历存储端A的身份标识符生成QA=H0(IDA)和QB=H0(IDB),并计算
Figure FDA0003254630840000062
和cP作为授权因子传送给所述病历请求端B;
所述病历请求端B收到授权因子后选择随机数
Figure FDA0003254630840000063
并计算Tb∈bP,gb=gb,RB=b(Ppub+QBP),
Figure FDA0003254630840000064
将对病历的请求request放入m=(Tb||requst)并计算
Figure FDA0003254630840000071
h=H2(m||RB),
Figure FDA0003254630840000072
将(αCB,σ,RB,N)作为非紧急病历请求发给所述病历存储端;
并且,所述病历请求端在病人处于昏迷状态时使用智能合约搜索与病人指纹匹配的健康记录,上传紧急病历请求到所述医疗区块链并向所述病历存储端发送紧急病历请求包括:
所述病历请求端B提取病人指纹信息f,并计算H(f),调用智能合约搜索与H(f)匹配的健康记录HR;
所述智能合约将搜索到的健康记录HR反馈给所述病历请求端B,所述病历请求端B根据HR中的关键词集合{keywords}判断是否要请求该病历原始数据;
所述病历请求端B生成包含病历请求request的紧急交易:
tx'={IDB,IDA,request,λ1,ts3B},
其中λ1是紧急交易标识符,ts3是生成该交易时的时间戳,σB=SignB(H(IDB,IDA,request,λ1,ts3))是所述病历请求端B对该交易的签名;
所述病历请求端B根据交易的类型调整挖矿难度值;其中,非紧急交易的难度值为λ1=1,目标难度值为target=curDifficult×(1+λ1),其中target是目标难度值,curDifficult是实际挖矿难度值;
所述病历请求端B将对病历的请求request放入m=(Tb||requst),将m传送给所述病历存储端A。
8.根据权利要求7所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述病历存储端检查所述非紧急病历请求以验证所述病历请求端的授权的合法性,并生成非紧急对称密钥加密病历包括:
所述病历存储端A根据(αCB,σ,RB,N)和所述病历请求端B的身份标识符IDB计算QB=H0(IDB),gb'=e(Tc+QAP+QBP),
Figure FDA0003254630840000081
h'=H2(m'||RB),检查e(σ,RB+h'(Ppub+QBP))是否等于g,其中g=e(P,P),当检查结果为等于时,证明所述病历请求端拥有来自所述病历访问控制端的合法授权;
所述病历存储端A计算
Figure FDA0003254630840000082
KAB-C=e(Tb,cP)a,生成本次病历共享的会话密钥skAB=H(IDB||IDA||aTb||KAB-C||KAB||Tb||Ta)并对所述病历加密,将Ta和病历密文发送给所述病历请求端B;
并且,所述病历存储端检查所述紧急病历请求是否存储在所述医疗区块链,并生成紧急对称密钥加密病历包括:
所述病历存储端A收到来自所述病历请求端B的m后,使用所述病历请求端B的身份标识符IDB计算
Figure FDA0003254630840000083
将Ta传送给所述病历请求端B,所述病历存储端A计算出与病历请求端B本次会话的可认证对称密钥skAB=H(IDB||IDA||aTb||KAB||Tb||Ta),并将病历加密发送给病历请求端B。
9.根据权利要求8所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述病历请求端收到所述非紧急对称密钥加密病历后,根据所述病历访问控制端的授权生成对应的非紧急对称密钥解密病历,并与所述医疗区块链中的哈希值比对确定病历的完整性,完成数据共享包括:
所述病历请求端B使用病历访问控制端C的授权因子cP以及病历存储端的身份标识符IDA计算
Figure FDA0003254630840000084
KBA-C=e(Ta,cP)b,生成本次病历共享的会话密钥skBA=H(IDB||IDA||bTa||KBA-C||KBA||Tb||Ta)并对病历密文进行解密,得到病历原始数据,完成数据共享;
并且,所述病历请求端收到紧急的加密病历后,根据所述病历存储端身份信息生成对应的紧急对称密钥解密病历,并与医疗区块链中的哈希值比对确定所述病历的完整性,完成数据共享包括:
所述病历访问请求端B使用所述病历存储端A的身份标识符IDA计算
Figure FDA0003254630840000091
收到来自所述病历存储端A的Ta后计算出与病历储端A本次会话的可认证对称密钥skBA=H(IDB||IDA||bTa||KBA||Tb||Ta),并用skBA解密出病历,得到病历原始数据,完成数据共享。
10.根据权利要求9所述的基于可认证密钥协商和区块链的病人授权病历共享方法,其特征在于,所述病历存储端每隔预设定的时间间隔将该时间间隔新产生的所述医疗区块链的区块哈希值存入所述监管区块链,完成对所述医疗区块链的监管包括:
所述病历存储端A和其他病历存储端一起构成联盟并执行实用拜占庭容错共识机制维护监管区块链;
每隔一个每隔预设定的时间间隔将该时段新生成的医疗区块链的区块进行哈希运算得到H(blk1),H(blk2),...,H(blki),并按照梅克尔树的结构组合并写入监管区块链。
CN202111055884.7A 2021-09-09 2021-09-09 一种基于双区块链的医疗数据管理系统、病人授权病历共享方法 Active CN113764060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111055884.7A CN113764060B (zh) 2021-09-09 2021-09-09 一种基于双区块链的医疗数据管理系统、病人授权病历共享方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111055884.7A CN113764060B (zh) 2021-09-09 2021-09-09 一种基于双区块链的医疗数据管理系统、病人授权病历共享方法

Publications (2)

Publication Number Publication Date
CN113764060A true CN113764060A (zh) 2021-12-07
CN113764060B CN113764060B (zh) 2023-09-22

Family

ID=78794388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111055884.7A Active CN113764060B (zh) 2021-09-09 2021-09-09 一种基于双区块链的医疗数据管理系统、病人授权病历共享方法

Country Status (1)

Country Link
CN (1) CN113764060B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936851A (zh) * 2022-07-25 2022-08-23 雅安数字经济运营有限公司 一种基于区块链的idc数据协同方法及系统
WO2023179056A1 (zh) * 2022-03-24 2023-09-28 腾讯科技(深圳)有限公司 区块链网络的共识处理方法、装置、设备及存储介质、程序产品
CN117540432A (zh) * 2024-01-05 2024-02-09 河北数港科技有限公司 一种互联网的数据隐私保护方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180060496A1 (en) * 2016-08-23 2018-03-01 BBM Health LLC Blockchain-based mechanisms for secure health information resource exchange
CN109326337A (zh) * 2018-09-06 2019-02-12 西安电子科技大学 基于区块链的电子医疗记录存储和共享的模型及方法
CN109948367A (zh) * 2019-03-27 2019-06-28 南京星链高科技发展有限公司 一种基于区块链技术的医疗数据授权方法
CN110299195A (zh) * 2019-06-11 2019-10-01 中国矿业大学 基于联盟链的具有隐私保护的电子病历共享系统及应用方法
CN112735551A (zh) * 2021-01-15 2021-04-30 山东科技大学 基于H-Algorand共识机制的医疗记录存储共享模型及其实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180060496A1 (en) * 2016-08-23 2018-03-01 BBM Health LLC Blockchain-based mechanisms for secure health information resource exchange
CN109326337A (zh) * 2018-09-06 2019-02-12 西安电子科技大学 基于区块链的电子医疗记录存储和共享的模型及方法
CN109948367A (zh) * 2019-03-27 2019-06-28 南京星链高科技发展有限公司 一种基于区块链技术的医疗数据授权方法
CN110299195A (zh) * 2019-06-11 2019-10-01 中国矿业大学 基于联盟链的具有隐私保护的电子病历共享系统及应用方法
CN112735551A (zh) * 2021-01-15 2021-04-30 山东科技大学 基于H-Algorand共识机制的医疗记录存储共享模型及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
甘霖;杨建华;路松峰;: "基于区块链的电子病历共享技术研究", 中国数字医学, no. 12 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023179056A1 (zh) * 2022-03-24 2023-09-28 腾讯科技(深圳)有限公司 区块链网络的共识处理方法、装置、设备及存储介质、程序产品
CN114936851A (zh) * 2022-07-25 2022-08-23 雅安数字经济运营有限公司 一种基于区块链的idc数据协同方法及系统
CN114936851B (zh) * 2022-07-25 2022-11-01 雅安数字经济运营有限公司 一种基于区块链的idc数据协同方法及系统
CN117540432A (zh) * 2024-01-05 2024-02-09 河北数港科技有限公司 一种互联网的数据隐私保护方法及系统
CN117540432B (zh) * 2024-01-05 2024-03-19 河北数港科技有限公司 一种互联网的数据隐私保护方法及系统

Also Published As

Publication number Publication date
CN113764060B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
US11244059B2 (en) Blockchain for managing access to medical data
CN108681966B (zh) 一种基于区块链的信息监管方法及装置
De Oliveira et al. Towards a blockchain-based secure electronic medical record for healthcare applications
US11429738B2 (en) Blockchain endorsement with approximate hash verification
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
US20210273812A1 (en) Data system with information provenance
US20200364358A1 (en) Cognitive system for managing consent to user data
CN113764060B (zh) 一种基于双区块链的医疗数据管理系统、病人授权病历共享方法
Hirtan et al. Blockchain-based approach for e-health data access management with privacy protection
US11323269B2 (en) Preserving privacy of linked cross-network transactions
US20200374300A1 (en) Database malicious peer identification
US11949794B2 (en) Data anonymization of blockchain-based processing pipeline
CN113407627A (zh) 一种基于区块链的智能医疗网络系统及医疗数据共享方法
US11050822B2 (en) Secure data dissemination
US20220138550A1 (en) Blockchain for artificial intelligence training
T. de Oliveira et al. A break-glass protocol based on ciphertext-policy attribute-based encryption to access medical records in the cloud
CN111488619A (zh) 基于区块链的健康数据隐私保护与共享系统
Younis et al. Blockchain-enabled and data-driven smart healthcare solution for secure and privacy-preserving data access
CN114357492A (zh) 一种基于区块链的医疗数据隐私融合方法及装置
Yoosuf Lightweight fog‐centric auditing scheme to verify integrity of IoT healthcare data in the cloud environment
US11856092B2 (en) Limiting data availability on distributed ledger
US20220166616A1 (en) Key reclamation in blockchain network via oprf
CN113469827A (zh) 一种基于混合智能合约的保险理赔装置及方法
US20230091686A1 (en) Digital asset platform with hsm verification
CN114978664A (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
GR01 Patent grant
GR01 Patent grant