CN115021903A - 一种基于区块链的电子病历共享方法及系统 - Google Patents

一种基于区块链的电子病历共享方法及系统 Download PDF

Info

Publication number
CN115021903A
CN115021903A CN202210562162.9A CN202210562162A CN115021903A CN 115021903 A CN115021903 A CN 115021903A CN 202210562162 A CN202210562162 A CN 202210562162A CN 115021903 A CN115021903 A CN 115021903A
Authority
CN
China
Prior art keywords
medical record
data
record data
block chain
electronic medical
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
CN202210562162.9A
Other languages
English (en)
Other versions
CN115021903B (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.)
Hubei University of Technology
Original Assignee
Hubei University of 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 Hubei University of Technology filed Critical Hubei University of Technology
Priority to CN202210562162.9A priority Critical patent/CN115021903B/zh
Publication of CN115021903A publication Critical patent/CN115021903A/zh
Application granted granted Critical
Publication of CN115021903B publication Critical patent/CN115021903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

本发明公开了一种基于区块链的电子病历共享方法及系统,系统的实体包括数据拥有者A、数据请求者B、电子病历授权机构、存储加密病历数据的IPFS系统和存储加密索引的区块链。数据拥有者A加密病历数据,上传到IPFS系统中并接收IPFS系统返回的CID值,并与病历数据的关键字进行绑定,再上传到区块链;数据请求者B向区块链发送搜索请求,通过智能合约对其身份进行认证;若通过,通过关键字对应的CID值找到对应的病历数据;IPFS系统对该病历数据进行第一次加密,电子病历授权机构对其进行第二次加密,生成的重加密病历数据发送给数据请求者B进行解密;在数据返回过程中,对病历数据进行了两次加密,有效防止了病历数据被泄露、被篡改,保证了病历数据的安全。

Description

