An Efficient Anti-Double Authentication Signature Generation and Verification Method and System Based on SM2 Signature

Through an anti-dual-factor authentication signature scheme based on SM2 signature, combined with zero-knowledge proof and secret sharing protocol, the problem of lack of domestic commercial cryptographic standards in the existing technology is solved, and efficient signature verification and anti-dual signature are achieved, which is suitable for applications such as electronic voting and blockchain.

CN116455577BActive Publication Date: 2025-08-01WUHAN UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310327812.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-30
Publication Date
2025-08-01
Estimated Expiration
2043-03-30

AI Technical Summary

Technical Problem

The existing technology lacks a dual-factor authentication signature scheme based on my country's commercial cryptographic standards, and mainly relies on international algorithms such as ECDSA and Schnorr forms, which cannot meet domestic needs.

Method used

Adopt a dual-factor authentication signature scheme based on SM2 signature, combining zero-knowledge proof and secret sharing protocol, and using standard parameters of SM2 signature algorithm, signatures are generated and verified to prevent double signatures.

Benefits of technology

It provides a dual-factor authentication signature solution based on SM2 signature to ensure that the signature is not forged and is suitable for electronic voting and blockchain fields, improving the security and authentication efficiency of signatures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116455577B_ABST
    Figure CN116455577B_ABST
Patent Text Reader

Abstract

The present invention discloses an efficient double - authentication - resistant signature generation and verification method and system based on SM2 signature. The present invention uses zero - knowledge proof, the original SM2 digital signature, and a secret - sharing protocol to construct the scheme. While having the property of non - forgery of the original signature, it signs the message composed of an address and a tag, and allows public extraction of the key for signatures on two different tags of the same address. Therefore, it can be applied to application scenarios for preventing double signatures, such as blockchain, electronic voting, etc., to prevent malicious behaviors such as double - spending and multiple voting.
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 particularly relates to a method and system for generating a dual-authentication signature based on SM2 signature. Background Art

[0002] Digital signature is an important cryptographic primitive used to provide guarantees for the integrity and authenticity of digital information. In many other applications, they are used to issue digital certificates for public keys in a public key infrastructure, can be used to ensure the reliable source of executable code, sign digital documents such as PDF documents (in a legally binding manner), and major encryption protocols such as TLS. Summary of the Invention

[0003] The purpose of the present invention is to propose a dual-authentication signature scheme based on SM2 signature, which uses zero-knowledge proof, original SM2 digital signature, and secret sharing protocol to construct the scheme.

[0004] First, we initialize a Diffie–Hellman tuple zero-knowledge proof:

[0005]

[0006] Where , . In this zero-knowledge proof protocol, is the secret input (i.e., witness ), and other parameters are public inputs.

[0007] The present invention designs a dual-authentication signature scheme based on SM2 signature. Dual-authentication signatures are a variant of digital signatures that have recently received wide attention. They have unforgeability and sign messages composed of addresses and tags. Their remarkable feature is that the signatures on two different tags for the same address allow public extraction of the key. Therefore, they are a means to prevent double signatures and can be applied in fields such as electronic voting and blockchain.

[0008] To ensure generality, the parameter selection of this patent is consistent with the standard parameters of the SM2 signature algorithm. The specific symbol descriptions are as follows:

[0009] : The length of the security parameter.

[0010] Elliptic curve parameters.

[0011] : System parameters.

[0012] : The order is a prime number The elliptic curve group, whose elements are the points on the elliptic curve.

[0013] Generator 。

[0014] 。

[0015] : Large prime number.

[0016] : Cyclic group Order of.

[0017] : Consisting of integers The set of integers formed.

[0018] : The partial public key of User A.

[0019] : User The partial private key of.

[0020] : Public key.

[0021] : Private key.

[0022] : Encryption public key.

[0023] : Encryption private key.

[0024] : Modulo Operation.

[0025] : Cryptographic hash function, 。

[0026] : Message value, in the form of 。

[0027] : The address in the message.

[0028] : The label in the message.

[0029] : Signature value.

[0030] The public string of zero-knowledge proof.

[0031] : Zero-knowledge proof.

[0032] : Boolean variable.

[0033] For the relationship zero-knowledge proof.

[0034] DDH: Diffie–Hellman tuple.

[0035] Specifically, the following technical solutions are adopted:

[0036] An efficient double-authentication signature generation and verification method based on SM2 signature, characterized by including:

