CN117037988B - 一种基于区块链的电子病历存储方法及装置 - Google Patents
一种基于区块链的电子病历存储方法及装置 Download PDFInfo
- Publication number
- CN117037988B CN117037988B CN202311061183.3A CN202311061183A CN117037988B CN 117037988 B CN117037988 B CN 117037988B CN 202311061183 A CN202311061183 A CN 202311061183A CN 117037988 B CN117037988 B CN 117037988B
- Authority
- CN
- China
- Prior art keywords
- medical record
- electronic medical
- blockchain
- receiver
- consensus
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Public Health (AREA)
- Primary Health Care (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Epidemiology (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及区块链技术领域,公开了一种基于区块链的电子病历存储方法及装置。该方法通过计算第一电子病历的哈希值,以及获取第一电子病历发送者的公钥和数字签名,可以将第一电子病历转换成第一区块链交易,并将其存储在第一区块链上;通过共识算法在第一区块链可以对其进行共识;通过区块链的智能合约,实现第一病历访问权限的动态管理;通过查询区块链可以追溯病历的修改记录。本发明将电子病历转换成区块链交易保存在区块链上,可以保证了数据的可信度和可追溯性;采用的共识算法进行共识可以兼顾区块链的安全性和性能,有效防止恶意节点攻击;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于区块链的电子病历存储方法及装置。
背景技术
随着信息技术的快速发展和医疗行业的数字化转型,电子病历成为医疗数据管理的重要组成部分。传统的纸质病历已经无法满足现代医疗的需求,电子病历的出现极大地提高了医疗数据的可靠性、可访问性和共享性。然而,传统的电子病历存储和管理方法存在一些问题,包括数据安全性、访问权限管理和修改记录追溯等方面的挑战。
目前电子病历的存储方法往往依赖于中心化的数据库或服务器,数据存储在少数几个机构或组织的服务器上。这种集中式存储容易成为攻击目标,一旦服务器被攻破或数据泄露,病历数据将面临严重的安全风险。此外,中心化存储还存在单点故障的风险,一旦服务器出现故障,所有的数据将无法访问。而且,传统的访问权限管理方法往往复杂且不灵活,难以适应多方参与、多级授权和动态权限调整等需求。缺乏有效的权限管理机制可能导致数据被未授权的人员访问或篡改。此外,对于传统的数据库系统,修改记录往往难以追溯,容易出现数据篡改问题。这给医疗数据的可信度和可靠性带来了挑战,同时也给医疗纠纷的解决带来了困难。
发明内容
本发明提供了一种基于区块链的电子病历存储方法及装置,可以保证电子病历存储的安全性和完整性、提高了数据的可靠性和可追溯性。
为了解决上述技术问题,本发明提供了一种基于区块链的电子病历存储方法,包括:
计算第一电子病历的哈希值,并获取第一电子病历发送者的公钥和数字签名;其中,所述第一电子病历包括新增电子病历和修改电子病历;
根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易;
将所述第一区块链交易添加至第一区块链;
通过共识算法,在第一区块链内对所述第一区块链交易所处的第一区块进行共识;
利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限。
本发明通过计算第一电子病历的哈希值,以及获取第一电子病历发送者的公钥和数字签名,可以将第一电子病历转换成第一区块链交易,然后通过共识算法在第一区块链对其进行共识,并通过区块链的智能合约,实现第一病历访问权限的动态管理。本发明将电子病历转换成区块链交易保存在区块链上,可以保证了数据的可信度和可追溯性;采用的共识算法进行共识可以兼顾区块链的安全性和性能,有效防止恶意节点攻击;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性。
进一步地,所述根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易,具体为:
T={H,PK,SIG(H+PK)}
其中,T是第一区块链交易;H是第一电子病历的哈希值;PK是第一电子病历发送者的公钥;SIG()是第一电子病历发送者的数字签名函数。
进一步地,所述通过共识算法,在第一区块链内对所述第一区块链交易所处的第一区块进行共识,具体为:
检测第一区块所处分层的第一共识节点,并利用所述第一共识节点对所述第一区块进行共识;
当所述第一共识节点出现故障时,在所述第一区块所处分层内随机选择若干个第一节点,将所述若干个第一节点组成第一委员会;其中,所述第一节点包括第一共识节点;
获取第一委员会中若干个第一节点对第一区块的共识投票结果;
当共识投票票数超过预设票数阈值时,确定所述第一区块共识成功。
本发明利用共识节点对存储在区块链上的数据进行共识,当共识节点出现故障时,会选取包含共识节点在内的若个节点形成委员会,通过冲击各节点的投票结果判断共识是否成功,从而有效解决病例数据共享授权信息泄密及非法修改等现象,同时提高了节点间的共识效率。
进一步地,所述利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限,具体为:
采用ECDSA,生成接收者的密钥对;其中,所述密钥对包括公钥和私钥;
根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,以使接收者利用所述私钥和签名对第一电子病历进行访问。
本发明引入了智能合约来实现病历访问权限管理,通过生成接收者的私钥和关于第一电子病历的签名,以使接收者获取第一电子病历的访问权限,实现了对电子病历的访问权限的动态管理,也实现了多级授权和动态权限调整。
进一步地,所述采用ECDSA,生成接收者的密钥对,具体为:
采用ECDSA,设置一个随机数字作为接收者的私钥;
根据所述接收者的私钥和ECDSA椭圆曲线上的生成点,生成接收者的公钥,具体公式为:
Q=dP
其中,Q是接收者的公钥;d是接收者的私钥;P是ECDSA椭圆曲线上的生成点。
进一步,所述根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,具体为:
将所述生成点的坐标扩大预设整数倍,形成第一临时点;
将所述第一临时点的x坐标进行转换,得到第一数字;其中,所述第一数字为整数;
根据第一数字、第一电子病历的哈希值和接收者的私钥,生成第二数字,具体公式为:
s=k^-1(H+rd)mod n
其中,s为第二数字;k为预设整数;H为第一电子病历的哈希值;r是第一数字;d是接收者的私钥;n是生成点P的阶,由n=ord(P)获得;
结合所述第一数字和所述第二数字,形成接收者的签名。
进一步地,在所述根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名后,还包括:
当多个接收者同时对第一电子病历进行签名时,根据各接收者的数字签名,形成第一电子病历的环签名,具体公式为:
其中,σ是环签名;t是接收者个数;Sigij(m)是在t个接收者中处于第j个位置的接收者i的签名;a是预设的随机数字;G是预设的生成元。
进一步地,所述接收者利用所述私钥和签名对第一电子病历进行访问,具体为:
在接收到接收者的签名和访问对象后,计算所述访问对象的哈希值;其中,所述接收者的签名包括第一数字和第二数字;
根据所述访问对象的哈希值、所述第一数字和所述第二数字,生成第二临时点;
将所述第二临时点的x坐标进行转换,得到第三数字;其中,所述第一数字为整数;
比较所述第三数字和所述第一数字是否相等,若相等,则确定所述接收者具有第一电子病历的访问权限。
进一步地,在所述将所述第一区块链交易添加至第一区块链后,还包括:
将第一区块链交易添加至第一区块链,生成所述第一区块链交易对应的第一标识,以使通过在第一区块链中搜索第一标识得出第一电子病历。
本发明基于区块链的不可篡改特性,在每次添加电子病历至区块链时,会生成一个对应的标识,以使后续通过改标识在区块链中搜索出对应的数据保存记录。因此通过查询区块链,可以追溯病历的修改记录,从而确保数据的可信度和可靠性。
本发明提供了一种基于区块链的电子病历存储方法,通过计算第一电子病历的哈希值,以及获取第一电子病历发送者的公钥和数字签名,可以将第一电子病历转换成第一区块链交易,并将其存储在第一区块链上;通过共识算法在第一区块链可以对其进行共识;通过区块链的智能合约,实现第一病历访问权限的动态管理;通过查询区块链可以追溯病历的修改记录。本发明将电子病历转换成区块链交易保存在区块链上,可以保证了数据的可信度和可追溯性;采用的共识算法进行共识可以兼顾区块链的安全性和性能,有效防止恶意节点攻击;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性。
相应的,本发明提供了一种基于区块链的电子病历存储装置,包括:计算模块、生成模块、添加模块、共识模块和加密模块;
计算模块用于计算第一电子病历的哈希值,并获取第一电子病历发送者的公钥和数字签名;其中,所述第一电子病历包括新增电子病历和修改电子病历;
生成模块用于根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易;
添加模块用于将所述第一区块链交易添加至第一区块链;
共识模块用于通过共识算法,在第一区块链内对所述第一区块链交易所处的第一区块进行共识;
加密模块用于利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限。
本发明提供了一种基于区块链的电子病历存储装置,以模块间的有机结合为基础,将电子病历转换成区块链交易保存在区块链上,可以保证了数据的可信度和可追溯性;采用的共识算法进行共识可以兼顾区块链的安全性和性能,有效防止恶意节点攻击;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性。
附图说明
图1为本发明提供的基于区块链的电子病历存储方法的一种实施例的流程示意图;
图2为本发明提供的基于区块链的电子病历存储方法的另一种实施例的流程示意图;
图3为本发明提供的基于区块链的电子病历存储装置的一种实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1和图2,本发明提供了一种基于区块链的电子病历存储方法,该方法包括步骤101至步骤105,各步骤具体如下:
步骤101:计算第一电子病历的哈希值,并获取第一电子病历发送者的公钥和数字签名;其中,所述第一电子病历包括新增电子病历和修改电子病历。
在本发明第一实施例中,根据第一电子病历的病历数据可以计算出第一电子病历的哈希值,公式如下:
H=HASH(data)
其中,H是第一电子病历的哈希值;HASH()是哈希函数;data是第一电子病历的病历数据。
步骤102:根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易。
进一步地,在本发明第一实施例中,所述根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易,具体为:
T={H,PK,SIG(H+PK)}
其中,T是第一区块链交易;H是第一电子病历的哈希值;PK是第一电子病历发送者的公钥;SIG()是第一电子病历发送者的数字签名函数。
在本发明第一实施例中,在生成第一区块链交易后,会将一定数量的交易打包进一个区块。例如,一个区块B包括了区块头和区块体,区块头包括了上一个区块的哈希值H_pre、区块的生成时间timestamp、区块的难度目标difficulty、区块的nonce值等信息。区块体B包括了打包的所有交易T,公式如下:
B={H_pre,timestamp,difficulty,nonce,{T}}
其中,{T}是区块B中打包的所有交易。
步骤103:将所述第一区块链交易添加至第一区块链。
步骤104:通过共识算法,在第一区块链内对所述第一区块链交易所处的第一区块进行共识。
进一步地,在本发明第一实施例中,通过共识算法,在第一区块链内对所述第一区块链交易所处的第一区块进行共识,具体为:
检测第一区块所处分层的第一共识节点,并利用所述第一共识节点对所述第一区块进行共识;
当所述第一共识节点出现故障时,在所述第一区块所处分层内随机选择若干个第一节点,将所述若干个第一节点组成第一委员会;其中,所述第一节点包括第一共识节点;
获取第一委员会中若干个第一节点对第一区块的共识投票结果;
当共识投票票数超过预设票数阈值时,确定所述第一区块共识成功。
在本发明第一实施例中,第一区块链可以分成若干个分层,每个分层都由若干个节点组成,每个节点有一个信誉值,信誉值越高表示节点越可信。节点的信誉值可以通过对节点的历史行为进行评估获取,可以采用信誉评估算法进行评估。在区块链网络中,每个分层都有一个指定的共识节点,负责在该分层内进行共识。本发明在区块链网络中部署了智能合约,可以根据节点的历史行为进行评估,动态调整节点的信誉值。共识节点由信誉值最高的节点担任,当共识节点出现故障时,其他节点可以使用实用拜占庭容错机制来达成共识。
作为本发明实施例的一种举例,假设一个分层有n个节点,其中共识节点p出现了故障,则该分层的其他节点可以进行如下操作:
1)在n个节点中随机选择t个节点组成一个委员会,委员会中必须包含共识节点p。
2)在进行共识时,委员会成员互相通信,并进行投票,得到最终的决策。
3)当投票结果超过了预设阈值(例如阈值为2/3t),则认为此次达成了共识,否则认为共识失败。
步骤105:利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限。
进一步地,在本发明第一实施例中,利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限,具体为:
采用ECDSA,生成接收者的密钥对;其中,所述密钥对包括公钥和私钥;
根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,以使接收者利用所述私钥和签名对第一电子病历进行访问。
进一步地,在本发明第一实施例中,采用ECDSA,生成接收者的密钥对,具体为:
采用ECDSA,设置一个随机数字作为接收者的私钥;
根据所述接收者的私钥和ECDSA椭圆曲线上的生成点,生成接收者的公钥,具体公式为:
Q=dP
其中,Q是接收者的公钥;d是接收者的私钥;P是ECDSA椭圆曲线上的生成点。
在本发明第一实施例中,对接收者设置第一电子病历的访问权限,先生成接收者的密钥,密钥对由一个私钥和一个公钥组成。私钥是一个随机数,通常表示为d,公钥是基于私钥和生成点P的点Q,其中,生成点P位于ECDSA的椭圆曲线上。
进一步地,在本发明第一实施例中,根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,具体为:
将所述生成点的坐标扩大预设整数倍,形成第一临时点;
将所述第一临时点的x坐标进行转换,得到第一数字;其中,所述第一数字为整数;
根据第一数字、第一电子病历的哈希值和接收者的私钥,生成第二数字,具体公式为:
s=k^-1(H+rd)mod n
其中,s为第二数字;k为预设整数;H为第一电子病历的哈希值;r是第一数字;d是接收者的私钥;n是生成点P的阶,由n=ord(P)获得;
结合所述第一数字和所述第二数字,形成接收者的签名。
作为本发明第一实施例的一种举例,接收者的签名生成过程如下:
1)随机选择一个整数k(1≤k≤n-1),其中n是生成点P的阶(即n=ord(P));
2)计算点R=kP;
3)将R的x坐标转换为一个整数r(若R是无穷远点,则重新选择k并重复步骤1);
4)计算s=k^-1(H+rd)mod n(其中H是第一电子病历的哈希值,d是接收者的私钥);
5)若s=0,则重新选择k并重复步骤1;否则,接收者的签名为(r,s)。
进一步地,在本发明第一实施例中,在所述根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名后,还包括:
当多个接收者同时对第一电子病历进行签名时,根据各接收者的数字签名,形成第一电子病历的环签名,具体公式为:
其中,σ是环签名;t是接收者个数;是在t个接收者中处于第j个位置的接收者i的签名;a是预设的随机数字;G是预设的生成元。
作为本发明第一实施例的一种举例,假设n个用户要对同一个第一电子病历进行签名,则其中的t个用户可以构成一个环签名。环签名的过程如下:
1)在n个用户中选择t个用户i1,i2,…,it,以及一个随机数a;
2)对于j=1,2,…,t,用户ij计算出自己的数字签名如用户i1计算环签名σ,具体计算方式如下:
其中σ是环签名;t是接收者个数;是在t个接收者中处于第j个位置的接收者i的签名;a是预设的随机数字;G是预设的生成元,可以是椭圆曲线上的一个点。
生成的环签名的长度只有O(t),相比于传统的数字签名,长度大大缩短,从而提高签名效率。同时,因为只有这t个用户知道环签名中的每个数字签名的来源,因此,其他人无法解析出具体的数字签名,数据的安全性得到了保障。
进一步地,在本发明第一实施例中,接收者利用所述私钥和签名对第一电子病历进行访问,具体为:
在接收到接收者的签名和访问对象后,计算所述访问对象的哈希值;其中,所述接收者的签名包括第一数字和第二数字;
根据所述访问对象的哈希值、所述第一数字和所述第二数字,生成第二临时点;
将所述第二临时点的x坐标进行转换,得到第三数字;其中,所述第一数字为整数;
比较所述第三数字和所述第一数字是否相等,若相等,则确定所述接收者具有第一电子病历的访问权限。
作为本发明第一实施例的一种举例,接收者利用自己的私钥和签名访问第一电子病历,可以通过验证签名判断该接收者是否具有第一电子病历的访问权限,验证的过程如下:
1)接收到接收者发送的访问对象(第一电子病历)和对应的签名(r,s);
2)计算访问对象的哈希值z;
3)计算w=s^-1 mod n;
4)计算u1=zw mod n和u2=rw mod n;
5)计算点V=u1P+u2Q,其中Q是接收者的公钥;
6)若V是无穷远点,则该签名无效;否则,将V的x坐标转换为一个整数v,并比较v和r的值;
7)若v=r,则该签名有效的,该接收者具有访问对象的访问权限,否则无效。
进一步地,在本发明第一实施例中,在所述将所述第一区块链交易添加至第一区块链后,还包括:
将第一区块链交易添加至第一区块链,生成所述第一区块链交易对应的第一标识,以使通过在第一区块链中搜索第一标识得出第一电子病历。
在本发明第一实施例中,由于每次修改存储在区块链上的数据都会生成一个新的区块链交易,并存储在区块链中。所以通过查询区块链,可以追溯病历的修改记录,从而确保数据的可信度和可靠性。一旦发现病历被非法篡改,可以迅速找到篡改者。
综上,本发明第一实施例提供了一种基于区块链的电子病历存储方法,通过计算第一电子病历的哈希值,以及获取第一电子病历发送者的公钥和数字签名,可以将第一电子病历转换成第一区块链交易,并将其存储在第一区块链上;通过共识算法在第一区块链可以对其进行共识;通过区块链的智能合约,实现第一病历访问权限的动态管理;通过查询区块链可以追溯病历的修改记录。本发明将电子病历转换成区块链交易保存在区块链上,可以保证了数据的可信度和可追溯性;采用的共识算法进行共识可以兼顾区块链的安全性和性能,有效防止恶意节点攻击;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性。
实施例2
参见图3,是本发明提供的基于区块链的电子病历存储装置的一种实施例的结构示意图,该装置包括计算模块201、生成模块202、添加模块203、共识模块204和加密模块205;
计算模块201用于计算第一电子病历的哈希值,并获取第一电子病历发送者的公钥和数字签名;其中,所述第一电子病历包括新增电子病历和修改电子病历;
生成模块202用于根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易;
添加模块203用于将所述第一区块链交易添加至第一区块链;
共识模块204用于通过共识算法,在第一区块链内对所述第一区块链交易所处的第一区块进行共识;
加密模块205用于利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限。
进一步地,在本发明第二实施例中,所述根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易,具体为:
T={H,PK,SIG(H+PK)}
其中,T是第一区块链交易;H是第一电子病历的哈希值;PK是第一电子病历发送者的公钥;SIG()是第一电子病历发送者的数字签名函数。
进一步地,在本发明第二实施例中,共识模块204,包括检测单元、故障处理单元、投票单元和共识完成单元;
检测单元用于检测第一区块所处分层的第一共识节点;
故障处理单元用于当所述第一共识节点出现故障时,在所述第一区块所处分层内随机选择若干个第一节点,将所述若干个第一节点组成第一委员会;其中,所述第一节点包括第一共识节点;
投票单元用于获取第一委员会中若干个第一节点对第一区块的共识投票结果;
共识完成单元用于当共识投票票数超过预设票数阈值时,确定所述第一区块共识成功。
进一步地,在本发明第二实施例中,加密模块205,包括密钥生成单元和签名生成单元;
密钥生成单元用于采用ECDSA,生成接收者的密钥对;其中,所述密钥对包括公钥和私钥;
签名生成单元用于根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,以使接收者利用所述私钥和签名对第一电子病历进行访问。
进一步地,在本发明第二实施例中,密钥生成单元,包括私钥生成子单元和公钥生成子单元;
私钥生成子单元用于采用ECDSA,设置一个随机数字作为接收者的私钥;
公钥生成子单元用于根据所述接收者的私钥和ECDSA椭圆曲线上的生成点,生成接收者的公钥,具体公式为:
Q=dP
其中,Q是接收者的公钥;d是接收者的私钥;P是ECDSA椭圆曲线上的生成点。
进一步地,在本发明第二实施例中,签名生成单元,包括临时点生成子单元、坐标转换子单元、计算子单元和签名形成子单元;
临时点生成子单元用于将所述生成点的坐标扩大预设整数倍,形成第一临时点;
坐标转换子单元用于将所述第一临时点的x坐标进行转换,得到第一数字;其中,所述第一数字为整数;
计算子单元用于根据第一数字、第一电子病历的哈希值和接收者的私钥,生成第二数字,具体公式为:
s=k^-1(H+rd)mod n
其中,s为第二数字;k为预设整数;H为第一电子病历的哈希值;r是第一数字;d是接收者的私钥;n是生成点P的阶,由n=ord(P)获得;
签名形成子单元用于结合所述第一数字和所述第二数字,形成接收者的签名。
进一步地,在本发明第二实施例中,在所述根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名后,还包括:
当多个接收者同时对第一电子病历进行签名时,根据各接收者的数字签名,形成第一电子病历的环签名,具体公式为:
其中,σ是环签名;t是接收者个数;是在t个接收者中处于第j个位置的接收者i的签名;a是预设的随机数字;G是预设的生成元。
进一步地,在本发明第二实施例中,接收者利用所述私钥和签名对第一电子病历进行访问,具体为:
在接收到接收者的签名和访问对象后,计算所述访问对象的哈希值;其中,所述接收者的签名包括第一数字和第二数字;
根据所述访问对象的哈希值、所述第一数字和所述第二数字,生成第二临时点;
将所述第二临时点的x坐标进行转换,得到第三数字;其中,所述第一数字为整数;
比较所述第三数字和所述第一数字是否相等,若相等,则确定所述接收者具有第一电子病历的访问权限。
进一步地,在本发明第二实施例中,在所述将所述第一区块链交易添加至第一区块链后,还包括:
将第一区块链交易添加至第一区块链,生成所述第一区块链交易对应的第一标识,以使通过在第一区块链中搜索第一标识得出第一电子病历。
综上,本发明第二实施例提供了一种基于区块链的电子病历存储装置,以模块间的有机结合为基础,通过计算第一电子病历的哈希值,以及获取第一电子病历发送者的公钥和数字签名,可以将第一电子病历转换成第一区块链交易,并将其存储在第一区块链上;通过共识算法在第一区块链可以对其进行共识;通过区块链的智能合约,实现第一病历访问权限的动态管理;通过查询区块链可以追溯病历的修改记录。本发明将电子病历转换成区块链交易保存在区块链上,可以保证了数据的可信度和可追溯性;采用的共识算法进行共识可以兼顾区块链的安全性和性能,有效防止恶意节点攻击;利用智能合约管理区块链数据的访问权限,可以提高数据的安全性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于区块链的电子病历存储方法,其特征在于,包括:
计算第一电子病历的哈希值,并获取第一电子病历发送者的公钥和数字签名;其中,所述第一电子病历包括新增电子病历和修改电子病历;
根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易,具体为:
T={H,PK,SIG(H+PK)}
其中,T是第一区块链交易;H是第一电子病历的哈希值;PK是第一电子病历发送者的公钥;SIG()是第一电子病历发送者的数字签名函数;
将所述第一区块链交易添加至第一区块链;
通过共识算法,利用第一共识节点在第一区块链内对所述第一区块链交易所处的第一区块进行共识;其中,所述第一共识节点为所述第一区块所处分层中信誉值最高的节点;
利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限;
其中,所述利用第一共识节点在第一区块链内对所述第一区块链交易所处的第一区块进行共识,具体为:
检测第一区块所处分层的第一共识节点,并利用所述第一共识节点对所述第一区块进行共识;
当所述第一共识节点出现故障时,在所述第一区块所处分层内随机选择若干个第一节点,将所述若干个第一节点组成第一委员会;其中,所述第一节点包括第一共识节点;
获取第一委员会中若干个第一节点对第一区块的共识投票结果;
当共识投票票数超过预设票数阈值时,确定所述第一区块共识成功;
所述利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限,具体为:
采用ECDSA,生成接收者的密钥对;其中,所述密钥对包括公钥和私钥;
根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,以使接收者利用所述私钥和签名对第一电子病历进行访问;其中,当多个接收者同时对第一电子病历进行签名时,根据各接收者的数字签名,形成第一电子病历的环签名,具体公式为:
其中,σ是环签名;t是接收者个数;是在t个接收者中处于第j个位置的接收者i的签名;a是预设的随机数字;G是预设的生成元。
2.根据权利要求1所述的基于区块链的电子病历存储方法,其特征在于,所述采用ECDSA,生成接收者的密钥对,具体为:
采用ECDSA,设置一个随机数字作为接收者的私钥;
根据所述接收者的私钥和ECDSA椭圆曲线上的生成点,生成接收者的公钥,具体公式为:
Q=dP
其中,Q是接收者的公钥;d是接收者的私钥;P是ECDSA椭圆曲线上的生成点。
3.根据权利要求2所述的基于区块链的电子病历存储方法,其特征在于,所述根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,具体为:
将所述生成点的坐标扩大预设整数倍,形成第一临时点;
将所述第一临时点的x坐标进行转换,得到第一数字;其中,所述第一数字为整数;
根据第一数字、第一电子病历的哈希值和接收者的私钥,生成第二数字,具体公式为:
s=k^-1(H+rd)mod n
其中,s为第二数字;k为预设整数;H为第一电子病历的哈希值;r是第一数字;d是接收者的私钥;n是生成点P的阶,由n=ord(P)获得;
结合所述第一数字和所述第二数字,形成接收者的签名。
4.根据权利要求3所述的基于区块链的电子病历存储方法,其特征在于,所述接收者利用所述私钥和签名对第一电子病历进行访问,具体为:
在接收到接收者的签名和访问对象后,计算所述访问对象的哈希值;其中,所述接收者的签名包括第一数字和第二数字;
根据所述访问对象的哈希值、所述第一数字和所述第二数字,生成第二临时点;
将所述第二临时点的x坐标进行转换,得到第三数字;其中,所述第一数字为整数;
比较所述第三数字和所述第一数字是否相等,若相等,则确定所述接收者具有第一电子病历的访问权限。
5.根据权利要求1所述的基于区块链的电子病历存储方法,其特征在于,在所述将所述第一区块链交易添加至第一区块链后,还包括:
将第一区块链交易添加至第一区块链,生成所述第一区块链交易对应的第一标识,以使通过在第一区块链中搜索第一标识得出第一电子病历。
6.一种基于区块链的电子病历存储装置,其特征在于,包括:计算模块、生成模块、添加模块、共识模块和加密模块;
所述计算模块用于计算第一电子病历的哈希值,并获取第一电子病历发送者的公钥和数字签名;其中,所述第一电子病历包括新增电子病历和修改电子病历;
所述生成模块用于根据所述第一电子病历的哈希值和所述第一电子病历发送者的公钥和数字签名,生成第一电子病历对应的第一区块链交易,具体为:
T={H,PK,SIG(H+PK)}
其中,T是第一区块链交易;H是第一电子病历的哈希值;PK是第一电子病历发送者的公钥;SIG()是第一电子病历发送者的数字签名函数;
所述添加模块用于将所述第一区块链交易添加至第一区块链;
所述共识模块用于通过共识算法,利用第一共识节点在第一区块链内对所述第一区块链交易所处的第一区块进行共识;其中,所述第一共识节点为所述第一区块所处分层中信誉值最高的节点;
所述加密模块用于利用区块链的智能合约,对所述第一电子病历进行加密,并向接收者设置所述第一电子病历的访问权限;
其中,所述共识模块具体为:
检测第一区块所处分层的第一共识节点,并利用所述第一共识节点对所述第一区块进行共识;
当所述第一共识节点出现故障时,在所述第一区块所处分层内随机选择若干个第一节点,将所述若干个第一节点组成第一委员会;其中,所述第一节点包括第一共识节点;
获取第一委员会中若干个第一节点对第一区块的共识投票结果;
当共识投票票数超过预设票数阈值时,确定所述第一区块共识成功;
所述加密模块具体为:
采用ECDSA,生成接收者的密钥对;其中,所述密钥对包括公钥和私钥;
根据所述第一电子病历的哈希值和接收者的私钥,生成接收者的签名,以使接收者利用所述私钥和签名对第一电子病历进行访问;其中,当多个接收者同时对第一电子病历进行签名时,根据各接收者的数字签名,形成第一电子病历的环签名,具体公式为:
其中,σ是环签名;t是接收者个数;是在t个接收者中处于第j个位置的接收者i的签名;a是预设的随机数字;G是预设的生成元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061183.3A CN117037988B (zh) | 2023-08-22 | 2023-08-22 | 一种基于区块链的电子病历存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061183.3A CN117037988B (zh) | 2023-08-22 | 2023-08-22 | 一种基于区块链的电子病历存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117037988A CN117037988A (zh) | 2023-11-10 |
CN117037988B true CN117037988B (zh) | 2024-05-17 |
Family
ID=88633460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311061183.3A Active CN117037988B (zh) | 2023-08-22 | 2023-08-22 | 一种基于区块链的电子病历存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117037988B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117373599B (zh) * | 2023-11-30 | 2024-04-09 | 武汉天喻信息产业股份有限公司 | 基于区块链的医疗信息共享系统及方法 |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573737A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种电子病历的存储方法、装置、设备和存储介质 |
CN108964879A (zh) * | 2018-07-20 | 2018-12-07 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
CN109326337A (zh) * | 2018-09-06 | 2019-02-12 | 西安电子科技大学 | 基于区块链的电子医疗记录存储和共享的模型及方法 |
CN110246038A (zh) * | 2019-04-26 | 2019-09-17 | 众安信息技术服务有限公司 | 一种区块链交易快速确认方法及系统 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110581768A (zh) * | 2019-10-11 | 2019-12-17 | 上海应用技术大学 | 一种基于区块链零知识证明的注册登录系统及应用 |
CN110677485A (zh) * | 2019-09-30 | 2020-01-10 | 大连理工大学 | 一种基于信用的动态分层拜占庭容错共识方法 |
CN111448781A (zh) * | 2019-07-11 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 共享的区块链数据存储 |
CN111914027A (zh) * | 2020-08-05 | 2020-11-10 | 北京科技大学 | 一种区块链交易关键字可搜索加密方法及系统 |
CN112530531A (zh) * | 2020-09-24 | 2021-03-19 | 扬州大学 | 基于双区块链的电子病历存储与共享方法 |
CN112559627A (zh) * | 2020-12-11 | 2021-03-26 | 东北大学 | 一种基于联盟链的链上-链下协同电子病历数据共享方法 |
CN112789824A (zh) * | 2019-09-09 | 2021-05-11 | 深圳市网心科技有限公司 | 区块链系统及信息传输方法、系统、装置、计算机介质 |
CN113570466A (zh) * | 2021-09-24 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及可读存储介质 |
CN113642019A (zh) * | 2021-08-16 | 2021-11-12 | 中国人民解放军国防科技大学 | 一种双层分组拜占庭容错共识方法及系统 |
CN113793665A (zh) * | 2021-08-27 | 2021-12-14 | 汕头大学 | 一种融合区块链与真实行为特征的新型电子病历共享方法 |
CN113922864A (zh) * | 2021-10-09 | 2022-01-11 | 郑州大学 | 一种基于拜占庭共识的多层卫星网络安全保障方法 |
CN114143104A (zh) * | 2021-12-06 | 2022-03-04 | 昆明理工大学 | 一种基于动态信任模型的DPoS共识机制节点信誉值度量方法 |
CN114239044A (zh) * | 2021-10-18 | 2022-03-25 | 国网内蒙古东部电力有限公司 | 一种去中心化的可追溯共享访问系统 |
CN114693241A (zh) * | 2022-02-14 | 2022-07-01 | 南京邮电大学 | 一种基于区块链的电子简历系统及其实现方法 |
CN115021903A (zh) * | 2022-05-23 | 2022-09-06 | 湖北工业大学 | 一种基于区块链的电子病历共享方法及系统 |
CN115801407A (zh) * | 2022-11-16 | 2023-03-14 | 广州蚁比特区块链科技有限公司 | 异常节点屏蔽方法、装置、存储介质及目标节点 |
CN116579788A (zh) * | 2023-05-15 | 2023-08-11 | 深圳市怡通数科创新发展有限公司 | 基于区块链的供应链管理方法、系统、设备及存储介质 |
-
2023
- 2023-08-22 CN CN202311061183.3A patent/CN117037988B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573737A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种电子病历的存储方法、装置、设备和存储介质 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN108964879A (zh) * | 2018-07-20 | 2018-12-07 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
CN109326337A (zh) * | 2018-09-06 | 2019-02-12 | 西安电子科技大学 | 基于区块链的电子医疗记录存储和共享的模型及方法 |
CN110246038A (zh) * | 2019-04-26 | 2019-09-17 | 众安信息技术服务有限公司 | 一种区块链交易快速确认方法及系统 |
CN111448781A (zh) * | 2019-07-11 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 共享的区块链数据存储 |
CN112789824A (zh) * | 2019-09-09 | 2021-05-11 | 深圳市网心科技有限公司 | 区块链系统及信息传输方法、系统、装置、计算机介质 |
CN110677485A (zh) * | 2019-09-30 | 2020-01-10 | 大连理工大学 | 一种基于信用的动态分层拜占庭容错共识方法 |
CN110581768A (zh) * | 2019-10-11 | 2019-12-17 | 上海应用技术大学 | 一种基于区块链零知识证明的注册登录系统及应用 |
CN111914027A (zh) * | 2020-08-05 | 2020-11-10 | 北京科技大学 | 一种区块链交易关键字可搜索加密方法及系统 |
CN112530531A (zh) * | 2020-09-24 | 2021-03-19 | 扬州大学 | 基于双区块链的电子病历存储与共享方法 |
CN112559627A (zh) * | 2020-12-11 | 2021-03-26 | 东北大学 | 一种基于联盟链的链上-链下协同电子病历数据共享方法 |
CN113642019A (zh) * | 2021-08-16 | 2021-11-12 | 中国人民解放军国防科技大学 | 一种双层分组拜占庭容错共识方法及系统 |
CN113793665A (zh) * | 2021-08-27 | 2021-12-14 | 汕头大学 | 一种融合区块链与真实行为特征的新型电子病历共享方法 |
CN113570466A (zh) * | 2021-09-24 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及可读存储介质 |
CN113922864A (zh) * | 2021-10-09 | 2022-01-11 | 郑州大学 | 一种基于拜占庭共识的多层卫星网络安全保障方法 |
CN114239044A (zh) * | 2021-10-18 | 2022-03-25 | 国网内蒙古东部电力有限公司 | 一种去中心化的可追溯共享访问系统 |
CN114143104A (zh) * | 2021-12-06 | 2022-03-04 | 昆明理工大学 | 一种基于动态信任模型的DPoS共识机制节点信誉值度量方法 |
CN114693241A (zh) * | 2022-02-14 | 2022-07-01 | 南京邮电大学 | 一种基于区块链的电子简历系统及其实现方法 |
CN115021903A (zh) * | 2022-05-23 | 2022-09-06 | 湖北工业大学 | 一种基于区块链的电子病历共享方法及系统 |
CN115801407A (zh) * | 2022-11-16 | 2023-03-14 | 广州蚁比特区块链科技有限公司 | 异常节点屏蔽方法、装置、存储介质及目标节点 |
CN116579788A (zh) * | 2023-05-15 | 2023-08-11 | 深圳市怡通数科创新发展有限公司 | 基于区块链的供应链管理方法、系统、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
基于信任委托的区块链分层共识优化;段靓;吕鑫;刘凡;;计算机工程(第10期);全文 * |
基于区块链技术的电力交易流程建模研究;吉斌;朱敏健;张怀宇;翟海保;吴鑫;;电气技术(第06期);全文 * |
无可信中心的区块链钱包及交易保护机制研究;屈冉;中国优秀硕士学位论文全文数据库信息科技辑;第9~11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117037988A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wazid et al. | LAM-CIoT: Lightweight authentication mechanism in cloud-based IoT environment | |
CN109409122B (zh) | 文件存储方法及其电子设备、存储介质 | |
Alladi et al. | A lightweight authentication and attestation scheme for in-transit vehicles in IoV scenario | |
CN109614818B (zh) | 可授权的基于身份的带关键词搜索加密方法 | |
Muthurajkumar et al. | Secured temporal log management techniques for cloud | |
WO2021174927A1 (zh) | 基于区块链的身份校验方法、装置、设备及存储介质 | |
EP1959372B1 (en) | Distance-preserving anonymization of data | |
Zhao et al. | ePUF: A lightweight double identity verification in IoT | |
CN117037988B (zh) | 一种基于区块链的电子病历存储方法及装置 | |
Zhu et al. | Efficient and privacy-preserving online fingerprint authentication scheme over outsourced data | |
CN115208628B (zh) | 基于区块链的数据完整性验证方法 | |
CN114021164B (zh) | 基于区块链的征信系统隐私保护方法 | |
CN112804050A (zh) | 多源数据查询系统及方法 | |
CN110188545B (zh) | 一种基于链式数据库的数据加密方法及装置 | |
Chen et al. | Enhancement of the RFID security method with ownership transfer | |
CN111259425A (zh) | 一种智慧城市数据安全管理系统 | |
Gangwani et al. | IoT device identity management and blockchain for security and data integrity | |
CN106027237A (zh) | 一种rfid系统中基于组的密钥矩阵安全认证方法 | |
CN117454442A (zh) | 匿名安全和可追溯的分布式数字取证方法与系统 | |
Cai et al. | Distributed path authentication for dynamic RFID-enabled supply chains | |
Huang et al. | A novel identity authentication for FPGA based IP designs | |
Wang et al. | Provable Secure for the Ultra-lightweight RFID Tag Ownership Transfer Protocol in the Context of IoT Commerce. | |
CN116527322A (zh) | 基于区块链和隐私计算的联合征信方法及装置 | |
CN116366259A (zh) | 一种面向密文数据的公共可验证布尔搜索系统及方法 | |
Fan et al. | Eland: an efficient lightweight anonymous authentication protocol applied to digital rights management system |
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 |