WO2020220413A1 - 个人信息的零知识证明方法、系统及存储介质 - Google Patents

个人信息的零知识证明方法、系统及存储介质 Download PDF

Info

Publication number
WO2020220413A1
WO2020220413A1 PCT/CN2019/088063 CN2019088063W WO2020220413A1 WO 2020220413 A1 WO2020220413 A1 WO 2020220413A1 CN 2019088063 W CN2019088063 W CN 2019088063W WO 2020220413 A1 WO2020220413 A1 WO 2020220413A1
Authority
WO
WIPO (PCT)
Prior art keywords
merkel
verified
information
authority
personal information
Prior art date
Application number
PCT/CN2019/088063
Other languages
English (en)
French (fr)
Inventor
张晓�
许强
周伟明
范辉
刘培强
Original Assignee
山东工商学院
山东冰链网络信息科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 山东工商学院, 山东冰链网络信息科技有限公司 filed Critical 山东工商学院
Publication of WO2020220413A1 publication Critical patent/WO2020220413A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs

Definitions

  • This application relates to the field of blockchain platform technology, and specifically relates to a zero-knowledge proof method, system and computer-readable storage medium for personal information.
  • the main purpose of this application is to provide a zero-knowledge proof method, system, and computer-readable storage medium for personal information, which aims to solve the technical problem of private information being exposed due to personal information verification.
  • this application provides a zero-knowledge proof method for personal information, including the steps:
  • the third-party verification server receives at least one piece of personal information to be verified, the ID of an authority for verification of the information to be verified, and Merkel verification information sent by the user terminal, where the Merkel verification information includes the default information corresponding to the personal information to be verified.
  • the third-party verification server obtains the hash algorithm and the orderly Merkel tree construction rule corresponding to the authority ID of the information to be verified according to the ID of the authority to verify the information;
  • the third-party verification server performs calculations according to the hash algorithm, the ordered Merkel tree construction rule, the at least one piece of personal information to be verified, and the Merkel verification information to obtain the Merkel to be verified Root value, and send the Merkel root value to be verified and the authority ID of the information to be verified to the blockchain platform;
  • the blockchain platform obtains at least one corresponding to the ID of the authority to be verified and the default value to be verified.
  • Merkel root values with the same Kerr root value and sending the obtained Merkel root values, corresponding digital signatures and corresponding storage time to the third-party verification server;
  • the third-party verification server receives the Merkel root values, the corresponding digital signatures, and the corresponding storage time sent by the blockchain platform, and authenticates the authority ID according to the information to be verified and the received Each Merkel root value, corresponding digital signature and corresponding storage time verifies each personal information to be verified sent by the user terminal.
  • this application also provides a zero-knowledge proof system for personal information, which includes:
  • the third-party verification server is configured to receive at least one piece of personal information to be verified, the ID of the authority for the verification of the information to be verified, and Merkel verification information sent by the user terminal, wherein the Merkel verification information includes information other than the personal information to be verified
  • the third-party verification server is also used to obtain the hash algorithm and the ordered Merkel tree construction rule corresponding to the authority ID of the information to be verified according to the authority ID of the information to be verified, and according to the The hash algorithm, the ordered Merkel tree construction rule, the at least one piece of personal information to be verified and the Merkel verification information are calculated to obtain the Merkel root value to be verified, and the The Kerr root value and the ID of the authority to verify the information authentication are sent to the blockchain platform;
  • the blockchain platform is used to obtain at least one corresponding to the ID of the authority to verify the information to be verified and the ID of the authority to be verified according to the received Merkel root value to be verified and the ID of the authority to be verified Merkel root values with the same Merkel root value, and sending the obtained Merkel root values, corresponding digital signatures and corresponding storage time to the third-party verification server;
  • the third-party verification server is also used to receive the Merkel root value, the corresponding digital signature and the corresponding storage time sent by the blockchain platform, and receive the ID of the authority to authenticate the information to be verified.
  • the obtained Merkel root values, corresponding digital signatures, and corresponding storage time are used to verify each personal information to be verified sent by the user terminal.
  • the present application also provides a computer-readable storage medium having a computer program stored on the computer-readable storage medium, and when the computer program is executed by a processor, the above-mentioned personal information zero Steps of knowledge proof method.
  • the zero-knowledge certification method, system and computer-readable storage medium for personal information receive at least one piece of personal information to be verified, the ID of the authority to verify the information to be verified and Merkel verification sent by the user terminal through a third-party verification server Information, wherein the Merkel verification information includes the hash value of at least one other node except the Merkel node corresponding to the personal information to be verified or includes the Merkel node other than the personal information to be verified The hash value of at least one other node and the corresponding layer; the third-party verification server obtains the hash algorithm and order corresponding to the authority ID of the information to be verified according to the ID of the authority to be verified Merkel tree construction rules; the third-party verification server performs calculations based on the hash algorithm, the ordered Merkel tree construction rules, the at least one piece of personal information to be verified, and the Merkel verification information, Obtain the Merkel root value to be verified, and send the Merkel root value to be verified and the authority ID of the information to be verified to the blockchain platform; the blockchain platform is based on the received verification The
  • Figure 1 is a schematic structural diagram of a hardware operating environment involved in a solution of an embodiment of the present application
  • FIG. 2 is a schematic flowchart of the first embodiment of a zero-knowledge proof method for applying personal information
  • step S50 is a detailed flowchart of step S50 in the second embodiment of the zero-knowledge proof method for personal information of the application;
  • step S90 is a detailed flowchart of step S90 in the fourth embodiment of the zero-knowledge proof method for personal information of the application;
  • FIG. 5 is a schematic diagram of the system architecture of the first embodiment of the zero-knowledge proof method for applying personal information
  • Figure 6 is a schematic diagram of the built Merkel tree
  • Figure 7 is a schematic diagram of a transaction record storing Merkel root values.
  • Figure 1 is a schematic diagram of the hardware structure of a third-party verification server, user terminal, authority server or blockchain platform provided in each embodiment of the application.
  • the third-party verification server, user terminal, and authority includes components such as a communication module 10, a memory 20, and a processor 30.
  • the processor 30 is respectively connected to the memory 20 and the communication module 10, and a computer program is stored on the memory 20, and the computer program is executed by the processor 30 at the same time.
  • the communication module 10 can be connected to external devices via a network.
  • the communication module 10 can receive data sent by an external device, and can also send data, instructions, and information to the external device.
  • the external device may be a user terminal, a third-party verification server, a user terminal, an authority server or a blockchain platform.
  • the memory 20 can be used to store software programs and various data.
  • the memory 20 may mainly include a program storage area and a data storage area.
  • the program storage area may store an operating system, an application program required by at least one function (building a Merkel tree based on user information), etc.; the storage data area may store Data or information created by the use of three-party verification servers, user terminals, authority servers, or blockchain platforms.
  • the memory 20 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, or other volatile solid-state storage devices.
  • the processor 30 is the control center of a third-party verification server, user terminal, authority server or blockchain platform, and uses various interfaces and lines to connect to the corresponding third-party verification server, user terminal, authority server or blockchain platform By running or executing the software programs and/or modules stored in the memory 20 and calling the data stored in the memory 20, each part of the corresponding execution of the third-party verification server, user terminal, authority server or blockchain platform Various functions and processing data, corresponding to the overall monitoring of third-party verification servers, user terminals, authority servers or blockchain platforms.
  • the processor 30 may include one or more processing units; preferably, the processor 30 may integrate an application processor and a modem processor, where the application processor mainly processes the operating system, user interface, application programs, etc., the modem The processor mainly deals with wireless communication. It can be understood that the above modem processor may not be integrated into the processor 30.
  • the above-mentioned third-party verification server, user terminal, authority server or blockchain platform may also include a circuit control module, which is used to connect with the mains power to realize power control and ensure the normal operation of other components.
  • the third-party verification server, user terminal, authority server, or blockchain platform structure shown in Figure 1 does not constitute a third-party verification server, user terminal, authority server or blockchain platform.
  • the definition of may include more or fewer components than shown, or a combination of certain components, or different component arrangements.
  • the zero-knowledge certification method for personal information includes the steps:
  • Step S10 the third-party verification server receives at least one piece of personal information to be verified, the ID of an authority for verification of the information to be verified, and Merkel verification information sent by the user terminal, wherein the Merkel verification information includes information other than the personal information to be verified.
  • the ordered Merkel tree construction rule refers to the rules for sorting the positions of all nodes in each layer in the corresponding layer when constructing an effective Merkel tree.
  • the node position sorting rules can be based on each The hash value of each node in the layer is arranged from left to right in order from small to large or from large to small.
  • the user When the user needs to be verified personal information, the user sends at least one piece of information to be verified, the ID of the authority to verify the information to be verified, and Merkel verification information to the third-party verification server, or input at least on the terminal of the third-party verification agency A piece of information to be verified, the ID of the authority to verify the information, and Merkel verification information are sent to the third-party verification server from the terminal of the third-party verification agency.
  • the user terminal may also send a hash algorithm and an ordered Merkel tree construction rule.
  • the public key of a third-party verification server can be used to pair at least one piece of personal information to be verified, Merkel's verification information and authority ID information are encrypted, and then the encrypted information is sent to a third-party verification server, and the third-party verification server uses its own private key to decrypt the encrypted information to obtain the user
  • the hash algorithm, at least one piece of personal information to be verified, and Merkel verification information sent by the terminal can be used to pair at least one piece of personal information to be verified, Merkel's verification information and authority ID information are encrypted, and then the encrypted information is sent to a third-party verification server, and the third-party verification server uses its own private key to decrypt the encrypted information to obtain the user.
  • nodes in the Merkel verification information are all necessary for the hash calculation path from the Merkel node corresponding to the personal information to be verified to the Merkel root value, except for the Merkel node corresponding to the personal information to be verified.
  • the Merkel verification information provided can be It only includes a set of ordered arrays of node hash values. The sequence is the order in which the node values are used in the process of calculating the Merkel root value. If the non-fastest hash calculation path is adopted, in addition to the node hash value, the Merkel verification information provided also includes the corresponding layer of each node hash value.
  • the information to be verified is the name P1 in Figure 6, and the hash calculation path from the node location corresponding to the name to the Merkel root of the Merkel tree in Figure 6 can be B+CD+EF or B+C +D+EF, or B+C+D+E+F, where the hash calculation path of B+CD+EF is the fastest hash calculation path for A, and B+C+D+E The hash calculation path of +F is the slowest hash calculation path for A. If the fastest hash calculation path is adopted, the Merkel verification information is a set of ordered array of node hash values ⁇ hash (P2), hash(C+D), hash(E+F) ⁇ .
  • the Merkel verification information includes the hash value of node B and the layer to which node B belongs is the first layer, the hash value of node C and the layer to which node C belongs is the first layer , The hash value of node D and the layer to which node D belongs is the first layer, and the hash value of node EF and the layer to which node EF belongs are the third layer.
  • the information to be verified is the name of P1 and the place of birth of P3 in Figure 6, the hash calculation path from the node position corresponding to the name and place of birth to the Merkel root of the Merkel tree in Figure 6 can be B+D+ EF (fastest hash calculation path) or B+D+E+F.
  • the Merkel verification information sent by the user terminal in addition to the hash value of at least one other node other than the Merkel node corresponding to the personal information to be verified, may also include at least one individual that is not to be verified. information.
  • the verifier provides the information to be verified.
  • the Merkel verification information provided by the verifier can include the nodes in the second layer
  • Step S20 the third-party verification server obtains the hash algorithm and the orderly Merkel tree construction rule corresponding to the authority ID of the information to be verified according to the ID of the authority to verify the information;
  • the third-party verification server may send a request for obtaining the hash algorithm and orderly Merkel tree construction rules to the authority server corresponding to the authority ID according to the authority ID of the information to be verified.
  • the authority server After receiving the request sent by the third-party verification server, the authority server sends the hash algorithm and orderly Merkel tree construction rules used by the authority to construct the Merkel tree to the third-party verification server.
  • the third-party verification server When the third-party verification server stores the mapping relationship table including each authority ID and hash algorithm, and the orderly Merkel tree construction rule, it will directly query the table to obtain the hash algorithm and data corresponding to the authority ID.
  • the hash algorithm can be MD4 algorithm, MD5 algorithm, SHA-1, national secret algorithm or other hash algorithms.
  • Step S30 The third-party verification server performs calculations based on the hash algorithm, the ordered Merkel tree construction rule, the at least one piece of personal information to be verified, and the Merkel verification information to obtain Merkel root value, and send the Merkel root value to be verified and the authority ID of the information to be verified to the blockchain platform;
  • the third-party verification server will use the obtained hash according to the received at least one piece of personal information to be verified and the hash value and layer of the at least one node other than the Merkel node corresponding to the personal information to be verified. Algorithms and ordered Merkel tree construction rules calculate the hash value layer by layer, and finally get the Merkel root value to be verified.
  • the verified information is provided by the plaintext information and Merkel verification information of "Birthplace: Yantai, Shandong" in Figure 6, where the Merkel verification information is the Harbin of node D of the Merkel tree in Figure 6.
  • the orderly Merkel tree construction rule obtained by the third-party verification server is from childhood Arrange the nodes on the same layer from left to right in order.
  • the third-party verification server will use a hash algorithm to calculate the information to be verified to obtain the Merkel root value hash (ABCD+EF) to be verified.
  • the third-party verification server After calculating the Merkel root value to be verified, the third-party verification server will send the Merkel root value to be verified and the authority ID of the information to be verified to the blockchain platform. For example, the third-party verification server sends the Merkel root value to be verified and the authority ID of the information to be verified to the blockchain platform through the API interface of the blockchain platform.
  • Step S40 According to the received Merkel root value to be verified and the authority ID of the information to be verified, the blockchain platform obtains at least one corresponding to the ID of the authority to be verified and the ID of the authority to be verified. Verifying the Merkel root value with the same Merkel root value, and sending the obtained Merkel root value, corresponding digital signature and corresponding storage time to the third-party verification server;
  • the blockchain platform may store multiple Merkel root values that are the same as the Merkel root value to be verified, some of these Merkel root values are the authority corresponding to the authority ID of the authority to be verified. Some are sent by servers of other authorities, and some are sent by servers of non-authoritative institutions.
  • the blockchain platform When the blockchain platform will query according to the Merkel root value to be verified and the authority ID of the information to be verified, from the database storing the Merkel root value or the transaction records storing the Merkel root value, obtain the At least one Merkel root value that is the same as the Merkel root value to be verified sent from the authority corresponding to the authority ID of the verification information authentication, and the Merkel root value obtained by the query and the corresponding digital signature are stored and stored The time is sent to the third-party verification server.
  • the blockchain platform does not find the Merkel root value that is the same as the Merkel root value to be verified from the authority corresponding to the authority ID of the information to be verified, the blockchain platform The information that there is no Merkel root value to be verified will be fed back to the third-party verification server, and the third-party verification server will directly determine that the personal information to be verified sent by the user terminal is untrue based on this information.
  • Step S50 The third-party verification server receives the Merkel root value, the corresponding digital signature, and the corresponding storage time sent by the blockchain platform, and according to the ID of the authority to verify the information to be verified, the received The Merkel root value, the corresponding digital signature and the corresponding storage time of, verify each personal information to be verified sent by the user terminal.
  • the third-party verification server first selects the Merkel root value with the most recent storage time from these Merkel root values according to the storage time, and obtains the first information authentication authority ID according to the ID of the authority to verify the information to be verified.
  • a public key the first public key is used to verify the digital signature corresponding to the Merkel root value with the most recent storage time. If the verification is passed, it is determined that the personal information to be verified sent by the user terminal is authentic, and the verified information is sent To the user terminal; if the verification fails, it is determined that the personal information to be verified sent by the user terminal is not true, and the information that the verification fails is sent to the user terminal.
  • the third verification server can also directly according to the number of Merkel roots fed back by the blockchain platform. If it is an odd number, it determines that the personal information to be verified sent by the user terminal is true; if it is an even number, it determines The personal information to be verified sent by the user terminal is not true.
  • the third-party verification server determines that the personal information to be verified sent by the user terminal is true; if the verification fails, the feedback does not exist to be verified
  • the information of the Merkel root value of the user terminal is sent to the third-party verification server, so that the third-party verification server determines that the personal information to be verified sent by the user terminal is incorrect.
  • the customer when it is necessary to check whether a customer is a wanted fugitive, the customer only needs to provide the information that is not at large and the Merkel verification information corresponding to the information that is not at large, and then based on the above information provided by the customer and the Merck who constructs the customer’s personal information
  • the hash algorithm and the ordering rules of Merkel tree nodes are used to calculate the Merkel root value to be verified.
  • the blockchain will feed back at least one Merkel root value that is the same as the Merkel root value to be verified to the third-party verification server, and the third-party verification server will make a judgment based on the received Merkel root values.
  • the said customer is not a fugitive to verify whether the information is true, if it is true, it is determined that the customer is not a fugitive, otherwise, it is determined that the customer is a fugitive.
  • the third-party verification server receives at least one piece of personal information to be verified, the ID of an authority for verification of the information to be verified, and Merkel verification information sent by the user terminal, wherein the Merkel verification information includes information other than the individual to be verified.
  • the third-party verification server obtains the hash algorithm and the orderly Merkel tree construction rule corresponding to the authority ID of the information to be verified according to the authority ID of the information to be verified;
  • the Greek algorithm, the ordered Merkel tree construction rule, the at least one piece of personal information to be verified, and the Merkel verification information are calculated to obtain the Merkel root value to be verified, and the Merkel root value to be verified is calculated.
  • the Merkel root value and the ID of the authority to verify the information to be verified are sent to the blockchain platform; the blockchain platform obtains the received Merkel root value and the ID of the authority to verify the information to be verified. At least one Merkel root value that is the same as the Merkel root value to be verified corresponding to the authority ID of the information authentication to be verified, and the obtained Merkel root value, corresponding digital signature and corresponding
  • the storage time of is sent to the third-party verification server; the third-party verification server receives the Merkel root value, the corresponding digital signature and the corresponding storage time sent by the blockchain platform, and according to the to-be-verified
  • the ID of the authority for information authentication, the received Merkel root values, the corresponding digital signature and the corresponding storage time are used to verify each personal information to be verified sent by the user terminal. Therefore, in the process of verifying a certain piece of personal information, the user does not need to provide all other personal information including private information, and only needs to provide the personal information to be verified to a third-party organization.
  • the step S50 includes :
  • Step S51 The third-party verification server selects the Merkel root value with the closest storage time from the Merkel root values according to the storage time corresponding to the respective Merkel root values;
  • Step S52 The third-party verification server obtains the first public key of the authority corresponding to the authority ID in the information to be verified according to the authority ID in the information to be verified, and uses the first public key pair The digital signature corresponding to the Merkel root value with the closest storage time is selected for verification;
  • Step S53 if the verification is passed, the third-party verification server determines that the personal information to be verified sent by the user terminal is true;
  • Step S54 If the verification fails, the third-party verification server determines that the personal information to be verified sent by the user terminal is not authentic.
  • some personal information of the user is updated, such as the user's residence, marital status, etc.
  • the authority server obtains the updated personal information, it will re-create a Merkel root value b based on the updated personal information, but because of the Merkel root value a of the Merkel tree constructed based on the user’s personal information before the update It has been stored on the blockchain platform.
  • the Merkel root value a cannot be deleted or modified. It does not prevent users from using personal information before the update to verify.
  • the authority server will use the second private key to verify the default value.
  • the Kerr root value a is re-signed to generate a second digital signature, and then the information including the Merkel root value a, the corresponding second digital signature, and the authority ID is stored on the blockchain platform. This leads to two pieces of information including the Merkel root value a will be stored on the blockchain platform.
  • the third-party verification server After the third-party verification server receives at least one Merkel root value that is the same as the Merkel root value to be verified and corresponding to the authority ID of the information to be verified from the blockchain platform, it will first according to the storage time, Select the Merkel root value with the most recent storage time from these Merkel root values, and obtain the first public key of the authority ID of the information to be verified according to the authority ID of the information to be verified, and use the first public key The digital signature corresponding to the Merkel root value with the most recent storage time is verified.
  • the verification is passed, it is determined that the personal information to be verified sent by the user terminal is authentic, and the verified information is sent to the user terminal; otherwise, the user is determined The personal information to be verified sent by the terminal is not true, and the information that the verification fails is sent to the user terminal.
  • the authority server when there is only one private key on the authority server, when the user’s personal information changes and the validity or invalidation status of the existing Merkel root value changes, the authority server will use the private key to pair Merkel again.
  • the root value is signed, and the Merkel root value and the corresponding digital signature are stored on the blockchain platform again.
  • the third verification service verifies that the Merkel root value is valid by judging the parity of the number of Merkel root values fed back by the blockchain platform. If it is an odd number, it determines that the personal information to be verified is true ; Otherwise, it is determined that the personal information to be verified is not true.
  • the blockchain platform the first public key is used for verification to determine the effective Merkel root value, thus preventing the user from still using the real information before the update to pass the verification after the personal information is updated.
  • the step S40 further includes:
  • Step S60 The authority server receives at least two pieces of personal information sent by the user terminal, and creates an archive number corresponding to the at least two pieces of personal information sent by the user terminal based on the received at least two pieces of personal information sent by the user terminal.
  • Information files of personal information
  • Step S70 the authority server uses a preset hash algorithm, a preset ordered Merkel tree construction rule and each piece of personal information in the information file to construct the first Merkel corresponding to the file number. Tree, and send the authority ID, the file number and the information file to the user terminal;
  • Step S80 the authority server signs the Merkel root value of the first Merkel tree according to the first private key, and generates a first number corresponding to the Merkel root value of the first Merkel tree signature;
  • Step S90 the authority server will include the Merkel root value of the first Merkel tree, the first digital signature corresponding to the Merkel root value of the first Merkel tree, and the authority ID.
  • the information is stored on the blockchain platform.
  • the authority server receives at least two pieces of personal information sent by the user terminal, and creates an information file including each piece of personal information sent by the user terminal and the corresponding file number.
  • the authority server After the authority server receives at least two pieces of personal information sent by the user terminal, it will first verify the authenticity of each piece of personal information sent by the user terminal, such as the ID number sent by the user terminal, and determine whether it matches the identity The length specified by the ID number, or whether the ID number and the name sent by the user terminal are corresponding. When it is determined that the multiple pieces of personal information sent by the user terminal are all true, a unique file number and an information file corresponding to the file number are created, and the information file includes each piece of personal information sent by the user terminal.
  • the authority server uses a preset hash algorithm, a preset orderly Merkel tree construction rule and each piece of personal information in the information file to construct a first Merkel tree corresponding to the file number.
  • the first step is to use a preset hash algorithm to obtain the hash value hash (P1), hash (P2), and hash (P3) corresponding to each piece of personal information.
  • the second step is based on the hash of each leaf node that has been sorted Value, using a hash algorithm to obtain the hash value hash (A+B) of the second layer node AB, the hash value hash of the node CD (C+D) and the node EF hash value hash (E+F), and hash(A+B) ⁇ hash(C+D) ⁇ hash(E+F), according to the sorting rules, the node AB with hash(A+B) is the first position in the second layer, with hash(C+D ) Node CD is the second position of the second layer, and the
  • each piece of personal information can be assigned a specific value, and a hash algorithm is used to calculate the personal information and the corresponding specific value to obtain the piece of personal information The corresponding hash value.
  • the specific value can be randomly generated by an authority, or it can be a hash value of a personal password uploaded by the user, and an individual can also periodically change the personal password through the authority.
  • the authority server constructs the first Merkel tree, it will send the authority ID, file number, and information file to the user terminal.
  • the user terminal obtains the hash algorithm and the ordered Merkel tree construction rules from the authority server, and then constructs the first Merkel tree according to the information archive, the hash algorithm and the ordered Merkel tree construction rules, thereby obtaining the first Data in the Merkel tree.
  • the authority server can also directly send the first Merkel tree to the user terminal.
  • the authority server can generate a digital certificate corresponding to the authority ID, the file number, and the information file, and the digital certificate can also include the first Merkel tree corresponding to the file number. Send the digital certificate to the user terminal.
  • the authority server will use the first private key to sign the Merkel root value of the first Merkel tree constructed, and generate the first digital signature corresponding to the Merkel root value of the first Merkel tree (using The first private key for signing means that the Merkel root value is valid). After that, the authority server will send the information including the Merkel root value of the first Merkel tree, the first digital signature and the authority ID to the blockchain platform, and the blockchain platform will store the received information The information includes the Merkel root value of the first Merkel tree, the first digital signature and the authority ID.
  • the authority server when the authority server believes that the created Merkel root value is invalid, it will use the second private key to sign the Merkel root value to generate a digital signature (using the second The private key is signed, which means that the Merkel root value is invalid), and the information including the Merkel root value, digital signature and authority ID is stored on the blockchain platform.
  • This embodiment constructs a Merkel tree based on personal information provided by the user terminal by using a preset hash algorithm and ordered Merkel tree construction rules, and stores the Merkel root value of the Merkel tree in Blockchain platform.
  • the hash digest algorithm is a one-way mapping algorithm
  • the plaintext information cannot be inferred from the hash value
  • the root value of the Merkel tree is directly related to the content and location of any leaf node, and the content of any leaf node Or location changes will cause the root value to change, and the data stored on the blockchain platform cannot be modified or deleted, thus ensuring the security of the user’s identity content information, and ensuring the Merkel created based on user information
  • the Merkel root value of the tree cannot be easily modified.
  • the step S90 includes:
  • Step S91 the authority server invokes the smart contract on the blockchain platform to create a Merkel root value that includes the first Merkel tree and the Merkel tree of the first Merkel tree.
  • Step S92 the authority server stores the first transaction record to the blockchain platform.
  • the authority server generates a transaction by invoking the smart contract on the blockchain platform, and then will include the Merkel root value of the first Merkel tree, the first digital signature and the authority
  • the information is written into the transaction record, and then the transaction record is stored in the called smart contract on the blockchain platform.
  • Figure 7 is a transaction record that stores the Merkel root value.
  • the Input of the transaction record The string ending with aecb88 in Data is the information including the Merkel root value and the corresponding digital signature, and the information in From is the authority ID. Therefore, the Merkel root value is written into the transaction record and stored on the blockchain platform to ensure that the Merkel root value is not easily modified.
  • the method further includes:
  • Step S100 the authority server receives an update request sent by a user terminal, where the update request includes an archive number and at least one piece of personal information;
  • Step S110 the authority server generates a new information file corresponding to the file number in the update request according to the information file corresponding to the file number in the update request and at least one piece of personal information in the update request;
  • Step S120 the authority server uses a preset hash algorithm, a preset orderly Merkel tree construction rule and each piece of personal information in the new information file to construct a second file number corresponding to the file number in the update request.
  • Merkel tree and send the authority ID, the file number in the update request and the new information file to the user terminal;
  • Step S130 the authority server uses the first private key to sign the Merkel root value of the second Merkel tree to generate a second digital signature
  • Step S140 The authority stores the information including the Merkel root value of the second Merkel tree, the second digital signature and the authority ID to the blockchain platform.
  • the personal information in the update request may only be an update of a certain piece of information in the original information file, or it may be information that does not exist in the original information file.
  • the authority server After the authority server receives the update request including the file number and at least one piece of personal information sent by the user terminal, it will call up the information file corresponding to the file number according to the file number in the update request, and then according to the at least one piece of personal information and the personal information in the update request.
  • the authority server After the information file is updated, the authority server will generate the second Merkel tree corresponding to the new information file according to the preset hash algorithm and the new information file. Use the first private key to sign the Merkel root value of the second Merkel tree to generate a second digital signature, which will include the Merkel root value of the second Merkel tree, the second digital signature and the authority ID information is stored on the blockchain platform
  • the authority before the step of storing the information including the Merkel root value of the second Merkel tree, the second digital signature and the authority ID to the blockchain platform, the authority also includes: the authority server adopts the second private The key signs the Merkel root value of the first Merkel tree corresponding to the file number in the update request to generate a third digital signature, which will include the Merkel root value of the first Merkel tree and the third digital signature
  • the information of the authority and the ID of the authority is stored on the blockchain platform.
  • the authority server has two private keys: the first private key and the second private key (the first private key is signed to indicate that the Merkel root value is valid, and the second private key is signed to indicate that the Merkel root is invalid), after the information file is updated , The authority server will use the second private key to sign the Merkel root value corresponding to the stored information file before the update, and generate a third digital signature; it will include the Merkel root value corresponding to the information file before the update and The information of the third digital signature is stored on the blockchain platform.
  • the information file is updated and a new Merkel tree is created for the updated information file and the root value of the new Merkel tree is stored on the blockchain platform. After personal information is updated, ensure that the updated real information can be verified.
  • This application also proposes a zero-knowledge proof method system for personal information.
  • the system includes: a third-party verification server 100, a blockchain platform 200, and a user terminal 300.
  • the third-party verification server 100 is configured to receive at least one piece of personal information to be verified, the ID of an authority for verification of the information to be verified, and Merkel verification information sent by the user terminal 300, wherein the Merkel verification information includes the information other than the verification information to be verified.
  • the third-party verification server 100 is also used to obtain the hash algorithm and the orderly Merkel tree construction rule corresponding to the authority ID of the information to be verified according to the authority ID of the information to be verified, and The hash algorithm, the ordered Merkel tree construction rule, the at least one piece of personal information to be verified and the Merkel verification information are calculated to obtain the Merkel root value to be verified, and the Send the Merkel root value and the ID of the authority to verify the information to the blockchain platform 200;
  • the blockchain platform 200 is configured to obtain at least one corresponding to the ID of the authority to verify the information to be verified and the ID of the authority to be verified according to the received Merkel root value to be verified and the ID of the authority to be verified.
  • the Merkel root value of the same Merkel root value, and the obtained Merkel root value, the corresponding digital signature and the corresponding storage time are sent to the third-party verification server 100;
  • the third-party verification server 100 is also configured to receive the Merkel root values, the corresponding digital signatures, and the corresponding storage time sent by the blockchain platform 200, and verify the authority ID according to the information to be verified , The received each Merkel root value, corresponding digital signature and corresponding storage time, verify each personal information to be verified sent by the user terminal 300.
  • the above system has all the technical features of the first embodiment of the zero-knowledge verification method for personal information.
  • the specific interaction process can be performed with reference to all the embodiments of the foregoing method, and accordingly, it also has all the technical effects of the foregoing method embodiments.
  • the application also proposes a computer-readable storage medium on which a computer program is stored.
  • the computer-readable storage medium may be the memory 20 in FIG. 1, or may be a ROM (Read-Only Memory, read-only memory)/RAM (Random Access Memory, at least one of random access memory), magnetic disks, and optical disks.
  • the computer-readable storage medium includes a number of information to enable third-party verification servers, user terminals, authority servers, and/or blockchain platforms to execute The method described in each embodiment of this application.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请公开了一种个人信息的零知识证明方法、系统及存储介质,方法包括:第三方验证服务器根据用户终端发送的待验证个人信息、权威机构ID、默克尔验证信息以及权威机构ID对应的哈希算法和有序默克尔树构建规则进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和权威机构ID发送至区块链平台;区块链平台根据待验证的默克尔根值,获取并发送权威机构ID对应的默克尔根值、对应的数字签名和存储时间至第三方验证服务器;第三方验证服务器根据权威机构ID、接收到的各默克尔根值、对应的数字签名和存储时间,对用户终端发送的待验证个人信息进行验证。本申请解决了个人信息验证导致非必要的隐私信息被暴露的技术问题。