[0037] Generate signature: Generate system parameters and keys according to the given security parameters, the keys include user private key and public key, and generate a signature according to the generated system parameters, user private key, and message;

[0038] Signature verification: Verify the signature according to the generated system parameters, generated signature, and message, and output "passed" or "not passed" according to the verification result.

[0039] In the above-mentioned efficient double-authentication signature generation and verification method based on SM2 signature, it includes:

[0040] Given security parameters , select a finite field Generate the elliptic curve equation mod The points satisfying the equation form an Abelian group .

[0041] Randomly select a generator whose order is , initialize public string of .

[0042] Output the system parameters .

[0043] In the above-mentioned efficient double-authentication signature generation and verification method based on SM2 signature,

[0044] User According to the system parameters , randomly select , obtain the user's partial public key .

[0045] Randomly select as the encryption private key, and obtain the encryption public key .

[0046] Set a total of addresses, for , randomly selected and , get the commitment value .

[0047] Output keys, including public keys }, and the private key .

[0048] In the above-mentioned efficient anti-double authentication signature generation and verification method based on SM2 signature,

[0049] user According to the generated system parameters , private key , and messages , calculate the hash value .

[0050] The message is in the form of , , ;

[0051] Random selection , get the middle value , median value , part of the signature value , , median value , generate the corresponding zero-knowledge proof

[0052] Output signature value .

[0053] In the above-mentioned efficient anti-double authentication signature generation and verification method based on SM2 signature, the verifier generates the system parameters ,information , signature value , verify the signature, specifically, let a Boolean variable ,and

[0054] First verification, verification .

[0055] Second verification, get the hash value . Median 。 . Verify the equation Is it true?

[0056] Third, verify and obtain ,verify Is it true?

[0057] If any one of the first verification to the third verification fails, output b = 0; if all of the first verification to the third verification are successful, output b = 1

[0058] Output b.

[0059] In the above-mentioned efficient dual - authentication signature generation and verification method based on SM2 signature, it further includes a user private key extraction step, specifically, simultaneously parse two new messages and judge the addresses of the two parsed messages;

[0060] If the addresses of the two new messages are the same and the tags in the messages are different, the parsing passes, and the signature is verified. If the verification passes, the user private key is extracted; otherwise, the extraction is terminated.

[0061] If the parsing fails, the extraction is terminated.

[0062] In the above - mentioned efficient dual - authentication signature generation and verification method based on SM2 signature, it includes

[0063] Parse and extract new messages For , the message is , the signature , ,

[0064] If , and then the parsing passes and the user's private key is obtained .

[0065] If , and any one of them does not hold, then the parsing fails and the extraction is terminated.

[0066] An efficient dual - authentication signature generation and verification system based on SM2 signature, characterized in that it includes:

[0067] Signature generation module: Generate system parameters and generate keys according to given security parameters. The keys include a user private key and a public key, and generate a signature according to the generated system parameters, user private key, and message;

[0068] Signature verification module: Verify the signature according to the generated system parameters, generated signature, and message, and output pass or fail according to the verification result.

[0069] In the above - mentioned efficient dual - authentication signature generation and verification system based on SM2 signature, it includes:

[0070] Given security parameters , select a finite field Generate the elliptic curve equation mod The points satisfying the equation form an Abelian group .

[0071] Randomly select a generator whose order is , initialize the public string of .

[0072] Output the system parameters .

[0073] In the above-mentioned efficient dual-authentication signature generation and verification system based on SM2 signature, it is characterized in that

[0074] the user According to the system parameters , randomly select , obtain the user's partial public key .

[0075] Randomly select as the encryption private key, and obtain the encryption public key .

[0076] Set a total of addresses. For , randomly select and , obtain the commitment value .

[0077] Output the key, including the public key }, and the private key .

[0078] Compared with the prior art, the present invention has the following advantages and beneficial effects: The existing dual-authentication signature schemes are mainly designed based on international algorithms, such as the ECDSA and Schnorr forms, lacking dual-authentication signatures based on China's commercial cryptography standards. This scheme proposes a dual-authentication signature scheme based on SM2 signature. [[ID=7">Brief Description of the Drawings ...

[0079] Attached Figure 1 is a schematic flow diagram of the method of the present invention.

[0080] Attached Figure 2 is a schematic signature and verification flow diagram of the present invention. Detailed Embodiments

