A data security sharing method and system based on blockchain

By designing a universally designated verifier signature proof solution under the open channel on the blockchain, the problems of user privacy protection and malicious propagation in data sharing are solved, efficient data security sharing is achieved, dependence on secure channels is avoided, and practical application needs are met.

CN117081752BActive Publication Date: 2025-08-08INST OF SOFTWARE - CHINESE ACAD OF SCI
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310906938.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-07-21
Publication Date
2025-08-08
Estimated Expiration
2043-07-21

AI Technical Summary

Technical Problem

The existing blockchain data sharing solution cannot effectively protect user privacy under the public channel, and requires the use of a secure channel to transmit private information signed by a designated verifier, which increases computing and communication overhead.

Method used

A secure, universally designated verifier signature proof scheme based on blockchain-based public channels is designed. System parameters are generated through the blockchain initialization algorithm, the signer and the proofor generate public and private keys and register, the signer generates and converts the signature, the proofor verifies the signature correctness, and executes an interactive authentication protocol in the public channel to verify the authenticity of the data.

Benefits of technology

It realizes the prevention of malicious data propagation under the public channel, while protecting user privacy, avoiding dependence on secure channels, and improving the efficiency and security of the data sharing system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117081752B_ABST
    Figure CN117081752B_ABST
Patent Text Reader

Abstract

The present invention relates to a data security sharing method and system based on blockchain. The method includes: the blockchain determines the system parameters and shares them with the signer, prover, and verifier; the signer and prover generate public and private keys and send them to the blockchain to complete registration; the prover requests the signer to generate a universally designated verifier signature in the blockchain, and after the signer signs the data, the signature is converted into a designated verifier signature, and the data is sent to the prover, and the designated verifier signature is uploaded to the blockchain; the prover downloads the designated verifier signature from the blockchain, restores the signature and verifies the correctness of the signature; the prover shares the data with the verifier, the verifier downloads the designated verifier signature from the blockchain, and executes an interactive authentication protocol with the prover to verify whether the data is signed by the signer. The present invention can not only realize the basic function of universally designated verifier signature certification, but also protect user privacy in public channels, and better meet practical application needs.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of information security technology, and in particular relates to a data security sharing method and system based on blockchain. Background Art

[0002] Blockchain data sharing is a technology that provides both inter-entity trust and decentralized data authentication. It is widely used in finance, the Internet of Things, healthcare, and other scenarios. Blockchain data sharing effectively addresses the issue of traditional data sharing relying on trusted third-party authentication of both parties. Data recipients can verify through the blockchain that the data of the data sharer has not been modified. However, there is a risk of user privacy data being maliciously disseminated by recipients. After receiving the data, the recipient may share it with other unauthorized users, who can then verify the data's authenticity based on the blockchain records, thereby infringing on the privacy of the data sharer.

[0003] To combat malicious activity, researchers at home and abroad have proposed blockchain data sharing schemes based on universally designated verifier signatures. Only designated verifiers can verify the authenticity of shared data. This not only ensures the verifiability of shared data within the blockchain but also protects user data privacy. However, existing schemes require the use of secure channels to transmit the private information contained in the universally designated verifier signatures, which incurs additional computational and communication costs. Summary of the Invention

[0004] The purpose of this invention is to design a more efficient data security sharing method and system based on blockchain, aiming to solve the problem of malicious data propagation faced by existing data sharing solutions, while getting rid of the dependence on secure channels under the premise of providing a universally designated verifier signature certification function.

[0005] The technical solution adopted in the present invention is as follows:

[0006] A data security sharing method based on blockchain, comprising the following steps:

[0007] The blockchain calls the initialization algorithm to determine the system parameters and shares the system parameters with the signer, prover, and verifier;

[0008] The signer and prover call the signer key generation algorithm and prover key generation algorithm respectively to generate public and private keys and send them to the blockchain to complete the registration;

[0009] The prover requests the signer to generate a universally designated verifier signature in the blockchain. After the signer calls the data signature algorithm to sign the data m, it calls the designated verification algorithm to convert the signature σ into the designated verifier signature σ * , and send the data m to the prover, and specify the verifier signature σ * Upload to the blockchain;

[0010] The prover downloads the specified verifier signature σ from the blockchain * , call the signature recovery algorithm to recover the signature σ, and call the data verification algorithm to verify the correctness of the signature;