Description

个人信息的零知识证明方法、系统及存储介质
本申请要求于2019年4月29日提交中国专利局、申请号为201910365739.5、发明名称为“个人信息的零知识证明方法、系统及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及区块链平台技术领域,具体涉及个人信息的零知识证明方法、系统及计算机可读存储介质。
背景技术
随着互联网的发展,互联网让生活变得更加便捷的同时,也为我们的社会增加了许多隐患。在订火车票、机票等许多场景中,都会涉及到个人信息验证。但在个人信息验证过程中,需提供个人隐私信息,从而导致个人隐私信息暴露以及存在可能被窃取的问题。
发明内容
本申请的主要目的在于提供一种个人信息的零知识证明方法、系统及计算机可读存储介质,旨在解决现有的个人信息验证导致隐私信息被暴露的技术问题。
为实现上述目的,本申请提供一种个人信息的零知识证明方法,包括步骤:
第三方验证服务器接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方验证服务器根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则;
所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息、所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;
所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;
所述第三方验证服务器接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。
此外,为实现上述目的,本申请还提供一种个人信息的零知识证明系统,所述系统包括:
第三方验证服务器,用于接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方验证服务器,还用于根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则,并根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;
区块链平台,用于根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;
所述第三方验证服务器,还用于接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的个人信息的零知识证明方法的步骤。
本申请提供的个人信息的零知识证明方法、系统及计算机可读存储介质,通过第三方验证服务器接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;所述第三方验证服务器根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则;所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息、所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;所述第三方验证服务器接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。从而在需要验证某条个人信息过程中,不需要用户提供包括隐私信息的其他所有个人信息,只需要选择提供待验证的个人信息给第三方机构进行。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的结构示意图;
图2为本申请个人信息的零知识证明方法第一实施例的流程示意图;
图3为本申请个人信息的零知识证明方法第二实施例中步骤S50的细化流程示意图;
图4为本申请个人信息的零知识证明方法第四实施例中步骤S90的细化流程示意图;
图5为本申请个人信息的零知识证明方法第一实施例的系统架构示意图;
图6为已构建的默克尔树示意图;
图7为存储有默克尔根值的交易记录示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
请参照图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,在本申请个人信息的零知识证明方法的第一实施例中,所述个人信息的零知识证明方法包括步骤:
步骤S10,第三方验证服务器接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
在本方案中,有序默克尔树构建规则指的是在构建有效默克尔树时,对各层内所有节点在对应层内的位置进行排序的规则,该节点位置排序规则可以依据每层内各节点的哈希值,从小到大或从大到小依次将各节点从左至右排列。
当用户需要被验证个人信息时,用户将至少一条待验证信息、待验证信息认证的权威机构ID和默克尔验证信息发送给第三方验证服务器,也可以在第三方验证机构的终端上输入至少一条待验证信息、待验证信息认证的权威机构ID和默克尔验证信息,然后第三方验证机构的终端再发送至第三方验证服务器。
用户终端除了发送上述的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息外,还可以发送哈希算法和有序默克尔树构建规则。
需要说明的是,为防止发送的至少一条待验证个人信息、默克尔验证信息和权威机构ID的这些信息被其他人截获,可采用第三方验证服务器的公钥对至少一条待验证个人信息、默克尔验证信息和权威机构ID的这些信息进行加密,再将加密后的信息发送至第三方验证服务器,第三方验证服务器会采用自己的私钥对所述加密的信息进行解密,从而获得用户终端发送的哈希算法、至少一条待验证个人信息和默克尔验证信息。
默克尔验证信息中的这些节点是从待验证个人信息对应的默克尔节点至默克尔根值的哈希计算路径上所必需的除待验证个人信息对应的默克尔节点外的所有节点的哈希值,或除待验证个人信息对应的默克尔节点外的所有节点哈希值和对应的所属层,若采用最快的哈希计算路径,提供的默克尔验证信息中可以只包括一组有序排列的节点哈希值数组,该排列顺序为计算默克尔根值过程是使用节点值的先后顺序。若采用非最快的哈希计算路径,提供的默克尔验证信息中除了节点哈希值外,还包括各节点哈希值对应的所属层。例如待验证信息为图6中的P1姓名,从姓名对应的节点位置至图6中默克尔树的默克尔根的哈希计算路径可以为B+CD+EF,也可以为B+C+D+EF,还可以为B+C+D+E+F,其中B+CD+EF的哈希计算路径对于A来说,是最快哈希计算路径,而B+C+D+E+F的哈希计算路径对于A来说,是最慢哈希计算路径,若采用最快的哈希计算路径,那么默克尔验证信息为一组有序排列的节点哈希值数组{hash(P2)、hash(C+D)、hash(E+F)}。若该计算路径为B+C+D+EF,那么默克尔验证信息为包括节点B的哈希值和节点B所属层为第一层、节点C的哈希值和节点C所属层为第一层 、节点D的哈希值和节点D所属层为第一层、节点EF的哈希值和节点EF所属层为第三层。又例如待验证信息为图6中的P1姓名和P3出生地,从姓名和出生地对应的节点位置至图6中默克尔树的默克尔根的哈希计算路径可以为B+D+EF(最快哈希计算路径)或B+D+E+F。
需要说明的是,用户终端发送的默克尔验证信息,除了至少一个除所述待验证个人信息对应的默克尔节点外的其他节点的哈希值,还可以包括至少一条非待验证的个人信息。例如被验证者提供了待验证的信息图6中的“出生地:山东烟台”的明文信息,为验证该条明文信息,被验证者提供的默克尔验证信息可以包括第二层中的节点哈希值AB和第三层中节点哈希值EF和图6中的“现住址:广州”的明文信息。
步骤S20,所述第三方验证服务器根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则;
第三方验证服务器根据待验证信息认证的权威机构ID,可以向所述权威机构ID对应的权威机构服务器发送获取哈希算法和有序默克尔树构建规则的请求,所述权威机构ID对应的权威机构服务器接收到第三方验证服务器发送的所述请求后,将权威机构构建默克尔树采用的哈希算法和有序默克尔树构建规则发送给第三方验证服务器。
当第三方验证服务器存储了包括各权威机构ID与哈希算法、有序默克尔树构建规则映射关系表,会从所述表中直接查询获得所述权威机构ID对应的哈希算法和有序默克尔树构建规则。哈希算法可以为MD4算法、MD5算法、SHA-1、国密算法或其他哈希算法。
步骤S30,所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;
第三方验证服务器会根据接收到至少一条待验证个人信息和所述至少一个除所述待验证个人信息对应的默克尔节点外的其他节点的哈希值和所属层,使用获取到的哈希算法和有序默克尔树构建规则逐层计算哈希值,最终得到待验证的默克尔根值。例如被验证者提供了待验证信息为图6中的“出生地:山东烟台”的明文信息和默克尔验证信息,其中默克尔验证信息为图6中默克尔树的节点D的哈希值hash(P4)、节点AB的哈希值hash(A+B)和节点EF的哈希值hash(E+F),第三方验证服务器获取到的有序默克尔树构建规则为从小到大依次将同一层的各节点从左至右排列各节点位置。第三方验证服务器会采用哈希算法对待验证信息进行计算得到待验证的默克尔根值hash(ABCD+EF)。
在计算得到待验证的默克尔根值后,第三方验证服务器会将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台。例如第三方验证服务器通过区块链平台的API接口,将待验证的默克尔根值和待验证信息认证的权威机构ID发送给区块平台。
步骤S40,所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;
由于区块链平台上可能会存储与待验证的默克尔根值相同的多个默克尔根值,这些默克尔根值中有些是由待验证信息认证的权威机构ID对应的权威机构服务器发送的,有些是由其他权威机构服务器发送的,还有些是由非权威机构服务器发送的。
当区块链平台会根据待验证的默克尔根值和待验证信息认证的权威机构ID,从存储默克尔根值的数据库或存储包括默克尔根值的交易记录中查询,获取待验证信息认证的权威机构ID对应的权威机构发送过来的与待验证的默克尔根值相同的至少一个默克尔根值,并将查询获得的默克尔根值和对应的数字签名以及存储时间发送至第三方验证服务器。
需要说明的是,当区块链平台未查询到待验证信息认证的权威机构ID对应的权威机构发送过来的与待验证的默克尔根值相同的默克尔根值时,区块链平台会反馈不存在待验证的默克尔根值的信息至第三方验证服务器,第三方验证服务器会根据这个信息,直接确定用户终端发送的各待验证个人信息是不真实的。
步骤S50,所述第三方验证服务器接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。
第三方验证服务器首先根据存储时间,从这些默克尔根值中选择存储时间最近的默克尔根值,并根据待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID的第一公钥,采用第一公钥对存储时间最近的默克尔根值对应的数字签名进行验证,若验证通过,则确定用户终端发送的各待验证个人信息是真实,并发送验证通过的信息至用户终端;若验证不通过,则确定用户终端发送的各待验证个人信息不真实,并发送验证不通过的信息至用户终端。第三验证服务器还可以直接根据区块链平台反馈回来的各默克尔根值的数量,若为奇数时,则确定用户终端发送的各待验证个人信息是真实;若为偶数时,则确定用户终端发送的各待验证个人信息不真实。
需要说明的是,还可以区块链查询获取到待验证信息认证的权威机构ID对应的权威机构发送过来的与待验证的默克尔根值相同的至少一个默克尔根值后,从这些默克尔根值中选择存储时间最近的默克尔根值,并采用待验证信息认证的权威机构ID对应的权威机构的第一公钥对存储时间最近的默克尔根值进行验证,若验证通过,则反馈存在待验证的默克尔根值的信息至第三方验证服务器,第三方验证服务器从而确定用户终端发送的各待验证个人信息是真实;若验证不通过,反馈未存在待验证的默克尔根值的信息至第三方验证服务器,从而第三方验证服务器确定用户终端发送的各待验证个人信息是不正确。
例如,在需要查验某顾客是否是通缉逃犯时,该顾客只需提供未在逃信息以及未在逃信息对应的默克尔验证信息,然后根据该顾客提供的上述信息和构建该顾客个人信息的默克尔树时的哈希算法、默克尔树节点排序规则,计算出待验证默克尔根值。再区块链将查询到的与待验证默克尔根值相同的至少一个默克尔根值反馈至第三方验证服务器,第三方验证服务器根据接收到的各默克尔根值,进行判断所述顾客未在逃待验证信息是否是真实,若真实则确定该顾客不是通缉逃犯,反之,则确定该顾客是在逃通缉犯。
本实施例通过第三方验证服务器接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;所述第三方验证服务器根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则;所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息、所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;所述第三方验证服务器接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。从而在需验证某条个人信息过程中,不需要用户提供包括隐私信息的其他所有个人信息,只需提供待验证的个人信息给第三方机构进行。
进一步地,参照图3,根据本申请个人信息的零知识证明方法的第一实施例提成提出本申请个人信息的零知识证明方法的第二实施例,在本实施例中,所述步骤S50包括:
步骤S51,所述第三方验证服务器根据所述各默克尔根值对应的存储时间,从所述各默克尔根值中选择存储时间最近的默克尔根值;
步骤S52,所述第三方验证服务器根据所述待验证信息中的权威机构ID,获取所述待验证信息中权威机构ID对应的权威机构的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
步骤S53,若验证通过,所述第三方验证服务器确定用户终端发送的各待验证个人信息是真实;
步骤S54,若验证不通过,所述第三方验证服务器确定用户终端发送的各待验证个人信息不真实。
在本方案中,由于用户个人的某些信息发生更新,例如用户居住地、婚姻状况等。权威机构服务器获取到更新后个人信息时,会根据更新后的个人信息重新创建一个默克尔根值b,但由于基于更新前的用户个人信息构建的默克尔树的默克尔根值a已经存储在区块链平台上,该默克尔根值a是不能被删除和修改的,未防止用户利用更新前的个人信息去进行验证,权威机构服务器会采用第二私钥对所述默克尔根值a重新签名生成第二数字签名,然后将包括所述默克尔根值a、对应的第二数字签名和权威机构ID的信息存储至区块链平台。这就导致区块链平台上会存储两条包括默克尔根值a的信息。
第三方验证服务器接收到区块链平台发送的待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值后,会首先根据存储时间,从这些默克尔根值中选择存储时间最近的默克尔根值,并根据待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID的第一公钥,采用第一公钥对存储时间最近的默克尔根值对应的数字签名进行验证,若验证通过,则确定用户终端发送的各待验证个人信息是真实,并发送验证通过的信息至用户终端;反之,则确定用户终端发送的各待验证个人信息不真实,并发送验证不通过的信息至用户终端。
需要说明的是,当权威机构服务器只存在一个私钥时,用户个人信息变化导致已经存在的默克尔根值的有效或失效状态发生变化时,权威机构服务器会再次用私钥对默克尔根值进行签名,并将所述默克尔根值和对应的数字签名再次存储至区块链平台。这导致区块链平台存在多个相同的默克尔根值,且对应的数字签名也相同。这种情况下,第三验证服务验证默克尔根值有效是通过判断区块链平台反馈回来的各默克尔根值的数量的奇偶,若为奇数,则确定各待验证个人信息是真实;反之,则确定各待验证个人信息不真实。
因此通过区块链平台=采用第一公钥进行验证确定有效默克尔根值,从而防止在个人信息更新后,用户仍采用更新前的真实信息通过验证。
进一步地,根据本申请个人信息的零知识证明方法的第一实施例提出本申请个人信息的零知识证明方法的第三实施例,在本实施例中,所述步骤S40之前还包括:
步骤S60,权威机构服务器接收用户终端发送的至少两条个人信息,并根据接收到用户终端发送的至少两条个人信息,创建一个档案号和所述档案号对应的包括用户终端发送的至少两条个人信息的信息档案;
步骤S70,所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述信息档案中各条个人信息,构建所述档案号对应的第一默克尔树,并将权威机构ID、所述档案号和所述信息档案发送至用户终端;
步骤S80,所述权威机构服务器根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
步骤S90,所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
在本方案中,权威机构服务器接收用户终端发送的至少两条个人信息,创建一个包括用户终端发送的各条个人信息的信息档案和对应的档案号。
需要说明的是,权威机构服务器接收到用户终端发送的至少两条个人信息后,会先审核用户终端发送的各条个人信息的真实性,例如用户终端发送的身份证号码,通过判断是否符合身份证号码所规定的长度、或者判断身份证号码和用户终端发送的姓名是否是对应的关系。当确定用户终端发送的多条个人信息全部真实时,才创建一个唯一的档案号和所述档案号对应的信息档案,该信息档案中包括用户终端发送的各条个人信息。
所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述信息档案中各条个人信息,构建所述档案号对应的第一默克尔树。例如图6中的默克尔树的构建的详细过程如下:第一步,采用预设的哈希算法获得各条个人信息对应的哈希值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的信息存储值区块链平台。
本实施例通过采用预设的哈希算法和有序默克尔树构建规则构建基于用户终端提供的个人信息的默克尔树,并将所述默克尔树的默克尔根值存储在区块链平台。由于哈希摘要算法为单向映射算法,无法通过哈希值反向推算出明文信息,而默克尔树的根值与任一叶节点的内容和位置都直接相关,任一叶节点的内容或位置的变更都会引起根值的改变,以及区块链平台上存储的数据是不能被修改和删除的,从而保证了用户的身份内容信息的安全性,以及确保基于用户信息创建的默克尔树的默克尔根值不易被修改。
进一步地,参照图4,根据本申请个人信息的零知识证明方法的第一实施例提出本申请个人信息的零知识证明方法的第四实施例,在本实施例中,所述步骤S90包括:
步骤S91,所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的第一交易记录;
步骤S92,所述权威机构服务器将所述第一交易记录存储至所述区块链平台。
本方案中,权威机构服务器通过调用区块链平台上的智能合约,会生成一个交易,然后将包括所述第一默克尔树的默克尔根值、所述第一数字签名和权威机构的信息写入交易记录中,再将所述交易记录存储在区块链平台上的所调用的智能合约中。图7即为一种存储了默克尔根值的交易记录,该交易记录的Input Data中以aecb88结尾的那串字符串便为包括默克尔根值和对应的数字签名的信息,From中的信息则为权威机构ID。因此通过将默克尔根值写入交易记录并存储在区块链平台上,从而确保默克尔根值不易被修改。
进一步地,根据本申请个人信息的零知识证明方法的第一实施例提出本申请个人信息的零知识证明方法的第五实施例,在本实施例中,所述步骤S90之后还包括:
步骤S100,所述权威机构服务器接收用户终端发送的更新请求,其中所述更新请求包括档案号和至少一条个人信息;
步骤S110,所述权威机构服务器根据更新请求中的档案号对应的信息档案和更新请求中的至少一条个人信息,生成更新请求中的档案号对应的新信息档案;
步骤S120,所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述新信息档案中各条个人信息,构建更新请求中的档案号对应的第二默克尔树,并将权威机构ID、更新请求中的档案号和所述新信息档案发送至用户终端;
步骤S130,所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名;
步骤S140,所述权威机构将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台。
在本方案中,更新请求中的个人信息可能只是原有信息档案中某条信息内容的更新,也可能是原有信息档案中不存在的信息。权威机构服务器接收用户终端发送包括档案号和至少一条个人信息的更新请求后,会根据更新请求中的档案号,调出该档案号对应的信息档案,然后根据更新请求中的至少一条个人信息和档案号对应的信息档案中的多条个人信息,更新所述档案号对应的信息档案,并将权威机构ID、更新请求中的档案号和所述新信息档案发送至用户终端,或者将权威机构ID、更新请求中的档案号、所述新信息档案和更新请求中的档案号对应的第二默克尔树发送至用户终端。
信息档案更新后,权威机构服务器会根据预设的哈希算法和新的信息档案,生成所述新的信息档案对应的第二默克尔树。采用第一私钥对第二默克尔树的默克尔根值进行签名,生成第二数字签名,并将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至区块链平台
需要说明的是,权威机构将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至区块链平台步骤之前还包括:权威机构服务器采用第二私钥对更新请求中档案号对应的第一默克尔树的默克尔根值进行签名,生成第三数字签名,并将包括第一默克尔树的默克尔根值、第三数字签名和权威机构ID的信息存储至区块链平台。
当用户个人的某些信息发生变化时,由于更新前的信息档案对应的默克尔根值已存储在区块链平台上,该默克尔根值是不能对其进行删除和修改的,未防止用户利用旧的个人信息去进行验证的这情况发生。权威机构服务器存在第一私钥和第二私钥两把私钥(第一私钥进行签名表示默克尔根值有效,第二私钥进行签名表示默克尔根失效),信息档案更新后,权威机构服务器会采用第二私钥对已存储的更新前的信息档案对应的默克尔根值进行签名,生成第三数字签名;将包括更新前的信息档案对应的默克尔根值和第三数字签名的信息存储至区块链平台。因此通过根据用户终端的个人信息更新请求,对信息档案更新并为更新后的信息档案创建新的默克尔树以及将新默克尔树根值存储在区块链平台,从而在用户某些个人信息更新后,确保更新后的真实信息能通过验证。
本申请还提出了一种个人信息的零知识证明方法系统。
参照图5,在一实施例中,所述系统包括:第三方验证服务器100、区块链平台200和用户终端300。
第三方验证服务器100,用于接收用户终端300发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
所述第三方验证服务器100,还用于根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则,并根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台200;
区块链平台200,用于根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器100;
所述第三方验证服务器100,还用于接收所述区块链平台200发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端300发送的各待验证个人信息进行验证。
上述系统具有个人信息的零知识证明方法的第一实施例的全部技术特征,具体交互过程可参照前述方法的全部实施例执行,相应的也具有前述方法的实施例的全部技术效果。
本申请还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图1的中的存储器20,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干信息用以使得第三方验证服务器、用户终端、权威机构服务器和/或区块链平台执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

  1. 一种个人信息的零知识证明方法,其中,包括步骤:
    第三方验证服务器接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
    所述第三方验证服务器根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则;
    所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;
    所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;
    所述第三方验证服务器接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。
  2. 根据权利要求1所述的个人信息的零知识证明方法,其中,所述默克尔验证信息还包括至少一条非待验证的个人信息;
    所述所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值的步骤包括:
    所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,其中所述默克尔验证信息包括至少一条非待验证的个人信息和除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括至少一条非待验证的个人信息、除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层。
  3. 根据权利要求2所述的个人信息的零知识证明方法,其中,所述所述第三方验证服务器根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证的步骤包括:
    所述第三方验证服务器根据所述各默克尔根值对应的存储时间,从所述各默克尔根值中选择存储时间最近的默克尔根值;
    所述第三方验证服务器根据所述待验证信息中的权威机构ID,获取所述待验证信息中权威机构ID对应的权威机构的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
    若验证通过,所述第三方验证服务器确定用户终端发送的各待验证个人信息是真实;
    若验证不通过,所述第三方验证服务器确定用户终端发送的各待验证个人信息不真实。
  4. 根据权利要求3所述的个人信息的零知识证明方法,其中,所述所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器的步骤之前包括:
    权威机构服务器接收用户终端发送的至少两条个人信息,并根据接收到用户终端发送的至少两条个人信息,创建一个档案号和所述档案号对应的包括用户终端发送的至少两条个人信息的信息档案;
    所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述信息档案中各条个人信息,构建所述档案号对应的第一默克尔树,并将权威机构ID、所述档案号和所述信息档案发送至用户终端;
    所述权威机构服务器根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
    所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
  5. 根据权利要求4所述的个人信息的零知识证明方法,其中,所述所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台的步骤包括:
    所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的第一交易记录;
    所述权威机构服务器将所述第一交易记录存储至所述区块链平台。
  6. 根据权利要求5所述的个人信息的零知识证明方法,其中,所述所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台之后还包括:
    所述权威机构服务器接收用户终端发送的更新请求,其中所述更新请求包括档案号和至少一条个人信息;
    所述权威机构服务器根据更新请求中的档案号对应的信息档案和更新请求中的至少一条个人信息,生成更新请求中的档案号对应的新信息档案;
    所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述新信息档案中各条个人信息,构建更新请求中的档案号对应的第二默克尔树,并将权威机构ID、更新请求中的档案号和所述新信息档案发送至用户终端;
    所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名;
    所述权威机构将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台。
  7. 根据权利要求6中所述的个人信息的零知识证明方法,其中,所述所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名的步骤之前还包括:
    所述权威机构服务器采用第二私钥对更新请求中档案号对应的第一默克尔树的默克尔根值进行签名,生成第三数字签名,并将包括第一默克尔树的默克尔根值、第三数字签名和权威机构ID的信息存储至所述区块链平台。
  8. 根据权利要求7所述的个人信息的零知识证明方法,其中,所述所述权威机构将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台的步骤包括:
    所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第二默克尔树的默克尔根值、所述第二数字签名、和权威机构ID的第二交易记录;
    所述权威机构服务器发送所述第二交易记录存储至所述区块链平台。
  9. 一种个人信息的零知识证明系统,其中,所述系统包括:
    第三方验证服务器,用于接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
    所述第三方验证服务器,还用于根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则,并根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;
    区块链平台,用于根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;
    所述第三方验证服务器,还用于接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。
  10. 根据权利要求9所述的个人信息的零知识证明系统,其中,所述默克尔验证信息还包括至少一条非待验证的个人信息;
    所述第三方验证服务器,还用于根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,其中所述默克尔验证信息包括至少一条非待验证的个人信息和除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括至少一条非待验证的个人信息、除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层。
  11. 根据权利要求10所述的个人信息的零知识证明系统,其中,
    所述第三方验证服务器,还用于根据所述各默克尔根值对应的存储时间,从所述各默克尔根值中选择存储时间最近的默克尔根值;
    所述第三方验证服务器,还用于根据所述待验证信息中的权威机构ID,获取所述待验证信息中权威机构ID对应的权威机构的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
    若验证通过,所述第三方验证服务器,还用于确定用户终端发送的各待验证个人信息是真实;
    若验证不通过,所述第三方验证服务器,还用于确定用户终端发送的各待验证个人信息不真实。
  12. 根据权利要求11所述的个人信息的零知识证明系统,其中,所述系统还包括权威机构服务器;
    所述权威机构服务器,用于接收用户终端发送的至少两条个人信息,并根据接收到用户终端发送的至少两条个人信息,创建一个档案号和所述档案号对应的包括用户终端发送的至少两条个人信息的信息档案;
    所述权威机构服务器,还用于采用预设的哈希算法、预设的有序默克尔树构建规则和所述信息档案中各条个人信息,构建所述档案号对应的第一默克尔树,并将权威机构ID、所述档案号和所述信息档案发送至用户终端;
    所述权威机构服务器,还用于根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
    所述权威机构服务器,还用于将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
  13. 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如下步骤:
    第三方验证服务器接收用户终端发送的至少一条待验证个人信息、待验证信息认证的权威机构ID和默克尔验证信息,其中所述默克尔验证信息包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层;
    所述第三方验证服务器根据所述待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的哈希算法和有序默克尔树构建规则;
    所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,并将待验证的默克尔根值和待验证信息认证的权威机构ID发送至区块链平台;
    所述区块链平台根据接收到的所述待验证的默克尔根值和待验证信息认证的权威机构ID,获取待验证信息认证的权威机构ID对应的至少一个与所述待验证的默克尔根值相同的默克尔根值,并将获得的所述各默克尔根值、对应的数字签名和对应的存储时间发送至所述第三方验证服务器;
    所述第三方验证服务器接收所述区块链平台发送的所述各默克尔根值、对应的数字签名和对应的存储时间,并根据待验证信息认证的权威机构ID、接收到的所述各默克尔根值、对应的数字签名和对应的存储时间,对用户终端发送的各待验证个人信息进行验证。
  14. 根据权利要求13所述的计算机可读存储介质,其中,所述默克尔验证信息还包括至少一条非待验证的个人信息;所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    所述第三方验证服务器根据所述哈希算法、所述有序默克尔树构建规则、所述至少一条待验证个人信息和所述默克尔验证信息进行计算,获得待验证的默克尔根值,其中所述默克尔验证信息包括至少一条非待验证的个人信息和除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值或包括至少一条非待验证的个人信息、除所述待验证个人信息对应的默克尔节点外的至少一个其他节点的哈希值和对应的所属层。
  15. 根据权利要求14所述的计算机可读存储介质,其中,所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    所述第三方验证服务器根据所述各默克尔根值对应的存储时间,从所述各默克尔根值中选择存储时间最近的默克尔根值;
    所述第三方验证服务器根据所述待验证信息中的权威机构ID,获取所述待验证信息中权威机构ID对应的权威机构的第一公钥,并采用所述第一公钥对选择的存储时间最近的默克尔根值对应的数字签名进行验证;
    若验证通过,所述第三方验证服务器确定用户终端发送的各待验证个人信息是真实;
    若验证不通过,所述第三方验证服务器确定用户终端发送的各待验证个人信息不真实。
  16. 根据权利要求15所述的计算机可读存储介质,其中,所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    权威机构服务器接收用户终端发送的至少两条个人信息,并根据接收到用户终端发送的至少两条个人信息,创建一个档案号和所述档案号对应的包括用户终端发送的至少两条个人信息的信息档案;
    所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述信息档案中各条个人信息,构建所述档案号对应的第一默克尔树,并将权威机构ID、所述档案号和所述信息档案发送至用户终端;
    所述权威机构服务器根据第一私钥对所述第一默克尔树的默克尔根值签名,生成所述第一默克尔树的默克尔根值对应的第一数字签名;
    所述权威机构服务器将包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的信息存储至所述区块链平台。
  17. 根据权利要求16所述的计算机可读存储介质,其中,所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第一默克尔树的默克尔根值、所述第一默克尔树的默克尔根值对应的第一数字签名和权威机构ID的第一交易记录;
    所述权威机构服务器将所述第一交易记录存储至所述区块链平台。
  18. 根据权利要求17所述的计算机可读存储介质,其中,所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    所述权威机构服务器接收用户终端发送的更新请求,其中所述更新请求包括档案号和至少一条个人信息;
    所述权威机构服务器根据更新请求中的档案号对应的信息档案和更新请求中的至少一条个人信息,生成更新请求中的档案号对应的新信息档案;
    所述权威机构服务器采用预设的哈希算法、预设的有序默克尔树构建规则和所述新信息档案中各条个人信息,构建更新请求中的档案号对应的第二默克尔树,并将权威机构ID、更新请求中的档案号和所述新信息档案发送至用户终端;
    所述权威机构服务器采用第一私钥对第二默克尔树的默克尔根值签名,生成第二数字签名;
    所述权威机构将包括第二默克尔树的默克尔根值、第二数字签名和权威机构ID的信息存储至所述区块链平台。
  19. 根据权利要求18所述的计算机可读存储介质,其中,所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    所述权威机构服务器采用第二私钥对更新请求中档案号对应的第一默克尔树的默克尔根值进行签名,生成第三数字签名,并将包括第一默克尔树的默克尔根值、第三数字签名和权威机构ID的信息存储至所述区块链平台。
  20. 根据权利要求19所述的计算机可读存储介质,其中,所述一个或者多个程序可被一个或者多个处理器执行,还实现如下步骤:
    所述权威机构服务器调用所述区块链平台上的智能合约,创建一个包括所述第二默克尔树的默克尔根值、所述第二数字签名、和权威机构ID的第二交易记录;
    所述权威机构服务器发送所述第二交易记录存储至所述区块链平台。
