A method for multi-node chain collaborative signature

By generating node chains in multi-node chain signatures and calculating public and private key pairs in sequence, a multi-node signature that only needs to be stored in one final signature is realized, which solves the problem of storage space waste and ensures the undeniability and identity authenticity of the signature.

CN115499134BActive Publication Date: 2025-08-12UNIV OF CHINESE ACAD OF SCI
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211115672.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-09-14
Publication Date
2025-08-12
Estimated Expiration
2042-09-14

AI Technical Summary

Technical Problem

The existing multi-node chain signature method requires storing multiple signature values, resulting in wasted storage space and cannot guarantee the undeniability of the signature.

Method used

A multi-node chain collaborative signature method is adopted. By generating node chains, the public and private key pairs of each node are generated in turn, and the user node initiates the signature calculation. Finally, the user node calculates the unique final signature to ensure that each node participates in the calculation.

Benefits of technology

The storage space requirement for multi-node chain signatures is reduced, while ensuring the undeniability of signatures and the proof of identity authenticity of multiple nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115499134B_ABST
    Figure CN115499134B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for chain-type collaborative signature of multiple nodes, which comprises the following steps: generating a node chain according to the signature order of each node participating in the chain-type collaborative signature; the node executing the first signature is the root node, and the node executing the last signature is the user node; the previous node is the parent node of the next node; in the key generation phase, starting from the root node, the public and private key pairs of each node are sequentially generated along the node chain; in the signature calculation phase, starting from the user node, each child node generates a random number and generates a signature parameter based on the random number and the public key of the parent node and sends it to its parent node; the root node generates its own signature parameter based on the signature parameter of the child node, then signs the message to be signed based on its own signature parameter and private key, and sends the generated signature to its child node; after each child node receives the signature of its parent node, it calculates a new signature in combination with its own private key and random number, and the signature calculated by the user node is used as the final signature.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of information, and in particular to a chain-type collaborative signature method involving multiple nodes. Background Art

[0002] Currently, digital signature technology is the primary means of ensuring authenticity and non-repudiation. A digital signature (also known as a public key digital signature) is a string of numbers that can only be generated by the sender and cannot be forged by others. This string of numbers also effectively proves the authenticity of the information sent by the sender.

[0003] The elliptic curve-based digital signature algorithm is one of the most widely used digital signature algorithms. my country's SM2 standard is also based on elliptic curves. In the elliptic curve signature algorithm, G is a base point of the elliptic curve, and its order n is a prime number. When multiple people need to sign the same document, especially in an approval process, it often needs to go through multiple approval nodes, with multiple approvers signing the document in sequence. From the signature of the approved applicant, through the signatures of multiple approval nodes, the entire review process is completed, forming a digital signature chain. This signature method can be called a multi-node chain signature. A problem with this signature method is that the final signature file contains multiple nested digital signatures. The number of digital signatures is related to the number of signing parties, and therefore requires a relatively large amount of storage space. Summary of the Invention

[0004] To overcome the drawback of existing multi-node chained signatures, which require the storage of multiple signature values, this invention provides a multi-node chained collaborative signature method. This method meets the requirements of multi-node chained signatures while only requiring the storage of a single final signature. Specifically, a valid final signature can only be generated collaboratively if and only if multiple nodes perform signature calculations sequentially. Although the final signature consists of only one digital signature, it fully guarantees that the signed data was signed sequentially by multiple signing nodes, and no single node can deny its participation in the signing process.

[0005] The technical solution adopted by the present invention to solve its technical problem is:

[0006] A method for chain-type collaborative signing of multiple nodes, comprising the following steps:

[0007] A node chain is generated based on the signature order of each node participating in the chained collaborative signature. The node that executes the first signature is called the root node of the node chain, and the node that executes the last signature is called the user node of the node chain. The previous node in the node chain is the parent node of the next node, and the next node is the child node of the previous node.

[0008] In the key generation phase, starting from the root node, the public and private key pairs of each node are generated in sequence along the node chain;