[0081] The technical solution of the present invention will be further specifically described below through embodiments in conjunction with the accompanying drawings.

[0082] Embodiment:

[0083] The specific symbol descriptions are as follows:

[0084] : The length of the security parameter.

[0085] Elliptic curve parameters.

[0086] : System parameters.

[0087] : An elliptic curve group of prime order whose elements are points on the elliptic curve.

[0088] Generator .

[0089] .

[0090] : Large prime number.

[0091] : Cyclic group order.

[0092] : Consisting of integers integer set.

[0093] : The partial public key of user A.

[0094] : User partial private key.

[0095] : Public key.

[0096] : Private key.

[0097] : Encryption public key.

[0098] : Encryption private key.

[0099] : Modulo operation.

[0100] : Cryptographic hash function, .

[0101] : Message value, in the form of .

[0102] : Address in the message.

[0103] : Label in the message.

[0104] : Signature value.

[0105] Public string of the zero - knowledge proof.

[0106] : Zero - knowledge proof.

[0107] : Boolean variable.

[0108] For the relation Zero - knowledge proof.

[0109] DDH: Diffie–Hellman tuple.

[0110] The specific description of the double - authentication - resistant signature scheme based on SM2 signature is as follows (the scheme process is shown in Figure 1, and the signature and verification processes are shown in Figure 2):

[0111] 1) System initialization: Given the security parameter , perform the following steps:

[0112] a) Select a finite field Generate the elliptic curve equation mod The points satisfying the equation form an Abelian group .

[0113] b) Randomly select a generator Whose order is .

[0114] c) Initialize the Public string .

[0115] d) Output the system parameters .

[0116] 2) Key generation: Given the system parameters , a user Performs the following steps:

[0117] a) Randomly select Calculate the user's partial public key .

[0118] b) Randomly select as the encryption private key, and calculate the encryption public key .

[0119] c) Set a total of addresses. For , randomly select and .

[0120] d) Calculate the commitment value .

[0121] e) Output the public key }.

[0122] f) Output the private key .

[0123] 3) Signing: Given the system parameters , the private key of the user , and the message , where the form of the message is , where , , perform the following steps:

[0124] a) Calculate the hash value .

[0125] b) Randomly select , and calculate the intermediate value .

[0126] c) Calculate the intermediate value , which is also a partial signature value.

[0127] d) Calculate the partial signature value .

[0128] e) Calculate .

[0129] f) Calculate the intermediate value

[0130] g) Prove .

[0131] h) Output the signature value for the message .

[0132] 4) Verification: Given the system parameters , the message where the form of the message is , the signature value , the verifier performs the following steps:

[0133] a) Let a boolean variable .

[0134] b) Verify , if it does not hold, then .

[0135] c) Calculate the hash value .

[0136] d) Calculate the intermediate value 。

[0137] e) Calculate .

[0138] f) Verify whether the equation holds. If it does not hold, .

[0139] g) Calculate .

[0140] h) Verify whether holds. If it does not hold, .

[0141] i) Output b.

[0142] 5) Extraction: Given the system parameters , the message [[ID= fifty-seven]] signature , , extract the user's private key , and perform the following steps:

[0143] a) Parse the message as , the message is , if , and then perform the following steps, otherwise abort.

[0144] b) Verify whether the above signature is correct. If it is incorrect, then abort.

[0145] c) Calculate the user's private key .

[0146] d) Return the user's private key .

[0147] The specific embodiments described herein are merely illustrative of the spirit of the present invention. Those skilled in the art to which the present invention pertains may make various modifications or supplements to the described specific embodiments or use similar means for substitution, but they will not deviate from the spirit of the present invention or exceed the scope defined by the appended claims.

Claims