[0011] The prover shares the data m with the verifier, and the verifier downloads the designated verifier signature σ from the blockchain * , and performs an interactive authentication protocol with the prover to verify whether the data m is signed by the signer.

[0012] Furthermore, the initialization algorithm inputs the security parameter λ, randomly selects large prime numbers p1 and q1, and satisfies q1|p1-1, and selects Choose a secure cryptographic hash function Output system parameters Where g represents the generator, Represents the simplified residue system modulo a prime number p1.

[0013] Furthermore, the signer key generation algorithm inputs the system parameter pp and randomly selects Calculate X = g x As the public key, output the signer's private key xsk S =x, public key pk S =X; the prover key generation algorithm inputs the system parameter pp, randomly selects large prime numbers p2 and q2, calculates n = p2q2, calculates its sum Carmichael function d = λ(n) = lcm(p2-1,q2-1), and outputs the prover's private key sk P =d, public key pk P =n; where Represents the set of elements in the set {1,2,...,q1} that are coprime to the element q1.

[0014] Furthermore, the data signature algorithm inputs system parameters pp, data m and signer private key sk S , randomly selected calculate Calculate s = r1 + esk S (mod q1), output signature σ=(R,s).

[0015] Furthermore, the specified verification algorithm inputs the system parameter pp, the data signature σ=(R,s) and the prover public key pk P , randomly selected Calculate the signature of the specified verifier Output the signature of the designated verifier σ * =(R,s * ).

[0016] Furthermore, the recovery signature algorithm inputs the system parameter pp, the designated verifier signature σ * and the prover's private key sk P , calculate partial signature where L(x) is defined as Output signature σ = (R, s).

[0017] Furthermore, the data verification algorithm inputs system parameters pp, data m, signer public key pk P and signature σ, calculate S1=g s (mod p1) and S2 = RX e (mod p1), if S1=S2, the algorithm outputs 1, otherwise it outputs 0.

[0018] Furthermore, the interactive authentication protocol uses an extraction algorithm to recover the random number used in the process of generating the universally designated verifier's signature, and uses the random number to complete the interactive authentication protocol, thereby verifying that the data m is signed by the signer.

[0019] Furthermore, the extraction algorithm inputs the system parameter pp, the designated verifier signature σ * =(R,s * ) and signature σ=(R,s), calculate s′=s * g -s (mod n 2 ), s=s′(mod n), and then the coefficients (-a, b) in the algorithm are calculated by extending the Euclidean algorithm to satisfy -ad+bn=1, and finally calculated Outputs the random number r2 in the specified verification algorithm.

[0020] A data security sharing system based on blockchain includes a blockchain end, a signing end, a proving end, and a verification end; the blockchain end calls an initialization algorithm to determine system parameters and shares the system parameters with the signing end, the proving end, and the verification end; the signing end and the proving end respectively call a signer key generation algorithm and a proving key generation algorithm to generate public and private keys and send them to the blockchain end to complete registration; the proving end requests the signing end to generate a universally designated verifier signature in the blockchain end, and the signing end calls a data signature algorithm to sign the data m, and then calls a designated verification algorithm to convert the signature σ into a designated verifier signature σ * , and send the data m to the prover, and specify the verifier signature σ * Upload to the blockchain end; the proving end downloads the specified verifier signature from the blockchain end * , call the recovery signature algorithm to recover the signature σ, and call the data verification algorithm to verify the correctness of the signature; the prover shares the data m with the verifier, and the verifier downloads the specified verifier signature σ from the blockchain* , and performs an interactive authentication protocol with the proving end to verify whether the data m is signed by the signing end.

[0021] Compared with the prior art, the present invention has the following advantages and beneficial effects:

[0022] Most existing data security sharing systems are unable to prevent the malicious dissemination of shared data. A small number of schemes that use universally designated verifier signatures can prevent malicious dissemination, but they cannot effectively protect user privacy in public channels. The present invention designs a secure universally designated verifier signature scheme for public channels and constructs a more efficient data security sharing system. This system not only implements the basic function of universally designated verifier signatures to prevent malicious data dissemination, but also ensures user privacy in public channels. Compared with existing data security sharing systems, the present invention is more practical and has better protection against malicious dissemination, and can better meet the needs of actual applications. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 This is a flowchart of an implementation method of a blockchain-based data security sharing method of the present invention, which includes four entities: blockchain, signer, prover, and verifier. DETAILED DESCRIPTION