[0009] The signature calculation phase starts with the user node. Each child node generates its own random number and generates signature parameters based on the random number and the public key of the parent node, which are sent to its parent node. The root node generates its own signature parameters based on the signature parameters sent by its child nodes, and then signs the message to be signed based on its own signature parameters and private key, and sends the generated signature to its child nodes. After receiving the signature of its parent node, each child node calculates a new signature based on its own private key and the random number it has generated. The signature calculated by the user node is used as the final signature of the message to be signed.

[0010] Furthermore, the method for generating the public-private key pair of each node is as follows: the root node first generates its own public-private key pair and sends the public key to its child nodes, each child node randomly generates its own private key and generates its own public key based on its own private key and the public key of the parent node; the user node generates a user public key based on the public key generated by itself, and the user public key is used to verify the final signature.

[0011] Furthermore, the node chain is N1, N2, ..., N A , the i-th node N i The key pair is denoted as (d i ,P i ), d i For node N i The private key, P i For node N i , 1≤i≤A, A is the total number of nodes participating in the chain collaborative signature.

[0012] Furthermore, the method for generating the public and private key pairs of each node is:

[0013] 21) Root node N1 randomly generates its own private key d1, then calculates its own public key P1 based on the private key d1 and sends it to its child nodes;

[0014] 22) Child node N j Randomly generate your own private key d j ; Then according to the private key d j and public key P j-1 Generate your own public key P j Among them, P j-1 For child node N j The parent node N j-1 's public key; 1 <j<A;

[0015] 23) User Node N A Randomly generate your own private key d A ; Then according to the private key d A and P A-1Generate your own public key P A , and according to the public key P A Generate user public key P user Among them, P A-1 is user node N A The parent node N A-1 The public key of

[0016] Furthermore, the root node N1 calculates its own public key P1 according to P1=d1[*]G; the child node N j According to P j =d j [*]P j-1 Calculate and generate your own public key P j ; User node N A According to P A =d A [*]P A-1 Generate your own public key P A , user public key P user =P A [-]G; where G is the base point of the elliptic curve, [*] is the point multiplication operation on the elliptic curve, and [-] is the subtraction operation on the elliptic curve.

[0017] Furthermore, the method for generating the final signature is:

[0018] 31) User Node N A Generate a random number k A , then according to k A 、P A-1 Calculate the signature parameter Q A And send it to the parent node N A-1 ;

[0019] 32) Node N l Receive its child node N l+1 The signature parameter Q sent l+1 Then, generate a random number k l ; Then according to Q l+1 、k l Calculate the signature parameter Q l And send it to the parent node N l-1 ; Among them, A-1≥l>1;

[0020] 33) After receiving the signature parameter Q2 from the child node N2, the root node N1 generates a random number k1; then calculates the signature parameter Q1 based on Q2 and k1;

[0021] 34) Root node N1 calculates r = e + x1 mod n, s1 = d1 -1(k1+r) mod n, send (r, s1) to child node N2; where the signature parameter Q1 is the elliptic curve point; x1 is the x-coordinate value of the elliptic curve point Q1, e is the digest of the message M to be signed, d1 is the private key of the root node N1, and n is the order of the base point G;

[0022] 35) Child node N j Received from the parent node (r,s j-1 ), calculate s j =d j -1 (k j +s j-1 )mod n, (r,s j ) is sent to child node N j+1 ; 1 <j<A;

[0023] 36) User Node N A Receive parent node N A-1 Sent (r,s A-1 ) and calculate s=d A -1 (k A +s A-1 )-r mod n, and the final signature is obtained as (r, s).

[0024] Furthermore, user node N A According to Q A =k A [*]P A-1 Calculate the signature parameter Q A Node N l According to Q l =k l [*]P l-1 [+]Q l+1 Calculate the signature parameter Q l ; The root node N1 calculates the signature parameter Q1 according to Q1=k1[*]G[+]Q2.

[0025] Furthermore, the public key of the root node is generated by its private key and the elliptic curve base point G, and the public keys of other nodes are generated by their private keys and the public key of the parent node.

[0026] Furthermore, the random number has a value range of [1, n-1], where n is the order of the elliptic curve base point G.

[0027] Furthermore, the root node has multiple child nodes, thereby forming a tree node chain consisting of a root node, multiple intermediate nodes and multiple user nodes; the nodes between the root node and the user node are intermediate nodes.