PCT/CN2019/088063 2019-04-29 2019-05-23 个人信息的零知识证明方法、系统及存储介质 WO2020220413A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910365739.5A CN110311782B (zh) 2019-04-29 2019-04-29 个人信息的零知识证明方法、系统及存储介质
CN201910365739.5 2019-04-29

Publications (1)

Publication Number Publication Date
WO2020220413A1 true WO2020220413A1 (zh) 2020-11-05

Family

ID=68074877

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/088063 WO2020220413A1 (zh) 2019-04-29 2019-05-23 个人信息的零知识证明方法、系统及存储介质

Country Status (2)

Country Link
CN (1) CN110311782B (zh)
WO (1) WO2020220413A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024081809A1 (en) * 2022-10-12 2024-04-18 Khosla Ventures LLC Cryptographic systems and methods for providing services to authenticated users

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765675A (zh) * 2019-11-01 2021-05-07 上海唯链信息科技有限公司 一种基于区块链的数据处理方法及装置
CN110930153B (zh) * 2019-12-09 2022-09-30 趣派(海南)信息科技有限公司 基于隐藏第三方账号的区块链隐私数据管理方法和系统
CN111539721A (zh) * 2020-04-01 2020-08-14 北京千云天下科技有限公司 一种基于零知识证明的100%资产准备金证明方法及证明装置
CN111554407A (zh) * 2020-04-16 2020-08-18 深圳中兴网信科技有限公司 人群标记方法、系统和计算机可读存储介质
CN111698092B (zh) * 2020-05-29 2023-07-21 湖南天河国云科技有限公司 基于零知识证明和区块链的文件存储证明方法、系统及介质
CN112733168A (zh) * 2021-01-13 2021-04-30 上海图灵加佳网络科技有限公司 行驶数据分享方法、系统、存储介质和车载终端
CN112865980A (zh) * 2021-02-01 2021-05-28 杭州复杂美科技有限公司 区块链加密投票方法、计算机设备和存储介质
CN112801663B (zh) * 2021-02-05 2024-03-19 北京众享比特科技有限公司 区块链存证方法、装置、系统、设备和介质
CN113746638B (zh) * 2021-09-03 2023-04-07 杭州复杂美科技有限公司 Nft存储方法、nft还原方法、计算机设备和存储介质
CN114401091B (zh) * 2021-12-16 2023-10-24 北京航空航天大学 基于区块链的设备跨域认证管理方法及装置
CN115001714B (zh) * 2022-07-15 2024-03-19 中国电信股份有限公司 资源访问方法及装置、电子设备、存储介质
CN115208585B (zh) * 2022-09-07 2022-11-18 环球数科集团有限公司 一种基于零知识证明的数据交互方法与系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180181756A1 (en) * 2016-12-23 2018-06-28 Amazon Technologies, Inc. Host attestation
CN108604336A (zh) * 2016-02-02 2018-09-28 科因普拉格株式会社 用于提供对文件的公证服务并通过公证服务验证记录文件的方法和服务器
CN109033841A (zh) * 2018-07-12 2018-12-18 杨城 一种写验分离的弱中心化可信数据存储系统和管理方法
CN109040082A (zh) * 2018-08-10 2018-12-18 阿里巴巴集团控股有限公司 用户的身份内容信息的认证、验证方法和装置
EP3442160A1 (en) * 2017-08-07 2019-02-13 Siemens Aktiengesellschaft Pruning of authentication trees
WO2019072293A2 (en) * 2018-12-13 2019-04-18 Alibaba Group Holding Limited DATA INSULATION IN A BLOCK CHAIN NETWORK

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689993B (zh) * 2007-07-11 2013-02-27 株式会社东芝 组署名系统、装置和方法
CN101997683B (zh) * 2009-08-10 2012-07-04 北京多思科技发展有限公司 一种零知识证明的认证方法及认证装置
US9189617B2 (en) * 2013-09-27 2015-11-17 Intel Corporation Apparatus and method for implementing zero-knowledge proof security techniques on a computing platform
CN107438002B (zh) * 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
CN108418689B (zh) * 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
CN108270571B (zh) * 2017-12-08 2019-10-11 西安电子科技大学 基于区块链的物联网身份认证系统及其方法
CN109614820A (zh) * 2018-12-06 2019-04-12 山东大学 基于零知识证明的智能合约认证数据隐私保护方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604336A (zh) * 2016-02-02 2018-09-28 科因普拉格株式会社 用于提供对文件的公证服务并通过公证服务验证记录文件的方法和服务器
US20180181756A1 (en) * 2016-12-23 2018-06-28 Amazon Technologies, Inc. Host attestation
EP3442160A1 (en) * 2017-08-07 2019-02-13 Siemens Aktiengesellschaft Pruning of authentication trees
CN109033841A (zh) * 2018-07-12 2018-12-18 杨城 一种写验分离的弱中心化可信数据存储系统和管理方法
CN109040082A (zh) * 2018-08-10 2018-12-18 阿里巴巴集团控股有限公司 用户的身份内容信息的认证、验证方法和装置
WO2019072293A2 (en) * 2018-12-13 2019-04-18 Alibaba Group Holding Limited DATA INSULATION IN A BLOCK CHAIN NETWORK

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024081809A1 (en) * 2022-10-12 2024-04-18 Khosla Ventures LLC Cryptographic systems and methods for providing services to authenticated users

