CN110334175A - 医疗文档的零知识证明方法、系统及存储介质 - Google Patents
医疗文档的零知识证明方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110334175A CN110334175A CN201910365766.2A CN201910365766A CN110334175A CN 110334175 A CN110334175 A CN 110334175A CN 201910365766 A CN201910365766 A CN 201910365766A CN 110334175 A CN110334175 A CN 110334175A
- Authority
- CN
- China
- Prior art keywords
- merkel
- root
- medical
- medical data
- document
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- 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/606—Protecting data by securing the transmission between two devices or processes
-
- 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Epidemiology (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明公开了一种医疗文档的零知识证明方法、系统及存储介质,方法包括:第三方终端发送获取请求至医疗机构服务器,医疗机构服务器根据获取请求,发送满足条件的医疗数据文档以及医疗数据文档对应的默克尔验证信息、权威机构ID至第三方终端,第三方终端根据医疗数据文档、医疗数据文档对应的默克尔验证信息、权威机构ID对应的哈希算法和有序默克尔树构建规则进行计算,获得各医疗数据文档对应的待验证默克尔根值,并根据待验证默克尔根值、权威机构ID和区块链平台判断各待验证默克尔根值是否有效,根据判断结果,对所述医疗数据文档进行验证。本发明解决了对医疗数据的真实性查验难度大的技术问题。
Description
技术领域
本发明涉及区块链平台技术领域,尤其涉及医疗文档的零知识证明方法、系统及计算机可读存储介质。
背景技术
近年来,随着互联网的快速发展,以及存储技术的快速发展,一个大数据时代、人工智能时代渐入我们生活的方方面面。但在传输过程中数据被窃取或被篡改经常发生,对于需要获取大量的医疗数据的科研机构、保险机构或者其他机构,对医疗数据的可信度要求高,需要确保获取到的医疗数据的真实性。而这些机构往往对获取到的医疗数据的真实性查验难度大或者不具备进行查验的能力。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种医疗文档的零知识证明方法、系统及计算机可读存储介质,旨在解决对医疗数据的真实性查验难度大的技术问题。
为实现上述目的,本申请提供一种医疗文档的零知识证明方法,包括步骤:
接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,以使医疗服务器根据接收到所述获取请求后,反馈匹配医疗数据文档筛选条件的医疗数据文档、对应的默克尔验证信息和权威机构ID;
根据接收到所述医疗机构服务器反馈的权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
根据所述哈希算法、所述有序默克尔树构建规则、所述医疗数据文档和所述医疗数据文档对应的默克尔验证信息进行计算,获得待验证默克尔根值;
根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值;
根据判断结果,对所述医疗数据文档进行验证。
可选地,所述根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值的步骤包括:
发送包括所述待验证默克尔根值和所述权威机构ID的默克尔根值查询请求至区块链平台,以使所述区块链平台反馈权威机构ID对应的与待验证默克尔根值相同的各默克尔根值和对应的数字签名以及对应的存储时间;
从接收到所述区块链平台反馈的权威机构ID对应的与待验证默克尔根值相同各默克尔根值中选择存储时间最近的默克尔根值;
根据权威机构ID,获取权威机构ID对应的权威机构服务器的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
若验证通过,所述第三方终端确定区块链平台中存在与待验证默克尔根值相同的有效默克尔根值;
若验证不通过,所述第三方终端确定区块链平台中不存在与待验证默克尔根值相同的有效默克尔根值。
可选地,所述根据判断结果,对所述医疗数据文档进行验证的步骤包括:
当确定区块链平台中存在与所述待验证默克尔根值相同有效的默克尔根值时,确定所述医疗数据文档是真实的;
当确定区块链平台中不存在与所述待验证默克尔根值相同有效的默克尔根值时,确定所述医疗数据文档非真实。
此外,为实现上述目的,本发明还提供一种医疗数据文档的零知识证明,所述步骤包括:
第三方终端接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器;
医疗机构服务器接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档;
所述医疗机构服务器将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方终端接收所述医疗机构服务器反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
所述第三方终端根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;
所述第三方终端根据待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。
可选地,所述第三方终端发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器的步骤之前包括:
权威机构服务器接收任一医疗机构服务器发送的患者ID和患者ID对应的至少一条个人信息以及至少一个医疗文档,根据接收到的患者ID对应的至少一条个人信息和对应的至少一个医疗文档,创建所述患者ID对应的包括至少一条个人信息和至少一个医疗文档的资料库;
所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述患者ID对应的资料库中各条个人信息和各医疗文档,构建所述患者ID对应的第一默克尔树;
所述权威机构服务器根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
可选地,所述所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台的步骤包括:
所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的第一交易记录;
所述权威机构服务器将所述第一交易记录存储至所述区块链平台。
可选地,所述所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台之后还包括:
所述权威机构服务器接收任一医疗机构服务器发送的包括患者ID和所述患者ID对应的至少一个医疗文档的更新请求;
所述权威机构服务器根据更新请求中的患者ID对应的资料库和更新请求中的至少一个医疗文档,生成更新请求中的患者ID对应的新资料库;
所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述新资料库中各医疗数据文档,构建更新请求中的患者ID对应的第二默克尔树;
所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名;
所述权威机构服务器将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台。
可选地,所述权威机构服务器,还用于采用第二私钥对更新请求中患者ID对应的第一默克尔树的默克尔根值进行签名,生成第三数字签名,并将包括第一默克尔树的默克尔根值、第三数字签名和权威机构ID的信息存储至所述区块链平台。
此外,为实现上述目的,本发明还提供一种医疗数据文档的零知识证明系统,所述系统包括:
第三方终端,用于接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器;
医疗机构服务器,用于接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档;
所述医疗机构服务器,还用于将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方终端,还用于接收所述医疗机构服务器反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
所述第三方终端,还用于根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;
所述第三方终端,还用于根据待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的医疗文档的零知识证明方法的步骤。
本发明实施例提出的一种医疗文档的零知识证明方法、系统及计算机可读存储介质,通过接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,以使医疗服务器根据接收到所述获取请求后,反馈匹配医疗数据文档筛选条件的医疗数据文档、对应的默克尔验证信息和权威机构ID;根据接收到所述医疗机构服务器反馈的权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;根据所述哈希算法、所述有序默克尔树构建规则、所述医疗数据文档和所述医疗数据文档对应的默克尔验证信息进行计算,获得待验证默克尔根值;根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值;根据判断结果,对所述医疗数据文档进行验证。从而提供了查验医疗数据验证真实性的快捷方便的方法,在使用医疗数据前,能确保医疗数据真实性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明医疗文档的零知识证明方法第一实施例的流程示意图;
图3为本发明医疗文档的零知识证明方法第二实施例中步骤S040的细化流程示意图;
图4为本发明医疗文档的零知识证明方法第三实施例的流程示意图
图5为本发明医疗文档的零知识证明方法第四实施例中步骤S110的细化流程示意图;
图6为本发明医疗文档的零知识证明方法第三实施例的系统架构示意图;
图7为已构建的默克尔树示意图;
图8为存储有默克尔根值的交易记录示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明各个实施例中所提供的第三方终端、权威机构服务器、医疗机构服务器或区块链平台的硬件结构示意图,所述第三方终端、权威机构服务器、医疗机构服务器或区块链平台包括通信模块10、存储器20及处理器30等部件。本领域技术人员可以理解,图1中所示出的第三方终端、权威机构服务器、医疗机构服务器或区块链平台还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,所述处理器30分别与所述存储器20和所述通信模块10连接,所述存储器20上存储有计算机程序,所述计算机程序同时被处理器30执行。
通信模块10,可通过网络与外部设备连接。通信模块10可以接收外部设备发出的数据,还可发送数据、指令及信息至所述外部设备。所述外部设备可以是医疗机构服务器、第三方终端、权威机构服务器或区块链平台。
存储器20,可用于存储软件程序以及各种数据。存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(基于用户信息构建默克尔树)等;存储数据区可存储根据第三方终端、权威机构服务器、医疗机构服务器或区块链平台的使用所创建的数据或信息等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器30,是第三方终端、权威机构服务器、医疗机构服务器或区块链平台的控制中心,利用各种接口和线路连接整个第三方终端、权威机构服务器、医疗机构服务器或区块链平台的各个部分,通过运行或执行存储在存储器20内的软件程序和/或模块,以及调用存储在存储器20内的数据,执行第三方终端、权威机构服务器、医疗机构服务器或区块链平台的各种功能和处理数据,从而对第三方终端、权威机构服务器、医疗机构服务器或区块链平台进行整体监控。处理器30可包括一个或多个处理单元;优选的,处理器30可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器30中。
尽管图1未示出,但上述第三方终端、权威机构服务器、医疗机构服务器或区块链平台还可以包括电路控制模块,用于与市电连接,实现电源控制,保证其他部件的正常工作。
本领域技术人员可以理解,图1中示出的第三方终端、权威机构服务器、医疗机构服务器或区块链平台结构并不构成对第三方终端、权威机构服务器、医疗机构服务器或区块链平台的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
根据上述硬件结构,提出本发明方法各个实施例。
参照图2,在本发明医疗文档的零知识证明方法的第一实施例中,应用于第三方终端,所述医疗文档的零知识证明方法包括步骤:
步骤S010,接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,以使医疗服务器根据接收到所述获取请求后,反馈匹配医疗数据文档筛选条件的医疗数据文档、对应的默克尔验证信息和权威机构ID;
在本方案中,零知识证明是指一方(证明者)可以向另一方(验证者)证明一个陈述是正确的,而无需透露该陈述是正确的之外的其它有用信息。在本发明中里,“陈述”指的是待审核的医疗数据文档。默克尔树(Merkle Tree)就是一种存储哈希值的二叉树数据结构,默克尔树的叶子是数据块(例如,数据块可以是信息、文件或者文件的集合)的哈希值,非叶节点是其对应子节点串联字符串的哈希值。有序默克尔树构建规则指的是在构建有效默克尔树时,对各层内所有节点在对应层内的位置进行排序的规则,该节点位置排序规则可以依据每层内各节点的哈希值的16进制数值的大小或每层内各节点的哈希值的字符ASCII码数字顺序,从小到大或从大到小依次将各节点从左至右排列各节点位置。
第三方终端通过有线或无线网络发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,其中医疗数据文档筛选条件为个人信息匹配条件,或者医疗数据文档筛选条件为关键词,又或者医疗数据文档筛选条件为个人信息匹配条件和关键词。个人信息匹配条件可以为预设年龄范围、身高范围、体重范围、婚育状况等等,在此不作限定;关键词可以为病症、科室等等,在此不作限定。例如第三方终端为某一科研机构终端,它为了获取年龄段为20-30岁并患有心血管疾病的医疗数据,那么它发送的获取请中的医疗数据文档筛选条件为年龄段20-30岁和心血管疾病。
医疗机构服务器通过有线或无线网络接收到第三方终端发的获取请求后,根据获取请求中的医疗数据文档筛选条件,从医疗数据库中选择匹配医疗数据文档筛选条件的至少一个医疗数据文档,若从医疗数据库中未选择到匹配医疗数据文档筛选条件的医疗数据文档后,会反馈无相关医疗数据文档的信息至第三方终端。本实施例中,所述医疗数据文档是不包括患者隐私信息的。
医疗机构服务器通过无线或有线网络将符合条件的各医疗数据文档、各医疗数据文档对应的默克尔验证信息和权威机构ID发送给第三方终端,其中所述默克尔验证信息包括至少一个除所述各医疗数据文档对应的默克尔节点外的其他节点的哈希值或包括各医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层。
在第三方终端对用户发送的至少一个医疗数据文档进行验证时,医疗机构服务器除了发送上述的至少一个医疗数据文档、权威机构ID和默克尔验证信息外,还可以发送哈希算法和有序默克尔树构建规则。
需要说明的是,为防止发送的医疗数据文档、默克尔验证信息和权威机构ID的这些信息被其他人截获,可以采用第三方终端的公钥对各医疗数据文档、默克尔验证信息和权威机构ID的这些信息进行加密,再将加密后的信息发送至第三方终端,第三方终端会采用第三方终端自己的私钥对所述加密的信息进行解密,从而获得医疗机构服务器发送的各医疗数据文档、默克尔验证信息和权威机构ID。
默克尔验证信息中的各节点的哈希值是由哈希映射函数生成的单向结果,本身并不能用于推算出任何有用信息。默克尔验证信息中的这些节点是从医疗数据文档对应的默克尔节点至默克尔根值的哈希计算路径上除医疗数据文档对应的默克尔节点外所必需的所有节点的哈希值,或医疗数据文档对应的默克尔节点外所必需的所有节点的哈希值和对应的所属层,若采用最快的哈希计算路径,提供的默克尔验证信息中可以只包括一组有序排列的节点哈希值,该排列顺序为计算默克尔根值过程是使用的先后顺序。若采用非最快的哈希计算路径,提供的默克尔验证信息中除了节点哈希值外,还包括各节点哈希值对应的所属层。例如待验证的医疗数据文档为图7中的P5第一医疗数据文档,从第一类医疗数据文档对应的节点位置至图7中默克尔树的默克尔根的哈希计算路径可以为F+ABCD,也可以为AB+CD+F,还可以为A+B+C+D+F,其中F+ABCD的哈希计算路径对于E来说,是最快哈希计算路径,而A+B+C+D+F的哈希计算路径对于E来说,是最慢哈希计算路径,若采用最快的哈希计算路径,那么默克尔验证信息为一组有序排列的节点哈希值数组{hash(P6)、hash(AB+CD)}。若该计算路径为AB+CD+F,那么默克尔验证信息为包括节点AB的哈希值和节点AB所属层为第二层、节点CD的哈希值和节点CD所属层为第二层、节点F的哈希值和节点F所属层为第一层。若提供的待验证的医疗数据文档为图7中的P5第一医疗数据文档和P6第二医疗数据文档时,则从第一医疗数据文档和第二医疗数据文档对应的节点位置至图7中默克尔树的默克尔根的哈希计算路径可以为ABCD(最快哈希计算路径)、AB+CD、A+B+CD、AB+C+D或A+B++C+D(最慢哈希计算路径)。默克尔验证信息中除医疗数据文档对应的默克尔节点外的其他节点的数量是由默克尔树的复杂程度决定,默克尔树越简单,层次越少,则需提供的其他节点数量越少,例如只有两个叶节点和默克尔根节点组成的最简单的默克尔树,那么医疗机构服务器只需提供除所述医疗数据文档对应的默克尔节点外的一个叶节点的节点值。
步骤S020,根据接收到所述医疗机构服务器反馈的权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
第三方终端接收所述医疗机构服务器发送的各医疗数据文档、各医疗数据文档对应的默克尔验证信息和权威机构ID后,根据权威机构ID,可以通过有线或无线网络向所述权威机构ID对应的权威机构服务器发送获取哈希算法和有序默克尔树构建规则的请求,所述权威机构ID对应的权威机构服务器接收到第三方终端发送的所述请求后,将权威机构服务器构建默克尔树采用的哈希算法和有序默克尔树构建规则发送给第三方终端。
或者当第三方终端中已经存储了包括各权威机构ID的哈希算法和有序默克尔树构建规则的权威机构ID和哈希算法、有序默克尔树构建规则对应关系表,第三方终端会根据权威机构ID,从所述表中查询获得所述权威机构ID对应的哈希算法和有序默克尔树构建规则。
哈希算法可以为MD4算法、MD5算法、SHA-1、SHA-256、SHA-512、国密算法或其他哈希算法,在此不作限定。
步骤S030,根据所述哈希算法、所述有序默克尔树构建规则、所述医疗数据文档和所述医疗数据文档对应的默克尔验证信息进行计算,获得待验证默克尔根值;
第三方终端会根据接收到各医疗数据文档和所述各医疗数据对应的默克尔验证信息,使用获取到的哈希算法和有序默克尔树构建规则逐层计算哈希值,最终得到各医疗数据文档对应的待验证默克尔根值。
例如医疗机构服务器提供了医疗数据文档为图7中的“第一医疗数据文档”和对应的默克尔验证信息,其中默克尔验证信息为包括图7中节点F的哈希值hash(P6)和节点ABCD的哈希值hash(AB+CD)的有序数组,且第三方终端获取到的有序默克尔树构建规则为从小到大依次将同一层的各节点从左至右排列各节点位置。第三方终端会采用哈希算法对待验证的第一医疗数据文档进行计算得到节点E的哈希值hash(P5),然后比较hash(P5)和hash(P6),确定hash(P5)小于hash(P6);然后根据节点E的哈希值和节点F的哈希值计算得到节点EF的哈希值hash(E+F),进一步比较hash(AB+CD)和hash(E+F)大小获得hash(AB+CD)小于hash(F+E)后,根据hash(AB+CD)和hash(E+F)计算得到待验证默克尔根值hash(ABCD+EF)。
需要说明的是,各医疗数据文档可能属于同一患者的,也可能属于不同患者的,故不同医疗数据文档对应的默克尔验证信息是不同的。但为某一医疗机构的某一患者构建默克树,是基于该患者的在该医疗机构的个人信息和所有医疗数据文档进行构建的,故基于同一医疗机构中的同一患者的各医疗数据文档,分别计算获得的待验证默克尔根值是相同的。
步骤S040,根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值;
步骤S050,根据判断结果,对所述医疗数据文档进行验证。
在计算得到各医疗数据文档对应的待验证默克尔根值后,第三方终端会针对各待验证默克尔根值分别判断。该判断的具体过程为:区块链平台中将医疗数据文档对应的待验证默克尔根值和权威机构ID通过有线或无线网络发送至区块链平台。例如第三方终端通过区块链平台的API接口,将待验证默克尔根值和权威机构ID发送给区块平台。所述区块链平台根据接收到的所述待验证默克尔根值和权威机构ID,从平台上存储的所有默克尔根值中选择权威机构ID对应的与所述待验证默克尔根值相同的所有默克尔根值,并将获得的所述各默克尔根值和对应的数字签名以及对应的存储时间发送至所述第三方终端;
由于区块链平台上可能会存储与待验证默克尔根值相同的多个默克尔根值,这些默克尔根值中有些是由权威机构ID对应的权威机构服务器发送的,有些是由其他权威机构服务器发送的,还有些是由非权威机构服务器发送的。
当区块链平台会根据待验证默克尔根值和权威机构ID,从存储默克尔根值的数据库或存储包括默克尔根值的交易记录中查询,获取权威机构ID对应的权威机构服务器发送过来的与待验证默克尔根值相同的至少一个默克尔根值,并将查询获得的默克尔根值和对应的数字签名以及存储时间发送至第三方终端。
需要说明的是,对于某一医疗数据文档对应的待验证默克跟值,当区块链平台未查询到权威机构ID对应的权威机构服务器发送过来的与待验证默克尔根值相同的默克尔根值时,区块链平台会反馈不存在待验证默克尔根值的信息至第三方终端,第三方终端从而确定区块链平台中不存在与待验证默克尔根值有效的默克尔根值,并确定该默克尔根值对应的医疗数据文档不真实。
第三方终端接收到区块链平台发送的各默克尔根值和对应的数字签名以及存储时间后,首先根据存储时间,从这些默克尔根值中选择存储时间最近的默克尔根值,并根据权威机构ID,获取权威机构ID的第一公钥,采用第一公钥对存储时间最近的默克尔根值对应的数字签名进行验证,若验证通过,则确定区块链平台存在与待验证默克尔根值有效的默克尔根值,确定该待验证默克尔根值对应的医疗数据文档真实;若验证不通过,则确定区块链平台不存在与待验证默克尔根值有效的默克尔根值,从而确定该待验证默克尔根值对应的医疗数据文档不真实。
第三方终端还可以直接根据区块链平台反馈回来的各默克尔根值的数量,若为奇数时,则确定区块链平台存在与待验证默克尔根值有效的默克尔根值;若为偶数时,则确定区块链平台不存在与待验证默克尔根值有效的默克尔根值。
需要说明的是,还可以区块链平台查询获取到权威机构ID对应的权威机构服务器发送过来的与待验证默克尔根值相同的至少一个默克尔根值后,从这些默克尔根值中选择存储时间最近的默克尔根值,并采用权威机构ID对应的权威机构服务器的第一公钥对存储时间最近的默克尔根值进行验证,若验证通过,则反馈存在待验证默克尔根值的信息至第三方终端,第三方终端从而确定该待验证默克尔根值对应的医疗数据文档是真实;若验证不通过,反馈未存在待验证默克尔根值的信息至第三方终端,从而第三方终端确定该待验证默克尔根值对应的医疗数据文档是不真实。
本实施例通过接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,以使医疗服务器根据接收到所述获取请求后,反馈匹配医疗数据文档筛选条件的医疗数据文档、对应的默克尔验证信息和权威机构ID;根据接收到所述医疗机构服务器反馈的权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;根据所述哈希算法、所述有序默克尔树构建规则、所述医疗数据文档和所述医疗数据文档对应的默克尔验证信息进行计算,获得待验证默克尔根值;根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值;根据判断结果,对所述医疗数据文档进行验证。从而提供了查验医疗数据验证真实性的快捷方便的方法,在使用医疗数据前,能确保医疗数据真实性。
进一步地,参照图3,根据本申请医疗文档的零知识证明方法的第一实施例提成提出本申请医疗文档的零知识证明方法的第二实施例,应用于第三方终端,在本实施例中,所述步骤S040还包括:
步骤S041,发送包括所述待验证默克尔根值和所述权威机构ID的默克尔根值查询请求至区块链平台,以使所述区块链平台反馈权威机构ID对应的与待验证默克尔根值相同的各默克尔根值和对应的数字签名以及对应的存储时间;
步骤S042,从接收到所述区块链平台反馈的权威机构ID对应的与待验证默克尔根值相同各默克尔根值中选择存储时间最近的默克尔根值;
步骤S043,根据权威机构ID,获取权威机构ID对应的权威机构服务器的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
步骤S044,若验证通过,所述第三方终端确定区块链平台中存在与待验证默克尔根值相同的有效默克尔根值;
步骤S045,若验证不通过,所述第三方终端确定区块链平台中不存在与待验证默克尔根值相同的有效默克尔根值。
在本方案中,由于患者的个人信息或者对应医疗数据文档可能会存在变化。那么权威机构服务器获取到患者ID对应的个人信息或者对应医疗数据文档时,会根据更新后的个人信息或者对应医疗数据文档重新创建一个默克尔树,该默克尔树的默克尔根值为b,但由于基于更新前的患者ID对应的各医疗数据文档构建的默克尔树的默克尔根值a已经存储在区块链平台上,该默克尔根值a是不能对其进行删除和修改的,未防止医疗机构服务器发送利用更新前的旧医疗数据文档这种情况发生,权威机构服务器会采用第二私钥对所述默克尔根值a重新签名生成第二数字签名,然后将包括所述默克尔根值a、对应的第二数字签名和权威机构ID的信息存储至区块链平台。这就导致区块链平台上会存储两条包括默克尔根值a的信息。
第三方终端接收到区块链平台发送的权威机构ID对应的至少一个与所述待验证默克尔根值相同的默克尔根值后,会首先根据存储时间,从这些默克尔根值中选择存储时间最近的默克尔根值,并根据权威机构ID,获取权威机构ID的第一公钥,采用第一公钥对存储时间最近的默克尔根值对应的数字签名进行验证,若验证通过,则确定区块链平台中存在与待验证默克尔根值相同的有效默克尔根值;若验证不通过,则确定区块链平台中不存在与待验证默克尔根值相同的有效默克尔根值。
需要说明的是,权威机构服务器可能只存在一个私钥。由于用户医疗数据文档变化导致默克尔根值的有效或失效状态发生变化时,权威机构服务器会再次用同一个私钥对默克尔根值进行签名,并再次将所述默克尔根值和对应的数字签名存储至区块链平台。这就导致区块链平台存在多个相同的默克尔根值,并且这些默克尔根值对应的数字签名也是相同的。第三方终端还可以直接根据区块链平台反馈回来的各默克尔根值的数量,若为奇数时,则确定区块链平台中存在与待验证默克尔根值相同的有效默克尔根值;若为偶数时,则确定区块链平台中不存在与待验证默克尔根值相同的有效默克尔根值。
本实施例提供了一种区块链平台通过采用第一公钥进行验证确定有效默克尔根值的策略,从而防止在医疗数据文档更新后,接收到更新前的医疗数据文档通过验证。
参照图4,在本发明医疗文档的零知识证明方法的第三实施例中,所述医疗文档的零知识证明方法包括步骤:
步骤S10,第三方终端接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器;
在本方案中,零知识证明是指一方(证明者)可以向另一方(验证者)证明一个陈述是正确的,而无需透露该陈述是正确的之外的其它有用信息。在本发明中里,“陈述”指的是待审核的医疗数据文档。默克尔树(Merkle Tree)就是一种存储哈希值的二叉树数据结构,默克尔树的叶子是数据块(例如,数据块可以是信息、文件或者文件的集合)的哈希值,非叶节点是其对应子节点串联字符串的哈希值。有序默克尔树构建规则指的是在构建有效默克尔树时,对各层内所有节点在对应层内的位置进行排序的规则,该节点位置排序规则可以依据每层内各节点的哈希值的16进制数值的大小或每层内各节点的哈希值的字符ASCII码数字顺序,从小到大或从大到小依次将各节点从左至右排列各节点位置。
第三方终端通过有线或无线网络发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,其中医疗数据文档筛选条件为个人信息匹配条件,或者医疗数据文档筛选条件为关键词,又或者医疗数据文档筛选条件为个人信息匹配条件和关键词。个人信息匹配条件可以为预设年龄范围、身高范围、体重范围、婚育状况等等,在此不作限定;关键词可以为病症、科室等等,在此不作限定。例如第三方终端为某一科研机构终端,它为了获取年龄段为20-30岁并患有心血管疾病的医疗数据,那么它发送的获取请中的医疗数据文档筛选条件为年龄段20-30岁和心血管疾病。
步骤S20,医疗机构服务器接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档;
医疗机构服务器通过有线或无线网络接收到第三方终端发的获取请求后,根据获取请求中的医疗数据文档筛选条件,从医疗数据库中选择匹配医疗数据文档筛选条件的至少一个医疗数据文档,若从医疗数据库中未选择到匹配医疗数据文档筛选条件的医疗数据文档后,会反馈无相关医疗数据文档的信息至第三方终端。
当医疗机构服务器接收到包括个人信息匹配条件和关键词的医疗数据文档获取请求后,首先根据个人信息匹配条件,从医疗机构服务器预设的患者个人信息数据库中,筛选出满足个人信息匹配条件的患者ID;然后再根据患者ID,从预设的医疗数据库中调出该患者ID的所有医疗数据文档;根据所述患者ID对应各医疗数据文档的预设标签和关键词,从所述患者ID对应的各医疗数据文档中获取预设标签与所述关键词匹配的各医疗数据文档。
需要说明的时,所述医疗数据文档是不包括患者隐私信息的。
步骤S30,所述医疗机构服务器将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
医疗机构服务器通过无线或有线网络将符合条件的各医疗数据文档、各医疗数据文档对应的默克尔验证信息和权威机构ID发送给第三方终端,其中所述默克尔验证信息包括至少一个除所述各医疗数据文档对应的默克尔节点外的其他节点的哈希值或包括各医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层。
在第三方终端对用户发送的至少一个医疗数据文档进行验证时,医疗机构服务器除了发送上述的至少一个医疗数据文档、权威机构ID和默克尔验证信息外,还可以发送哈希算法和有序默克尔树构建规则。
需要说明的是,为防止发送的医疗数据文档、默克尔验证信息和权威机构ID的这些信息被其他人截获,可以采用第三方终端的公钥对各医疗数据文档、默克尔验证信息和权威机构ID的这些信息进行加密,再将加密后的信息发送至第三方终端,第三方终端会采用第三方终端自己的私钥对所述加密的信息进行解密,从而获得医疗机构服务器发送的各医疗数据文档、默克尔验证信息和权威机构ID。
默克尔验证信息中的各节点的哈希值是由哈希映射函数生成的单向结果,本身并不能用于推算出任何有用信息。默克尔验证信息中的这些节点是从医疗数据文档对应的默克尔节点至默克尔根值的哈希计算路径上除医疗数据文档对应的默克尔节点外所必需的所有节点的哈希值,或医疗数据文档对应的默克尔节点外所必需的所有节点的哈希值和对应的所属层,若采用最快的哈希计算路径,提供的默克尔验证信息中可以只包括一组有序排列的节点哈希值,该排列顺序为计算默克尔根值过程是使用的先后顺序。若采用非最快的哈希计算路径,提供的默克尔验证信息中除了节点哈希值外,还包括各节点哈希值对应的所属层。例如待验证的医疗数据文档为图7中的P5第一医疗数据文档,从第一类医疗数据文档对应的节点位置至图7中默克尔树的默克尔根的哈希计算路径可以为F+ABCD,也可以为AB+CD+F,还可以为A+B+C+D+F,其中F+ABCD的哈希计算路径对于E来说,是最快哈希计算路径,而A+B+C+D+F的哈希计算路径对于E来说,是最慢哈希计算路径,若采用最快的哈希计算路径,那么默克尔验证信息为一组有序排列的节点哈希值数组{hash(P6)、hash(AB+CD)}。若该计算路径为AB+CD+F,那么默克尔验证信息为包括节点AB的哈希值和节点AB所属层为第二层、节点CD的哈希值和节点CD所属层为第二层、节点F的哈希值和节点F所属层为第一层。若提供的待验证的医疗数据文档为图7中的P5第一医疗数据文档和P6第二医疗数据文档时,则从第一医疗数据文档和第二医疗数据文档对应的节点位置至图7中默克尔树的默克尔根的哈希计算路径可以为ABCD(最快哈希计算路径)、AB+CD、A+B+CD、AB+C+D或A+B++C+D(最慢哈希计算路径)。默克尔验证信息中除医疗数据文档对应的默克尔节点外的其他节点的数量是由默克尔树的复杂程度决定,默克尔树越简单,层次越少,则需提供的其他节点数量越少,例如只有两个叶节点和默克尔根节点组成的最简单的默克尔树,那么医疗机构服务器只需提供除所述医疗数据文档对应的默克尔节点外的一个叶节点的节点值。
步骤S40,所述第三方终端接收所述医疗机构服务器反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
第三方终端接收所述医疗机构服务器发送的各医疗数据文档、各医疗数据文档对应的默克尔验证信息和权威机构ID后,根据权威机构ID,可以通过有线或无线网络向所述权威机构ID对应的权威机构服务器发送获取哈希算法和有序默克尔树构建规则的请求,所述权威机构ID对应的权威机构服务器接收到第三方终端发送的所述请求后,将权威机构服务器构建默克尔树采用的哈希算法和有序默克尔树构建规则发送给第三方终端。
或者当第三方终端中已经存储了包括各权威机构ID的哈希算法和有序默克尔树构建规则的权威机构ID和哈希算法、有序默克尔树构建规则对应关系表,第三方终端会根据权威机构ID,从所述表中查询获得所述权威机构ID对应的哈希算法和有序默克尔树构建规则。
哈希算法可以为MD4算法、MD5算法、SHA-1、SHA-256、SHA-512、国密算法或其他哈希算法,在此不作限定。
步骤S50,所述第三方终端根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;
第三方终端会根据接收到各医疗数据文档和所述各医疗数据对应的默克尔验证信息,使用获取到的哈希算法和有序默克尔树构建规则逐层计算哈希值,最终得到各医疗数据文档对应的待验证默克尔根值。
例如医疗机构服务器提供了医疗数据文档为图7中的“第一医疗数据文档”和对应的默克尔验证信息,其中默克尔验证信息为包括图7中节点F的哈希值hash(P6)和节点ABCD的哈希值hash(AB+CD)的有序数组,且第三方终端获取到的有序默克尔树构建规则为从小到大依次将同一层的各节点从左至右排列各节点位置。第三方终端会采用哈希算法对待验证的第一医疗数据文档进行计算得到节点E的哈希值hash(P5),然后比较hash(P5)和hash(P6),确定hash(P5)小于hash(P6);然后根据节点E的哈希值和节点F的哈希值计算得到节点EF的哈希值hash(E+F),进一步比较hash(AB+CD)和hash(E+F)大小获得hash(AB+CD)小于hash(F+E)后,根据hash(AB+CD)和hash(E+F)计算得到待验证默克尔根值hash(ABCD+EF)。
需要说明的是,各医疗数据文档可能属于同一患者的,也可能属于不同患者的,故不同医疗数据文档对应的默克尔验证信息是不同的。但为某一医疗机构的某一患者构建默克树,是基于该患者的在该医疗机构的个人信息和所有医疗数据文档进行构建的,故基于同一医疗机构中的同一患者的各医疗数据文档,分别计算获得的待验证默克尔根值是相同的。
步骤S60,所述第三方终端根据待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。
在计算得到各医疗数据文档对应的待验证默克尔根值后,第三方终端会针对各待验证默克尔根值分别判断。该判断的具体过程为:区块链平台中将医疗数据文档对应的待验证默克尔根值和权威机构ID通过有线或无线网络发送至区块链平台。例如第三方终端通过区块链平台的API接口,将待验证默克尔根值和权威机构ID发送给区块平台。所述区块链平台根据接收到的所述待验证默克尔根值和权威机构ID,从平台上存储的所有默克尔根值中选择权威机构ID对应的与所述待验证默克尔根值相同的所有默克尔根值,并将获得的所述各默克尔根值和对应的数字签名以及对应的存储时间发送至所述第三方终端;
由于区块链平台上可能会存储与待验证默克尔根值相同的多个默克尔根值,这些默克尔根值中有些是由权威机构ID对应的权威机构服务器发送的,有些是由其他权威机构服务器发送的,还有些是由非权威机构服务器发送的。
当区块链平台会根据待验证默克尔根值和权威机构ID,从存储默克尔根值的数据库或存储包括默克尔根值的交易记录中查询,获取权威机构ID对应的权威机构服务器发送过来的与待验证默克尔根值相同的至少一个默克尔根值,并将查询获得的默克尔根值和对应的数字签名以及存储时间发送至第三方终端。
需要说明的是,对于某一医疗数据文档对应的待验证默克跟值,当区块链平台未查询到权威机构ID对应的权威机构服务器发送过来的与待验证默克尔根值相同的默克尔根值时,区块链平台会反馈不存在待验证默克尔根值的信息至第三方终端,第三方终端从而确定区块链平台中不存在与待验证默克尔根值有效的默克尔根值,并确定该默克尔根值对应的医疗数据文档不真实。
第三方终端接收到区块链平台发送的各默克尔根值和对应的数字签名以及存储时间后,首先根据存储时间,从这些默克尔根值中选择存储时间最近的默克尔根值,并根据权威机构ID,获取权威机构ID的第一公钥,采用第一公钥对存储时间最近的默克尔根值对应的数字签名进行验证,若验证通过,则确定区块链平台存在与待验证默克尔根值有效的默克尔根值,确定该待验证默克尔根值对应的医疗数据文档真实;若验证不通过,则确定区块链平台不存在与待验证默克尔根值有效的默克尔根值,从而确定该待验证默克尔根值对应的医疗数据文档不真实。
第三方终端还可以直接根据区块链平台反馈回来的各默克尔根值的数量,若为奇数时,则确定区块链平台存在与待验证默克尔根值有效的默克尔根值;若为偶数时,则确定区块链平台不存在与待验证默克尔根值有效的默克尔根值。
需要说明的是,还可以区块链平台查询获取到权威机构ID对应的权威机构服务器发送过来的与待验证默克尔根值相同的至少一个默克尔根值后,从这些默克尔根值中选择存储时间最近的默克尔根值,并采用权威机构ID对应的权威机构服务器的第一公钥对存储时间最近的默克尔根值进行验证,若验证通过,则反馈存在待验证默克尔根值的信息至第三方终端,第三方终端从而确定该待验证默克尔根值对应的医疗数据文档是真实;若验证不通过,反馈未存在待验证默克尔根值的信息至第三方终端,从而第三方终端确定该待验证默克尔根值对应的医疗数据文档是不真实。
本实施例通过第三方终端接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器;医疗机构服务器接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档,并将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;所述第三方终端接收所述医疗机构服务器反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;所述第三方终端根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;所述第三方终端根据待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。从而提供了查验医疗数据验证真实性的快捷方便的方法,在使用医疗数据前,能确保医疗数据真实性。
进一步地,根据本申请医疗文档的零知识证明方法的第三实施例提出本申请医疗文档的零知识证明方法的第四实施例,在本实施例中,所述步骤S10之前还包括:
步骤S70,权威机构服务器接收任一医疗机构服务器发送的患者ID和患者ID对应的至少一条个人信息以及至少一个医疗文档,根据接收到的患者ID对应的至少一条个人信息和对应的至少一个医疗文档,创建所述患者ID对应的包括至少一条个人信息和至少一个医疗文档的资料库;
步骤S80,所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述患者ID对应的资料库中各条个人信息和各医疗文档,构建所述患者ID对应的第一默克尔树;
步骤S90,所述权威机构服务器根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
步骤S100,所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
在本方案中,权威机构服务器接收任一医疗机构服务器发送的患者ID以及患者ID对应至少一条个人信息以及至少一个医疗文档,并根据接收到的患者ID对应的至少一条个人信息和对应的至少一个医疗文档,创建所述患者ID对应的包括至少一条个人信息和至少一个医疗文档的资料库。
需要说明的是,医疗机构服务器也可以直接采用医疗机构自己预设的哈希算法先对患者ID的各条个人信息和各医疗数据文档进行计算,获得各条个人信息和各医疗数据文档对应的哈希值,然后将患者ID和患者ID对应的各哈希值发送给权威机构服务器,权威机构服务器采用权威机构自己预设的哈希算法、预设的构建默克尔树的节点排序规则对各哈希值,构建所述患者ID对应的第一默克尔树。
所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述资料库中各医疗数据文档,构建所述患者ID对应的第一默克尔树。例如图7中的默克尔树的构建的详细过程如下:第一步,采用预设的哈希算法获得患者ID的各条个人信息和各医疗数据文档对应的哈希值hash(P1)、hash(P2)、hash(P3)、hash(P4)、hash(P5)和hash(P6),比较各哈希值,获知hash(P1)<hash(P2)<hash(P3)<hash(P4)<hash(P5)<hash(P6),根据预设的构建默克尔树的节点排序规则(从小至大依次从左至右排序),依次排序第一层叶节点;第二步根据已排序好的各叶节点的哈希值,采用哈希算法,获得第二层节点AB的哈希值hash(A+B)、节点CD的哈希值hash(C+D)和节点EF哈希值hash(E+F),且hash(A+B)<hash(C+D)<hash(E+F),根据排序规则,具有hash(A+B)的节点AB为第二层第一个位置,具有hash(C+D)的节点CD为第二层第二个位置,而hash(E+F)的节点EF自动上升为第三层节点;第三步根据hash(A+B)和hash(C+D),计算出第三层节点ABCD的哈希值为hash(AB+CD),并且hash(AB+CD)<hash(E+F),根据排序规则,将节点ABCD放在第三层第一个位置,节点EF放在第三层第二个位置;第四步,根据hash(AB+CD)和hash(E+F)算出默克尔根节点的哈希值为hash(ABCD+EF)。
需要说明的是,在上述明文信息与默克尔验证信息传输的过程中,以及第三方终端对信息进行验证的过程中,即使采用保密传输机制,也有可能导致部分用于默克尔验证的哈希值泄露。例如通过网络监听或者恶意的验证机构反复索取多种多样的医疗数据文档,都可能会导致全部或者部分默克尔树的数据被不法者获得。为防止恶意攻击者用穷举的方式推断医疗数据文档,在构建叶节点时,可以为每条医疗数据文档分配一个特定数值,采用哈希算法对医疗数据文档和对应的特定数值进行计算获得该条医疗数据文档对应的哈希值。该特定数值可以为权威机构服务器随机产生的数值,也可以为各医疗机构上传的数值。这样,即是攻击者可以穷举有限离散集合中的明文信息,也无法穷举中特定数值,也就无法穷举算出该明文信息对应的哈希值,也就无法推算出默克尔根值。
权威机构服务器构建患者ID对应的资料库后,还会发送权威机构ID或者患者ID的第一默克尔树至医疗机构。当权威机构服务器只发送权威机构ID至医疗机构服务器情况下,医疗机构服务器若需获取该患者ID的某一医疗数据文档的默克验证信息时,会根据权威机构ID,获取该权威机构ID对应的哈希算法和有序默克尔树构建规则,然后根据所述患者ID的所有医疗数据文档和患者个人信息、所述哈希算法和所述有序默克尔树构建规则,构建所述患者ID的第一默克尔树,从而获得第一默克尔树中的数据。
需要说明的是,权威机构服务器可以通过生成一个包括权威机构ID、所述患者ID对应的第一默克尔树的数字证书,将数字证书发送至医疗机构服务器。
权威机构服务器会采用第一私钥对构建的第一默克尔树的默克尔根值进行签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名(采用第一私钥进行签名代表这默克尔根值是有效的)。之后,权威机构服务器会将包括所述第一默克尔树的默克尔根值、所述第一数字签名和权威机构ID的信息发送至区块链平台,区块链平台会存储接收到的所述包括所述第一默克尔树的默克尔根值、所述第一数字签名和权威机构ID的信息。
需要说明的是,由于某些原因,例如患者的医疗数据文档更新,当权威机构服务器认为已经创建的默克尔根值失效了,权威机构服务器会使用第二私钥对所述默克尔根值进行签名生成数字签名(采用第二私钥进行签名,代表默克尔根值失效),并将包括所述默克尔根值、数字签名和权威机构ID的信息存储值区块链平台。
本实施例通过采用预设的哈希算法和有序默克尔树构建规则构建基于各机构终端提供的患者ID对应的各医疗数据文档的默克尔树,并将所述默克尔树的默克尔根值存储在区块链平台。由于哈希摘要算法为单向映射算法,无法通过哈希值反向推算出各医疗数据文档的内容,而默克尔树的根值与任一叶节点的内容和位置都直接相关,任一叶节点的内容或位置的变更都会引起根值的改变,以及区块链平台上存储的数据是不能被修改和删除的,从而保证了各医疗数据文档内容的安全性,以及确保基于患者ID对应的各医疗数据文档创建的默克尔树的默克尔根值不易被修改。
进一步地,参照图5,根据本申请医疗文档的零知识证明方法的第三实施例提出本申请医疗文档的零知识证明方法的第五实施例,在本实施例中,所述步骤S100包括:
步骤S101,所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的第一交易记录;
步骤S102,所述权威机构服务器将所述第一交易记录存储至所述区块链平台。
本方案中,权威机构服务器通过调用区块链平台上的智能合约,会生成一个交易,权威机构服务器会将包括所述第一默克尔树的默克尔根值、所述第一数字签名和权威机构服务器的信息写入交易记录中。然后将所述交易记录存储在区块链平台上的所调用的智能合约中。图8即为一种存储了默克尔根值的交易记录,该交易记录的Input Data中以aecb88结尾的那串字符串便为包括默克尔根值和对应的数字签名的信息,From中的信息则为权威机构ID。
本实施例通过将默克尔根值写入交易记录并存储在区块链平台上,从而确保默克尔根值不易被修改。
进一步地,根据本申请医疗文档的零知识证明方法的第三实施例提出本申请医疗文档的零知识证明方法的第六实施例,在本实施例中,所述步骤S110之后还包括:
步骤S110,所述权威机构服务器接收任一医疗机构服务器发送的包括患者ID和所述患者ID对应的至少一个医疗文档的更新请求;
步骤S120,所述权威机构服务器根据更新请求中的患者ID对应的资料库和更新请求中的至少一个医疗文档,生成更新请求中的患者ID对应的新资料库;
步骤S130,所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述新资料库中各医疗数据文档,构建更新请求中的患者ID对应的第二默克尔树;
步骤S140,所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名;
步骤S150,所述权威机构服务器将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台。
在本方案中,权威机构服务器接收任一机构终端发送的包括患者ID和至少一个医疗数据文档的更新请求后,会根据更新请求中的患者ID,调出该患者ID对应的资料库,然后根据更新请求中的至少一个医疗数据文档和患者ID对应的资料库中的多个医疗数据文档,更新所述患者ID对应的资料库。
需要说明的是,更新请求中的医疗数据文档可能只是针对原有资料库中某个医疗数据文档内容的更新,这种情况下会将原有医疗数据文档删除,将新的医疗数据文档存储在原有资料库中,生成新的资料库。更新请求中的医疗数据文档也可能是原有资料库中不存在的医疗数据文档,这种情况下会将更新请求中的医疗数据文档添加到原有资料库中,生成的新资料库。
资料库更新后,权威机构服务器会根据预设的哈希算法和新的资料库,生成所述新的资料库对应的第二默克尔树。采用第一私钥对第二默克尔树的默克尔根值进行签名,生成第二数字签名,并将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至区块链平台
需要说明的是,所述权威机构服务器将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台步骤之前还包括:
所述权威机构服务器采用第二私钥对更新请求中患者ID对应的第一默克尔树的默克尔根值进行签名,生成第三数字签名,并将包括第一默克尔树的默克尔根值、第三数字签名和权威机构ID的信息存储至所述区块链平台。
当患者的某些医疗数据文档发生变化时,由于更新前的患者ID对应的资料库的默克尔根值已经存储在区块链平台上,该默克尔根值是不能对其进行删除和修改的,未防止旧的医疗数据文档被确定真实的这种情况发生。权威机构服务器存在第一私钥和第二私钥两把私钥(第一私钥进行签名表示默克尔根值有效,第二私钥进行签名表示默克尔根失效),资料库更新后,权威机构服务器会采用第二私钥对已存储的更新前的资料库对应的默克尔根值进行签名,生成第三数字签名;将包括更新前的资料库对应的默克尔根值和第三数字签名的信息存储至区块链平台。
本实施例通过根据医疗机构服务器的医疗数据文档更新请求,对资料库更新并为更新后的资料库创建新的默克尔树以及将新默克尔树根值存储在区块链平台,从而在某些医疗数据文档更新后,确保更新后的医疗数据文档能通过审核,以及旧的医疗数据文档不能通过审核。
本发明还提出了一种医疗文档的零知识证明方法系统。
参照图6,在一实施例中,所述系统包括:第三方终端100、医疗机构服务器200和区块链平台300。
第三方终端100,用于接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器200;
医疗机构服务器200,用于接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档;
所述医疗机构服务器,还用于将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端100,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方终端100,还用于接收所述医疗机构服务器200反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
所述第三方终端100,还用于根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;
所述第三方终端100,还用于根据待验证默克尔根值和所述权威机构ID,判断区块链平台300中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。
需要说明的是,上述系统具有医疗文档的零知识证明方法的第三实施例的全部技术特征,具体交互过程可以参照前述方法的全部实施例执行,相应的也具有前述方法的实施例的全部技术效果。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图1的服务器中的存储器20,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干信息用以使得第三方终端、医疗机构服务器、权威机构服务器和/或区块链平台执行本发明各个实施例所述的方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种医疗文档的零知识证明方法,其特征在于,应用于第三方终端,包括步骤:
接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器,以使医疗服务器根据接收到所述获取请求后,反馈匹配医疗数据文档筛选条件的医疗数据文档、对应的默克尔验证信息和权威机构ID;
根据接收到所述医疗机构服务器反馈的权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
根据所述哈希算法、所述有序默克尔树构建规则、所述医疗数据文档和所述医疗数据文档对应的默克尔验证信息进行计算,获得待验证默克尔根值;
根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值;
根据判断结果,对所述医疗数据文档进行验证。
2.如权利要求1所述的医疗文档的零知识证明方法,其特征在于,所述根据所述待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与待验证默克尔根值相同的有效默克尔根值的步骤包括:
发送包括所述待验证默克尔根值和所述权威机构ID的默克尔根值查询请求至区块链平台,以使所述区块链平台反馈权威机构ID对应的与待验证默克尔根值相同的各默克尔根值和对应的数字签名以及对应的存储时间;
从接收到所述区块链平台反馈的权威机构ID对应的与待验证默克尔根值相同各默克尔根值中选择存储时间最近的默克尔根值;
根据权威机构ID,获取权威机构ID对应的权威机构服务器的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
若验证通过,所述第三方终端确定区块链平台中存在与待验证默克尔根值相同的有效默克尔根值;
若验证不通过,所述第三方终端确定区块链平台中不存在与待验证默克尔根值相同的有效默克尔根值。
3.如权利要求2所述的医疗文档的零知识证明方法,其特征在于,所述根据判断结果,对所述医疗数据文档进行验证的步骤包括:
当确定区块链平台中存在与所述待验证默克尔根值相同有效的默克尔根值时,确定所述医疗数据文档是真实的;
当确定区块链平台中不存在与所述待验证默克尔根值相同有效的默克尔根值时,确定所述医疗数据文档非真实。
4.一种医疗文档的零知识证明方法,其特征在于,所述步骤包括:
第三方终端接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器;
医疗机构服务器接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档;
所述医疗机构将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方终端接收所述医疗机构服务器反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
所述第三方终端根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;
所述第三方终端根据待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。
5.如权利要求4所述的医疗文档的零知识证明方法,其特征在于,所述第三方终端发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器的步骤之前包括:
权威机构服务器接收任一医疗机构服务器发送的患者ID和患者ID对应的至少一条个人信息以及至少一个医疗文档,根据接收到的患者ID对应的至少一条个人信息和对应的至少一个医疗文档,创建所述患者ID对应的包括至少一条个人信息和至少一个医疗文档的资料库;
所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述患者ID对应的资料库中各条个人信息和各医疗文档,构建所述患者ID对应的第一默克尔树;
所述权威机构服务器根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
6.如权利要求5所述的医疗文档的零知识证明方法,其特征在于,所述所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台的步骤包括:
所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的第一交易记录;
所述权威机构服务器将所述第一交易记录存储至所述区块链平台。
7.如权利要求6所述的医疗文档的零知识证明方法,其特征在于,所述所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台之后还包括:
所述权威机构服务器接收任一医疗机构服务器发送的包括患者ID和所述患者ID对应的至少一个医疗文档的更新请求;
所述权威机构服务器根据更新请求中的患者ID对应的资料库和更新请求中的至少一个医疗文档,生成更新请求中的患者ID对应的新资料库;
所述权威机构服务器采用预设的哈希算法、预设的构建默克尔树的节点排序规则和所述新资料库中各医疗数据文档,构建更新请求中的患者ID对应的第二默克尔树;
所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名;
所述权威机构服务器将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台。
8.如权利要求7中所述的医疗文档的零知识证明方法,其特征在于,所述所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名的步骤之前还包括:
所述权威机构服务器采用第二私钥对更新请求中患者ID对应的第一默克尔树的默克尔根值进行签名,生成第三数字签名,并将包括第一默克尔树的默克尔根值、第三数字签名和权威机构ID的信息存储至所述区块链平台。
9.一种医疗文档的零知识证明系统,其特征在于,所述系统包括:
第三方终端,用于接收到包括医疗数据文档筛选条件的文档获取指令后,根据所述文档获取指令,发送包括医疗数据文档筛选条件的获取请求至任一医疗机构服务器;
医疗机构服务器,用于接收到所述获取请求后,根据获取请求中的医疗数据文档筛选条件,获取匹配医疗数据文档筛选条件的医疗数据文档,并将获取到的所述医疗数据文档、所述医疗数据文档对应的默克尔验证信息和权威机构ID反馈至所述第三方终端,其中默克尔验证信息包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值或包括医疗数据文档对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方终端,还用于接收所述医疗机构服务器反馈的医疗数据文档、医疗数据文档对应的默克尔验证信息和权威机构ID,并根据接收到的所述权威机构ID,获取所述权威机构ID对应的哈希算法和有序默克尔树构建规则;
所述第三方终端,还用于根据所述哈希算法、所述有序默克尔树构建规则、医疗数据文档和医疗数据文档对应的默克尔验证信息分别进行计算,获得待验证默克尔根值;
所述第三方终端,还用于根据待验证默克尔根值和所述权威机构ID,判断区块链平台中是否存在与医疗数据文档对应的待验证默克尔根值相同的有效默克尔根值,并根据判断结果,对所述医疗数据文档进行验证。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的医疗文档的零知识证明方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365766.2A CN110334175B (zh) | 2019-04-29 | 2019-04-29 | 医疗文档的零知识证明方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365766.2A CN110334175B (zh) | 2019-04-29 | 2019-04-29 | 医疗文档的零知识证明方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110334175A true CN110334175A (zh) | 2019-10-15 |
CN110334175B CN110334175B (zh) | 2021-06-04 |
Family
ID=68139563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910365766.2A Active CN110334175B (zh) | 2019-04-29 | 2019-04-29 | 医疗文档的零知识证明方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110334175B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110992182A (zh) * | 2019-12-04 | 2020-04-10 | 福州博泉网络科技有限公司 | 区块链钱包的交易方法及系统 |
CN111310234A (zh) * | 2020-05-09 | 2020-06-19 | 支付宝(杭州)信息技术有限公司 | 基于零知识证明的个人数据处理方法、装置及电子设备 |
CN111916217A (zh) * | 2020-08-07 | 2020-11-10 | 上海交通大学医学院附属第九人民医院 | 基于区块链的医疗数据管理方法、系统、存储介质及终端 |
CN113343313A (zh) * | 2021-06-30 | 2021-09-03 | 中金金融认证中心有限公司 | 验证报告有效性鉴定方法、法律服务系统和可读存储介质 |
CN113658709A (zh) * | 2021-07-30 | 2021-11-16 | 青岛海尔生物医疗股份有限公司 | 用于医疗数据信息查询的方法、装置、计算机设备及存储介质 |
US11176273B2 (en) * | 2019-05-03 | 2021-11-16 | International Business Machines Corporation | Privacy-preserving anomalous behavior detection |
CN114362953A (zh) * | 2020-10-13 | 2022-04-15 | 北京泛融科技有限公司 | 一种基于零知识证明的文档内容快速抽取验证方法 |
CN114679311A (zh) * | 2022-03-22 | 2022-06-28 | 电子科技大学 | 一种基于区块链的文档数据安全验证方法 |
CN115086067A (zh) * | 2022-07-19 | 2022-09-20 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
CN115964755A (zh) * | 2023-03-09 | 2023-04-14 | 北京百度网讯科技有限公司 | 数据授权及验证方法、装置、设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042824A1 (en) * | 2008-08-14 | 2010-02-18 | The Trustees Of Princeton University | Hardware trust anchors in sp-enabled processors |
CN104978239A (zh) * | 2014-04-08 | 2015-10-14 | 重庆邮电大学 | 一种实现多备份数据动态更新的方法、装置及系统 |
US9323765B1 (en) * | 2010-11-18 | 2016-04-26 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
CN106682530A (zh) * | 2017-01-10 | 2017-05-17 | 杭州电子科技大学 | 一种基于区块链技术的医疗信息共享隐私保护方法及装置 |
CN107274159A (zh) * | 2017-06-09 | 2017-10-20 | 北京泛融科技有限公司 | 一种基于区块并发执行算法的记账系统及方法 |
CN107423565A (zh) * | 2017-07-26 | 2017-12-01 | 中山大学 | 一种基于智能合约技术的医疗抢救合约方法 |
CN108600163A (zh) * | 2018-03-13 | 2018-09-28 | 南京邮电大学 | 一种云环境分布式哈希链架构及云数据完整性验证方法 |
CN108664221A (zh) * | 2018-05-11 | 2018-10-16 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN108664803A (zh) * | 2018-04-04 | 2018-10-16 | 中国电子科技集团公司第三十研究所 | 一种基于密码的文档内容细粒度访问控制系统 |
CN109067541A (zh) * | 2018-06-29 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 基于区块链的数据验证方法及装置、电子设备 |
CN109639420A (zh) * | 2019-01-02 | 2019-04-16 | 西南石油大学 | 基于区块链技术的可匿名身份的医疗云存储公共审计方法 |
-
2019
- 2019-04-29 CN CN201910365766.2A patent/CN110334175B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042824A1 (en) * | 2008-08-14 | 2010-02-18 | The Trustees Of Princeton University | Hardware trust anchors in sp-enabled processors |
US9323765B1 (en) * | 2010-11-18 | 2016-04-26 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
CN104978239A (zh) * | 2014-04-08 | 2015-10-14 | 重庆邮电大学 | 一种实现多备份数据动态更新的方法、装置及系统 |
CN106682530A (zh) * | 2017-01-10 | 2017-05-17 | 杭州电子科技大学 | 一种基于区块链技术的医疗信息共享隐私保护方法及装置 |
CN107274159A (zh) * | 2017-06-09 | 2017-10-20 | 北京泛融科技有限公司 | 一种基于区块并发执行算法的记账系统及方法 |
CN107423565A (zh) * | 2017-07-26 | 2017-12-01 | 中山大学 | 一种基于智能合约技术的医疗抢救合约方法 |
CN108600163A (zh) * | 2018-03-13 | 2018-09-28 | 南京邮电大学 | 一种云环境分布式哈希链架构及云数据完整性验证方法 |
CN108664803A (zh) * | 2018-04-04 | 2018-10-16 | 中国电子科技集团公司第三十研究所 | 一种基于密码的文档内容细粒度访问控制系统 |
CN108664221A (zh) * | 2018-05-11 | 2018-10-16 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN109067541A (zh) * | 2018-06-29 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 基于区块链的数据验证方法及装置、电子设备 |
CN109639420A (zh) * | 2019-01-02 | 2019-04-16 | 西南石油大学 | 基于区块链技术的可匿名身份的医疗云存储公共审计方法 |
Non-Patent Citations (1)
Title |
---|
朱岩等: "区块链关键技术中的安全性研究", 《信息安全研究》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11176273B2 (en) * | 2019-05-03 | 2021-11-16 | International Business Machines Corporation | Privacy-preserving anomalous behavior detection |
CN110992182B (zh) * | 2019-12-04 | 2023-06-16 | 福州博泉网络科技有限公司 | 区块链钱包的交易方法及系统 |
CN110992182A (zh) * | 2019-12-04 | 2020-04-10 | 福州博泉网络科技有限公司 | 区块链钱包的交易方法及系统 |
CN111310234A (zh) * | 2020-05-09 | 2020-06-19 | 支付宝(杭州)信息技术有限公司 | 基于零知识证明的个人数据处理方法、装置及电子设备 |
CN111310234B (zh) * | 2020-05-09 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | 基于零知识证明的个人数据处理方法、装置及电子设备 |
CN111916217A (zh) * | 2020-08-07 | 2020-11-10 | 上海交通大学医学院附属第九人民医院 | 基于区块链的医疗数据管理方法、系统、存储介质及终端 |
CN114362953A (zh) * | 2020-10-13 | 2022-04-15 | 北京泛融科技有限公司 | 一种基于零知识证明的文档内容快速抽取验证方法 |
CN114362953B (zh) * | 2020-10-13 | 2023-12-12 | 北京泛融科技有限公司 | 一种基于零知识证明的文档内容快速抽取验证方法 |
CN113343313A (zh) * | 2021-06-30 | 2021-09-03 | 中金金融认证中心有限公司 | 验证报告有效性鉴定方法、法律服务系统和可读存储介质 |
CN113658709A (zh) * | 2021-07-30 | 2021-11-16 | 青岛海尔生物医疗股份有限公司 | 用于医疗数据信息查询的方法、装置、计算机设备及存储介质 |
CN113658709B (zh) * | 2021-07-30 | 2024-03-15 | 青岛海尔生物医疗股份有限公司 | 用于医疗数据信息查询的方法、装置、计算机设备及存储介质 |
CN114679311A (zh) * | 2022-03-22 | 2022-06-28 | 电子科技大学 | 一种基于区块链的文档数据安全验证方法 |
CN114679311B (zh) * | 2022-03-22 | 2023-04-07 | 电子科技大学 | 一种基于区块链的文档数据安全验证方法 |
CN115086067B (zh) * | 2022-07-19 | 2022-11-15 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
CN115086067A (zh) * | 2022-07-19 | 2022-09-20 | 江西农业大学 | 一种数据处理方法、网关、传感器及系统 |
CN115964755A (zh) * | 2023-03-09 | 2023-04-14 | 北京百度网讯科技有限公司 | 数据授权及验证方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110334175B (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110334175A (zh) | 医疗文档的零知识证明方法、系统及存储介质 | |
CN110311782A (zh) | 个人信息的零知识证明方法、系统及存储介质 | |
CN110321735B (zh) | 基于零知识证明的业务办理方法、系统及存储介质 | |
US11824970B2 (en) | Systems, methods, and apparatuses for implementing user access controls in a metadata driven blockchain operating via distributed ledger technology (DLT) using granular access objects and ALFA/XACML visibility rules | |
CN112119610B (zh) | 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法 | |
US11469886B2 (en) | System or method to implement record level access on metadata driven blockchain using shared secrets and consensus on read | |
US11899817B2 (en) | Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information | |
US11783024B2 (en) | Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration | |
US11803537B2 (en) | Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT) | |
CN110771095B (zh) | 用于实现基于区块链的数字证书的系统和方法 | |
KR102237014B1 (ko) | 블록체인-기반 인증을 위한 시스템 및 방법 | |
US11170092B1 (en) | Document authentication certification with blockchain and distributed ledger techniques | |
KR101954268B1 (ko) | 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버 | |
US12010213B2 (en) | Pruning entries in tamper-evident data stores | |
JP2022509105A (ja) | ブロックチェーン上に格納されたデータへのアクセスを可能にするコンピュータにより実施されるシステム及び方法 | |
CN110336672A (zh) | 基于零知识证明的公民隐私保护的方法、系统及存储介质 | |
Xie et al. | Blockchain‐Based Cloud Data Integrity Verification Scheme with High Efficiency | |
Zhang et al. | A blockchain system based on quantum‐resistant digital signature | |
CN112287033B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN110351297A (zh) | 一种应用于区块链的验证方法及装置 | |
CN109447630A (zh) | 一种支持多行业多应用的区块链构建方法及系统 | |
Dousti et al. | Moderated redactable blockchains: A definitional framework with an efficient construct | |
Lin et al. | Multiple‐replica integrity auditing schemes for cloud data storage | |
Burns et al. | Verifiable audit trails for a versioning file system | |
CN115514470A (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 |