[0028] The present invention is directed to the system consisting of N1, N2, ..., N A A total of A participants form a signature node chain. The first node N1 is called the root node, and the last node N A It is called a user node. The node behind is the child node of the previous node, and the previous node is the parent node of the node behind. Each node has a key pair. The i-th (1≤i≤A) node N i The key pair is denoted as (d i ,P i ), where d i For node N i The private key, P i For node N i The public key of the node. During key generation, starting with the root node, each node's public-private key pair is generated sequentially along the node chain. The root node first generates its own public-private key pair. Subsequent nodes randomly generate their own private keys and calculate their own public keys based on their own private keys and the parent node's public key. The user node generates its own public key, which is used to verify the signature generated by the chained collaborative signature method. Signature calculation is initiated by the user node, which calls the parent node in turn. The root node generates an intermediate signature value, which then returns along the node chain, ultimately calculating the complete signature. Each node generates its own random number and signature parameters and sends them to the parent node. The root node generates an intermediate signature based on the signature parameters sent by the previous node and its own private key, and sends it to the child node. After receiving the intermediate signature generated by the parent node, each node combines its own private key and the previously generated random number to calculate a new intermediate signature and sends it to the child node. The user node calculates the final signature (r, s).

[0029] The beneficial effects of the present invention are:

[0030] While ensuring that each node must participate in the calculation, the present invention reduces the size of the final signature formed by multi-node chain signatures, and only requires one digital signature to complete the authenticity proof of multiple node identities and the non-repudiation of signing behavior. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] Figure 1 It is a flowchart of an embodiment of a multi-node chain collaborative signature method of the present invention.

[0032] Figure 2 It is a schematic diagram of the process of chain-generating private keys and public keys of multiple nodes in the present invention.

[0033] Figure 3 It is a schematic diagram of the process of multiple nodes chain collaboration to complete signature calculation in the present invention. DETAILED DESCRIPTION

[0034] In view of the deficiency that multi-node chain signatures need to store multiple signature values, the present invention provides a method for multi-node chain collaborative signatures based on the SM2 algorithm.

[0035] In order to make the technical solution of the present invention clearer and more understandable, the solution of the present invention is further described in detail below with reference to the accompanying drawings and embodiments.

[0036] For ease of description, the participating nodes in the multi-node chain signature are respectively represented by symbols N1, N2, ..., N A Indicates that there are A participants in total forming a signature node chain. The first node N1 is called the root node, and the last node N A It is called a user node. The node behind is the child node of the node in front, and the node in front is the parent node of the node behind.

[0037] Figure 1 This is a flowchart of an embodiment of a multi-node chain collaborative signature method of the present invention, as shown in FIG. Figure 1 As shown, the following steps 11 to 13 are included.

[0038] Step 11: Each node has a key pair, the i-th (1≤i≤A) node N i The key pair is denoted as (d i ,P i ), where d i For node N i The private key, P i For node N i The public key of

[0039] Step 12: During key generation, starting with the root node, public and private key pairs are generated for each node along the node chain. The root node first generates its own public and private key pair. Subsequent nodes randomly generate their own private keys and calculate their own public keys based on their own private keys and the public key of their parent node. The user node generates its own public key, which is used to verify the signature obtained by the chained collaborative signature method.

[0040] Step 13: Signature calculation is initiated by the user node, which calls the parent node in turn. The root node generates an intermediate signature value, which is then returned along the node chain, ultimately resulting in the user node calculating the complete signature. Each node generates its own random number and signature parameters, which it then sends to the parent node. The root node generates an intermediate signature based on the signature parameters sent by the previous node and its own private key, and sends it to the child node. After receiving the intermediate signature generated by the parent node, each node combines its own private key and the previously generated random number to calculate a new intermediate signature and sends it to the child node. The user node then calculates the final signature (r, s).

[0041] Through the process shown in step 13, the complete signature of the message M to be signed can be generated.

[0042] Correspondingly, Figure 2 The schematic diagram of the process in which multiple nodes of the present invention generate their respective private keys and public keys in a chain is as Figure 2 shown, and includes the following steps 21 to 27.