[0024] The present invention will be described in detail below with reference to the embodiments and accompanying drawings. The following embodiment only represents one possible implementation of the present invention, not all possible implementations, and is not intended to limit the present invention.

[0025] 1. Symbols and Definitions

[0026] q: a large prime number.

[0027] g: generator.

[0028] The simplified residue system modulo a prime number p.

[0029] Secure cryptographic hashing function.

[0030] lcm(a,b): the least common multiple of a and b.

[0031] The set of elements in the set {1,2,...,n} that are relatively prime to element n.

[0032] D0: The public key of the recipient.

[0033] pk S : The signer's public key.

[0034] sk S : The signer's private key.

[0035] pk P : The prover's public key.

[0036] sk P : The prover's private key.

[0037] λ(n): Carmichael function.

[0038] σ: digital signature.

[0039] σ * : Specify the verifier signature.

[0040] 2. Secure Universally Designated Verifier Signature Proof Scheme in Public Channels

[0041] This paper designs a more efficient data security sharing system based on blockchain, mainly designating a secure universally designated verifier signature scheme under public channels, effectively avoiding the traditional scheme's reliance on secure channels, and effectively preventing the malicious spread of user data.

[0042] The present invention mainly includes nine parts: initialization (Setup), signer key generation (Sig-KGen), certifier key generation (Enc-KGen), data signature (Sign), data verification (Verify), designated verification (D-verifier), signature recovery (Recover), extraction (Extract), and interactive authentication (I-Verify), including the following eight algorithms and one protocol. The details are as follows:

[0043] Algorithm 1. Initialization (Setup): The algorithm inputs the security parameter λ, randomly selects large prime numbers p1 and q1, and satisfies q1|p1-1, and selects Choose a secure cryptographic hash function Algorithm output system parameters For specific parameter symbol definitions, please refer to "1. Symbols and Definitions".

[0044] Algorithm 2. Signer Key Generation (Sig-KGen): The algorithm inputs the system parameter pp, which is randomly selected Calculate X = g x As the public key, the algorithm outputs the signer's private key sk S =x, public key pk S =X.

[0045] Algorithm 3. Prover Key Generation (Enc-KGen): The algorithm inputs the system parameter pp, randomly selects large prime numbers p2 and q2, calculates n = p2q2, and calculates the sum Carmichael function d = λ(n) = lcm(p2-1,q2-1). The algorithm outputs the prover's private key sk P =d, public key pkP =n.

[0046] Algorithm 4. Data Signature (Sign): The algorithm inputs system parameters pp, data m and signer private key sk S Randomly select calculate Calculate s = r1 + esk S (mod q1). The algorithm outputs signature σ=(R,s).

[0047] Algorithm 5. Data Verification (Verify): Algorithm input system parameters pp, data m, signer public key pk P and signature σ. Calculation S1=g s (mod p1) and S2 = RX e (mod p1). If S1 = S2, the algorithm outputs 1, otherwise it outputs 0.

[0048] Algorithm 6. Designated Verification (D-verifier): The algorithm inputs system parameters pp, data signature σ = (R, s) and prover public key pk P , randomly selected Calculate the signature of the specified verifier The algorithm outputs the signature of the designated verifier σ * =(R,s * ).

[0049] Algorithm 7. Recover signature: The algorithm inputs the system parameter pp and the specified verifier signature σ * and the prover's private key sk P . Calculate partial signature where L(x) is defined as Output signature σ = (R, s).

[0050] Algorithm 8. Extract: The algorithm inputs the system parameter pp and the specified verifier signature σ * =(R,s * ) and signature σ=(R,s). Calculate s′=s * g -s (mod n 2 ), s=s′(mod n), and then the coefficients (-a, b) in the algorithm are calculated by extending the Euclidean algorithm to satisfy -ad+bn=1, and finally calculated Outputs the random number r2 in the specified verification algorithm.

[0051] Protocol 9. Interactive Authentication (I-Verify): The prover P and the verifier V jointly input the system parameters pp, data m, and the designated verifier signature σ* =(R,s * ), signer public key pk S and the prover's public key pk P The prover additionally inputs the signature σ=(R,s). The prover P randomly selects calculate and And send it to the verifier V, who randomly selects And send it to the prover P. The prover P calculates z = r3 + cs and sends it to the verifier V. The verifier V calculates S1 = g z 、 If S1=S2, S3=S4, then the verifier V outputs 1, otherwise it outputs 0.