一种基于区块链的电子病历共享方法及系统
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的电子病历共享方法及系统。
背景技术
随着时代的发展,以往医疗过程中的纸质病历已满足不了如今的需求,于是电子病历应运而生,它使得人们对于病历的管理更加快捷便利。绝大部分医院对于电子病历采用的是中心化的存储方式,患者的电子病历由各个医院进行集中存储,然而电子病历作为患者自身极其重要的隐私信息,采用中心化的存储方式是难以保证病历数据的安全,当面对攻击者侵入时,极易泄露病历数据。
发明内容
为了解决现有技术中存在的病历数据隐私性不够的技术问题,本发明提供了一种基于区块链的电子病历共享方法及系统,能够有效的防止用户信息被泄露、被篡改,能够安全的收集、存储和共享用户病历数据。
本发明第一方面公开了一种基于区块链的电子病历共享方法,包括:
S1:初始化阶段,包括医疗机构管理员预先对病历数据进行签名,生成病历数据的签名;电子病历授权机构与IPFS系统生成协商密钥PK;数据请求者B生成密钥对,包括公钥和私钥;
S2:上传病历数据阶段,包括电子病历授权机构对数据拥有者A要上传的病历数据的签名进行验证,验证通过后,数据拥有者A上传对应的病历数据,并将病历数据的多个关键字和CID值进行绑定,上传至区块链中;
S3:请求病历数据阶段,数据请求者B通过区块链的智能合约进行身份验证,如果验证通过,通过关键字请求病历数据,接收经IPFS系统和电子病历授权机构进行重加密后的病历数据,并对重加密后的病历数据进行解密获得原始病历数据。
在一种实施方式中,步骤S1包括:
S1.1:医疗机构管理员使用国密SM2签名算法对病历数据m进行签名,生成病历数据的签名为(r,s),其中,r为签名的第一部分,s为签名的第二部分;
S1.2:电子病历授权机构与IPFS系统生成协商密钥PK;
S1.3:数据请求者B选择随机数u,生成密钥对为(skB,pkB)=(u,gu mod n2),其中,skB为数据请求者B的私钥,pkB为数据请求者B的公钥,g为生成元,n为模数。
在一种实施方式中,步骤S1.1包括:
S1.1.1:设医疗机构管理员的私钥为随机数d,d∈[1,N-1],其中N是基点G1的阶;计算医疗机构管理员的公钥P=dG1
S1.1.2:对病历数据与数据拥有者A的身份标识进行拼接,生成拼接后的第一消息,具体为:
Figure BDA0003656664520000027
计算
Figure BDA0003656664520000028
将第一摘要e的数据类型转换为整数,m为病历数据,ZA为数据拥有者A的身份标识,
Figure BDA0003656664520000026
为拼接后的第一消息,Hv是输出为v比特长的哈希函数;
S1.1.3:用随机数发生器产生随机数k∈[1,N-1];
S1.1.4:计算椭圆曲线点C1=kG1=(x1,y1),x1和y1分别为点C1的横坐标和纵坐标;
S1.1.5:计算r=(e+x1)mod N,若r=0或r+k=N,则返回步骤S1.1.3,否则执行步骤S1.1.6;
S1.1.6:计算s=((1+d)-1*(k-r·d))mod N,若s=0,则返回步骤1.1.3,否则执行步骤S1.1.7;
S1.1.7:根据r和s得到病历数据m的签名(r,s)。
在一种实施方式中,步骤S1.2包括:
S1.2.1:配置安全参数K,选择两个大素数p,q,计算n=p*q,n为模数,满足方程L(p)=L(q)=K,其中
Figure BDA0003656664520000021
存在两个素数p′和q′且满足p=2p′+1,q=2q′+1;
S1.2.2:在群G2中选择一个具有极大阶的生成元g,G2是n2的循环群;
S1.2.3:电子病历授权机构和IPFS系统分别生成公私钥:(skt=a,pkt=gamod n2)和(skIPFS=b,pkIPFS=gbmod n2),其中a,b为随机数,skt、pkt为电子病历授权机构的私钥和公钥,skIPFS、pkIPFS为IPFS系统的私钥和公钥;
S1.2.4:电子病历授权机构和IPFS系统互相发送公钥给对方;
S1.2.5:得到协商密钥
Figure BDA0003656664520000022
在一种实施方式中,步骤S2包括:
S2.1:数据拥有者A向电子病历授权机构发送病历数据m及其签名(r,s);
S2.2:电子病历授权机构接收病历数据m及其签名(r,s);
S2.3:电子病历授权机构检验r,s∈[1,N-1]是否成立;
S2.4:当成立时对病历数据m与数据拥有者A的身份标识ZA进行拼接,生成
Figure BDA0003656664520000023
然后通过哈希函数对拼接后的第二消息
Figure BDA0003656664520000024
进行运算,生成第二摘要
Figure BDA0003656664520000025
将e′的数据类型转换为整数,Hv是输出为v比特长的哈希函数;
S2.5:通过生成的签名(r,s),计算生成t=(r+s)mod N,若t=0,则验证不通过,反之继续执行,t为第一部分验证值;
S2.6:计算椭圆曲线上的新点(x′1,y′1)=[s]G1+[t]P;
S2.7:计算R=(e′+x′1)mod N,检验R=r是否成立,若成立则验证通过,否则验证不通过,R为第二部分验证值,反之继续执行;
S2.8:若验证通过,数据拥有者A选择一个随机数w,w∈[1,n/4],然后用PK加密电子病历数据m,生成的加密病历数据为[m]={T,T′},其中T=(1+m*n)*PKwmod n2,T′=gwmodn2,上传加密病历数据[m]至IPFS系统中,T为加密病历数据的第一部分,T′为加密病历数据的第二部分;
S2.9:IPFS系统返回该病历数据的CID值,数据拥有者A将病历数据的多个关键字和CID值绑定,上传至区块链中。
在一种实施方式中,步骤S3包括:
S3.1:数据请求者B通过智能合约进行身份认证,若身份认证成功,则数据请求者B通过关键字向区块链请求相关的病历数据;
S3.2:区块链搜索该关键字对应的CID值,将其发送给电子病历授权机构;
S3.3:电子病历授权机构接收CID值后,请求IPFS系统中CID值对应的加密病历数据;
S3.4:IPFS系统找到对应的加密病历数据后,将使用数据请求者B的公钥对该加密病历数据进行第一次重加密,并且将第一次重加密后的病历数据发送给电子病历授权机构;
S3.5:电子病历授权机构接收IPFS系统返回的第一次重加密后的病历数据,使用数据请求者B的公钥对其进行第二次重加密,并将第二次重加密后的病历数据返回给数据请求者B;
S3.6:数据请求者B接收到第二次重加密后的病历数据,使用自己的私钥对其进行解密,获得原始病历数据。
在一种实施方式中,S3.4包括:
IPFS系统使用数据请求者B的公钥pkB对生成的加密病历数据[m]进行加密,通过数据请求者B的公钥与IPFS系统的私钥生成
Figure BDA0003656664520000031
生成第一次重加密后的病历数据
Figure BDA0003656664520000032
其中,h1为第一部分加密参数,
Figure BDA0003656664520000033
为第一次重加密后的病历数据的第一部分,
Figure BDA0003656664520000034
为第一次重加密后的病历数据的第二部分。
在一种实施方式中,步骤S3.5包括:电子病历授权机构接收到数据[m]+后,使用数据请求者B的公钥pkB加密[m]+,生成
Figure BDA0003656664520000041
Figure BDA0003656664520000042
其中,
Figure BDA0003656664520000048
为第二次重加密后的病历数据,h2为第二部分加密参数,
Figure BDA0003656664520000043
为第二次重加密后的病历数据的第一部分,
Figure BDA0003656664520000044
为第二次重加密后的病历数据的第二部分。
在一种实施方式中,步骤S3.6包括:
计算
Figure BDA0003656664520000045
参数
Figure BDA0003656664520000046
使用h1′和h2′计算出原始病历数据
Figure BDA0003656664520000047
其中,h1′为第一部分解密参数,h2′为第二部分解密参数。
基于同样的发明构思,本发明第二方面公开了一种基于区块链的电子病历共享系统,包括数据拥有者A、数据请求者B、电子病历授权机构、IPFS系统和区块链,用于执行第一方面的初始化阶段、上传病历数据阶段以及请求病历数据阶段,
其中,数据拥有者A具体用于:加密病历数据,并将加密后的病历数据发送到IPFS系统;将所述病历数据的多个关键字和返回的CID值绑定,上传至区块链中;
数据请求者B具体用于:向区块链发送病历数据请求,并进行身份认证;若认证通过,获得访问病历数据的权限;
电子病历授权机构具体用于:验证数据拥有者A上传病历数据的有效性,若验证通过,则允许数据拥有者A上传病历数据;在请求病历数据阶段对所返回的数据进行重加密;
IPFS系统具体用于:生成病历数据对应的CID值,并返回给数据拥有者A;以及当数据请求者B请求病历数据时,对病历数据进行重加密并返回给电子病历授权机构;
区块链具体用于:存储数据拥有者A绑定后的CID值和关键字;当数据请求者B请求病历数据时,通过智能合约进行身份认证。
相对于现有技术,本发明的优点和有益的技术效果如下:
本发明提供的一种基于区块链的电子病历共享方法,通过结合区块链技术和IPFS系统,更加高效的存储病历数据,确保存储在区块链上的数据不会被修改或篡改;采用绑定CID值和多个关键字的方法提高了病历数据的搜索效率;使用重加密的方法处理病历数据,有效地保证了共享病历数据时的安全。本发明不仅保证了数据拥有者A所上传的病历数据的真实性和存储安全,还保证了数据请求者B请求数据时,能够安全地接收病历数据。
本发明还提供一种基于区块链的电子病历共享系统。对电子病历系统与区块链系统进行了巧妙的结合,能够有效的保证病历数据的安全性,避免隐私的泄露。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于区块链的电子病历共享方法的流程图;
图2为本发明实施例中一种基于区块链的电子病历共享系统的交互框图。
具体实施方式
本发明的目的在于提供一种基于区块链的电子病历共享方法及系统,从而实现能够有效的防止用户信息被泄露、被篡改,能够安全的收集、存储和共享用户病历数据的技术效果。
本发明的主要构思和创新如下:
提供一种基于区块链的电子病历共享方法及系统,其中系统的实体包括:数据拥有者A、数据请求者B、电子病历授权机构、存储加密病历数据的IPFS系统和存储加密索引的区块链。数据拥有者A通过电子病历授权机构的验证后,加密病历数据,并上传到IPFS系统中;数据拥有者A接收IPFS系统返回的CID值,将该CID值与病历数据的关键字进行绑定,并将其上传到区块链上以进行共享;数据请求者B向区块链发送搜索请求,区块链通过智能合约对其身份进行认证;若身份认证通过,通过关键字对应的CID值找到存储在IPFS系统中的病历数据;IPFS系统对该病历数据进行第一次加密,电子病历授权机构对该病历数据进行第二次加密,生成的重加密病历数据发送给数据请求者B进行解密;在数据返回过程中,对病历数据进行了两次加密,有效防止了病历数据被泄露、被篡改,保证了病历数据的安全。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种基于区块链的电子病历共享方法,包括:
S1:初始化阶段,包括医疗机构管理员预先对病历数据进行签名,生成病历数据的签名;电子病历授权机构与IPFS系统生成协商密钥PK;数据请求者B生成密钥对,包括公钥和私钥;
S2:上传病历数据阶段,包括电子病历授权机构对数据拥有者A要上传的病历数据的签名进行验证,验证通过后,数据拥有者A上传对应的病历数据,并将病历数据的多个关键字和CID值进行绑定,上传至区块链中;
S3:请求病历数据阶段,数据请求者B通过区块链的智能合约进行身份验证,如果验证通过,通过关键字请求病历数据,接收经IPFS系统和电子病历授权机构进行重加密后的病历数据,并对重加密后的病历数据进行解密获得原始病历数据。
如图1所示,一种基于区块链的电子病历共享方法的各个参与方包括:数据拥有者A、数据请求者B、电子病历授权机构、IPFS系统和区块链。本发明整体流程分为三个阶段,即初始化阶段、上传病历数据阶段和请求病历数据阶段。
需要说明的是,CID值是指病历数据的索引值。
在一种实施方式中,步骤S1包括:
S1.1:医疗机构管理员使用国密SM2签名算法对病历数据m进行签名,生成病历数据的签名为(r,s),其中,r为签名的第一部分,s为签名的第二部分;
S1.2:电子病历授权机构与IPFS系统生成协商密钥PK;
S1.3:数据请求者B选择随机数u,生成密钥对为(skB,pkB)=(u,gu mod n2),其中,skB为数据请求者B的私钥,pNB为数据请求者B的公钥,g为生成元,n为模数。
在一种实施方式中,步骤S1.1包括:
S1.1.1:设医疗机构管理员的私钥为随机数d,d∈[1,N-1],其中N是基点G1的阶;计算医疗机构管理员的公钥P=dG1
S1.1.2:对病历数据与数据拥有者A的身份标识进行拼接,生成拼接后的第一消息,具体为:
Figure BDA0003656664520000061
计算
Figure BDA0003656664520000062
将第一摘要e的数据类型转换为整数,m为病历数据,ZA为数据拥有者A的身份标识,
Figure BDA0003656664520000063
为拼接后的第一消息,Hv是输出为v比特长的哈希函数;
S1.1.3:用随机数发生器产生随机数k∈[1,N-1];
S1.1.4:计算椭圆曲线点C1=kG1=(x1,y1),x1和y1分别为点C1的横坐标和纵坐标;
S1.1.5:计算r=(e+x1)mod N,若r=0或r+k=N,则返回步骤S1.1.3,否则执行步骤S1.1.6;
S1.1.6:计算s=((1+d)-1*(k-r·d))mod N,若s=0,则返回步骤1.1.3,否则执行步骤S1.1.7;
S1.1.7:根据r和s得到病历数据m的签名(r,s)。
在一种实施方式中,步骤S1.2包括:
S1.2.1:配置安全参数K,选择两个大素数p,q,计算n=p*q,n为模数,满足方程L(p)=L(q)=K,其中
Figure BDA0003656664520000064
存在两个素数p′和q′且满足p=2p′+1,q=2q′+1;
S1.2.2:在群G2中选择一个具有极大阶的生成元g,G2是n2的循环群;
S1.2.3:电子病历授权机构和IPFS系统分别生成公私钥:(skt=a,pkt=gamod n2)和(skIPFS=b,pkIPFS=gbmod n2),其中a,b为随机数,skt、pkt为电子病历授权机构的私钥和公钥,skIPFs、pkIPFS为IPFS系统的私钥和公钥;
S1.2.4:电子病历授权机构和IPFS系统互相发送公钥给对方;
S1.2.5:得到协商密钥
Figure BDA0003656664520000071
其中,步骤S1.2.1中,由于安全参数的性质,存在两个素数p′和q′且满足p=2p′+1,q=2q′+1。S1.2.5中协商密钥为Diffie-Hellman密钥(Whitefield Diffie与MartinHellman在1976年提出了一个密钥交换协议,称为Diffie-Hellman密钥交换协议/算法)。
在一种实施方式中,步骤S2包括:
S2.1:数据拥有者A向电子病历授权机构发送病历数据m及其签名(r,s);
S2.2:电子病历授权机构接收病历数据m及其签名(r,s);
S2.3:电子病历授权机构检验r,s∈[1,N-1]是否成立;
S2.4:当成立时对病历数据m与数据拥有者A的身份标识ZA进行拼接,生成
Figure BDA0003656664520000072
然后通过哈希函数对拼接后的第二消息
Figure BDA0003656664520000073
进行运算,生成第二摘要
Figure BDA0003656664520000074
将e′的数据类型转换为整数,Hv是输出为v比特长的哈希函数;
S2.5:通过生成的签名(r,s),计算生成t=(r+s)mod N,若t=0,则验证不通过,反之继续执行,t为第一部分验证值;
S2.6:计算椭圆曲线上的新点(x′1,y′1)=[s]G1+[t]P;
S2.7:计算R=(e′+x′1)mod N,检验R=r是否成立,若成立则验证通过,否则验证不通过,R为第二部分验证值,反之继续执行;
S2.8:若验证通过,数据拥有者A选择一个随机数w,w∈[1,n/4],然后用PK加密电子病历数据m,生成的加密病历数据为[m]={T,T′},其中T=(1+m*n)*PKwmod n2,T′=wmodn2,上传加密病历数据[m]至IPFS系统中,T为加密病历数据的第一部分,T′为加密病历数据的第二部分;
S2.9:IPFS系统返回该病历数据的CID值,数据拥有者A将病历数据的多个关键字和CID值绑定,上传至区块链中。
具体来说,R是计算出的第二部分验证值,用来与r进行对比。加密病历数据[m]包括两部分:T和T′。
在一种实施方式中,步骤S3包括:
S3.1:数据请求者B通过智能合约进行身份认证,若身份认证成功,则数据请求者B通过关键字向区块链请求相关的病历数据;
S3.2:区块链搜索该关键字对应的CID值,将其发送给电子病历授权机构;
S3.3:电子病历授权机构接收CID值后,请求IPFS系统中CID值对应的加密病历数据;
S3.4:IPFS系统找到对应的加密病历数据后,将使用数据请求者B的公钥对该加密病历数据进行第一次重加密,并且将第一次重加密后的病历数据发送给电子病历授权机构;
S3.5:电子病历授权机构接收IPFS系统返回的第一次重加密后的病历数据,使用数据请求者B的公钥对其进行第二次重加密,并将第二次重加密后的病历数据返回给数据请求者B;
S3.6:数据请求者B接收到第二次重加密后的病历数据,使用自己的私钥对其进行解密,获得原始病历数据。
在一种实施方式中,S3.4包括:
IPFS系统使用数据请求者B的公钥pkB对生成的加密病历数据[m]进行第一次重加密,通过数据请求者B的公钥与IPFS系统的私钥生成
Figure BDA0003656664520000081
生成第一次重加密后的病历数据
Figure BDA0003656664520000082
其中,h1为第一部分加密参数,
Figure BDA0003656664520000083
为第一次重加密后的病历数据的第一部分,
Figure BDA0003656664520000084
为第一次重加密后的病历数据的第二部分。
在一种实施方式中,步骤S3.5包括:电子病历授权机构接收到第一次重加密后的病历数据[m]+后,使用数据请求者B的公钥pkB加密[m]+,生成
Figure BDA0003656664520000085
Figure BDA0003656664520000086
Figure BDA0003656664520000087
其中,
Figure BDA0003656664520000088
为第二次重加密后的病历数据,h2为第二部分加密参数,
Figure BDA0003656664520000089
为第二次重加密后的病历数据的第一部分,
Figure BDA00036566645200000810
为第二次重加密后的病历数据的第二部分。
在一种实施方式中,步骤S3.6包括:
计算
Figure BDA00036566645200000811
参数
Figure BDA00036566645200000812
使用h1′和h2′计算出原始病历数据
Figure BDA00036566645200000813
其中,h1′为第一部分解密参数,h2′为第二部分解密参数。
实施例二
基于同样的发明构思,本发明第二方面提供了一种基于区块链的电子病历共享系统,包括:数据拥有者A、数据请求者B、电子病历授权机构、IPFS系统和区块链,用于执行实施例一所述的初始化阶段、上传病历数据阶段以及请求病历数据阶段,
其中,数据拥有者A具体用于:加密病历数据,并将加密后的病历数据发送到IPFS系统;将病历数据的多个关键字和返回的CID值绑定,上传至区块链中;
数据请求者B具体用于:向区块链发送病历数据请求,并进行身份认证;若认证通过,获得访问病历数据的权限;
电子病历授权机构具体用于:验证数据拥有者A上传病历数据的有效性,若验证通过,则允许数据拥有者A上传病历数据;在请求病历数据阶段对所返回的数据进行重加密;
IPFS系统具体用于:生成病历数据对应的CID值,并返回给数据拥有者A;以及当数据请求者B请求病历数据时,对病历数据进行重加密并返回给电子病历授权机构;
所述区块链具体用于:存储数据拥有者A绑定后的CID值和关键字;当数据请求者B请求病历数据时,通过智能合约进行身份认证。
请参见图2,为本发明实施例中一种基于区块链的电子病历共享系统的交互框图。
总体来说,本发明提供的一种基于区块链的电子病历共享方法及系统,在病历数据共享过程中,由IPFS系统和电子病历授权机构依次对存储在IPFS系统中的病历数据进行重加密后才共享给数据请求者B,从而有效的保证了病历数据共享时的安全;结合区块链技术和IPFS系统,更加高效的存储病历数据,确保存储在区块链上的数据不会被修改或篡改;上传病历数据阶段将CID值和多个关键字绑定,请求病历数据阶段使用多关键字搜索和模糊搜索的方法,两者结合极大的提高了搜索的范围和准确;此外,在上传病历数据前,相关医疗机构管理员需对病历数据进行签名,此举是为了确定病历数据是真实有效的,若病历数据是虚假的,则不予上传。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (10)