[0043] Step 21: The root node N1 first randomly generates a private key d1 ∈ [1, n - 1];

[0044] Step 22: The root node N1 calculates the public key P1 = d1[*]G, where [*] is the point multiplication operation on the elliptic curve;

[0045] Step 23: The intermediate node N i (1 < i ≤ A) randomly generates a private key d i ∈ [1, n - 1];

[0046] Step 24: The intermediate node N i (1 < i ≤ A) calculates the public key P i = d i [*]P i-1 ;

[0047] Step 25: The user node N A randomly generates a private key d A ∈ [1, n - 1];

[0048] Step 26: The user node N A calculates the public key P A = d A [*]P A-1 ;

[0049] Step 27: The user node N A calculates the user public key P user = P A [-]G, where [-] is the subtraction operation on the elliptic curve.

[0050] The root node N1 generates its own public and private key pair through steps 21 to 22. Each intermediate node (N2 to N A-1 ) generates its own public and private key pair through steps 23 to 24. The user node N A generates its own public and private key pair and the user public key P user through steps 25 to 27. The public key of the root node is generated by its private key and the publicly known elliptic curve base point G, and the public keys of other nodes are generated by their private keys and the public keys of their parent nodes.

[0051] Figure 3 The schematic diagram of the process in which multiple nodes of the present invention complete the signature calculation through chain collaboration is as Figure 3 shown, and includes the following steps 31 to 39.

[0052] Step 31: User node N A Generate a random number k A ∈[1, n - 1];

[0053] Step 32: User node N A Calculate the signature parameter Q A = k A [*]P A-1 , and send Q A to the parent node N A-1 ;

[0054] Step 33: Node N i (A - 1 ≥ i > 1) receives the signature parameter Q i+1 sent by the child node N i+1 and then generates a random number k i ∈[1, n - 1];

[0055] Step 34: Node N i Calculate the signature parameter Q i = k i [*]P i-1 [+]Q i+1 , and send Q i to the parent node N i-1 ;

[0056] Step 35: After the root node N1 receives Q2 sent by the child node N2, generate a random number k1 ∈ [1, n - 1];

[0057] Step 36: The root node N1 calculates Q1 = k1[*]G[+]Q2;

[0058] Step 37: The root node N1 calculates r = e + x1 mod n, s1 = d1 -1 (k1 + r) mod n, and send (r, s1) to the child node N2;[[ID=​​​​​​​​​​​​​​​​​​​​​​​​​​​​A -1 (k A +s A-1 )-r modn, the final signature is (r,s).

[0061] In the above process, the user node initiates the signature calculation, calls the parent node in turn, generates the intermediate signature value by the root node, and then returns along the node chain in sequence, and finally the user node calculates the complete signature. Where [+] is the addition operation on the elliptic curve, x1 is the x-coordinate value of the elliptic curve point Q1, and e is the digest of the message to be signed.

[0062] During the implementation of the above process, multiple node chains can be established starting from the root node. In other words, a parent node can have multiple child nodes, thus forming a tree structure consisting of a root node, multiple intermediate nodes, and multiple leaf nodes. Each leaf node can represent a user, and the chain from the root node to each leaf node is an independent node chain, which is applicable to the multi-node chain collaborative signature method disclosed in this invention.

[0063] In summary, the above are only preferred embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.

Claims

1. A method for chain-based collaborative signing of multiple nodes, comprising the following steps: Generate a node chain based on the signature order of each node participating in the chain collaborative signature; The node that executes the first signature is called the root node of the node chain, and the node that executes the last signature is called the user node of the node chain; the previous node in the node chain is the parent node of the next node, and the next node is the child node of the previous node; In the key generation phase, starting from the root node, the public and private key pairs of each node are generated in sequence along the node chain; The signature calculation phase starts with the user node. Each child node generates its own random number and generates signature parameters based on the random number and the public key of the parent node, which are sent to its parent node. The root node generates its own signature parameters based on the signature parameters sent by its child nodes, and then signs the message to be signed based on its own signature parameters and private key, and sends the generated signature to its child nodes. After receiving the signature of its parent node, each child node calculates a new signature based on its own private key and the random number it has generated. The signature calculated by the user node is used as the final signature of the message to be signed.

2. The method according to claim 1, characterized in that The method for generating the public and private key pairs of each node is as follows: the root node first generates its own public and private key pair and sends the public key to its child nodes. Each child node randomly generates its own private key and generates its own public key based on its own private key and the public key of the parent node; The user node generates a user public key based on the public key generated by itself, and the user public key is used to verify the final signature.

3. The method according to claim 1 or 2, characterized in that The node chain is N1, N2, ..., N A , the i-th node N i The key pair is denoted as (d i ,P i ), d i For node N i The private key, P i For node N i , 1≤i≤A, A is the total number of nodes participating in the chain collaborative signature.

4. The method according to claim 3, characterized in that The method for generating the public and private key pairs of each node is: 21) Root node N1 randomly generates its own private key d1, then calculates its own public key P1 based on the private key d1 and sends it to its child nodes; 22) Child node N j Randomly generate your own private key d j ; Then according to the private key d j and public key P j-1 Generate your own public key P j ; Among them, P j-1 For child node N j The parent node N j-1 's public key; 1 <j<A; 23) User Node N A Randomly generate your own private key d A ; Then according to the private key d A and P A-1 Generate your own public key P A , and according to the public key P A Generate user public key P user Among them, P A-1 is user node N A The parent node N A-1 The public key of 5. The method according to claim 4, characterized in that The root node N1 calculates its own public key P1 according to P1=d1[*]G; the child node N j According to P j =d j [*]P j-1 Calculate and generate your own public key P j ; User node N A According to P A =d A [*]P A-1 Generate your own public key P A , user public key P user =P A [-]G; where G is the base point of the elliptic curve, [*] is the point multiplication operation on the elliptic curve, and [-] is the subtraction operation on the elliptic curve.