[0052] Figure 1 This is a flowchart of an implementation method for secure data sharing based on blockchain, an embodiment of the present invention, which includes four entities: blockchain, signer, prover, and verifier. The method mainly includes the following steps:

[0053] First, the blockchain calls the initialization Setup algorithm to determine the system parameter pp, and shares the system parameter pp with other entities, namely the signer, prover, and verifier; the signer and prover call the Sig-KGen algorithm and Enc-KGen algorithm respectively to generate the public and private keys (pk s ,sk s ) and (pk P ,sk P ) and sent to the blockchain to complete the registration.

[0054] Then, the prover requests the signer to generate a universally designated verifier signature in the blockchain ( Figure 1 In step 1), the signer calls the Sign algorithm to sign the data m, and then calls the D-verifier algorithm to convert the signature σ into the specified verifier signature σ * ( Figure 1 Step 2 in ), and send the data m to the prover ( Figure 1 Step 4) in the above example, the designated verifier signature σ * Upload to the blockchain ( Figure 1 Step 3 in the previous step).

[0055] Then, the prover downloads the signature of the designated verifier σ from the blockchain * , call the Recover algorithm to recover the signature σ, and call the Verify algorithm to verify the correctness of the signature ( Figure 1 Step 5 in the previous step).

[0056] The prover can then share the data m with the verifier ( Figure 1In step 6), the verifier downloads the signature of the specified verifier σ from the blockchain * ( Figure 1 Step 7 in the above example) and perform the I-Verify protocol with the prover. The protocol needs to use the Extract algorithm to recover the random number used in the process of generating the universal verifier signature, and use the random number to complete the I-Verify protocol to verify whether the data m is signed by the signer, that is, to verify the authenticity of the data ( Figure 1 Step 8 in the previous step).

[0057] The above signers, provers, and verifiers are explained as follows:

[0058] Signer: An authorized user who generates and signs data, identifies a prover, and generates a universally designated verifier signature.

[0059] Prover: An authorized user who can determine whether the user's identity is an authorized user. In real-world application scenarios, this corresponds to the data sharer.

[0060] Verifier: An authorized user, corresponding to the data receiver in real-world applications. A verifier can only receive data and verify its authenticity, but cannot share data with unauthorized users to convince them of the data's authenticity.

[0061] Another embodiment of the present invention provides a data security sharing system based on blockchain, including a blockchain end, a signing end, a proving end, and a verification end (corresponding to the blockchain, signer, prover, and verifier in the above method, respectively); the blockchain end calls an initialization algorithm to determine system parameters and shares the system parameters with the signing end, proving end, and verification end; the signing end and proving end respectively call a signer key generation algorithm and a prover key generation algorithm to generate public and private keys and send them to the blockchain end to complete registration; the proving end requests the signing end to generate a universally designated verifier signature in the blockchain end, and the signing end calls a data signature algorithm to sign the data m, and then calls a designated verification algorithm to convert the signature σ into a designated verifier signature σ * , and send the data m to the prover, and specify the verifier signature σ * Upload to the blockchain end; the proving end downloads the specified verifier signature from the blockchain end * , call the recovery signature algorithm to recover the signature σ, and call the data verification algorithm to verify the correctness of the signature; the prover shares the data m with the verifier, and the verifier downloads the specified verifier signature σ from the blockchain * The blockchain, signing, proving, and verification terminals can each be implemented as a specific device, such as a computer or server. The algorithms used are described above in the description of the method of the present invention.

[0062] Another embodiment of the present invention provides a computer device (computer, server, etc.), which includes a memory and a processor, wherein the memory stores a computer program, the computer program is configured to be executed by the processor, and the computer program includes instructions for executing each step in the method of the present invention.

[0063] Another embodiment of the present invention provides a computer-readable storage medium (such as ROM / RAM, magnetic disk, optical disk), wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a computer, the steps of the method of the present invention are implemented.

[0064] The specific embodiments of the present invention disclosed above are intended to facilitate understanding and implementation of the present invention. Those skilled in the art will appreciate that various substitutions, changes, and modifications are possible without departing from the spirit and scope of the present invention. The present invention should not be limited to the embodiments disclosed in this specification; the scope of protection of the present invention shall be determined by the scope defined in the claims.

Claims