1.一种基于区块链的电子病历共享方法,其特征在于,包括:
S1:初始化阶段,包括医疗机构管理员预先对病历数据进行签名,生成病历数据的签名;电子病历授权机构与IPFS系统生成协商密钥PK;数据请求者B生成密钥对,包括公钥和私钥;
S2:上传病历数据阶段,包括电子病历授权机构对数据拥有者A要上传的病历数据的签名进行验证,验证通过后,数据拥有者A上传对应的病历数据,并将病历数据的多个关键字和CID值进行绑定,上传至区块链中;
S3:请求病历数据阶段,数据请求者B通过区块链的智能合约进行身份验证,如果验证通过,通过关键字请求病历数据,接收经IPFS系统和电子病历授权机构进行重加密后的病历数据,并对重加密后的病历数据进行解密获得原始病历数据。
2.如权利要求1所述的基于区块链的电子病历共享方法,其特征在于,步骤S1包括:
S1.1:医疗机构管理员使用国密SM2签名算法对病历数据m进行签名,生成病历数据的签名为(r,s),其中,r为签名的第一部分,s为签名的第二部分;
S1.2:电子病历授权机构与IPFS系统生成协商密钥PK;
S1.3:数据请求者B选择随机数u,生成密钥对为(skB,pkB)=(u,gu mod n2),其中,skB为数据请求者B的私钥,pkB为数据请求者B的公钥,g为生成元,n为模数。
3.如权利要求2所述的基于区块链的电子病历共享方法,其特征在于,步骤S1.1包括:
S1.1.1:设医疗机构管理员的私钥为随机数d,d∈[1,N-1],其中N是基点G1的阶;计算医疗机构管理员的公钥P=dG1
S1.1.2:对病历数据与数据拥有者A的身份标识进行拼接,生成拼接后的第一消息,具体为:
Figure FDA0003656664510000011
计算
Figure FDA0003656664510000012
将第一摘要e的数据类型转换为整数,m为病历数据,ZA为数据拥有者A的身份标识,
Figure FDA0003656664510000013
为拼接后的第一消息,Hv是输出为v比特长的哈希函数;
S1.1.3:用随机数发生器产生随机数k∈[1,N-1];
S1.1.4:计算椭圆曲线点C1=kG1=(x1,y1),x1和y1分别为点C1的横坐标和纵坐标;
S1.1.5:计算r=(e+x1)mod N,若r=0或r+k=N,则返回步骤S1.1.3,否则执行步骤S1.1.6;
S1.1.6:计算s=((1+d)-1*(k-r·d))mod N,若s=0,则返回步骤1.1.3,否则执行步骤S1.1.7;
S1.1.7:根据r和s得到病历数据m的签名(r,s)。
4.如权利要求2所述的基于区块链的电子病历共享方法,其特征在于,步骤S1.2包括:
S1.2.1:配置安全参数K,选择两个大素数p,q,计算n=p*q,n为模数,满足方程L(p)=L(q)=K,其中
Figure FDA0003656664510000021
存在两个素数p′和q′且满足p=2p′+1,q=2q′+1;
S1.2.2:在群G2中选择一个具有极大阶的生成元g,G2是n2的循环群;
S1.2.3:电子病历授权机构和IPFS系统分别生成公私钥:(skt=a,pkt=ga mod n2)和(SkIPFS=b,pkIPFS=gbmod n2),其中a,b为随机数,skt、pkt为电子病历授权机构的私钥和公钥,skIPFS、pkIPFS为IPFS系统的私钥和公钥;
S1.2.4:电子病历授权机构和IPFS系统互相发送公钥给对方;
S1.2.5:得到协商密钥
Figure FDA0003656664510000022
5.如权利要求1所述的基于区块链的电子病历共享方法,其特征在于,步骤S2包括:
S2.1:数据拥有者A向电子病历授权机构发送病历数据m及其签名(r,s);
S2.2:电子病历授权机构接收病历数据m及其签名(r,s);
S2.3:电子病历授权机构检验r,s∈[1,N-1]是否成立;
S2.4:当成立时对病历数据m与数据拥有者A的身份标识ZA进行拼接,生成
Figure FDA0003656664510000023
然后通过哈希函数对拼接后的第二消息
Figure FDA0003656664510000024
进行运算,生成第二摘要
Figure FDA0003656664510000025
将e′的数据类型转换为整数,Hv是输出为v比特长的哈希函数;
S2.5:通过生成的签名(r,s),计算生成t=(r+s)mod N,若t=0,则验证不通过,反之继续执行,t为第一部分验证值;
S2.6:计算椭圆曲线上的新点(x′i,y′i)=[s]G1+[t]P;
S2.7:计算R=(e′+x′1)mod N,检验R=r是否成立,若成立则验证通过,否则验证不通过,R为第二部分验证值,反之继续执行;
S2.8:若验证通过,数据拥有者A选择一个随机数w,w∈[1,n/4],然后用PK加密电子病历数据m,生成的加密病历数据为[m]={T,T′},其中T=(1+m*n)*PKwmod n2,T′=gwmod n2,上传加密病历数据[m]至IPFS系统中,T为加密病历数据的第一部分,T′为加密病历数据的第二部分;
S2.9:IPFS系统返回该病历数据的CID值,数据拥有者A将病历数据的多个关键字和CID值绑定,上传至区块链中。
6.如权利要求2所述的基于区块链的电子病历共享方法,其特征在于,步骤S3包括:
S3.1:数据请求者B通过智能合约进行身份认证,若身份认证成功,则数据请求者B通过关键字向区块链请求相关的病历数据;
S3.2:通过区块链搜索该关键字对应的CID值,将其发送给电子病历授权机构;
S3.3:电子病历授权机构接收CID值后,请求IPFS系统中CID值对应的加密病历数据;
S3.4:IPFS系统找到对应的加密病历数据后,将使用数据请求者B的公钥对该加密病历数据进行第一次重加密,并且将第一次重加密后的病历数据发送给电子病历授权机构;
S3.5:电子病历授权机构接收IPFS系统返回的第一次重加密后的病历数据,使用数据请求者B的公钥对其进行第二次重加密,并将第二次重加密后的病历数据返回给数据请求者B;
S3.6:数据请求者B接收到第二次重加密后的病历数据,使用自己的私钥对其进行解密,获得原始病历数据。
7.如权利要求6所述的基于区块链的电子病历共享方法,其特征在于,S3.4包括:
IPFS系统使用数据请求者B的公钥pkB对生成的加密病历数据[m]进行加密,通过数据请求者B的公钥与IPFS系统的私钥生成
Figure FDA00036566645100000313
生成第一次重加密后的病历数据
Figure FDA0003656664510000031
其中,h1为第一部分加密参数,
Figure FDA0003656664510000032
为第一次重加密后的病历数据的第一部分,
Figure FDA0003656664510000033
为第一次重加密后的病历数据的第二部分。
8.如权利要求6所述的基于区块链的电子病历共享方法,其特征在于,步骤S3.5包括:电子病历授权机构接收到[m]+后,使用数据请求者B的公钥pkB加密[m]+,生成
Figure FDA0003656664510000034
Figure FDA0003656664510000035
Figure FDA0003656664510000036
其中,
Figure FDA0003656664510000037
为第二次重加密后的病历数据,h2为第二部分加密参数,
Figure FDA0003656664510000038
为第二次重加密后的病历数据的第一部分,
Figure FDA0003656664510000039
为第二次重加密后的病历数据的第二部分。
9.如权利要求1所述的基于区块链的电子病历共享方法,其特征在于,步骤S3.6包括:
计算
Figure FDA00036566645100000310
参数
Figure FDA00036566645100000311
使用h1′和h2′计算出原始病历数据
Figure FDA00036566645100000312
其中,h1′为第一部分解密参数,h2′为第二部分解密参数。
10.一种基于区块链的电子病历共享系统,其特征在于,系统的实体包括:数据拥有者A、数据请求者B、电子病历授权机构、IPFS系统和区块链,用于执行权利要求1所述的初始化阶段、上传病历数据阶段以及请求病历数据阶段,
其中,数据拥有者A具体用于:加密病历数据,并将加密后的病历数据发送到所述IPFS系统;将所述病历数据的多个关键字和返回的CID值绑定,上传至所述区块链中;
数据请求者B具体用于:向区块链发送病历数据请求,并进行身份认证;若认证通过,获得访问病历数据的权限;
电子病历授权机构具体用于:验证所述数据拥有者A上传病历数据的有效性,若验证通过,则允许所述数据拥有者A上传病历数据;在请求病历数据阶段对所返回的数据进行重加密;
IPFS系统具体用于:生成病历数据对应的CID值,并返回给所述数据拥有者A;以及当数据请求者B请求病历数据时,对病历数据进行重加密并返回给电子病历授权机构;
所述区块链具体用于:存储数据拥有者A绑定后的CID值和关键字,当数据请求者B请求病历数据时,通过智能合约进行身份认证。
CN202210562162.9A 2022-05-23 2022-05-23 一种基于区块链的电子病历共享方法及系统 Active CN115021903B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210562162.9A CN115021903B (zh) 2022-05-23 2022-05-23 一种基于区块链的电子病历共享方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210562162.9A CN115021903B (zh) 2022-05-23 2022-05-23 一种基于区块链的电子病历共享方法及系统