1. An efficient double authentication prevention signature generation and verification method based on SM2 signature, characterized in that, Including: Generating a signature: generating system parameters and generating a key according to given security parameters, where the key includes a user private key and a public key, and generating a signature according to the generated system parameters, user private key, and message; Signature verification: verifying the signature according to the generated system parameters, generated signature, and message, and outputting "passed" or "not passed" according to the verification result; Among them, generating a signature specifically includes: User A calculates a hash value e = H(m) according to the generated system parameters PP, private key sk, and message m; wherein, the form of the message is m = (i, p), i ≤ n, Randomly select Obtain the intermediate value (x1, y1) = k·G, the intermediate value r = (e + x1) mod q, and the partial signature value s = ((1 + d) -1 ·(k - r·d)) mod q, and the partial signature value z = ρ i ·p + d A and the intermediate value Generate the corresponding zero-knowledge proof Outputting a signature value σ = (r, s, z, π); Signature verification includes: The verifier verifies the signature according to the generated system parameters PP, message m = (I, P), and signature value σ = (R, S, Z, π). Specifically, let a boolean variable b = 1, and First verification, verify Second verification: Obtain the hash value E = h(M), and the intermediate value (x1, y1) = s·G + (r + s)·P A ; The intermediate value R = (e + x1) mod q, and verify whether the equation R = r holds; Third verification, obtain the intermediate value Verify whether the zero-knowledge proof π holds; If any one of the first verification to the third verification fails, then output b = 0; if all of the first verification to the third verification are successful, then output b = 1; Outputting b; The method further includes a step of extracting a user private key, specifically: Parsing and analyzing two new messages simultaneously, and judging the addresses of the two parsed messages; If the addresses of the two new messages are the same and the tags in the messages are different, then the parsing is passed, and the signature is verified. If the verification is passed, the user private key is extracted, otherwise the extraction is terminated; If the parsing fails, the extraction is terminated.

2. An efficient anti-duplicate authentication signature generation and verification method based on SM2 signature according to claim 1, characterized in that, Including: Given security parameter 1 n , select a finite field Generate the elliptic curve equation y 2 = x 3 + ax + b mod p, and the points satisfying the equation form an Abelian group Randomly select a generator whose order is q, and initialize the public string crs of POK DDH ; Output system parameters 3. The efficient dual - authentication signature generation and verification method based on SM2 signature according to claim 1, characterized in that User A randomly selects according to system parameter PP Obtain the partial public key P of the user A = d A ·G; Randomly select a random value As the encryption private key, obtain the encryption public key P e = x e ·G; Suppose there are n addresses in total. For i ∈ [n], randomly select random values and random value Obtain the commitment value C i ←(C i,1 , C i,2 )←(t i ·G, t i ·P e + ρ i ·G); Output keys, including public key pk = {P A , P e , (C i ) i∈[n]}, and private key sk = {d, (r i , ρ i ) i∈[n]}.

4. An efficient anti-duplicate authentication signature generation and verification method based on SM2 signature according to claim 1, characterized in that, Including Parsing and extracting new messages (m1, m2), m1 is (i1, p1), signatures (σ1, σ2); If i1 = i2 and p1 ≠ p2, then the parsing passes and the user's private key is obtained If any one of i1 = i2 and p1 ≠ p2 does not hold, then the parsing fails and the extraction is terminated.

5. An efficient anti-duplicate authentication signature generation and verification system based on SM2 signature, characterized in that, Implemented based on the efficient dual - authentication signature generation and verification method based on SM2 signature described in claim 1, this system includes: Signature generation module: generating system parameters and generating a key according to given security parameters, where the key includes a user private key and a public key, and generating a signature according to the generated system parameters, user private key, and message; Signature verification module: verifying the signature according to the generated system parameters, generated signature, and message, and outputting "passed" or "not passed" according to the verification result.

6. An efficient anti-duplicate authentication signature generation and verification system based on SM2 signature according to claim 5, characterized in that, The signature generation module is specifically used for: Given security parameter 1 n , select a finite field Generate the elliptic curve equation y 2 = x 3 + ax + b mod p, and the points satisfying the equation form an Abelian group Randomly select a generator whose order is q, and initialize the public string crs of POK DDH ; Output system parameters 7. An efficient anti-duplicate authentication signature generation and verification system based on SM2 signature according to claim 5, characterized in that, The signature generation module is specifically used for: User A randomly selects according to system parameter PP Obtain the partial public key P of the user A = d A ·G; Randomly select a random value As the encryption private key, obtain the encryption public key P e = x e ·G; Suppose there are n addresses in total. For i ∈ [n], randomly select random values and random value Obtain the commitment value C i ←(C i,1 , C i,2 )←(t i ·G, t i ·P e + ρ i ·G); Output keys, including the public key pk = {p A , p e , (C i ) i∈[n]}, and the private key sk = {d, (r i , ρ i ) i∈[n]}.

Citation Information

Patent Citations

  • Condition privacy protection method of Internet of vehicles for batch verification signature

    CN108881225A

  • Method and system for generating deniable ring signature based on SM2 algorithm

    CN115174101A