Collaborative signature method, apparatus and system, and device
By performing dot product operations on elliptic curves and generating signature public keys locally on the computing device, the problem of low signature efficiency in zero-knowledge proofs is solved, and an efficient collaborative signature process is achieved.
Patent Information
- Application Number
- PCT/CN2024/142036
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-28
- Filing Date
- 2024-12-24
- Publication Date
- 2025-12-04
AI Technical Summary
In existing technologies, zero-knowledge proofs require multiple interactions between each verifier and the verifier, resulting in low signature efficiency.
Each participating computing device performs a dot product operation on an elliptic curve locally to jointly calculate the signature public key. Each device then generates its own signature private key based on the public and private keys, and the collaborative signature is obtained through joint calculation.
It improves signing efficiency, reduces the number of interactions during the signing process, and enhances the overall efficiency of signing.
Smart Images

Figure CN2024142036_04122025_PF_FP_ABST
Abstract
Description
Collaborative signature method, device, equipment and system
[0001] The present application claims priority to the Chinese patent application No. 202410675636.X, filed on May 28, 2024, and entitled "Collaborative signature method, device, equipment and system", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0002] The present application relates to the field of information security, and in particular to a collaborative signature method, device, equipment and system. BACKGROUND
[0003] In the financial industry and other industries, when sharing data and joint computing, multiple parties need to sign or encrypt an operation request or operation result at the same time to ensure that the corresponding operation can only be executed with the consent of multiple parties, thereby ensuring the security of each participating party.
[0004] In the prior art, based on zero-knowledge proof between a verifier and a verified party, the private key for signature is held by m verifiers, and the signature process needs to be completed by m verifiers to obtain a complete signature.
[0005] However, in the above process, the zero-knowledge proof needs to be interacted multiple times between each verifier and the verified party, which is complex and low in signature efficiency. SUMMARY
[0006] Embodiments of the present application provide a collaborative signature method, device, equipment and system to solve the problem of low signature efficiency.
[0007] In a first aspect, the present application provides a collaborative signature method, which is applied to an i-th computing device in m computing devices, m is a positive integer greater than or equal to 1; the method comprises:
[0008] determining a first parameter and a first secret value of the i-th computing device; and sending the first parameter and the first secret value of the i-th computing device to an (i+1)-th computing device; wherein the first parameter represents a point corresponding to the computing device on a preset elliptic curve; the (i+1)-th computing device is configured to process the first parameter and the first secret value of the i-th computing device to obtain a signature public key and a second secret value of the (i+1)-th computing device;
[0009] receiving the signature public key and the second secret value of the (i+1)-th computing device sent by the (i+1)-th computing device; and determining a signature private key and a second secret value of the i-th computing device according to the second secret value of the (i+1)-th computing device;
[0010] sending the second secret value of the i-th computing device and the signature public key to the (i-1)-th computing device; wherein the (i-1)-th computing device is configured to process the second secret value of the i-th computing device and the signature public key to obtain the second secret value of the (i-1)-th computing device and a signature private key;
[0011] determining a first signature and a first signature parameter of the i-th computing device according to the signature public key and the signature private key of the i-th computing device; wherein the first signature is a signature content of a first part of the collaborative signature; and the first signature parameter is a signature intermediate value corresponding to each computing device in a second part of the collaborative signature;
[0012] sending the first signature and the first signature parameter of the i-th computing device to the (i-1)-th computing device; wherein the (i-1)-th computing device is configured to process the first signature parameter of the i-th computing device and the first signature to obtain the collaborative signature; and the collaborative signature is configured to be used for identity verification processing.
[0013] In a possible implementation, the first parameter and the first secret value of the i-th computing device are determined by:
[0014] determining an initial private key of the i-th computing device; and receiving a public key parameter sent by the (i-1)-th computing device, a first secret value of the (i-1)-th computing device and a first parameter; wherein the first parameter represents a point corresponding to the computing device on a preset elliptic curve; and the first secret value is obtained by encrypting the initial private key of the (i-1)-th computing device based on the public key parameter generated by the first computing device;
[0015] determining the first parameter of the i-th computing device according to the initial private key of the i-th computing device and the first parameter of the (i-1)-th computing device;
[0016] determining the first secret value of the i-th computing device according to the initial private key of the i-th computing device and the first secret value of the (i-1)-th computing device.
[0017] In a possible implementation, the first parameter of the i-th computing device is wherein S i is the initial private key of the i-th computing device, Pk i-1 is the first parameter of the (i-1)-th computing device, and G is a base point on a preset elliptic curve.
[0018] In a possible implementation, the first secret value of the i-th computing device is wherein S i is the first parameter of the i-th computing device, and E i-1is a first secret value of the i th computing device; pk is a public key parameter generated by the first computing device; Enc pk is a preset encryption operation.
[0019] In a possible implementation, the second secret value of the i th computing device is determined according to the second secret value of the i + 1 th computing device, and the second secret value of the i th computing device includes:
[0020] The signature private key of the i th computing device is determined.
[0021] The second secret value of the i th computing device is determined according to the second secret value of the i + 1 th computing device and the signature private key.
[0022] In a possible implementation, the second secret value of the i th computing device includes: wherein E i+1 is the second secret value of the i + 1 th computing device, Sk i is the signature private key of the i th computing device; pk is a public key parameter generated by the first computing device; Enc pk is a preset encryption operation; E i is a first secret value of the i th computing device.
[0023] In a possible implementation, the first signature and the first signature parameter of the i th computing device are determined according to the signature public key and the signature private key of the i th computing device, and the determining includes:
[0024] The second signature parameter of the i th computing device is determined according to the signature public key and the signature private key of the i th computing device, and the second signature parameter represents a signature intermediate point of the computing device on a preset elliptic curve.
[0025] The second signature parameter of the i th computing device is sent to the i + 1 th computing device, and the i + 1 th computing device is configured to process the second signature parameter of the i th computing device to obtain the first signature and the first signature parameter of the i + 1 th computing device.
[0026] The first signature and the first signature parameter of the i + 1 th computing device sent by the i + 1 th computing device are received.
[0027] The first signature parameter of the i th computing device is determined according to the first signature and the first signature parameter of the i + 1 th computing device.
[0028] In a possible implementation, the second signature parameter of the i th computing device is determined according to the signature public key and the signature private key of the i th computing device, and the determining includes:
[0029] Determine the random number for the i-th computing device;
[0030] Based on the signature public key, the random number of the i-th computing device, and the signature private key, the second parameter of the i-th computing device is determined; wherein, the second parameter represents the point on the preset elliptic curve corresponding to the computing device;
[0031] The second signature parameter of the i-th computing device is determined based on the second parameter of the i-th computing device.
[0032] In one possible implementation, the second parameter P of the i-th computing device i =[Sk i k i ](P+G); where Sk i k is the signing private key for the i-th computing device; i is a random number for the i-th computing device; P represents the point on the preset elliptic curve corresponding to the signature public key, and G is the base point on the preset elliptic curve.
[0033] In one possible implementation, the second signature parameter of the i-th computing device Among them, Q i-1 For the second signature parameter of the (i-1)th computing device, P i This is the second parameter of the i-th computing device.
[0034] In one possible implementation, determining the first signature parameter of the i-th computing device based on the first signature and the first signature parameter of the (i+1)-th computing device includes:
[0035] If it is determined that the first signature is not zero, then the random number and signature private key of the i-th computing device are determined;
[0036] The first signature parameters of the i-th computing device are determined based on the first signature, the first signature parameters of the (i+1)-th computing device, the random number of the i-th computing device, and the signature private key.
[0037] In one possible implementation, the first signature parameter of the i-th computing device Among them, Sk i s is the signature private key for the i-th computing device. i+1 For the (i+1)th computing device, k is the first signature parameter. i is a random number for the i-th computing device; n is the order of the preset elliptic curve; mod() is the modulo operation.
[0038] In a possible implementation, the first signature r=(x+e)mod(n); wherein x is an abscissa of a signature intermediate point represented by a signature parameter of the mth computing device; e represents digest information of a message to be signed calculated by the mth computing device; n is an order of a preset elliptic curve; and mod() is a modulo operation.
[0039] In a possible implementation, the signature private key S k1 of the first computing device is Dec sk (E2'); wherein sk is a private key parameter generated by the first computing device; E2' is a second secret value of the second computing device; Dec sk () is a preset decryption operation.
[0040] In a possible implementation, the mth computing device is configured to determine the first parameter of the mth computing device as the signature public key.
[0041] In a possible implementation, the first computing device is configured to, when the second signature obtained based on the first computing device calculating the first signature parameter of the second computing device is not zero, splice the second signature and the first signature to obtain the collaborative signature.
[0042] In a second aspect, the present application provides a collaborative signature device, which is applied to an ith computing device in m computing devices, m is a positive integer greater than or equal to 1; and the device comprises:
[0043] A first sending module configured to determine a first parameter and a first secret value of the ith computing device, and send the first parameter and the first secret value of the ith computing device to an (i+1)th computing device; wherein the first parameter represents a point corresponding to a computing device on a preset elliptic curve; and the (i+1)th computing device is configured to process the first parameter and the first secret value of the ith computing device to obtain a signature public key and a second secret value of the (i+1)th computing device.
[0044] A first determining module configured to receive the signature public key and the second secret value of the (i+1)th computing device sent by the (i+1)th computing device, and determine a second secret value of the ith computing device according to the second secret value of the (i+1)th computing device.
[0045] A second sending module configured to send the second secret value of the ith computing device and the signature public key to an (i-1)th computing device; wherein the (i-1)th computing device is configured to process the second secret value of the ith computing device and the signature public key to obtain a signature private key of the (i-1)th computing device.
[0046] a second determining module, configured to determine a first signature and a first signature parameter of the i-th computing device according to the signature public key and a signature private key of the i-th computing device; the first signature is a signature of a first part of the collaborative signature; and the first signature parameter is a signature intermediate value corresponding to each computing device in a second part of the collaborative signature;
[0047] a third sending module, configured to send the first signature and the first signature parameter of the i-th computing device to an (i-1)-th computing device; the (i-1)-th computing device is configured to process the first signature parameter of the i-th computing device and the first signature to obtain the collaborative signature; and the collaborative signature is configured to perform identity verification processing.
[0048] In a third aspect, the present application provides a computing device, comprising: a memory and a processor.
[0049] The memory stores computer-executable instructions.
[0050] The processor executes the computer-executable instructions stored in the memory, so that the processor performs the method according to the first aspect and / or various possible implementation manners of the first aspect.
[0051] In a fourth aspect, the present application provides a collaborative signature system, comprising: m computing devices, m being a positive integer greater than or equal to 1; and the computing devices are configured to implement the method according to the first aspect and / or various possible implementation manners of the first aspect.
[0052] In a fifth aspect, the present application provides a computer-readable storage medium, which stores computer-executable instructions; when the computer-executable instructions are executed by a processor, the computer-executable instructions are configured to implement the method according to the first aspect and / or various possible implementation manners of the first aspect.
[0053] In a sixth aspect, the present application provides a computer program product, comprising a computer program; when the computer program is executed by a processor, the computer program is configured to implement the method according to the first aspect and / or various possible implementation manners of the first aspect.
[0054] The collaborative signature method, device, equipment and system provided by the present application can complete the required point multiplication operation on an elliptic curve locally by each computing device participating in signature according to a respective parameter and a secret value, obtain a signature public key through common calculation, and generate a respective signature private key through each computing device participating in signature based on the signature public key, so that each computing device participating in signature obtains a collaborative signature through common calculation based on the signature private key and the signature public key; and then, the common signature process can be completed, and the signature efficiency is improved. BRIEF DESCRIPTION OF DRAWINGS
[0055] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0056] Figure 1 is a schematic diagram of an application scenario provided in this application;
[0057] Figure 2 is a flowchart illustrating a collaborative signature method provided in this application;
[0058] Figure 3 is a flowchart illustrating another collaborative signature method provided in this application;
[0059] Figure 4 is a structural schematic diagram of a collaborative signature device provided in this application;
[0060] Figure 5 is a schematic diagram of the structure of a computing device provided in an embodiment of this application.
[0061] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation
[0062] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application.
[0063] First, let me explain the terms used in this application:
[0064] Data signature technology: Data signature technology is an encryption technique used to verify data integrity and authenticate data origin. Through data signing, the sender encrypts the data with their private key to generate a digital signature, and then sends the data and digital signature together to the recipient. The recipient can use the sender's public key to decrypt and verify the digital signature, thereby confirming the integrity and authenticity of the data.
[0065] In the financial industry and other sectors, when data sharing and collaborative computing are conducted, multiple parties need to simultaneously sign or encrypt a certain computation request or result to ensure that the corresponding computation operation can only be executed with the mutual approval of all parties, thereby protecting the security of each participant.
[0066] In one example, based on zero-knowledge proof between the verifier and the verifier, the private key for signing is held by m verifiers, and the signing process requires the participation of m verifiers to obtain a complete signature.
[0067] However, in the above process, zero-knowledge proof requires multiple interactions between each verifier and the verifier, which is highly complex and leads to low signing efficiency.
[0068] In another example, a multi-party collaborative signature scheme is mainly designed based on signature algorithms such as DSA, ECDSA, and SM2. Its implementation steps are similar to those of various signature algorithms, and all include two main stages: key generation and signature. Here, taking the scheme based on the SM2 algorithm as an example, for m participants, the general steps are as follows: In the key generation stage, each participant generates its own signing private key Ski, and each participant collaboratively calculates the signing public key Pk; In the signing stage, the first participant generates a random number k1, calculates the midpoint R1 = [k1]G of the elliptic curve and sends it to the second participant; the second to m-1 participants generate a random number ki, combine it with their own signing private key Ski to calculate the midpoint Ri of the elliptic curve Ri = [Ski]Ri-1 + [ki]G and send it to the (i+1)th participant; the m-th participant calculates the message digest e to be signed, and calculates the signature r based on the received midpoint of the elliptic curve; from the m-th participant to the second participant, each combines the signing private key Ski and the random number ki to generate the intermediate value si of the signature s; the first participant calculates the final signature value s and obtains the complete signature (r, s).
[0069] However, in the above process, since the intermediate point Ri-1 is transmitted to the current participant after being calculated by the previous participant, the calculation of [Ski]Ri-1 cannot be performed in advance, and its time loss will directly affect the overall signature efficiency, resulting in low signature efficiency.
[0070] The collaborative signature method provided in this application involves each participating party performing the required dot product operation on an elliptic curve locally to jointly calculate the signature public key. Then, each participating party generates its own signature private key through additive homomorphic operations based on the signature public key. Finally, each participating party jointly calculates the collaborative signature using both the signature private key and the signature public key. This solves the technical problem of low signature efficiency.
[0071] Figure 1 is a schematic diagram of an application scenario provided by this application. As shown in Figure 1, the specific application scenario of this application includes m computing devices. Based on the i-th computing device 101 among the m computing devices, the first parameter and the first secret value of the i-th computing device 101 are sent to the (i+1)-th computing device 101 to obtain the signature public key and the second secret value of the (i+1)-th computing device. The required dot product operation on the elliptic curve is then performed locally to generate the signature private key of the i-th computing device 101. Each computing device 101 calculates together based on the signature private key and the signature public key to obtain the collaborative signature.
[0072] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.
[0073] Figure 2 is a flowchart illustrating a collaborative signature method provided in this application. As shown in Figure 2, this method is applied to the i-th computing device out of m computing devices, where m is a positive integer greater than or equal to 1. The method includes:
[0074] 201. Determine the first parameter and the first secret value of the i-th computing device; and send the first parameter and the first secret value of the i-th computing device to the (i+1)-th computing device; wherein, the first parameter represents the point on the preset elliptic curve corresponding to the computing device; the (i+1)-th computing device is used to process the first parameter and the first secret value of the i-th computing device to obtain the signature public key and the second secret value of the (i+1)-th computing device.
[0075] For example, the execution subject in this embodiment is the i-th computing device among m computing devices. The i-th computing device can be a physical device or a virtual device used for collaborative signature.
[0076] The i-th computing device first generates its first parameter based on a locally preset elliptic curve algorithm. This first parameter represents the point on the preset elliptic curve corresponding to the i-th computing device. The i-th computing device then performs encryption calculations using an additive homomorphic cryptography algorithm to obtain its secret value, i.e., the first secret value. The i-th computing device then sends its first parameter and first secret value to the (i+1)-th computing device. After receiving the first parameter and first secret value from the ith computing device, the (i+1)th computing device processes the first parameter and first secret value from the ith computing device based on its local preset elliptic curve algorithm to obtain the first parameter and first secret value of the (i+1)th computing device. Then, the (i+1)th computing device sends the obtained first parameter and first secret value to the (i+2)th computing device, and so on, until the m-th computing device receives the first parameter and first secret value from the (m-1)th computing device. The m-th computing device processes the first parameter and first secret value from the (m-1)th computing device to obtain the signing public key. The m-th computing device processes the signing public key to obtain the second secret value of the m-th computing device. The m-th computing device sends the signing public key and the second secret value of the m-th computing device to the (m-1)th computing device for calculation to obtain the second secret value of the (m-1)th computing device, and so on, until the second secret value of the (i+1)th computing device is obtained.
[0077] 202. Receive the signing public key and the second secret value of the (i+1)th computing device; and determine the signing private key and the second secret value of the (i+1)th computing device based on the second secret value of the (i+1)th computing device.
[0078] For example, the (i+1)th computing device sends the obtained signature public key and the second secret value of the i-th computing device to the i-th computing device. The i-th computing device receives the signature public key and the second secret value sent by the (i+1)th computing device, and performs calculation processing on the second secret value of the (i+1)th computing device based on a preset encryption algorithm to obtain the signature private key and the second secret value of the i-th computing device.
[0079] 203. Send the second secret value and the signature public key of the i-th computing device to the (i-1)-th computing device; wherein the (i-1)-th computing device is used to process the second secret value and the signature public key of the i-th computing device to obtain the signature private key of the (i-1)-th computing device.
[0080] For example, the i-th computing device sends its second secret value and signature public key to the (i-1)-th computing device. The (i-1)-th computing device receives the second secret value and signature public key from the i-th computing device and processes them using a preset encryption algorithm to obtain its own second secret value and signature private key. The (i-1)-th computing device then sends its second secret value and signature public key to the (i-2)-th computing device, and so on, until the first computing device receives its own second secret value and signature private key. Thus, each computing device obtains its own second secret value and signature private key for processing.
[0081] 204. Based on the signature public key and the signature private key of the i-th computing device, determine the first signature and the first signature parameters of the i-th computing device; wherein, the first signature is the signature content of the first part of the collaborative signature; and the first signature parameters are the intermediate values corresponding to each computing device in the second part of the collaborative signature.
[0082] For example, for the i-th computing device, based on the preset SM2 signature algorithm, the obtained signature public key and the signature private key of the i-th computing device are processed to obtain a first signature and a first signature parameter of the i-th computing device. The first signature parameter is the signature content of the first part of the collaborative signature, and the second signature is the signature intermediate value corresponding to the i-th computing device in the second part of the collaborative signature.
[0083] 205. Send the first signature and the first signature parameter of the i-th computing device to the (i-1)-th computing device; wherein, the (i-1)-th computing device is used to process the first signature parameter and the first signature of the i-th computing device to obtain the collaborative signature; the collaborative signature is used for identity verification processing.
[0084] For example, the i-th computing device sends the obtained first signature and its first signature parameter to the (i-1)-th computing device. After receiving the first signature and the first signature parameter of the i-th computing device, the (i-1)-th computing device processes the first signature parameter and the first signature of the i-th computing device to obtain the first signature parameter of the (i-1)-th computing device, and so on, to obtain the first signature parameter of the first computing device. Then, based on the first signature parameter and the first signature of the first computing device, a collaborative signature can be obtained. This collaborative signature is used for identity verification processing, such as ensuring that the sender of the message is legitimate and that the message has not been tampered with during transmission. By verifying the signature, the receiver can confirm the integrity and authenticity of the message, thereby ensuring the security of communication.
[0085] The collaborative signature method provided in this application involves each participating computing device performing a dot product operation on an elliptic curve locally based on its own parameters and secret value to jointly calculate the signature public key. Then, each participating computing device generates its own signature private key through additive homomorphic operations based on the signature public key. Finally, each participating computing device calculates the collaborative signature using the signature private key and the signature public key. This process completes the collaborative signature process and improves signature efficiency.
[0086] Figure 3 is a flowchart illustrating another collaborative signature method provided in this application. As shown in Figure 3, this embodiment describes the collaborative signature method in detail based on the embodiment in Figure 2. The method includes:
[0087] 301. Determine the initial private key of the i-th computing device; and receive the public key parameter, the first secret value of the i-1-th computing device, and the first parameter sent by the (i-1)-th computing device; wherein, the first parameter represents the point on the preset elliptic curve corresponding to the computing device; the first secret value is obtained by encrypting the initial private key of the (i-1)-th computing device based on the public key parameter generated by the first computing device.
[0088] For example, a secret initial private key S is generated for each participant. i ∈[1,n-1], that is, determining the initial private key of the i-th computing device. The first computing device generates a public-private key pair (pk, sk) for an additive homomorphic cryptography algorithm. For the (i-1)-th computing device, the (i-1)-th computing device generates its initial private key. Based on the first computing device, it performs elliptic curve cryptography on the generated public key parameters to obtain the first parameter of the first computing device, which represents the point on the preset elliptic curve corresponding to the computing device. Then, it applies the additive homomorphic cryptography algorithm to calculate the first secret value of the first computing device using the first parameter. The first computing device sends the obtained public key parameters, the first secret value of the first computing device, and the first parameter to the second computing device. The second computing device performs calculations to obtain its first secret value and first parameter. It then sends the public key parameter, the first secret value, and the first parameter to the third computing device. This process continues, with the (i-1)th computing device sending its public key parameter, the first secret value, and the first parameter to the ith computing device. The ith computing device then receives the public key parameter, the first secret value, and the first parameter from the (i-1)th computing device and prepares to process them.
[0089] 302. Determine the first parameter of the i-th computing device based on the initial private key of the i-th computing device and the first parameter of the (i-1)-th computing device.
[0090] In one example, the first parameter of the i-th computing device Among them, S i Pk is the initial private key for the i-th computing device. i-1 Let G be the first parameter of the (i-1)th computing device, and let G be the base point on the preset elliptic curve.
[0091] In one example, the m-th computing device is used to determine the first parameter of the m-th computing device as the signing public key.
[0092] For example, the i-th computing device performs calculations on its initial private key and the first parameters of the (i-1)-th computing device based on a preset algorithm to obtain the first parameters of the i-th computing device; wherein, it can be based on the formula The first parameter of the i-th computing device is calculated; where S i Pk is the initial private key for the i-th computing device. i-1 Let G be the first parameter of the (i-1)th computing device, and G be the base point on the preset elliptic curve. When the m-th computing device calculates the first parameter of the m-th computing device, the first parameter of the m-th computing device is determined as the signature public key.
[0093] For example, the first computing device A1 generates a public-private key pair (pk, sk) for an additive homomorphic cryptographic algorithm. A1 computes the point Pk1 = [S1] on the elliptic curve. -1 G, obtains the first parameter Pk1 of the first computing device, and sends the first parameter Pk1 to the second computing device, for the i-th computing device A i , i = 2, ..., m-1, calculate Pk i =[S i -1 ]Pk i-1 To obtain the first parameter of the i-th computing device, for the m-th computing device A m Calculate Pk m =[S m -1 ]Pk m-1 -G, obtains the first parameter Pk of the i-th computing device. m .
[0094] 303. Determine the first secret value of the i-th computing device based on the initial private key of the i-th computing device and the first secret value of the (i-1)-th computing device.
[0095] In one example, the first secret value of the i-th computing device Among them, S i E is the first parameter of the i-th computing device. i-1pk is the first secret value of the (i-1)th computing device; pk is the public key parameter generated by the first computing device; Enc pk () represents a preset encryption operation.
[0096] For example, the i-th computing device performs encryption calculations on its initial private key and the first secret value of the (i-1)-th computing device based on the applied additive homomorphic cryptography algorithm, thereby obtaining the first secret value of the i-th computing device; which can be obtained according to the formula... The first secret value of the i-th computing device is calculated; where S i E is the first parameter of the i-th computing device. i-1 pk is the first secret value of the (i-1)th computing device; pk is the public key parameter generated by the first computing device; Enc pk () represents a preset encryption operation.
[0097] For example, the first computing device A1 generates a secret initial private key S1, encrypts S1 using an additive homomorphic cryptography algorithm, and calculates E1 = Enc. pk (S1), obtain the first secret value of the first computing device, for the i-th computing device A i For i = 2, ..., m, apply the additive homomorphic cryptography algorithm, i.e., according to the formula... The first secret value E of the i-th computing device can be calculated. i This allows each computing device to obtain the first secret value. Furthermore, each participant jointly performs the required dot product operation on the elliptic curve locally, collectively calculating the signature public key for generating the signature, thus improving signing efficiency.
[0098] 304. Send the first parameter and the first secret value of the i-th computing device to the (i+1)-th computing device; wherein, the first parameter represents the point on the preset elliptic curve corresponding to the computing device; the (i+1)-th computing device is used to process the first parameter and the first secret value of the i-th computing device to obtain the signature public key and the second secret value of the (i+1)-th computing device.
[0099] For example, the content of this step can be referred to in step 201, and will not be repeated here.
[0100] 305. Received the signing public key and the second secret value of the (i+1)th computing device.
[0101] For example, the content of this step can be referred to in step 202, and will not be repeated here.
[0102] 306. Determine the signature private key for the i-th computing device.
[0103] For example, for each computing device, a signature private key can be randomly generated based on a preset random encryption algorithm.
[0104] 307. Determine the second secret value of the i-th computing device based on the second secret value of the (i+1)-th computing device and the signing private key.
[0105] In one example, the second secret value of the i-th computing device Among them, E i+1 'Sk is the second secret value of the (i+1)th computing device. i pk is the signature private key for the i-th computing device; pk is the public key parameter generated by the 1-th computing device; Enc pk () represents a preset encryption operation; E i Let be the first secret value of the i-th computing device.
[0106] In one example, the signing private key Sk1 = Dec for the first computing device sk (E2'); where sk is the private key parameter generated by the first computing device; E2' is the second secret value of the second computing device, Dec sk () represents the preset decryption operation.
[0107] For example, for the i-th computing device, after obtaining the signing private key of the i-th computing device, based on a preset algorithm, the second secret value of the (i+1)-th computing device and the signing private key of the i-th computing device are calculated to obtain the second secret value of the i-th computing device; this can be done according to the formula... The second secret value E of the i-th computing device is calculated. i ', where E i+1 'Sk is the second secret value of the (i+1)th computing device. i pk is the signature private key for the i-th computing device; pk is the public key parameter generated by the 1-th computing device; Enc pk () represents a preset encryption operation; E i Let be the first secret value of the i-th computing device. Wherein, when the first computing device receives the second secret value from the second computing device, according to the formula Dec... sk (E2') is used to calculate the signature private key Sk1 of the first computing device, where sk is the private key parameter generated by the first computing device; E2' is the second secret value of the second computing device, Dec. sk () represents the preset decryption operation. It's worth noting that this is to ensure that each party's private key satisfies Sk1 + ... + Sk. m =Sk1…Sk m To ensure confidentiality, additive homomorphic encryption is used for E.i The calculation yielded the information about the private key multiplication S1, ..., S of each party. m To obtain the secret value, each party first generates its own private key Sk. i The operation on Ei' ultimately yields S1…S m -Sk m -…-Sk i The secret value is obtained by decrypting E2' using A1, which gives Sk1.
[0108] For example, for the m-th computing device A m Randomly generate your own signature private key Sk m Calculate E i ·Enc pk (Sk i That is, to generate the second secret value E of the m-th computing device. m ', will E m The signing public key Pk is sent to the (m-1)th computing device A. m-1 , for A i Let i = m-1,…,2, and randomly generate its own signature private key Sk. i Calculate E i+1 '·Enc pk (Sk i ), to obtain the second secret value E of the i-th computing device. i ', and E i ', Pk is sent to the (i-1)th computing device A i-1 For the first computing device A1, decrypt E2', that is, according to Sk1 = Dec sk (E2') yields the first computing device's signing private key Sk1. At this point, each participant has generated its own signing private key. This ensures that no participating party can obtain the complete signing private key during the key generation phase, and that the signing private key cannot be calculated from intermediate results or the final generated signature during the signing process, thus guaranteeing the security of the signature.
[0109] 308. Send the second secret value and the signature public key of the i-th computing device to the (i-1)-th computing device; wherein the (i-1)-th computing device is used to process the second secret value and the signature public key of the i-th computing device to obtain the second secret value and the signature private key of the (i-1)-th computing device.
[0110] For example, the content of this step can be referred to in step 203, and will not be repeated here.
[0111] 309. Determine the second signature parameter of the i-th computing device based on the signature public key and the signature private key of the i-th computing device; wherein the second signature parameter represents the signature midpoint of the computing device on the preset elliptic curve.
[0112] For example, based on the i-th computing device, i.e. each computing device, the obtained public key for signing and the private key for signing of the i-th computing device are processed according to a preset signature algorithm to obtain the second signature parameter of the i-th computing device; the second signature parameter represents the signature midpoint of the computing device on the preset elliptic curve.
[0113] In one example, step 309 includes:
[0114] Step 1: Determine the random number for the i-th computing device.
[0115] Step 2: Determine the second parameter of the i-th computing device based on the signing public key, the random number of the i-th computing device, and the signing private key; wherein the second parameter represents the point on the preset elliptic curve corresponding to the computing device.
[0116] Step 3: Determine the second signature parameter of the i-th computing device based on the second parameter of the i-th computing device.
[0117] In one example, the second parameter P of the i-th computing device i =[Sk i k i ](P+G); where Sk i k is the signing private key for the i-th computing device; i is a random number for the i-th computing device; P represents the point on the preset elliptic curve corresponding to the signature public key, and G is the base point on the preset elliptic curve.
[0118] In one example, the signature parameters of the i-th computing device Among them, Q i-1 For the signature parameters of the (i-1)th computing device, P i This is the second parameter of the i-th computing device.
[0119] For example, for the i-th computing device, a random number for the i-th computing device is generated based on a preset algorithm. Then, combining this random number with the device's own signing private key, a dot product operation on an elliptic curve is performed on the signing public key and the random number for the i-th computing device to calculate the second parameter of the i-th computing device, i.e., the point P on the preset elliptic curve corresponding to the computing device. i The second parameter of the i-th computing device is calculated and processed to obtain the second signature parameter of the i-th computing device. This can be done according to formula [Sk]. i k i ](P+G), calculate the second parameter P of the i-th computing device. i Among them, Sk i k is the signing private key for the i-th computing device; iLet P be a random number for the i-th computing device; P represents the point on the preset elliptic curve corresponding to the signature public key, and G is the base point on the preset elliptic curve. The first computing device can determine P. i Q1 is the second signature parameter of the first computing device; when 2≤i≤m, the i-th computing device can be determined according to Q. i-1 +P i The second signature parameter Q of the i-th computing device is calculated. i , where Q i-1 For the second signature parameter of the (i-1)th computing device, P i This is the second parameter of the i-th computing device.
[0120] For example, each participant generates a secret random number k. i ∈[1,n-1], and combined with its own signature private key Sk i Perform the dot product operation on the elliptic curve to calculate the point P on the elliptic curve. i =[Sk i k i ](P+G), participant A1 sends Q1=P1 as the signature intermediate point to participant A2, participant A i (i=2,…,m-1), from A i-1 Get Q from i-1 Calculate the value of point Q on the elliptic curve. i =Q i-1 +P i and Q i Send as the signature intermediate point to A i+1 Participant A m From A m-1 Get Q from m-1 Calculate the point Q on the elliptic curve m =Q m-1 +P m If, in a real-world application scenario, the participants are distributed in a manner similar to a server and multiple clients, with the server possessing significant computing and network communication resources, let's denote the server as participant A. m Then participant A i (i = 1, ..., m-1) will use the locally calculated P i Send to A m A m Received from all participants P i Calculate point Q on the elliptic curve after receiving the information. m =P1+…+P m This can further improve the efficiency of signature generation.
[0121] 310. Send the second signature parameter of the i-th computing device to the (i+1)-th computing device; wherein the (i+1)-th computing device is used to process the second signature parameter of the i-th computing device to obtain the first signature and the first signature parameter of the (i+1)-th computing device.
[0122] In one example, the first signature r = (x + e)mod(n); where x is the x-coordinate of the signature midpoint represented by the signature parameter of the m-th computing device; e represents the digest information of the message to be signed calculated by the m-th computing device; n is the order of the preset elliptic curve; and mod() is the modulo operation.
[0123] For example, for each computing device, i.e., the i-th computing device, the second signature parameter of the i-th computing device is sent to the (i+1)-th computing device. The (i+1)-th computing device processes the second signature parameter of the i-th computing device based on a preset signature algorithm to obtain the second signature parameter of the (i+1)-th computing device. The (i+1)-th computing device sends the second signature parameter of the (i+2)-th computing device to the (i+2)-th computing device, and so on, until the m-th computing device calculates the second signature parameter of the m-th computing device. The m-th computing device processes the second signature parameter of the m-th computing device according to the SM2 signature algorithm to obtain the first signature. For example, the first signature r can be calculated according to the formula r = (x + e) mod (n), where x is the abscissa of the signature midpoint represented by the signature parameter of the m-th computing device; e represents the digest information of the message to be signed calculated by the m-th computing device; n is the order of the preset elliptic curve; and mod() is the modulo operation. In this process, the m-th computing device Am calculates the digest information e = Hash(Z||M) of the message to be signed according to the SM2 signature algorithm requirements. Here, e = Hash(Z||M) represents the result of concatenating messages Z and M and then performing a hash operation; || denotes the concatenation operation; and Hash represents the hash function, typically used to map input data to fixed-length output data. Concatenating messages Z and M to form a new message string and then performing a hash operation on this new message string yields the output result e. This method can be used in applications such as data integrity verification and digital signatures. The hash operation generates a message digest for verifying the integrity and authenticity of the message. Then, the m-th computing device calculates the intermediate result of the signature s part, obtaining the first signature parameter of the m-th computing device. The first signature and the first signature parameter of the m-th computing device are then sent to the (m-1)-th computing device A. m-1 Furthermore, by calculating in this manner, the first signature parameter of the (i+1)th computing device can be obtained.
[0124] 311. Receive the first signature and the first signature parameters of the (i+1)th computing device.
[0125] For example, the (i+1)th computing device sends the obtained first signature and the first signature parameter of the (i+1)th computing device to the ith computing device, and the ith computing device receives the first signature and the first signature parameter sent by the (i+1)th computing device.
[0126] 312. Determine the first signature parameters of the i-th computing device based on the first signature and the first signature parameters of the (i+1)-th computing device.
[0127] For example, the i-th computing device performs calculations on the obtained first signature and the first signature parameters of the (i+1)-th computing device according to a preset signature algorithm to obtain the first signature parameters of the i-th computing device. Furthermore, each participating signer completes the required dot product operation on the elliptic curve locally, and in the online phase, only addition operations on the elliptic curve and other auxiliary operations on finite fields are performed to complete the joint signature process, thus improving signature efficiency.
[0128] In one example, step 312 includes:
[0129] Step 1: If the first signature is determined to be non-zero, then determine the random number and signature private key of the i-th computing device.
[0130] Step 2: Determine the first signature parameters of the i-th computing device based on the first signature, the first signature parameters of the (i+1)-th computing device, the random number of the i-th computing device, and the signature private key.
[0131] In one example, the first signature parameter of the i-th computing device Among them, Sk i s is the signature private key for the i-th computing device. i+1 For the (i+1)th computing device, k is the first signature parameter. i is a random number for the i-th computing device; n is the order of the preset elliptic curve; mod() is the modulo operation.
[0132] For example, after the m-th computing device obtains the first signature, if the m-th computing device determines that the first signature is not zero, it sends the first signature to the (m-1)-th computing device, or directly sends the first signature to the (m-1)-th computing device. Then, when the i-th computing device receives the first signature sent by the (i+1)-th computing device, if the i-th computing device determines that the first signature is not zero, it obtains the pre-generated random number and signature private key from the i-th computing device. Based on a preset signature algorithm, it calculates and processes the first signature, the first signature parameters of the (i+1)-th computing device, the random number of the i-th computing device, and the signature private key to obtain the first signature parameters of the i-th computing device. This can be done according to the formula... The first signature parameter s of the i-th computing device is calculated. i Among them, Sk i s is the signature private key for the i-th computing device. i+1 For the (i+1)th computing device, k is the first signature parameter. i is a random number for the i-th computing device; n is the order of the preset elliptic curve; mod() is the modulo operation.
[0133] For example, the m-th computing device A m The intermediate result s of calculating the signature s part m =Sk i (r+k i )mod(n), and the first part of the signature r and s m Send to the m-th computing device A m-1 For the i-th computing device A of the participating party i (i=m-1,…,2), from A i+1 The intermediate result s of obtaining signature r and signature s is obtained at the location. i+1 Calculate s i =(Sk i (r+k i )+s i+1 )mod(n), and send it along with r to A i-1 The first computing device A1 of the participants obtains r and s2 from the participants A2, calculates s1 = (Sk1(r+k1)+s2-r)mod(n), and obtains the first signature parameter of the i-th computing device.
[0134] 313. Send the first signature and the first signature parameter of the i-th computing device to the (i-1)-th computing device; wherein, the (i-1)-th computing device is used to process the first signature parameter and the first signature of the i-th computing device to obtain the collaborative signature; the collaborative signature is used for identity verification processing.
[0135] In one example, the first computing device is used to concatenate the second signature and the first signature when the second signature obtained after processing the first signature parameters of the second computing device based on the first computing device is not zero, so as to obtain a collaborative signature.
[0136] For example, the i-th computing device sends the obtained first signature and its first signature parameter to the (i-1)-th computing device. Upon receiving the first signature and its first signature parameter, the (i-1)-th computing device processes them to obtain its own first signature parameter. This process continues until the first computing device processes the first signature parameter of the second computing device to obtain the second signature. If the first computing device determines that the second signature is not zero, it concatenates the second signature s with the first signature r to obtain a collaborative signature (r, s). This collaborative signature is used for identity verification, such as by directly applying the SM2 algorithm's signature verification process. It can be used to ensure that the message sender is legitimate and that the message has not been tampered with during transmission. By verifying the signature, the receiver can confirm the integrity and authenticity of the message, thereby ensuring communication security.
[0137] The collaborative signature method provided in this application ensures that no participating party can obtain the complete signature private key during the key generation stage, and that the signature private key cannot be calculated from the intermediate results and the final generated signature during the signing process, thus guaranteeing the security of the signature.
[0138] Figure 4 is a schematic diagram of a collaborative signature device provided in this application. As shown in Figure 4, the collaborative signature device provided in this embodiment is applied to the i-th computing device among m computing devices, where m is a positive integer greater than or equal to 1; including:
[0139] The first sending module 401 is used to determine the first parameter and the first secret value of the i-th computing device; and send the first parameter and the first secret value of the i-th computing device to the (i+1)-th computing device; wherein, the first parameter represents the point of the computing device on the preset elliptic curve; the (i+1)-th computing device is used to process the first parameter and the first secret value of the i-th computing device to obtain the signature public key and the second secret value of the (i+1)-th computing device.
[0140] The first determining module 402 is used to receive the signature public key and the second secret value of the (i+1)th computing device sent by the (i+1)th computing device; and to determine the second secret value of the i-th computing device based on the second secret value of the (i+1)th computing device.
[0141] The second sending module 403 is used to send the second secret value and the signature public key of the i-th computing device to the (i-1)-th computing device; wherein the (i-1)-th computing device is used to process the second secret value and the signature public key of the i-th computing device to obtain the signature private key of the (i-1)-th computing device.
[0142] The second determining module 404 is used to determine the first signature and the first signature parameters of the i-th computing device based on the signature public key and the signature private key of the i-th computing device; wherein, the first signature is the signature content of the first part of the collaborative signature; and the first signature parameters are the signature intermediate values corresponding to each computing device in the second part of the collaborative signature.
[0143] The third sending module 405 is used to send the first signature and the first signature parameter of the i-th computing device to the (i-1)-th computing device; wherein, the (i-1)-th computing device is used to process the first signature parameter and the first signature of the i-th computing device to obtain a collaborative signature; the collaborative signature is used for identity verification processing.
[0144] In one possible implementation, the first sending module 401 is specifically configured to: determine the initial private key of the i-th computing device; and receive the public key parameter, the first secret value of the (i-1)-th computing device, and the first parameter sent by the (i-1)-th computing device; wherein the first parameter represents the point on a preset elliptic curve corresponding to the computing device; the first secret value is obtained by encrypting the initial private key of the (i-1)-th computing device based on the public key parameter generated by the first computing device; determine the first parameter of the i-th computing device according to the initial private key of the i-th computing device and the first parameter of the (i-1)-th computing device; and determine the first secret value of the i-th computing device according to the initial private key of the i-th computing device and the first secret value of the (i-1)-th computing device.
[0145] In one possible implementation, the first parameter of the i-th computing device Among them, S i Pk is the initial private key for the i-th computing device. i-1 Let G be the first parameter of the (i-1)th computing device, and let G be the base point on the preset elliptic curve.
[0146] In one possible implementation, the first secret value of the i-th computing device Among them, S i E is the first parameter of the i-th computing device. i-1 pk is the first secret value of the (i-1)th computing device; pk is the public key parameter generated by the first computing device; Enc pk () represents a preset encryption operation.
[0147] In one possible implementation, the first determining module 402 is specifically used to: determine the signing private key of the i-th computing device; and determine the second secret value of the i-th computing device based on the second secret value of the (i+1)-th computing device and the signing private key.
[0148] In one possible implementation, the second secret value of the i-th computing device Among them, E i+1 'Sk is the second secret value of the (i+1)th computing device. i pk is the signature private key for the i-th computing device; pk is the public key parameter generated by the 1-th computing device; Enc pk () represents a preset encryption operation; E i Let be the first secret value of the i-th computing device.
[0149] In one possible implementation, the second determining module 404 is specifically configured to: determine the second signature parameter of the i-th computing device based on the signature public key and the signature private key of the i-th computing device; wherein the second signature parameter represents the signature midpoint of the computing device on a preset elliptic curve; send the second signature parameter of the i-th computing device to the (i+1)-th computing device; wherein the (i+1)-th computing device processes the second signature parameter of the i-th computing device to obtain the first signature and the first signature parameter of the (i+1)-th computing device; receive the first signature and the first signature parameter of the (i+1)-th computing device sent by the (i+1)-th computing device; and determine the first signature parameter of the i-th computing device based on the first signature and the first signature parameter of the (i+1)-th computing device.
[0150] In one possible implementation, the second determining module 404 is further specifically configured to: determine a random number for the i-th computing device; determine a second parameter for the i-th computing device based on the signing public key, the random number for the i-th computing device, and the signing private key; wherein the second parameter represents a point on a preset elliptic curve corresponding to the computing device; and determine a second signature parameter for the i-th computing device based on the second parameter for the i-th computing device.
[0151] In one possible implementation, the second parameter P of the i-th computing device i =[Sk i k i ](P+G); where Sk i k is the signing private key for the i-th computing device; i is a random number for the i-th computing device; P represents the point on the preset elliptic curve corresponding to the signature public key, and G is the base point on the preset elliptic curve.
[0152] In one possible implementation, the second signature parameter of the i-th computing device Among them, Q i-1 For the second signature parameter of the (i-1)th computing device, P i This is the second parameter of the i-th computing device.
[0153] In one possible implementation, the second determining module 404 is further specifically used for: if the first signature is determined to be non-zero, determining the random number and signing private key of the i-th computing device; and determining the first signature parameter of the i-th computing device based on the first signature, the first signature parameter of the (i+1)-th computing device, the random number of the i-th computing device, and the signing private key.
[0154] In one possible implementation, the first signature parameter of the i-th computing device Among them, Sk i s is the signature private key for the i-th computing device. i+1 For the (i+1)th computing device, k is the first signature parameter. i is a random number for the i-th computing device; n is the order of the preset elliptic curve; mod() is the modulo operation.
[0155] In one possible implementation, the first signature r = (x + e)mod(n); where x is the abscissa of the signature midpoint represented by the signature parameter of the m-th computing device; e represents the digest information of the message to be signed by the m-th computing device; n is the order of the preset elliptic curve; and mod() is the modulo operation.
[0156] In one possible implementation, the signing private key Sk1 of the first computing device is Dec. sk (E2'); where sk is the private key parameter generated by the first computing device; E2' is the second secret value of the second computing device, Dec sk () represents the preset decryption operation.
[0157] In one possible implementation, the m-th computing device is used to determine the first parameter of the m-th computing device as the signature public key.
[0158] In one possible implementation, the first computing device is used to concatenate the second signature and the first signature of the first computing device when the second signature based on the first computing device is not zero, so as to obtain a collaborative signature.
[0159] The collaborative signature device provided in this embodiment can execute the method provided in the above method embodiment. Its implementation principle and technical effect are similar, and will not be described in detail here.
[0160] Figure 5 is a schematic diagram of the structure of a computing device provided in an embodiment of this application. As shown in Figure 5, the computing device includes: a memory 501 and a processor 502; the memory 501 is a memory for storing executable instructions of the processor 502.
[0161] The processor 502 is configured to perform the method provided in the above embodiments.
[0162] The computing device also includes a receiver 503 and a transmitter 504. The receiver 503 is used to receive instructions and data sent by other devices, and the transmitter 504 is used to send instructions and data to external devices.
[0163] The specific implementation process of processor 502 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.
[0164] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.
[0165] The memory may include Ramdom Access Memory (RAM) and may also include Mom-volatile Memory (MVM), such as at least one disk storage device.
[0166] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.
[0167] This application provides a collaborative signature system, comprising: m computing devices, where m is a positive integer greater than or equal to 1; each computing device stores computer execution instructions, and when the processor executes the computer execution instructions, it implements the above-described method.
[0168] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the above-described method.
[0169] This application also provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the above-described method.
[0170] The aforementioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The readable storage medium can be any available medium accessible to a general-purpose or special-purpose computer.
[0171] An exemplary readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can reside in an application-specific integrated circuit (ASIC). Alternatively, the processor and the readable storage medium can exist as discrete components in the device.
[0172] The division of units is merely a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or units, and may be electrical, mechanical, or other forms.
[0173] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0174] In addition, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0175] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0176] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0177] Finally, it should be noted that other embodiments of the invention will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This invention is intended to cover any variations, uses, or adaptations of the invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein, and is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of the invention is limited only by the appended claims.
[0178] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be included within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.
Claims
1. A collaborative signature method, characterized in that, The method is applied to the i-th computing device out of m computing devices, where m is a positive integer greater than or equal to 1; the method includes: Determine the first parameter and the first secret value of the i-th computing device; and send the first parameter and the first secret value of the i-th computing device to the (i+1)-th computing device; wherein, the first parameter represents the point on the preset elliptic curve corresponding to the computing device; the (i+1)-th computing device is used to process the first parameter and the first secret value of the i-th computing device to obtain the signature public key and the second secret value of the (i+1)-th computing device; Receive the signing public key and the second secret value of the (i+1)th computing device; and determine the signing private key and the second secret value of the ith computing device based on the second secret value of the (i+1)th computing device. The second secret value of the i-th computing device and the signature public key are sent to the (i-1)-th computing device; wherein, the (i-1)-th computing device is used to process the second secret value of the i-th computing device and the signature public key to obtain the second secret value and signature private key of the (i-1)-th computing device. Based on the signature public key and the signature private key of the i-th computing device, a first signature and a first signature parameter of the i-th computing device are determined; wherein, the first signature is the signature content of the first part of the collaborative signature; and the first signature parameter is the signature intermediate value corresponding to each computing device in the second part of the collaborative signature. The first signature and the first signature parameter of the i-th computing device are sent to the (i-1)-th computing device; wherein, the (i-1)-th computing device is used to process the first signature parameter of the i-th computing device and the first signature to obtain a collaborative signature; the collaborative signature is used for identity verification processing.
2. The method according to claim 1, characterized in that, Determining the first parameter and the first secret value of the i-th computing device includes: Determine the initial private key of the i-th computing device; and receive the public key parameter, the first secret value, and the first parameter sent by the (i-1)-th computing device; wherein, the first parameter represents the point on the preset elliptic curve corresponding to the computing device; the first secret value is obtained by encrypting the initial private key of the (i-1)-th computing device based on the public key parameter generated by the first computing device; The first parameter of the i-th computing device is determined based on the initial private key of the i-th computing device and the first parameter of the (i-1)-th computing device. The first secret value of the i-th computing device is determined based on the initial private key of the i-th computing device and the first secret value of the (i-1)-th computing device.
3. The method according to claim 2, characterized in that, The first parameter of the i-th computing device Among them, S i Pk is the initial private key for the i-th computing device. i-1 Let G be the first parameter of the (i-1)th computing device, and let G be the base point on the preset elliptic curve.
4. The method according to claim 2, characterized in that, The first secret value of the i-th computing device Among them, S i E is the first parameter of the i-th computing device. i-1 pk is the first secret value of the (i-1)th computing device; pk is the public key parameter generated by the first computing device; Enc pk () represents a preset encryption operation.
5. The method according to any one of claims 1-4, characterized in that, Determine the second secret value of the i-th computing device based on the second secret value of the (i+1)-th computing device, including: Determine the signing private key for the i-th computing device; The second secret value of the i-th computing device is determined based on the second secret value of the (i+1)-th computing device and the signing private key.
6. The method according to claim 5, characterized in that, The second secret value of the i-th computing device Among them, E i+1 'Sk is the second secret value of the (i+1)th computing device. i pk is the signature private key for the i-th computing device; pk is the public key parameter generated by the 1-th computing device; Enc pk () represents a preset encryption operation; E i Let be the first secret value of the i-th computing device.
7. The method according to any one of claims 1-6, characterized in that, Based on the signature public key and the signature private key of the i-th computing device, determine the first signature and the first signature parameters of the i-th computing device, including: Based on the signature public key and the signature private key of the i-th computing device, the second signature parameter of the i-th computing device is determined; wherein, the second signature parameter represents the signature midpoint of the computing device on the preset elliptic curve; The second signature parameter of the i-th computing device is sent to the (i+1)-th computing device; wherein the (i+1)-th computing device is used to process the second signature parameter of the i-th computing device to obtain the first signature and the first signature parameter of the (i+1)-th computing device. Receive the first signature and the first signature parameters sent by the (i+1)th computing device; The first signature parameters of the i-th computing device are determined based on the first signature and the first signature parameters of the (i+1)-th computing device.
8. The method according to claim 7, characterized in that, Based on the signature public key and the signature private key of the i-th computing device, the second signature parameters of the i-th computing device are determined, including: Determine the random number for the i-th computing device; Based on the signature public key, the random number of the i-th computing device, and the signature private key, the second parameter of the i-th computing device is determined; wherein, the second parameter represents the point on the preset elliptic curve corresponding to the computing device; The second signature parameter of the i-th computing device is determined based on the second parameter of the i-th computing device.
9. The method according to claim 8, characterized in that, The second parameter P of the i-th computing device i =[Sk i k i ](P+G); Among them, Sk i k is the signing private key for the i-th computing device; i is a random number for the i-th computing device; P represents the point on the preset elliptic curve corresponding to the signature public key, and G is the base point on the preset elliptic curve.
10. The method according to claim 8, characterized in that, The second signature parameter of the i-th computing device Among them, Q i-1 For the second signature parameter of the (i-1)th computing device, P i This is the second parameter of the i-th computing device.
11. The method according to any one of claims 7-10, characterized in that, Based on the first signature and the first signature parameters of the (i+1)th computing device, the first signature parameters of the i-th computing device are determined, including: If it is determined that the first signature is not zero, then the random number and signature private key of the i-th computing device are determined; The first signature parameters of the i-th computing device are determined based on the first signature, the first signature parameters of the (i+1)-th computing device, the random number of the i-th computing device, and the signature private key.
12. The method according to claim 11, characterized in that, The first signature parameter of the i-th computing device Among them, Sk i s is the signature private key for the i-th computing device. i+1 For the (i+1)th computing device, k is the first signature parameter. i is a random number for the i-th computing device; n is the order of the preset elliptic curve; mod() is the modulo operation.
13. The method according to any one of claims 7-12, characterized in that, The first signature r = (x + e)mod(n); where x is the abscissa of the signature midpoint represented by the signature parameter of the m-th computing device; e represents the digest information of the message to be signed calculated by the m-th computing device; n is the order of the preset elliptic curve; mod() is the modulo operation.
14. The method according to any one of claims 1-13, characterized in that, The signing private key for the first computing device is Sk1 = Dec. sk (E2'); where sk is the private key parameter generated by the first computing device; E2' is the second secret value of the second computing device, Dec sk () represents the preset decryption operation.
15. The method according to any one of claims 1-14, characterized in that, The m-th computing device is used to determine the first parameter of the m-th computing device as the signature public key.
16. The method according to any one of claims 1-15, characterized in that, The first computing device is used to concatenate the second signature and the first signature when the second signature obtained after the first signature parameter of the second computing device is not zero, in order to obtain the collaborative signature.
17. A collaborative signature device, characterized in that, The device is applied to the i-th computing device out of m computing devices, where m is a positive integer greater than or equal to 1; the device includes: The first sending module is used to determine the first parameter and the first secret value of the i-th computing device; and send the first parameter and the first secret value of the i-th computing device to the (i+1)-th computing device; wherein, the first parameter represents the point on the preset elliptic curve corresponding to the computing device; the (i+1)-th computing device is used to process the first parameter and the first secret value of the i-th computing device to obtain the signature public key and the second secret value of the (i+1)-th computing device; The first determining module is used to receive the signing public key and the second secret value of the (i+1)th computing device sent by the (i+1)th computing device; and to determine the second secret value of the i-th computing device based on the second secret value of the (i+1)th computing device. The second sending module is used to send the second secret value of the i-th computing device and the signature public key to the (i-1)-th computing device; wherein the (i-1)-th computing device is used to process the second secret value of the i-th computing device and the signature public key to obtain the signature private key of the (i-1)-th computing device; The second determining module is used to determine the first signature and the first signature parameters of the i-th computing device based on the signature public key and the signature private key of the i-th computing device; wherein, the first signature is the signature content of the first part of the collaborative signature; and the first signature parameters are the signature intermediate values corresponding to each computing device in the second part of the collaborative signature. The third sending module is used to send the first signature and the first signature parameter of the i-th computing device to the (i-1)-th computing device; wherein, the (i-1)-th computing device is used to process the first signature parameter of the i-th computing device and the first signature to obtain a collaborative signature; the collaborative signature is used for identity verification processing.
18. A computing device, characterized in that, include: Memory, processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory, causing the processor to perform the method as described in any one of claims 1-16.
19. A collaborative signature system, characterized in that, include: m computing devices, where m is a positive integer greater than or equal to 1; the computing devices are used to implement the method as described in any one of claims 1-16.
20. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1-16.
21. A computer program product comprising a computer program that, when executed by a processor, implements the method of any one of claims 1-16.
Citation Information
Patent Citations
Method for multi-party associated generation of SM2 digital signature
CN109474422A
Collaborative signature method and device, electronic equipment and storage medium
CN117014150A
Collaborative signature method, device, equipment and system
CN118573377A
Method and system for secure data record distribution using a blockchain
US20210090072A1