Publications (2)

Publication Number Publication Date
CN115021903A true CN115021903A (zh) 2022-09-06
CN115021903B CN115021903B (zh) 2023-12-15

Family

ID=83068948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210562162.9A Active CN115021903B (zh) 2022-05-23 2022-05-23 一种基于区块链的电子病历共享方法及系统

Country Status (1)

Country Link
CN (1) CN115021903B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117037988A (zh) * 2023-08-22 2023-11-10 广州视景医疗软件有限公司 一种基于区块链的电子病历存储方法及装置
CN117373599A (zh) * 2023-11-30 2024-01-09 武汉天喻信息产业股份有限公司 基于区块链的医疗信息共享系统及方法
CN117423470A (zh) * 2023-10-30 2024-01-19 盐城市第三人民医院 一种慢性病临床决策支持系统及构建方法
CN117675870A (zh) * 2024-01-31 2024-03-08 中国医学科学院北京协和医院 一种基于区块链的电子病历分布式共享方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948367A (zh) * 2019-03-27 2019-06-28 南京星链高科技发展有限公司 一种基于区块链技术的医疗数据授权方法
CN110797099A (zh) * 2019-10-28 2020-02-14 河北北方学院 一种基于区块链的医疗数据共享方法及系统
CN111415718A (zh) * 2020-02-29 2020-07-14 重庆邮电大学 一种基于区块链和条件代理重加密的电子处方共享方法
CN111863165A (zh) * 2020-06-28 2020-10-30 石家庄铁道大学 基于区块链的医疗信息共享认证方法
CN111916173A (zh) * 2020-08-07 2020-11-10 安徽师范大学 基于ipfs和联盟链的医疗数据安全共享系统及方法
CN112863629A (zh) * 2021-03-22 2021-05-28 山东勤成健康科技股份有限公司 基于区块链的医疗电子病历分布式管理系统及其制备方法
CN113297618A (zh) * 2021-05-28 2021-08-24 广东工业大学 基于区块链的抗攻击访问控制方法、系统、设备及介质
WO2022007889A1 (zh) * 2020-07-08 2022-01-13 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及系统
CN114065261A (zh) * 2021-11-25 2022-02-18 上海万向区块链股份公司 基于区块链的分布式可信数据分享平台、方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948367A (zh) * 2019-03-27 2019-06-28 南京星链高科技发展有限公司 一种基于区块链技术的医疗数据授权方法
CN110797099A (zh) * 2019-10-28 2020-02-14 河北北方学院 一种基于区块链的医疗数据共享方法及系统
CN111415718A (zh) * 2020-02-29 2020-07-14 重庆邮电大学 一种基于区块链和条件代理重加密的电子处方共享方法
CN111863165A (zh) * 2020-06-28 2020-10-30 石家庄铁道大学 基于区块链的医疗信息共享认证方法
WO2022007889A1 (zh) * 2020-07-08 2022-01-13 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及系统
CN111916173A (zh) * 2020-08-07 2020-11-10 安徽师范大学 基于ipfs和联盟链的医疗数据安全共享系统及方法
CN112863629A (zh) * 2021-03-22 2021-05-28 山东勤成健康科技股份有限公司 基于区块链的医疗电子病历分布式管理系统及其制备方法
CN113297618A (zh) * 2021-05-28 2021-08-24 广东工业大学 基于区块链的抗攻击访问控制方法、系统、设备及介质
CN114065261A (zh) * 2021-11-25 2022-02-18 上海万向区块链股份公司 基于区块链的分布式可信数据分享平台、方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
潘恒;潘磊;姚中原 等: "一种病人可控的电子病历安全访问方案", 《应用科学学报》, vol. 38, no. 01, pages 127 - 138 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117037988A (zh) * 2023-08-22 2023-11-10 广州视景医疗软件有限公司 一种基于区块链的电子病历存储方法及装置
CN117423470A (zh) * 2023-10-30 2024-01-19 盐城市第三人民医院 一种慢性病临床决策支持系统及构建方法
CN117423470B (zh) * 2023-10-30 2024-04-23 盐城市第三人民医院 一种慢性病临床决策支持系统及构建方法
CN117373599A (zh) * 2023-11-30 2024-01-09 武汉天喻信息产业股份有限公司 基于区块链的医疗信息共享系统及方法
CN117373599B (zh) * 2023-11-30 2024-04-09 武汉天喻信息产业股份有限公司 基于区块链的医疗信息共享系统及方法
CN117675870A (zh) * 2024-01-31 2024-03-08 中国医学科学院北京协和医院 一种基于区块链的电子病历分布式共享方法及装置
CN117675870B (zh) * 2024-01-31 2024-04-19 中国医学科学院北京协和医院 一种基于区块链的电子病历分布式共享方法及装置