1. A data security sharing method based on blockchain, characterized in that: The following steps are involved: The blockchain calls the initialization algorithm to determine the system parameters and shares the system parameters with the signer, prover, and verifier; The signer and prover call the signer key generation algorithm and prover key generation algorithm respectively to generate public and private keys and send them to the blockchain to complete the registration; The prover requests the signer to generate a universally designated verifier signature in the blockchain. After the signer calls the data signature algorithm to sign the data m, it calls the designated verification algorithm to convert the signature σ into the designated verifier signature σ * , and send the data m to the prover, and specify the verifier signature σ * Upload to the blockchain; The prover downloads the specified verifier signature σ from the blockchain * , call the signature recovery algorithm to recover the signature σ, and call the data verification algorithm to verify the correctness of the signature; The prover shares the data m with the verifier, and the verifier downloads the designated verifier signature σ from the blockchain * , and performs an interactive authentication protocol with the prover to verify whether the data m is signed by the signer; The initialization algorithm inputs the security parameter λ, randomly selects large prime numbers p1 and q1, and satisfies q1|p1-1. Choose a secure cryptographic hash function Output system parameters Where g represents the generator, represents the simplified residue system modulo prime number p1; The signer key generation algorithm inputs the system parameter pp, randomly selects Calculate X = g x As the public key, output the signer's private key sk S =x, public key pk S =X; the prover key generation algorithm inputs the system parameter pp, randomly selects large prime numbers p2 and q2, calculates n = p2q2, calculates its sum Carmichael function d = λ(n) = lcm(p2-1,q2-1), and outputs the prover's private key sk P =d, public key pk P =n; where represents the set of elements in the set {1,2,...,q1} that are coprime to the element q1; The data signature algorithm inputs system parameters pp, data m and signer private key sk S , randomly selected calculate Calculate S = r1 + esk S (mod q1), output signature σ = (R, s); The specified verification algorithm inputs system parameters pp, data signature σ = (R, s) and prover public key pk P , randomly selected Calculate the signature of the specified verifier Output the signature of the designated verifier σ * =(R,s * ); The recovery signature algorithm inputs the system parameter pp, the designated verifier signature σ * and the prover's private key sk P , calculate partial signature where L(x) is defined as Output signature σ = (R, s).

2. The method according to claim 1, characterized in that The data verification algorithm inputs system parameters pp, data m, signer public key pk P and signature σ, calculate S1=g s (mod p1) and S2 = RX e (mod p1), if S1=S2, the algorithm outputs 1, otherwise it outputs 0.

3. The method according to claim 2, characterized in that The interactive authentication protocol uses an extraction algorithm to recover the random number used in the process of generating the universally designated verifier's signature, and uses the random number to complete the interactive authentication protocol, thereby verifying that the data m is signed by the signer.

4. The method according to claim 3, characterized in that The extraction algorithm inputs the system parameter pp, the designated verifier signature σ * =(R,s * ) and signature σ=(R,s), calculate s′=s * g -s (mod n 2 ), s=s′(mod n), and then the coefficients (-a, b) in the algorithm are calculated by extending the Euclidean algorithm to satisfy -ad+bn=1, and finally calculated Outputs the random number r2 in the specified verification algorithm.

5. A data security sharing system based on blockchain using the method according to any one of claims 1 to 4, characterized in that: It includes the blockchain side, the signing side, the proving side, and the verification side. The blockchain side calls the initialization algorithm to determine the system parameters and shares the system parameters with the signing side, the proving side, and the verification side. The signing side and the proving side respectively call the signer key generation algorithm and the proving key generation algorithm to generate the public and private keys and send them to the blockchain side to complete the registration. The proving end requests the signing end to generate a universally designated verifier signature in the blockchain end. After the signing end calls the data signature algorithm to sign the data m, it calls the designated verification algorithm to convert the signature σ into the designated verifier signature σ * , and send the data m to the prover, and specify the verifier signature σ * Upload to the blockchain end; the proving end downloads the specified verifier signature from the blockchain end * , call the recovery signature algorithm to recover the signature σ, and call the data verification algorithm to verify the correctness of the signature; the prover shares the data m with the verifier, and the verifier downloads the specified verifier signature σ from the blockchain * , and performs an interactive authentication protocol with the proving end to verify whether the data m is signed by the signing end.

Citation Information

Patent Citations

  • Generic designated verifier signature certification system based on SM2 digital signature

    CN113708927A