Also Published As

Publication number Publication date
CN110311782A (zh) 2019-10-08
CN110311782B (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
WO2020220413A1 (zh) 个人信息的零知识证明方法、系统及存储介质
WO2020147383A1 (zh) 基于区块链系统的流程审批方法、装置、系统及非易失性存储介质
WO2018151427A1 (ko) 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 pki 기반의 인증을 통해 사용자의 로그인을 대행하는 방법 및 이를 이용한 서버
WO2018151425A1 (ko) Utxo 기반 프로토콜의 블록체인 데이터베이스를 사용하여 pki 기반의 인증을 통해 사용자의 로그인을 대행하는 방법 및 이를 이용한 서버
JP4240297B2 (ja) 端末機器、認証端末プログラム、機器認証サーバ、機器認証プログラム
WO2018194350A1 (ko) Utxo 기반 프로토콜을 이용한 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
WO2017135670A1 (ko) 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
WO2017135669A1 (ko) 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
WO2018030707A1 (ko) 인증 시스템 및 방법과 이를 수행하기 위한 사용자 단말, 인증 서버 및 서비스 서버
US7953977B2 (en) Security and ticketing system control and management
JP5869052B2 (ja) データセンタへのプラットフォームの内包検証
WO2020062642A1 (zh) 基于区块链的电子合同签署方法、装置、设备及存储介质
WO2022095730A1 (zh) 业务通信方法、系统、装置及电子设备
TW202036419A (zh) 區塊鏈網路中的資料隔離
WO2019132272A1 (ko) 블록체인 기반의 서비스로서의 아이디
WO2016169410A1 (zh) 登录方法、服务器和登录系统
WO2020189926A1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
WO2013025060A2 (ko) 사물지능통신에서 puf에 기반한 장치간 보안 인증 장치 및 방법
WO2020189927A1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
JP2016509443A (ja) より低いエントロピーを有する入力レコードについて追加的セキュリティをもたらす検証システム及び方法
WO2020220412A1 (zh) 基于零知识证明的公民隐私保护的方法、系统及存储介质
WO2021072881A1 (zh) 基于对象存储的请求处理方法、装置、设备及存储介质
WO2020253120A1 (zh) 网页注册方法、系统、设备和计算机存储介质
WO2020042464A1 (zh) 数据交互方法、装置、设备及可读存储介质
WO2018151426A1 (ko) Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 pki 기반의 인증을 통해 사용자의 로그인을 대행하는 방법 및 이를 이용한 서버

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19927041

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19927041

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19927041

Country of ref document: EP

Kind code of ref document: A1