Also Published As

Publication number Publication date
CN115021903B (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
CN111835500B (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
US11349645B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
Yang et al. Provable data possession of resource-constrained mobile devices in cloud computing
JP5562687B2 (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
CN115021903B (zh) 一种基于区块链的电子病历共享方法及系统
CN108632032A (zh) 无密钥托管的安全多关键词排序检索系统
CN111130757A (zh) 一种基于区块链的多云cp-abe访问控制方法
CN112365945A (zh) 基于区块链的电子病历细粒度访问控制和密文可搜索方法
Yadav Significance of elliptic curve cryptography in blockchain IoT with comparative analysis of RSA algorithm
TW202025666A (zh) 用於共享公共秘密之電腦實施系統及方法
Jalil et al. A secure and efficient public auditing system of cloud storage based on BLS signature and automatic blocker protocol
CN114357492A (zh) 一种基于区块链的医疗数据隐私融合方法及装置
CN113938281B (zh) 一种量子安全身份的颁发系统、颁发方法及使用方法
CN114362971A (zh) 一种基于哈希算法的数字资产确权和溯源方法
Resende et al. PUF-based mutual multifactor entity and transaction authentication for secure banking
CN111447058B (zh) 基于中国剩余定理的图书资源访问控制方法
Gohel et al. A new data integrity checking protocol with public verifiability in cloud storage
KR20240045231A (ko) 디지털 서명 셰어의 생성
Mishra et al. Authenticated content distribution framework for digital rights management systems with smart card revocation
CN111262698A (zh) 一种基于sm3/4的身份认证与隐私匹配系统及方法
Zhang et al. Attribute Based Conjunctive Keywords Search with Verifiability and Fair Payment Using Blockchain
US11973889B2 (en) Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption
Zhao et al. A regulatable mechanism for transacting data assets
Yan et al. Design and Implementation of Secure Cloud Storage System Based on Elliptic Encryption
Han et al. Blockchain-based Privacy-Preserving Public Key Searchable Encryption with Strong Traceability

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