CN117371050A - 一种基于变色龙哈希的可修改电子病历共享方法及系统 - Google Patents
一种基于变色龙哈希的可修改电子病历共享方法及系统 Download PDFInfo
- Publication number
- CN117371050A CN117371050A CN202311230572.4A CN202311230572A CN117371050A CN 117371050 A CN117371050 A CN 117371050A CN 202311230572 A CN202311230572 A CN 202311230572A CN 117371050 A CN117371050 A CN 117371050A
- Authority
- CN
- China
- Prior art keywords
- medical record
- electronic medical
- signature
- chameleon
- information
- 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.)
- Pending
Links
- 241000122205 Chamaeleonidae Species 0.000 title claims abstract description 311
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012795 verification Methods 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims description 58
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000007689 inspection Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 abstract description 10
- 238000012986 modification Methods 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
-
- 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/602—Providing cryptographic facilities or services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Epidemiology (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于变色龙哈希的可修改电子病历共享方法及系统,采用代理重加密技术加密电子病历,由于区块链本身具有不可篡改的特性,本发明将电子病历的验证信息(变色龙哈希值)和访问权限信息存储在区块链中,从而保证能够对的电子病历完整性进行检验,在Merkel(默克尔)树生成时用变色龙哈希值作为输入,只有在拥有变色龙哈希算法对应的私钥的情况下,可以对不同的信息产生相同的哈希值,若无私钥则很难找到碰撞,从而由此实现参与方对电子病历的修改。
Description
技术领域
本发明涉及区块链的医疗数据安全共享技术领域,尤其涉及一种基于变色龙哈希的可修改电子病历共享方法及系统。
背景技术
随着信息时代的到来,电子病历在日常生活中得到了广泛的应用,为我们的生活带来便利,同时也引发了人们对于电子病历的安全性与隐私的担忧。如何有效共享电子病历的同时又能保护电子病历的安全与隐私。
对于基于云存储的电子病历,该方案可以实现电子病历共享,但云服务器不完全可信,当出现误诊时,存在医生与云服务器共谋,来篡改电子病历。由此基于区块链技术医疗数据共享方案的理想的解决方案。
在基于区块链的医疗数据共享方案中,有两种数据存储方式,一种直接将电子病历存储在区块链中,该方式会将医疗数据密文保存在每个区块链节点中,当节点数量较多或医疗数据较多时,则会占用大量存储空间的问题,不适合实际应用。另一种则是采用云服务器加区块链的模式,将电子病历密文存储在云服务器,将医疗数据的哈希值存储在区块链中。利用区块链防篡改的特性和哈希值的抗碰撞性,来实现医疗数据的安全,但是也因为区块链具有防篡改的特性,当电子病历存在错误时,也无法对电子病历的内容进行修改。将医疗数据存储在云服务器时,并不能直接存储医疗数据的明文数据,因为云服务器并不完全可信,所以存储的是电子病历的密文数据,当采用对称加密算法对电子病历加密时,虽然该方案实现简单,但当在权限撤销后,需要对医疗数据重新加密,效率不高。当采用代理重加密实现医疗数据加密的方案中,需要设立独立的半诚实代理加密第三方,该第三方并不完全可信。
发明内容
本发明旨在提供一种克服上述问题或者至少部分地解决上述问题的基于变色龙哈希的可修改电子病历共享方法及系统。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明的一个方面提供了一种基于变色龙哈希的可修改电子病历共享方法,包括:
医生端生成病人的电子病历;
所述医生端利用所述病人的公钥对所述电子病历进行加密计算,得到电子病历密文;
所述医生端对所述电子病历密文进行哈希计算,得到第一密文哈希值;
所述医生端利用医生的私钥对第一待签名信息进行签名,得到第一签名,其中,所述第一待签名信息包括:所述第一密文哈希值和电子病历标识符;
所述医生端将发送信息发送至病人端,所述发送信息包括:所述电子病历密文、所述电子病历标识符和所述第一签名;
所述医生端确定第一随机数,利用所述医生的私钥对所述第一随机数和所述电子病历标识符进行签名,得到第二签名;
所述医生端将第一存储信息发送至分布式服务器,所述第一存储信息包括:所述电子病历密文、所述电子病历标识符、所述第一随机数、所述第一密文哈希值、所述第一签名和所述第二签名;
所述病人端利用所述病人的私钥对所述电子病历密文进行解密,得到电子病历原文;
所述病人端在对所述电子病历原文进行检验通过后,对所述电子病历密文进行哈希运算,得到第二密文哈希值;
所述病人端利用所述病人的私钥对第二待签名信息进行签名,得到第三签名,其中,所述第二待签名信息包括:所述第二密文哈希值和所述电子病历标识符;
所述病人端确定第二随机数,利用所述病人的私钥对所述第二随机数和所述电子病历标识符进行签名,得到第四签名;
所述病人端将第二存储信息发送至所述分布式服务器,所述第二存储信息包括:所述电子病历密文、所述电子病历标识符、所述第二随机数、所述第二密文哈希值、所述第三签名和所述第四签名;
所述分布式服务器存储所述电子病历密文;
所述分布式服务器对所述电子病历密文进行哈希计算,得到第三密文哈希值;
所述分布式服务器利用所述分布式服务器的私钥对第三待签名信息进行签名,得到第五签名,其中,所述第三待签名信息包括:所述第三密文哈希值和所述电子病历标识符;
所述分布式服务器确定第三随机数,利用所述分布式服务器的私钥对所述第三随机数和所述电子病历标识符进行签名,得到第六签名;
所述分布式服务器确定待上传信息,其中,所述待上传信息包括:所述电子病历标识符、所述第一签名、所述第三签名和所述第五签名;
所述分布式服务器对所述待上传信息、医生变色龙哈希公钥、第一随机数进行哈希计算,得到第一变色龙哈希值;
所述分布式服务器对所述待上传信息、病人变色龙哈希公钥、第二随机数进行哈希计算,得到第二变色龙哈希值;
所述分布式服务器对所述待上传信息、所述分布式服务器变色龙哈希公钥、第三随机数进行哈希计算,得到第三变色龙哈希值;
所述分布式服务器将所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值发送至区块链中。
可选地,方法还包括:
所述区块链根据所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值生成存储交易;
所述区块链对所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值进行验证,如果验证通过,则作为Merkel树的输入,计算最终的Merkel根。
可选地,方法还包括:
所述医生端获取生成所述病人的修改后的电子病历;
所述医生端利用所述病人的公钥对所述修改后的电子病历进行加密计算,得到修改后的电子病历密文;
所述医生端对所述修改后的电子病历密文进行哈希计算,得到第一修改后的密文哈希值;
所述医生端利用医生的私钥对第一修改后的待签名信息进行签名,得到第一修改后的签名,其中,所述第一修改后的待签名信息包括:所述第一修改后的密文哈希值和所述电子病历标识符;
所述医生端将修改后的发送信息发送至所述区块链,其中,所述修改后的发送信息包括:所述修改后的电子病历密文、所述电子病历标识符和所述第一修改后的签名;
所述区块链根据所述修改后的发送信息生成修改电子病历交易,将所述修改后的发送信息发送至所述病人端和所述分布式服务器;
所述病人端利用所述病人的私钥对所述修改后的电子病历密文进行解密,得到修改后的电子病历原文;
所述病人端对所述修改后的电子病历原文进行检验通过后,对所述修改后的电子病历密文进行哈希运算,得到第二修改后的密文哈希值;
所述病人端利用所述病人的私钥对第二修改后的待签名信息进行签名,得到第三修改后的签名,其中,所述第二修改后的待签名信息包括:所述第二修改后的密文哈希值和所述电子病历标识符;
所述病人端将修改后的存储信息发送至所述区块链,所述修改后的存储信息包括:所述电子病历标识符、所述第二修改后的密文哈希值和所述第三修改后的签名;
所述分布式服务器对所述修改后的电子病历密文进行哈希计算,得到第三修改后的密文哈希值;
所述分布式服务器利用所述分布式服务器的私钥对第三修改后的待签名信息进行签名,得到第五修改后的签名,其中,所述第三修改后的待签名信息包括:所述第三修改后密文哈希值和所述电子病历标识符;
所述分布式服务器将修改后的上传信息发送至所述区块链,所述修改后的上传信息包括:所述电子病历标识符、所述第三修改后的密文哈希值和所述第五修改后的签名;
所述区块链确定待下发信息,其中,所述待下发信息包括:所述第一修改后的签名、所述第三修改后的签名和所述第五修改后的签名;
所述区块链将所述待上传信息、所述第二签名、所述第四签名、所述第六签名和所述待下发信息分别发送至所述医生端、所述病人端和所述分布式服务器;
所述医生端对所述待下发信息、所述待上传信息、所述第一随机数和所述医生的私钥进行变色龙哈希计算,得到第一变色龙随机数;
所述医生端利用所述医生的私钥对所述第一变色龙随机数和所述电子病历标识符进行签名,得到第一变色龙签名;
所述医生端将所述第一变色龙随机数、所述电子病历标识符和所述第一变色龙签名发送至所述区块链;
所述病人端对所述待下发信息、所述待上传信息、所述第二随机数和所述病人的私钥进行变色龙哈希计算,得到第二变色龙随机数;
所述病人端利用所述病人的私钥对所述第二变色龙随机数和所述电子病历标识符进行签名,得到第二变色龙签名;
所述病人端将所述第二变色龙随机数、所述电子病历标识符和所述第二变色龙签名发送至所述区块链;
所述分布式服务器对所述待下发信息、所述待上传信息、所述第三随机数和所述分布式服务器的私钥进行变色龙哈希计算,得到第三变色龙随机数;
所述分布式服务器利用所述分布式服务器的私钥对所述第三变色龙随机数和所述电子病历标识符进行签名,得到第三变色龙签名;
所述分布式服务器将所述第三变色龙随机数、所述电子病历标识符和所述第三变色龙签名发送至所述区块链;
所述区块链分别对所述第一变色龙随机数、所述第二变色龙随机数和所述第三变色龙随机数进行检验,如果均校验正确,则将根据所述待下发信息、所述第一变色龙签名、所述第二变色龙签名、所述第三变色龙签名替换所述存储交易中对应的信息,并将结果信息发送至所述分布式服务器。
可选地,方法还包括:
所述分布式服务器将所述修改后的电子病历密文替换所述电子病历密文进行存储。
本发明的另一个方面提供了一种基于变色龙哈希的可修改电子病历共享系统,包括:医生端、病人端和分布式服务器;其中:
所述医生端,用于生成病人的电子病历;利用所述病人的公钥对所述电子病历进行加密计算,得到电子病历密文;对所述电子病历密文进行哈希计算,得到第一密文哈希值;利用医生的私钥对第一待签名信息进行签名,得到第一签名,其中,所述第一待签名信息包括:所述第一密文哈希值和电子病历标识符;将发送信息发送至病人端,所述发送信息包括:所述电子病历密文、所述电子病历标识符和所述第一签名;确定第一随机数,利用所述医生的私钥对所述第一随机数和所述电子病历标识符进行签名,得到第二签名;将第一存储信息发送至分布式服务器,所述第一存储信息包括:所述电子病历密文、所述电子病历标识符、所述第一随机数、所述第一密文哈希值、所述第一签名和所述第二签名;
所述病人端,用于利用所述病人的私钥对所述电子病历密文进行解密,得到电子病历原文;在对所述电子病历原文进行检验通过后,对所述电子病历密文进行哈希运算,得到第二密文哈希值;利用所述病人的私钥对第二待签名信息进行签名,得到第三签名,其中,所述第二待签名信息包括:所述第二密文哈希值和所述电子病历标识符;确定第二随机数,利用所述病人的私钥对所述第二随机数和所述电子病历标识符进行签名,得到第四签名;将第二存储信息发送至所述分布式服务器,所述第二存储信息包括:所述电子病历密文、所述电子病历标识符、所述第二随机数、所述第二密文哈希值、所述第三签名和所述第四签名;
所述分布式服务器,用于存储所述电子病历密文;对所述电子病历密文进行哈希计算,得到第三密文哈希值;利用所述分布式服务器的私钥对第三待签名信息进行签名,得到第五签名,其中,所述第三待签名信息包括:所述第三密文哈希值和所述电子病历标识符;确定第三随机数,利用所述分布式服务器的私钥对所述第三随机数和所述电子病历标识符进行签名,得到第六签名;确定待上传信息,其中,所述待上传信息包括:所述电子病历标识符、所述第一签名、所述第三签名和所述第五签名;对所述待上传信息、医生变色龙哈希公钥、第一随机数进行哈希计算,得到第一变色龙哈希值;对所述待上传信息、病人变色龙哈希公钥、第二随机数进行哈希计算,得到第二变色龙哈希值;对所述待上传信息、所述分布式服务器变色龙哈希公钥、第三随机数进行哈希计算,得到第三变色龙哈希值;将所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值发送至区块链中。
可选地,系统还包括:区块链;
所述区块链,用于根据所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值生成存储交易;对所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值进行验证,如果验证通过,则作为Merkel树的输入,计算最终的Merkel根。
可选地,所述医生端,还用于获取生成所述病人的修改后的电子病历;利用所述病人的公钥对所述修改后的电子病历进行加密计算,得到修改后的电子病历密文;对所述修改后的电子病历密文进行哈希计算,得到第一修改后的密文哈希值;利用医生的私钥对第一修改后的待签名信息进行签名,得到第一修改后的签名,其中,所述第一修改后的待签名信息包括:所述第一修改后的密文哈希值和所述电子病历标识符;将修改后的发送信息发送至所述区块链,其中,所述修改后的发送信息包括:所述修改后的电子病历密文、所述电子病历标识符和所述第一修改后的签名;
所述区块链,还用于根据所述修改后的发送信息生成修改电子病历交易,将所述修改后的发送信息发送至所述病人端和所述分布式服务器;
所述病人端,还用于利用所述病人的私钥对所述修改后的电子病历密文进行解密,得到修改后的电子病历原文;对所述修改后的电子病历原文进行检验通过后,对所述修改后的电子病历密文进行哈希运算,得到第二修改后的密文哈希值;利用所述病人的私钥对第二修改后的待签名信息进行签名,得到第三修改后的签名,其中,所述第二修改后的待签名信息包括:所述第二修改后的密文哈希值和所述电子病历标识符;将修改后的存储信息发送至所述区块链,所述修改后的存储信息包括:所述电子病历标识符、所述第二修改后的密文哈希值和所述第三修改后的签名;
所述分布式服务器,还用于对所述修改后的电子病历密文进行哈希计算,得到第三修改后的密文哈希值;利用所述分布式服务器的私钥对第三修改后的待签名信息进行签名,得到第五修改后的签名,其中,所述第三修改后的待签名信息包括:所述第三修改后密文哈希值和所述电子病历标识符;将修改后的上传信息发送至所述区块链,所述修改后的上传信息包括:所述电子病历标识符、所述第三修改后的密文哈希值和所述第五修改后的签名;
所述区块链,还用于确定待下发信息,其中,所述待下发信息包括:所述第一修改后的签名、所述第三修改后的签名和所述第五修改后的签名;将所述待上传信息、所述第二签名、所述第四签名、所述第六签名和所述待下发信息分别发送至所述医生端、所述病人端和所述分布式服务器;
所述医生端,还用于对所述待下发信息、所述待上传信息、所述第一随机数和所述医生的私钥进行变色龙哈希计算,得到第一变色龙随机数;利用所述医生的私钥对所述第一变色龙随机数和所述电子病历标识符进行签名,得到第一变色龙签名;将所述第一变色龙随机数、所述电子病历标识符和所述第一变色龙签名发送至所述区块链;
所述病人端,还用于对所述待下发信息、所述待上传信息、所述第二随机数和所述病人的私钥进行变色龙哈希计算,得到第二变色龙随机数;利用所述病人的私钥对所述第二变色龙随机数和所述电子病历标识符进行签名,得到第二变色龙签名;将所述第二变色龙随机数、所述电子病历标识符和所述第二变色龙签名发送至所述区块链;
所述分布式服务器,还用于对所述待下发信息、所述待上传信息、所述第三随机数和所述分布式服务器的私钥进行变色龙哈希计算,得到第三变色龙随机数;利用所述分布式服务器的私钥对所述第三变色龙随机数和所述电子病历标识符进行签名,得到第三变色龙签名;将所述第三变色龙随机数、所述电子病历标识符和所述第三变色龙签名发送至所述区块链;
所述区块链,还用于分别对所述第一变色龙随机数、所述第二变色龙随机数和所述第三变色龙随机数进行检验,如果均校验正确,则将根据所述待下发信息、所述第一变色龙签名、所述第二变色龙签名、所述第三变色龙签名替换所述存储交易中对应的信息,并将结果信息发送至所述分布式服务器。
可选地,所述分布式服务器,还用于将所述修改后的电子病历密文替换所述电子病历密文进行存储。
由此可见,通过本发明提供的基于变色龙哈希的可修改电子病历共享方法及系统,采用代理重加密技术加密电子病历,由于区块链本身具有不可篡改的特性,本发明将电子病历的验证信息(变色龙哈希值)和访问权限信息存储在区块链中,从而保证能够对的电子病历完整性进行检验,在Merkel(默克尔)树生成时用变色龙哈希值作为输入,只有在拥有变色龙哈希算法对应的私钥的情况下,可以对不同的信息产生相同的哈希值,若无私钥则很难找到碰撞,从而由此实现参与方对电子病历的修改。
因此,本发明利用变色龙哈希来实现电子病历的修改,利用门限加密算法和区块链来取代半诚实的第三方,实现电子病历的安全存储与共享。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的Merkel根生成示意图;
图2为本发明实施例提供的电子病历存储流程的流程图;
图3为本发明实施例提供的电子病历修改流程的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的核心在于:
本方案采用将电子病历的验证信息和电子病历的访问权限存储在区块链中。将电子病历采用代理重加密算法加密,把密文存储在分布式服务商,对密文计算变色龙哈希值,将变色龙哈希值存储在区块链中,由于变色龙哈希可以对不同的信息产生相同哈希值,从而实现电子病历的修改。
首先由医生用病人代理重加密的公钥加密电子病历,医生对密文的哈希值签名,将其发送给病人,同时,选取随机数,并对随机数签名,将电子病历密文、密文哈希值签名、随机数与随机数的签名发送给分布式存储服务商。病人在收到后会检验是否有误,若无误,对密文的哈希值签名,选取随机数,并对随机数签名,然后发送密文的哈希值的签名、随机数与随机数签名到分布式存储服务商。由分布式存储服务商保存电子病历密文,然后计算变色龙哈希,发送医生、病人和存储服务商的签名与变色龙哈希值到区块链,区块链会生成电子病历存储交易,保存服务商发送的信息(不包括变色龙哈希值),在存储电子病历相关信息时,与普通方案不同的是在进行Merkel(默克尔)树生成时,该方案采用的是输入交易的变色龙哈希值,而不是交易本身。
在进行电子病历修改时,由医生用病人的公钥加密新的电子病历,并对电子病历的密文哈希值签名发送到区块链,区块链将其转发给病人与分布式存储服务商。病人与分布式存储服务商分别对新的电子病历密文的哈希值签名,发送到区块链。区块链将初始电子病历信息,随机数、医生、病人和分布式存储服务商对新的电子病历的签名发送医生、病人和分布式存储服务商。医生、病人和分布式存储服务商利用自己的私钥分别计算新的随机数,将新的随机发送到区块链。区块链替换原始信息与随机数。
以下对本发明进行详细的说明:
本发明实施例提供了一种基于变色龙哈希的可修改电子病历共享方法,该方法包括:
医生端生成病人的电子病历;
医生端利用病人的公钥对电子病历进行加密计算,得到电子病历密文;
医生端对电子病历密文进行哈希计算,得到第一密文哈希值;
医生端利用医生的私钥对第一待签名信息进行签名,得到第一签名,其中,第一待签名信息包括:第一密文哈希值和电子病历标识符;
医生端将发送信息发送至病人端,发送信息包括:电子病历密文、电子病历标识符和第一签名;
医生端确定第一随机数,利用医生的私钥对第一随机数和电子病历标识符进行签名,得到第二签名;
医生端将第一存储信息发送至分布式服务器,第一存储信息包括:电子病历密文、电子病历标识符、第一随机数、第一密文哈希值、第一签名和第二签名;
病人端利用病人的私钥对电子病历密文进行解密,得到电子病历原文;
病人端在对电子病历原文进行检验通过后,对电子病历密文进行哈希运算,得到第二密文哈希值;
病人端利用病人的私钥对第二待签名信息进行签名,得到第三签名,其中,第二待签名信息包括:第二密文哈希值和电子病历标识符;
病人端确定第二随机数,利用病人的私钥对第二随机数和电子病历标识符进行签名,得到第四签名;
病人端将第二存储信息发送至分布式服务器,第二存储信息包括:电子病历密文、电子病历标识符、第二随机数、第二密文哈希值、第三签名和第四签名;
分布式服务器存储电子病历密文;
分布式服务器对电子病历密文进行哈希计算,得到第三密文哈希值;
分布式服务器利用分布式服务器的私钥对第三待签名信息进行签名,得到第五签名,其中,第三待签名信息包括:第三密文哈希值和电子病历标识符;
分布式服务器确定第三随机数,利用分布式服务器的私钥对第三随机数和电子病历标识符进行签名,得到第六签名;
分布式服务器确定待上传信息,其中,待上传信息包括:电子病历标识符、第一签名、第三签名和第五签名;
分布式服务器对待上传信息、医生变色龙哈希公钥、第一随机数进行哈希计算,得到第一变色龙哈希值;
分布式服务器对待上传信息、病人变色龙哈希公钥、第二随机数进行哈希计算,得到第二变色龙哈希值;
分布式服务器对待上传信息、分布式服务器变色龙哈希公钥、第三随机数进行哈希计算,得到第三变色龙哈希值;
分布式服务器将待上传信息、第二签名、第四签名、第六签名、第一变色龙哈希值、第二变色龙哈希值和第三变色龙哈希值发送至区块链中。
作为本发明实施例的一个可选实施方式,本发明实施例提供的基于变色龙哈希的可修改电子病历共享方法还包括:区块链根据待上传信息、第二签名、第四签名、第六签名、第一变色龙哈希值、第二变色龙哈希值和第三变色龙哈希值生成存储交易;区块链对第一变色龙哈希值、第二变色龙哈希值和第三变色龙哈希值进行验证,如果验证通过,则作为Merkel树的输入,计算最终的Merkel根。
具体实施时,可以参见图1和图2,电子病历存储流程包括:
1、医生(医生端)生成电子病历,将电子病历用病人的代理再加密算法的公钥进行加密,表示为E(EHR,pkP)对密文进行哈希运算,对密文的哈希值和电子病历标识符用医生私钥签名,表示为:SigD(H(E(EHR,pkP))||IDEHR)。将电子病历密文、电子病历标识符和签名发送给病人。即:E(EHR,pkP)||IDEHR||SigD(H(E(EHR,pkP))||IDEHR)。选取随机数RD,医生对随机数和电子病历标识符签名,表示为SigD(RD||IDEHR)。发送电子病历密文、电子病历标识符、随机数、密文哈希值和电子病历标识符的签名与随机数和电子病历标识符签名给分布式服务存储商。表示为:E(EHR,pkP)||IDEHR||RD||SigD(H(E(EHR,pkP))||IDEHR)||SigD(RD||IDEHR)。
2、病人(病人端)解密电子病历,对电子病历内容进行检验。无误则对密文进行哈希运算,对密文的哈希值和电子病历标识符用病人私钥签名,表示为:SigP(H(E(EHR,pkP))||IDEHR)。选取随机数RP,病人对随机数和电子病历标识符签名,表示为Sigp(RP||IDEHR)。发送电子病历标识符、随机数、密文哈希值和电子病历标识符的签名与随机数和电子病历标识符签名给分布式服务存储商。表示为:IDEHR||RP||SigP(H(E(EHR,pkP))||IDEHR)||SigP(RP||IDEHR)。
3、分布式存储服务商(分布式存储器)保存密文,对密文的哈希值和电子病历标识符用私钥签名,表示为:SigS(H(E(EHR,pkP))||IDEHR)。选取随机数RS,病人对随机数和电子病历标识符签名,表示为SigS(RS||IDEHR)。将电子病历标识符、医生对密文的哈希值和电子病历标识的签名、病人对密文的哈希值和电子病历标识的签名、分布式存储服务商对密文的哈希值和电子病历标识的签名作为信息M,即M={IDEHR||SigD(H(E(EHR,pkP))||IDEHR)||SigP(H(E(EHR,pkP))||IDEHR)||SigS(H(E(EHR,pkP))||IDEHR)}。将信息M、医生变色龙哈希公钥、医生选取的随机数作为变色龙哈希的输入,计算变色龙哈希值,表示为:CHD,同理计算病人与分布式存储服务商的变色龙哈希值,分别表示为:CHP和CHS。将M||IDEHR||SigD(RD||IDEHR)||Sigp(RP||IDEHR)||SigS(RS||IDEHR)||CHD||CHP||CHS发送到区块链中。
4、区块链生成存储交易,将M||IDEHR||SigD(RD||IDEHR)||SigP(RP||IDEHR)||SigS(RS||IDEHR)作为交易内容保存。验证“CHD||CHP||CHS”,若变色龙哈希无误,则作为Merkel树的输入,计算最终的Merkel根。
作为本发明实施例的一个可选实施方式,本发明实施例提供的基于变色龙哈希的可修改电子病历共享方法还包括:
医生端获取生成病人的修改后的电子病历;
医生端利用病人的公钥对修改后的电子病历进行加密计算,得到修改后的电子病历密文;
医生端对修改后的电子病历密文进行哈希计算,得到第一修改后的密文哈希值;
医生端利用医生的私钥对第一修改后的待签名信息进行签名,得到第一修改后的签名,其中,第一修改后的待签名信息包括:第一修改后的密文哈希值和电子病历标识符;
医生端将修改后的发送信息发送至区块链,其中,修改后的发送信息包括:修改后的电子病历密文、电子病历标识符和第一修改后的签名;
区块链根据修改后的发送信息生成修改电子病历交易,将修改后的发送信息发送至病人端和分布式服务器;
病人端利用病人的私钥对修改后的电子病历密文进行解密,得到修改后的电子病历原文;
病人端对修改后的电子病历原文进行检验通过后,对修改后的电子病历密文进行哈希运算,得到第二修改后的密文哈希值;
病人端利用病人的私钥对第二修改后的待签名信息进行签名,得到第三修改后的签名,其中,第二修改后的待签名信息包括:第二修改后的密文哈希值和电子病历标识符;
病人端将修改后的存储信息发送至区块链,修改后的存储信息包括:电子病历标识符、第二修改后的密文哈希值和第三修改后的签名;
分布式服务器对修改后的电子病历密文进行哈希计算,得到第三修改后的密文哈希值;
分布式服务器利用分布式服务器的私钥对第三修改后的待签名信息进行签名,得到第五修改后的签名,其中,第三修改后的待签名信息包括:第三修改后密文哈希值和电子病历标识符;
分布式服务器将修改后的上传信息发送至区块链,修改后的上传信息包括:电子病历标识符、第三修改后的密文哈希值和第五修改后的签名;
区块链确定待下发信息,其中,待下发信息包括:第一修改后的签名、第三修改后的签名和第五修改后的签名;
区块链将待上传信息、第二签名、第四签名、第六签名和待下发信息分别发送至医生端、病人端和分布式服务器;
医生端对待下发信息、待上传信息、第一随机数和医生的私钥进行变色龙哈希计算,得到第一变色龙随机数;
医生端利用医生的私钥对第一变色龙随机数和电子病历标识符进行签名,得到第一变色龙签名;
医生端将第一变色龙随机数、电子病历标识符和第一变色龙签名发送至区块链;
病人端对待下发信息、待上传信息、第二随机数和病人的私钥进行变色龙哈希计算,得到第二变色龙随机数;
病人端利用病人的私钥对第二变色龙随机数和电子病历标识符进行签名,得到第二变色龙签名;
病人端将第二变色龙随机数、电子病历标识符和第二变色龙签名发送至区块链;
分布式服务器对待下发信息、待上传信息、第三随机数和分布式服务器的私钥进行变色龙哈希计算,得到第三变色龙随机数;
分布式服务器利用分布式服务器的私钥对第三变色龙随机数和电子病历标识符进行签名,得到第三变色龙签名;
分布式服务器将第三变色龙随机数、电子病历标识符和第三变色龙签名发送至区块链;
区块链分别对第一变色龙随机数、第二变色龙随机数和第三变色龙随机数进行检验,如果均校验正确,则将根据待下发信息、第一变色龙签名、第二变色龙签名、第三变色龙签名替换存储交易中对应的信息,并将结果信息发送至分布式服务器。
作为本发明实施例的一个可选实施方式,本发明实施例提供的基于变色龙哈希的可修改电子病历共享方法还包括:分布式服务器将修改后的电子病历密文替换电子病历密文进行存储。
具体实施时,可以参见图3,电子病历修改流程包括:
1、医生将修改后的电子病历的密文用病人公钥加密。对密文计算哈希值,并对哈希值和电子病历的标识符签名,发送密文与签名。即Modify Request={E(EHR′,pkP)||IDEHR||SigD(H(E(EHR′,pkP))||IDEHR)}。
2、区块链生成修改电子病历交易,将E(EHR′,pkP)||IDEHR||SigD(H(E(EHR′,pkP))||IDEHR)发送给病人与服务存储商。
3、病人检验电子病历,同意则发送电子病历密文的哈希值与电子病历标识符的签名。即发送Patient Consent={IDEHR||SigP(H(E(EHR′,pkP))||IDEHR)}到区块链。
4、分布式存储服务商发送电子病历密文的哈希值与电子病历标识符的签名,即发送Server Consent={IDEHR||SigS(H(E(EHR′,pkP))||IDEHR)}到区块链。
5、区块链收到病人与分布式存储服务商的信息后,用M′表示医生、病人和分布式存储服务商对新的电子病历的签名。即M′={SigD(H(E(EHR′,pkP))||IDEHR)||SigP(H(E(EHR′,pkP))||IDEHR)||SigS(H(E(EHR′,pkP))||IDEHR)}。将M||IDEHR||SigD(RD||IDEHR)||SigP(RP||IDEHR)||SigS(RS||IDEHR)||M′发送给医生、病人和分布式存储服务商。
6、医生将M′、M、RD与医生私钥作为变色龙哈希的输入,计算R′D,发送R′D||IDEHR||SigD(R′D||IDEHR)到区块链。
7、病人将M′、M、RP与病人私钥作为变色龙哈希的输入,计算R′p,发送R′p||IDEHR||Sigp(R′p||IDEHR)到区块链。
8、分布式存储服务商将M′、M、RS与服务商私钥作为变色龙哈希的输入,计算R′S,发送R′S||IDEHR||SigS(R′S||IDEHR)到区块链。
9、区块链检验R′D、R′P和R′S。若正确,则用M′||IDEHR||SigD(R′D||IDEHR)||Sigp(R′p||IDEHR)||SigS(R′S||IDEHR)替换原始存储信息,并返回结果信息到服务商。
10、服务商替换原始密文信息。
由此可见,利用本发明实施例提供的基于变色龙哈希的可修改电子病历共享方法,采用代理重加密技术加密电子病历,由于区块链本身具有不可篡改的特性,本发明将电子病历的验证信息(变色龙哈希值)和访问权限信息存储在区块链中,从而保证能够对的电子病历完整性进行检验,在Merkel(默克尔)树生成时用变色龙哈希值作为输入,只有在拥有变色龙哈希算法对应的私钥的情况下,可以对不同的信息产生相同的哈希值,若无私钥则很难找到碰撞,从而由此实现参与方对电子病历的修改。
以下本发明实施例提供了一种基于变色龙哈希的可修改电子病历共享系统,该基于变色龙哈希的可修改电子病历共享系统应用上述方法,以下仅对基于变色龙哈希的可修改电子病历共享系统的结构进行简单说明,其他未尽事宜,请参照上述基于变色龙哈希的可修改电子病历共享方法中的相关描述,本发明实施例提供的基于变色龙哈希的可修改电子病历共享系统,包括:医生端、病人端和分布式服务器;其中:
医生端,用于生成病人的电子病历;利用病人的公钥对电子病历进行加密计算,得到电子病历密文;对电子病历密文进行哈希计算,得到第一密文哈希值;利用医生的私钥对第一待签名信息进行签名,得到第一签名,其中,第一待签名信息包括:第一密文哈希值和电子病历标识符;将发送信息发送至病人端,发送信息包括:电子病历密文、电子病历标识符和第一签名;确定第一随机数,利用医生的私钥对第一随机数和电子病历标识符进行签名,得到第二签名;将第一存储信息发送至分布式服务器,第一存储信息包括:电子病历密文、电子病历标识符、第一随机数、第一密文哈希值、第一签名和第二签名;
病人端,用于利用病人的私钥对电子病历密文进行解密,得到电子病历原文;在对电子病历原文进行检验通过后,对电子病历密文进行哈希运算,得到第二密文哈希值;利用病人的私钥对第二待签名信息进行签名,得到第三签名,其中,第二待签名信息包括:第二密文哈希值和电子病历标识符;确定第二随机数,利用病人的私钥对第二随机数和电子病历标识符进行签名,得到第四签名;将第二存储信息发送至分布式服务器,第二存储信息包括:电子病历密文、电子病历标识符、第二随机数、第二密文哈希值、第三签名和第四签名;
分布式服务器,用于存储电子病历密文;对电子病历密文进行哈希计算,得到第三密文哈希值;利用分布式服务器的私钥对第三待签名信息进行签名,得到第五签名,其中,第三待签名信息包括:第三密文哈希值和电子病历标识符;确定第三随机数,利用分布式服务器的私钥对第三随机数和电子病历标识符进行签名,得到第六签名;确定待上传信息,其中,待上传信息包括:电子病历标识符、第一签名、第三签名和第五签名;对待上传信息、医生变色龙哈希公钥、第一随机数进行哈希计算,得到第一变色龙哈希值;对待上传信息、病人变色龙哈希公钥、第二随机数进行哈希计算,得到第二变色龙哈希值;对待上传信息、分布式服务器变色龙哈希公钥、第三随机数进行哈希计算,得到第三变色龙哈希值;将待上传信息、第二签名、第四签名、第六签名、第一变色龙哈希值、第二变色龙哈希值和第三变色龙哈希值发送至区块链中。
作为本发明实施例提供的一个可选实施方式,基于变色龙哈希的可修改电子病历共享系统还包括:区块链;区块链,用于根据待上传信息、第二签名、第四签名、第六签名、第一变色龙哈希值、第二变色龙哈希值和第三变色龙哈希值生成存储交易;对第一变色龙哈希值、第二变色龙哈希值和第三变色龙哈希值进行验证,如果验证通过,则作为Merkel树的输入,计算最终的Merkel根。
作为本发明实施例提供的一个可选实施方式:
医生端,还用于获取生成病人的修改后的电子病历;利用病人的公钥对修改后的电子病历进行加密计算,得到修改后的电子病历密文;对修改后的电子病历密文进行哈希计算,得到第一修改后的密文哈希值;利用医生的私钥对第一修改后的待签名信息进行签名,得到第一修改后的签名,其中,第一修改后的待签名信息包括:第一修改后的密文哈希值和电子病历标识符;将修改后的发送信息发送至区块链,其中,修改后的发送信息包括:修改后的电子病历密文、电子病历标识符和第一修改后的签名;
区块链,还用于根据修改后的发送信息生成修改电子病历交易,将修改后的发送信息发送至病人端和分布式服务器;
病人端,还用于利用病人的私钥对修改后的电子病历密文进行解密,得到修改后的电子病历原文;对修改后的电子病历原文进行检验通过后,对修改后的电子病历密文进行哈希运算,得到第二修改后的密文哈希值;利用病人的私钥对第二修改后的待签名信息进行签名,得到第三修改后的签名,其中,第二修改后的待签名信息包括:第二修改后的密文哈希值和电子病历标识符;将修改后的存储信息发送至区块链,修改后的存储信息包括:电子病历标识符、第二修改后的密文哈希值和第三修改后的签名;
分布式服务器,还用于对修改后的电子病历密文进行哈希计算,得到第三修改后的密文哈希值;利用分布式服务器的私钥对第三修改后的待签名信息进行签名,得到第五修改后的签名,其中,第三修改后的待签名信息包括:第三修改后密文哈希值和电子病历标识符;将修改后的上传信息发送至区块链,修改后的上传信息包括:电子病历标识符、第三修改后的密文哈希值和第五修改后的签名;
区块链,还用于确定待下发信息,其中,待下发信息包括:第一修改后的签名、第三修改后的签名和第五修改后的签名;将待上传信息、第二签名、第四签名、第六签名和待下发信息分别发送至医生端、病人端和分布式服务器;
医生端,还用于对待下发信息、待上传信息、第一随机数和医生的私钥进行变色龙哈希计算,得到第一变色龙随机数;利用医生的私钥对第一变色龙随机数和电子病历标识符进行签名,得到第一变色龙签名;将第一变色龙随机数、电子病历标识符和第一变色龙签名发送至区块链;
病人端,还用于对待下发信息、待上传信息、第二随机数和病人的私钥进行变色龙哈希计算,得到第二变色龙随机数;利用病人的私钥对第二变色龙随机数和电子病历标识符进行签名,得到第二变色龙签名;将第二变色龙随机数、电子病历标识符和第二变色龙签名发送至区块链;
分布式服务器,还用于对待下发信息、待上传信息、第三随机数和分布式服务器的私钥进行变色龙哈希计算,得到第三变色龙随机数;利用分布式服务器的私钥对第三变色龙随机数和电子病历标识符进行签名,得到第三变色龙签名;将第三变色龙随机数、电子病历标识符和第三变色龙签名发送至区块链;
区块链,还用于分别对第一变色龙随机数、第二变色龙随机数和第三变色龙随机数进行检验,如果均校验正确,则将根据待下发信息、第一变色龙签名、第二变色龙签名、第三变色龙签名替换存储交易中对应的信息,并将结果信息发送至分布式服务器。
作为本发明实施例提供的一个可选实施方式,分布式服务器,还用于将修改后的电子病历密文替换电子病历密文进行存储。
由此可见,利用本发明实施例提供的基于变色龙哈希的可修改电子病历共享系统,采用代理重加密技术加密电子病历,由于区块链本身具有不可篡改的特性,本发明将电子病历的验证信息(变色龙哈希值)和访问权限信息存储在区块链中,从而保证能够对的电子病历完整性进行检验,在Merkel(默克尔)树生成时用变色龙哈希值作为输入,只有在拥有变色龙哈希算法对应的私钥的情况下,可以对不同的信息产生相同的哈希值,若无私钥则很难找到碰撞,从而由此实现参与方对电子病历的修改。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种基于变色龙哈希的可修改电子病历共享方法,其特征在于,包括:
医生端生成病人的电子病历;
所述医生端利用所述病人的公钥对所述电子病历进行加密计算,得到电子病历密文;
所述医生端对所述电子病历密文进行哈希计算,得到第一密文哈希值;
所述医生端利用医生的私钥对第一待签名信息进行签名,得到第一签名,其中,所述第一待签名信息包括:所述第一密文哈希值和电子病历标识符;
所述医生端将发送信息发送至病人端,所述发送信息包括:所述电子病历密文、所述电子病历标识符和所述第一签名;
所述医生端确定第一随机数,利用所述医生的私钥对所述第一随机数和所述电子病历标识符进行签名,得到第二签名;
所述医生端将第一存储信息发送至分布式服务器,所述第一存储信息包括:所述电子病历密文、所述电子病历标识符、所述第一随机数、所述第一密文哈希值、所述第一签名和所述第二签名;
所述病人端利用所述病人的私钥对所述电子病历密文进行解密,得到电子病历原文;
所述病人端在对所述电子病历原文进行检验通过后,对所述电子病历密文进行哈希运算,得到第二密文哈希值;
所述病人端利用所述病人的私钥对第二待签名信息进行签名,得到第三签名,其中,所述第二待签名信息包括:所述第二密文哈希值和所述电子病历标识符;
所述病人端确定第二随机数,利用所述病人的私钥对所述第二随机数和所述电子病历标识符进行签名,得到第四签名;
所述病人端将第二存储信息发送至所述分布式服务器,所述第二存储信息包括:所述电子病历密文、所述电子病历标识符、所述第二随机数、所述第二密文哈希值、所述第三签名和所述第四签名;
所述分布式服务器存储所述电子病历密文;
所述分布式服务器对所述电子病历密文进行哈希计算,得到第三密文哈希值;
所述分布式服务器利用所述分布式服务器的私钥对第三待签名信息进行签名,得到第五签名,其中,所述第三待签名信息包括:所述第三密文哈希值和所述电子病历标识符;
所述分布式服务器确定第三随机数,利用所述分布式服务器的私钥对所述第三随机数和所述电子病历标识符进行签名,得到第六签名;
所述分布式服务器确定待上传信息,其中,所述待上传信息包括:所述电子病历标识符、所述第一签名、所述第三签名和所述第五签名;
所述分布式服务器对所述待上传信息、医生变色龙哈希公钥、第一随机数进行哈希计算,得到第一变色龙哈希值;
所述分布式服务器对所述待上传信息、病人变色龙哈希公钥、第二随机数进行哈希计算,得到第二变色龙哈希值;
所述分布式服务器对所述待上传信息、所述分布式服务器变色龙哈希公钥、第三随机数进行哈希计算,得到第三变色龙哈希值;
所述分布式服务器将所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值发送至区块链中。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述区块链根据所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值生成存储交易;
所述区块链对所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值进行验证,如果验证通过,则作为Merkel树的输入,计算最终的Merkel根。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述医生端获取生成所述病人的修改后的电子病历;
所述医生端利用所述病人的公钥对所述修改后的电子病历进行加密计算,得到修改后的电子病历密文;
所述医生端对所述修改后的电子病历密文进行哈希计算,得到第一修改后的密文哈希值;
所述医生端利用医生的私钥对第一修改后的待签名信息进行签名,得到第一修改后的签名,其中,所述第一修改后的待签名信息包括:所述第一修改后的密文哈希值和所述电子病历标识符;
所述医生端将修改后的发送信息发送至所述区块链,其中,所述修改后的发送信息包括:所述修改后的电子病历密文、所述电子病历标识符和所述第一修改后的签名;
所述区块链根据所述修改后的发送信息生成修改电子病历交易,将所述修改后的发送信息发送至所述病人端和所述分布式服务器;
所述病人端利用所述病人的私钥对所述修改后的电子病历密文进行解密,得到修改后的电子病历原文;
所述病人端对所述修改后的电子病历原文进行检验通过后,对所述修改后的电子病历密文进行哈希运算,得到第二修改后的密文哈希值;
所述病人端利用所述病人的私钥对第二修改后的待签名信息进行签名,得到第三修改后的签名,其中,所述第二修改后的待签名信息包括:所述第二修改后的密文哈希值和所述电子病历标识符;
所述病人端将修改后的存储信息发送至所述区块链,所述修改后的存储信息包括:所述电子病历标识符、所述第二修改后的密文哈希值和所述第三修改后的签名;
所述分布式服务器对所述修改后的电子病历密文进行哈希计算,得到第三修改后的密文哈希值;
所述分布式服务器利用所述分布式服务器的私钥对第三修改后的待签名信息进行签名,得到第五修改后的签名,其中,所述第三修改后的待签名信息包括:所述第三修改后密文哈希值和所述电子病历标识符;
所述分布式服务器将修改后的上传信息发送至所述区块链,所述修改后的上传信息包括:所述电子病历标识符、所述第三修改后的密文哈希值和所述第五修改后的签名;
所述区块链确定待下发信息,其中,所述待下发信息包括:所述第一修改后的签名、所述第三修改后的签名和所述第五修改后的签名;
所述区块链将所述待上传信息、所述第二签名、所述第四签名、所述第六签名和所述待下发信息分别发送至所述医生端、所述病人端和所述分布式服务器;
所述医生端对所述待下发信息、所述待上传信息、所述第一随机数和所述医生的私钥进行变色龙哈希计算,得到第一变色龙随机数;
所述医生端利用所述医生的私钥对所述第一变色龙随机数和所述电子病历标识符进行签名,得到第一变色龙签名;
所述医生端将所述第一变色龙随机数、所述电子病历标识符和所述第一变色龙签名发送至所述区块链;
所述病人端对所述待下发信息、所述待上传信息、所述第二随机数和所述病人的私钥进行变色龙哈希计算,得到第二变色龙随机数;
所述病人端利用所述病人的私钥对所述第二变色龙随机数和所述电子病历标识符进行签名,得到第二变色龙签名;
所述病人端将所述第二变色龙随机数、所述电子病历标识符和所述第二变色龙签名发送至所述区块链;
所述分布式服务器对所述待下发信息、所述待上传信息、所述第三随机数和所述分布式服务器的私钥进行变色龙哈希计算,得到第三变色龙随机数;
所述分布式服务器利用所述分布式服务器的私钥对所述第三变色龙随机数和所述电子病历标识符进行签名,得到第三变色龙签名;
所述分布式服务器将所述第三变色龙随机数、所述电子病历标识符和所述第三变色龙签名发送至所述区块链;
所述区块链分别对所述第一变色龙随机数、所述第二变色龙随机数和所述第三变色龙随机数进行检验,如果均校验正确,则将根据所述待下发信息、所述第一变色龙签名、所述第二变色龙签名、所述第三变色龙签名替换所述存储交易中对应的信息,并将结果信息发送至所述分布式服务器。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述分布式服务器将所述修改后的电子病历密文替换所述电子病历密文进行存储。
5.一种基于变色龙哈希的可修改电子病历共享系统,其特征在于,包括:医生端、病人端和分布式服务器;其中:
所述医生端,用于生成病人的电子病历;利用所述病人的公钥对所述电子病历进行加密计算,得到电子病历密文;对所述电子病历密文进行哈希计算,得到第一密文哈希值;利用医生的私钥对第一待签名信息进行签名,得到第一签名,其中,所述第一待签名信息包括:所述第一密文哈希值和电子病历标识符;将发送信息发送至病人端,所述发送信息包括:所述电子病历密文、所述电子病历标识符和所述第一签名;确定第一随机数,利用所述医生的私钥对所述第一随机数和所述电子病历标识符进行签名,得到第二签名;将第一存储信息发送至分布式服务器,所述第一存储信息包括:所述电子病历密文、所述电子病历标识符、所述第一随机数、所述第一密文哈希值、所述第一签名和所述第二签名;
所述病人端,用于利用所述病人的私钥对所述电子病历密文进行解密,得到电子病历原文;在对所述电子病历原文进行检验通过后,对所述电子病历密文进行哈希运算,得到第二密文哈希值;利用所述病人的私钥对第二待签名信息进行签名,得到第三签名,其中,所述第二待签名信息包括:所述第二密文哈希值和所述电子病历标识符;确定第二随机数,利用所述病人的私钥对所述第二随机数和所述电子病历标识符进行签名,得到第四签名;将第二存储信息发送至所述分布式服务器,所述第二存储信息包括:所述电子病历密文、所述电子病历标识符、所述第二随机数、所述第二密文哈希值、所述第三签名和所述第四签名;
所述分布式服务器,用于存储所述电子病历密文;对所述电子病历密文进行哈希计算,得到第三密文哈希值;利用所述分布式服务器的私钥对第三待签名信息进行签名,得到第五签名,其中,所述第三待签名信息包括:所述第三密文哈希值和所述电子病历标识符;确定第三随机数,利用所述分布式服务器的私钥对所述第三随机数和所述电子病历标识符进行签名,得到第六签名;确定待上传信息,其中,所述待上传信息包括:所述电子病历标识符、所述第一签名、所述第三签名和所述第五签名;对所述待上传信息、医生变色龙哈希公钥、第一随机数进行哈希计算,得到第一变色龙哈希值;对所述待上传信息、病人变色龙哈希公钥、第二随机数进行哈希计算,得到第二变色龙哈希值;对所述待上传信息、所述分布式服务器变色龙哈希公钥、第三随机数进行哈希计算,得到第三变色龙哈希值;将所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值发送至区块链中。
6.根据权利要求6所述的系统,其特征在于,还包括:区块链;
所述区块链,用于根据所述待上传信息、所述第二签名、所述第四签名、所述第六签名、所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值生成存储交易;对所述第一变色龙哈希值、所述第二变色龙哈希值和所述第三变色龙哈希值进行验证,如果验证通过,则作为Merkel树的输入,计算最终的Merkel根。
7.根据权利要求6所述的系统,其特征在于,
所述医生端,还用于获取生成所述病人的修改后的电子病历;利用所述病人的公钥对所述修改后的电子病历进行加密计算,得到修改后的电子病历密文;对所述修改后的电子病历密文进行哈希计算,得到第一修改后的密文哈希值;利用医生的私钥对第一修改后的待签名信息进行签名,得到第一修改后的签名,其中,所述第一修改后的待签名信息包括:所述第一修改后的密文哈希值和所述电子病历标识符;将修改后的发送信息发送至所述区块链,其中,所述修改后的发送信息包括:所述修改后的电子病历密文、所述电子病历标识符和所述第一修改后的签名;
所述区块链,还用于根据所述修改后的发送信息生成修改电子病历交易,将所述修改后的发送信息发送至所述病人端和所述分布式服务器;
所述病人端,还用于利用所述病人的私钥对所述修改后的电子病历密文进行解密,得到修改后的电子病历原文;对所述修改后的电子病历原文进行检验通过后,对所述修改后的电子病历密文进行哈希运算,得到第二修改后的密文哈希值;利用所述病人的私钥对第二修改后的待签名信息进行签名,得到第三修改后的签名,其中,所述第二修改后的待签名信息包括:所述第二修改后的密文哈希值和所述电子病历标识符;将修改后的存储信息发送至所述区块链,所述修改后的存储信息包括:所述电子病历标识符、所述第二修改后的密文哈希值和所述第三修改后的签名;
所述分布式服务器,还用于对所述修改后的电子病历密文进行哈希计算,得到第三修改后的密文哈希值;利用所述分布式服务器的私钥对第三修改后的待签名信息进行签名,得到第五修改后的签名,其中,所述第三修改后的待签名信息包括:所述第三修改后密文哈希值和所述电子病历标识符;将修改后的上传信息发送至所述区块链,所述修改后的上传信息包括:所述电子病历标识符、所述第三修改后的密文哈希值和所述第五修改后的签名;
所述区块链,还用于确定待下发信息,其中,所述待下发信息包括:所述第一修改后的签名、所述第三修改后的签名和所述第五修改后的签名;将所述待上传信息、所述第二签名、所述第四签名、所述第六签名和所述待下发信息分别发送至所述医生端、所述病人端和所述分布式服务器;
所述医生端,还用于对所述待下发信息、所述待上传信息、所述第一随机数和所述医生的私钥进行变色龙哈希计算,得到第一变色龙随机数;利用所述医生的私钥对所述第一变色龙随机数和所述电子病历标识符进行签名,得到第一变色龙签名;将所述第一变色龙随机数、所述电子病历标识符和所述第一变色龙签名发送至所述区块链;
所述病人端,还用于对所述待下发信息、所述待上传信息、所述第二随机数和所述病人的私钥进行变色龙哈希计算,得到第二变色龙随机数;利用所述病人的私钥对所述第二变色龙随机数和所述电子病历标识符进行签名,得到第二变色龙签名;将所述第二变色龙随机数、所述电子病历标识符和所述第二变色龙签名发送至所述区块链;
所述分布式服务器,还用于对所述待下发信息、所述待上传信息、所述第三随机数和所述分布式服务器的私钥进行变色龙哈希计算,得到第三变色龙随机数;利用所述分布式服务器的私钥对所述第三变色龙随机数和所述电子病历标识符进行签名,得到第三变色龙签名;将所述第三变色龙随机数、所述电子病历标识符和所述第三变色龙签名发送至所述区块链;
所述区块链,还用于分别对所述第一变色龙随机数、所述第二变色龙随机数和所述第三变色龙随机数进行检验,如果均校验正确,则将根据所述待下发信息、所述第一变色龙签名、所述第二变色龙签名、所述第三变色龙签名替换所述存储交易中对应的信息,并将结果信息发送至所述分布式服务器。
8.根据权利要求7所述的系统,其特征在于,所述分布式服务器,还用于将所述修改后的电子病历密文替换所述电子病历密文进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311230572.4A CN117371050A (zh) | 2023-09-22 | 2023-09-22 | 一种基于变色龙哈希的可修改电子病历共享方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311230572.4A CN117371050A (zh) | 2023-09-22 | 2023-09-22 | 一种基于变色龙哈希的可修改电子病历共享方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117371050A true CN117371050A (zh) | 2024-01-09 |
Family
ID=89399324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311230572.4A Pending CN117371050A (zh) | 2023-09-22 | 2023-09-22 | 一种基于变色龙哈希的可修改电子病历共享方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117371050A (zh) |
-
2023
- 2023-09-22 CN CN202311230572.4A patent/CN117371050A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11080430B2 (en) | Integrity of communications between blockchain networks and external data sources | |
EP3451578B1 (en) | Turn-control rewritable blockchain | |
Jin et al. | Dynamic and public auditing with fair arbitration for cloud data | |
US8566247B1 (en) | System and method for secure communications involving an intermediary | |
AU2003254377B2 (en) | Methods and systems for providing a secure data distribution via public networks | |
JP3858527B2 (ja) | データ生成装置およびデータ検証装置ならびにその方法 | |
CN114866323B (zh) | 一种用户可控的隐私数据授权共享系统及方法 | |
CN101689241A (zh) | 电子处方的安全认证 | |
CN113610526A (zh) | 一种数据信任方法、装置、电子设备及存储介质 | |
KR20220065049A (ko) | 블록체인 상의 보증된 데이터를 저장하기 위한 컴퓨터 구현 방법 및 시스템 | |
CN116830523A (zh) | 阈值密钥交换 | |
Liu et al. | A Blockchain‐Assisted Electronic Medical Records by Using Proxy Reencryption and Multisignature | |
Zhang et al. | Data security in cloud storage | |
CN110719174B (zh) | 基于Ukey的证书签发方法 | |
CN117371050A (zh) | 一种基于变色龙哈希的可修改电子病历共享方法及系统 | |
Ibrahim | New secure solutions for privacy and access control in health information exchange | |
KR20220134751A (ko) | 의료 검사의 컨텍스트에서 데이터 교환을 관리하기 위한 방법 및 시스템 | |
Chen et al. | A hill cipher‐based remote data possession checking in cloud storage | |
Niranjana et al. | Enhancing Storage Efficiency for Health Data Records through Block chain-Based Storj Mechanism | |
CN117459249A (zh) | 一种面向危重症病人的电子病历访问授权方法及装置 | |
Zhou et al. | A threshold signature scheme without trusted center for blockchain-based medical cyber-physical systems | |
KR20240102453A (ko) | 클라우드에서 데이터 사용자 추적성을 제공하는 데이터 공유 시스템 및 방법 | |
JP2006166354A (ja) | 電子署名有効性証明データの生成方法、電子署名有効性証明データの正当性の確認方法、電子署名有効性確認方法、電子署名有効性証明データ生成装置、電子署名有効性証明データ正当性確認装置、電子署名有効性確認装置、電子署名有効性証明データ生成プログラム、電子署名有効性証明データ正当性確認プログラム、及び電子署名有効性確認プログラム | |
TWI311429B (en) | System and method for signing electronic documents automatically | |
TW200539647A (en) | Security transmitting method and system of digital medical information |
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 |