6. The method according to claim 4, characterized in that The method for generating the final signature is: 31) User Node N A Generate a random number k A , then according to k A 、P A-1 Calculate the signature parameter Q A And send it to the parent node N A-1 ; 32) Node N l Receive its child node N l+1 The signature parameter Q sent l+1 Then, generate a random number k l ; Then according to Q l+1 、k l Calculate the signature parameter Q l And send it to the parent node N l-1 ; Among them, A-1≥l>1; 33) After receiving the signature parameter Q2 from the child node N2, the root node N1 generates a random number k1; then calculates the signature parameter Q1 based on Q2 and k1; 34) Root node N1 calculates r = e + x1 mod n, s1 = d1 -1 (k1+r) mod n, send (r, s1) to child node N2; where the signature parameter Q1 is the elliptic curve point; x1 is the x-coordinate value of the elliptic curve point Q1, e is the digest of the message M to be signed, d1 is the private key of the root node N1, and n is the order of the base point G; 35) Child node N j Received from the parent node (r,s j-1 ), calculate s j =d j -1 (k j +s j-1 )mod n, (r,s j ) is sent to child node N j+1 ; 1 <j<A; 36) User Node N A Receive parent node N A-1 Sent (r,s A-1 ) and calculate s=d A -1 (k A +s A-1 )-r mod n, and the final signature is obtained as (r, s).

7. The method according to claim 6, characterized in that User Node N A According to Q A =k A [*]P A-1 Calculate the signature parameter Q A Node N l According to Q l =k l [*]P l-1 [+]Q l+1 Calculate the signature parameter Q l ; The root node N1 calculates the signature parameter Q1 according to Q1=k1[*]G[+]Q2.

8. The method according to claim 1 or 2, characterized in that The public key of the root node is generated by its private key and the elliptic curve base point G, and the public keys of other nodes are generated by their private keys and the public key of the parent node.

9. The method according to claim 1, characterized in that The random number has a value range of [1, n-1], where n is the order of the elliptic curve base point G.

10. The method according to claim 1, characterized in that The root node has multiple child nodes, thereby forming a tree node chain consisting of a root node, multiple intermediate nodes and multiple user nodes; the nodes between the root node and the user node are intermediate nodes.

Citation Information

Patent Citations

  • Certificateless security signature method based on SM2 algorithm

    CN107248909A

  • Method for voting using concatenated signatures

    CN109155089A