Collaborative signature method, system, device and storage medium

By storing sub-private keys on the terminals of both parties of the communication and conducting collaborative signatures, the problem of easy stealing of private keys in mobile smart terminals is solved, and private key security and low-cost signature operations are realized, which are suitable for cloud computing environments.

CN116318713BActive Publication Date: 2025-09-05BEIJING WATCH DATA SYSTEM CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310137786.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-06
Publication Date
2025-09-05
Estimated Expiration
2043-02-06

AI Technical Summary

Technical Problem

In the Internet of Things and cloud computing systems, especially on mobile smart terminals, private keys are easily stolen by attackers, and the prior art is difficult to effectively protect the security of private keys, especially in weak terminals that lack cryptographic chips or security components.

Method used

The collaborative signature method is adopted to split the user's private key into two sub-private keys and store them in different terminals. The complete signature is generated through the collaborative operation of both parties of the communication to avoid passing the complete private key. The signature data calculation is performed using the SM9 algorithm and the bilinear mapping group.

Benefits of technology

It improves the security of private keys, is suitable for mobile smart terminals, reduces layout costs, is suitable for low-latency and high-interaction cloud computing environments, and does not require the addition of new cryptographic computing modules.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116318713B_ABST
    Figure CN116318713B_ABST
Patent Text Reader

Abstract

The present application discloses a collaborative signature method, including: a first communication party generates a first random number, calculates variable data based on the first random number and a pre-applied first sub-private key, and sends the variable data to a second communication party; the second communication party generates a second random number, calculates a second portion of signature data based on the second random number, a pre-applied second sub-private key and the variable data, and sends the second portion of signature data to the first communication party; the first communication party calculates the first portion of signature data based on the first random number, the first sub-private key and the second portion of signature data; the first communication party obtains the complete signature data based on the first portion of signature data and the second portion of signature data for signing. According to the collaborative signature method provided in the embodiment of the present application, the communicating parties cannot obtain any information about the other party's private key, and thus cannot obtain the complete private key information. The complete private key does not appear in the entire signature calculation process, thereby improving the security of the private key.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of cryptography, and in particular to a collaborative signature method, system, device and storage medium. Background Art

[0002] With the rapid development of science and technology, network platforms such as the Internet of Things (IoT) have provided powerful computing platforms for the storage and transmission of big data, bringing convenience to people's daily lives. However, data security and privacy have become topics of great concern. In a big data environment, ensuring the secure storage, transmission, and use of messages while preventing leaks and ensuring message integrity and confidentiality is a huge challenge.

[0003] Digital signature and encryption technologies based on public-key cryptography are key technologies for ensuring message confidentiality, integrity, and non-repudiation, and have been widely used in fields such as network communications, e-commerce, and e-government. In public-key cryptography, the public key is publicly available and can be used by anyone to encrypt or verify data. In identity cryptography, the public key serves as the identifier of the participating party. Decryption or signing requires the corresponding private key. However, private keys are not accessible to everyone; only the owner of the private key can sign or decrypt data. Therefore, protecting the security of private keys has become a major concern within the industry. Typically, user private keys are securely generated, stored, and used in specialized hardware. However, with the increasing popularity of public-key cryptography and the promotion of my country's independently developed SM9 identity cryptography algorithm, the SM9 algorithm has become increasingly important in IoT applications and cloud computing systems. However, many systems and terminals in these scenarios, particularly mobile smart terminals, lack hardware cryptographic modules such as cryptographic chips or secure elements. These terminals, referred to as "weak terminals," rely solely on software cryptographic modules to perform cryptographic operations, requiring the private key to be stored locally on the user terminal. Although private keys can be protected through encryption, PIN code protection, etc., they are still easily stolen by attackers. Summary of the Invention

[0004] The embodiments of the present application provide a collaborative signature method, system, device, and storage medium. To provide a basic understanding of some aspects of the disclosed embodiments, a brief summary is provided below. This summary is not intended to be a comprehensive review, identify key or important elements, or delineate the scope of protection for these embodiments. Its sole purpose is to present some concepts in a simplified form, serving as a prelude to the detailed description that follows.

[0005] In a first aspect, an embodiment of the present application provides a collaborative signing method, including:

[0006] The first communication party generates a first random number, calculates variable data based on the first random number and a pre-applied first sub-private key, and sends the variable data to the second communication party;

[0007] The second communication party generates a second random number, calculates a second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data, and sends the second portion of signature data to the first communication party;

[0008] The first communication party calculates the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data;

[0009] The first communication party obtains the complete signature data based on the first partial signature data and the second partial signature data and signs the complete signature data.

[0010] In an optional embodiment, the first communication party generates a first random number, and before calculating variable data based on the first random number and the pre-applied first sub-private key, the process further includes:

[0011] The first communication party initiates a private key acquisition request;

[0012] The key generation center receives the private key acquisition request, calculates the user private key related data, and splits the user private key related data into a first sub-private key and a second sub-private key;

[0013] The key generation center sends the first sub-private key to the first communication party and sends the second sub-private key to the second communication party.

[0014] In an optional embodiment, the key generation center calculates user private key-related data and splits the user private key-related data into a first sub-private key and a second sub-private key, including:

[0015] The key generation center calculates the user's private key-related data based on the system master private key and user ID;

[0016] Decomposing the user private key related data on a finite field to obtain a first sub-private key and a second sub-private key;

[0017] The sum of the first sub-private key and the second sub-private key is equal to the user private key related data, or the product of the first sub-private key and the second sub-private key is equal to the user private key related data.

[0018] In an optional embodiment, when the sum of the first sub-private key and the second sub-private key is equal to the user private key-related data, calculating variable data based on the first random number and the pre-applied first sub-private key includes:

[0019]

[0020] Wherein, W1 represents the first variable component, D1 represents the second variable component, the variable data is composed of the first variable component and the second variable component, d1 represents the first sub-private key, r1 represents the first random number, g and P1 are G T The elements in G T represents a bilinear mapping group;

[0021] Calculating the second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data includes:

[0022] h=H2(M||w,N), Q1=[r2-h]P1, Q2=[d2](D1+Q1)

[0023] Among them, h, Q1, Q2 represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function;

[0024] Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes:

[0025] S=[r1]P1+[d1]Q1+Q2

[0026] Where S represents the first part of the signature data.

[0027] In an optional embodiment, when the sum of the first sub-private key and the second sub-private key is equal to the user private key-related data, calculating variable data based on the first random number and the pre-applied first sub-private key includes:

[0028]

[0029] Wherein, W1 represents the first variable component, D1 represents the second variable component, the variable data is composed of the first variable component and the second variable component, d1 represents the first sub-private key, r1 represents the first random number, g and P1 are G T The elements in G T represents a bilinear mapping group;

[0030] Calculating the second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data includes:

[0031] h=H2(M||w,N), Q1=[r2]P1, Q2=[d2]([r2]D1-[h]P1)

[0032] Among them, h, Q1, Q2 represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function;

[0033] Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes:

[0034] S=[r1]Q1+Q2-[d1h]P1

[0035] Where S represents the first part of the signature data.

[0036] In an optional embodiment, when the product of the first sub-private key and the second sub-private key is equal to the user private key-related data, calculating variable data according to the first random number and the pre-applied first sub-private key includes:

[0037]

[0038] Wherein, W1 represents the variable data, d1 represents the first child private key, r1 represents the first random number, g represents G T The elements in G T represents a group of bilinear maps.

[0039] In an optional embodiment, calculating the second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data includes:

[0040] h=H2(M||w,N), s'=r2-hd2

[0041] Among them, h and s' respectively represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in G T represents a bilinear mapping group, N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function;

[0042] Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes:

[0043] S=[r1+d1s']P1

[0044] Among them, S represents the first part of the signature data, d1 represents the first sub-private key, r1 represents the first random number, P1 is G T Elements in .

[0045] In a second aspect, an embodiment of the present application provides a collaborative signature system, including a first communication party and a second communication party, wherein the first communication party generates a first random number, calculates variable data based on the first random number and a pre-applied first sub-private key, and sends the variable data to the second communication party;

[0046] The second communication party generates a second random number, calculates a second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data, and sends the second portion of signature data to the first communication party;

[0047] The first communication party calculates the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data;

[0048] The first communication party obtains the complete signature data based on the first partial signature data and the second partial signature data and signs the complete signature data.

[0049] In a third aspect, an embodiment of the present application provides an electronic device comprising a processor and a memory storing program instructions, wherein the processor is configured to execute a collaborative signature method provided in the above embodiment when executing the program instructions.

[0050] In a fourth aspect, an embodiment of the present application provides a computer-readable medium having computer-readable instructions stored thereon, and the computer-readable instructions are executed by a processor to implement a collaborative signature method provided in the above embodiment.

[0051] The technical solutions provided by the embodiments of the present application may have the following beneficial effects:

[0052] The collaborative signature method provided by the embodiment of the present application is such that the communicating parties cannot obtain any information about the other party's private key, and thus cannot obtain the complete private key information. The complete private key does not appear in the entire signature calculation process, thereby improving the security of the private key. The private key is split into two parts, which can be stored in different terminals respectively, and is more suitable for application scenarios currently involved in many mobile smart terminals. No new cryptographic operations are introduced in the signing process, the calculation is simple, and the layout cost is low. Less data is transmitted during the communication process, which is more suitable for cloud computing environments that require low latency and high interactivity.

[0053] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.

[0055] Figure 1 is a flowchart illustrating a collaborative signature method according to an exemplary embodiment;

[0056] Figure 2 is a schematic diagram of a first implementation of a collaborative signature method according to an exemplary embodiment;

[0057] Figure 3 is a schematic diagram of a second implementation of a collaborative signature method according to an exemplary embodiment;

[0058] Figure 4 is a schematic diagram of a third implementation of a collaborative signature method according to an exemplary embodiment;

[0059] Figure 5 is a schematic structural diagram of an electronic device according to an exemplary embodiment;

[0060] Figure 6 It is a schematic diagram of a computer storage medium according to an exemplary embodiment. DETAILED DESCRIPTION

[0061] The following description and the drawings sufficiently illustrate specific embodiments of the invention to enable those skilled in the art to practice them.

[0062] It should be understood that the embodiments described are only a portion of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without creative work are within the scope of protection of the present invention.

[0063] In the following description, unless otherwise indicated, identical numbers in different figures represent identical or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present invention. Instead, they are merely examples of systems and methods consistent with certain aspects of the present invention, as detailed in the appended claims.

[0064] This application addresses the shortcomings of existing technologies and provides a collaborative signing method for communicating parties. This method allows both parties to store their own sub-private keys and sign messages through information exchange and collaborative operations. The algorithm design fully ensures the security of the private key operations of the key algorithm, and can be implemented using the basic operation modules of the key algorithm, eliminating the need for additional operation modules and reducing deployment costs.

[0065] The collaborative signature method provided by the embodiment of the present application will be described in detail below with reference to the accompanying drawings. Figure 1 , the method specifically includes the following steps.

[0066] S101: The first communication party generates a first random number, calculates variable data according to the first random number and a pre-applied first sub-private key, and sends the variable data to the second communication party.

[0067] S102: The second communication party generates a second random number, calculates a second portion of signature data according to the second random number, a pre-applied second sub-private key, and variable data, and sends the second portion of signature data to the first communication party.

[0068] S103: The first communication party calculates the first portion of signature data according to the first random number, the first sub-private key and the second portion of signature data.

[0069] S104 The first communication party obtains complete signature data based on the first part of the signature data and the second part of the signature data and signs the complete signature data.

[0070] The collaborative signature method provided in the embodiments of the present application uses a first communication party and a second communication party to represent the communicating parties, respectively. In an exemplary scenario, the communicating parties are a client and a server. The method includes a key generation phase and a collaborative signature phase. Therefore, before executing step S101, the method further includes the first communication party initiating a private key acquisition request, the key generation center receiving the private key acquisition request, calculating the user private key-related data, splitting the user private key-related data into a first sub-private key and a second sub-private key, and the key generation center sending the first sub-private key to the first communication party and the second sub-private key to the second communication party.

[0071] Specifically, after receiving the private key acquisition request initiated by the user, the key generation center calculates the user private key related data based on the system master private key and the user ID using the preset SM9 standard key algorithm. After obtaining the user private key related data t2, the user private key related data t2 is placed in the finite field F N Decompose the above to get the first child private key and the second child private key.

[0072] Optionally, the key generation center will t2 in the finite field F N The above decomposition is t2=d1+d2, d1 is sent to the first communication party as the first communication party's sub-private key, and d2 is sent to the second communication party as the second communication party's sub-private key. Alternatively, the key generation center will t2 in the finite field F N The above decomposition is t2 = d1d2. d1 is sent to the first communication party as the first communication party's sub-private key, and d2 is sent to the second communication party as the second communication party's sub-private key. According to the private key decomposition method of the embodiment of the present application, the sum of the first sub-private key and the second sub-private key is equal to the user's private key-related data, or the product of the first sub-private key and the second sub-private key is equal to the user's private key-related data.

[0073] Furthermore, when a signature is required, the first communication party initiates a signature request, and then the first communication party and the second communication party execute steps S101-S104 to perform collaborative signing. In the case of different private key splitting rules, the calculation method of the signature data is also different.

[0074] In an optional implementation, when the sum of the first child private key and the second child private key is equal to the user private key, the specific signature data calculation method is as follows:

[0075] Specifically, the first communication party calculates variable data according to the first random number and the pre-applied first sub-private key, including:

[0076]

[0077] Where W1 represents the first variable component, D1 represents the second variable component, the variable data consists of the first variable component and the second variable component, d1 represents the first sub-private key, r1 represents the first random number, g and P1 are G T The elements in G T represents a group of bilinear maps.

[0078] The second communication party calculates the second part of signature data according to the second random number, the pre-applied second sub-private key, and the variable data, including:

[0079] h=H2(M||w,N), Q1=[r2-h]P1, Q2=[d2](D1+Q1)

[0080] Among them, h, Q1, Q2 represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function in the SM9 algorithm.

[0081] The first communication party calculates the first portion of signature data based on the first random number, the first sub-private key, and the second portion of signature data, including:

[0082] S=[r1]P1+[d1]P1+Q2

[0083] Where S represents the first part of the signature data.

[0084] Based on the first part of the signature data S and the signature component h of the second part of the signature data, the complete signature data (h, S) is obtained for signature verification.

[0085] like Figure 2 As shown, in this embodiment, the first communication party calculates the group G according to the public parameters TThe element g=e(P1,P pub-s ), generate a random number r1∈[1, N-1], and then calculate Send W1 and D1 to the second communication party. The second communication party generates a random number r2∈[1, N-1] and calculates h = H2(M||w, N), Q1 = [r2-h]P1, Q2 = [d2](D1+Q1), and h, Q1, and Q2 are sent to the first communication party. The first communication party calculates S = [r1]P1+[d1]Q1+Q2, performs data type conversion according to the SM9 algorithm, and outputs (h, S) as the complete signature.

[0086] In an optional implementation, when the sum of the first child private key and the second child private key is equal to the user private key-related data, the specific signature data calculation method is as follows:

[0087] The first communication party calculates variable data according to the first random number and the pre-applied first sub-private key, including:

[0088]

[0089] Where W1 represents the first variable component, D1 represents the second variable component, the variable data consists of the first variable component and the second variable component, d1 represents the first sub-private key, r1 represents the first random number, g and P1 are G T The elements in G T represents a group of bilinear maps.

[0090] Calculating the second portion of signature data based on the second random number, the pre-applied second sub-private key, and the variable data includes:

[0091] h=H2(M||w,N), Q1=[r2]P1, Q2=[d2]([r2]D1-[h]P1)

[0092] Among them, h, Q1, Q2 represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function.

[0093] Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes:

[0094] S=[r1]Q1+Q2-[d1h]P1

[0095] Where S represents the first part of the signature data.

[0096] like Figure 3 As shown, the first communication party calculates G according to the public parameters T The element g=e(P1,P pub-s ), generate a random number r1∈[1, N-1], calculate Send W1 and D1 to the second communication party. The second communication party generates a random number r2∈[1, N-1] and calculates h = H2(M||w, N), Q1 = [r2]P1, Q2 = [d2]([r2]D1 - [h]P1), and h, Q1, and Q2 are sent to the first communication party. The first communication party calculates S = [r1]Q1+Q2 - [d1h]P1, performs data type conversion according to the SM9 algorithm, and outputs (h, S) as the complete signature.

[0097] In an optional implementation, when the product of the first child private key and the second child private key is equal to the user private key related data, the specific signature data calculation method is as follows:

[0098] The first communication party calculates variable data according to the first random number and the pre-applied first sub-private key, including:

[0099]

[0100] Among them, W1 represents variable data, d1 represents the first child private key, r1 represents the first random number, g is G T The elements in G T represents a group of bilinear maps.

[0101] The second communication party calculates the second part of signature data according to the second random number, the pre-applied second sub-private key, and the variable data, including:

[0102] h=H2(M||w,N), s'=r2-hd2

[0103] Among them, h and s' respectively represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in G T represents a bilinear mapping group, N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function;

[0104] The first communication party calculates the first portion of signature data based on the first random number, the first sub-private key, and the second portion of signature data, including:

[0105] S=[r1+d1s']P1

[0106] Among them, S represents the first part of the signature data, d1 represents the first sub-private key, r1 represents the first random number, P1 is G T Elements in .

[0107] like Figure 4 As shown, the first communication party calculates G according to the public parameters T The element g=e(P1,P pub-s ), generate a random number r1∈[1, N-1], calculate Send W1 to the second communication party. The second communication party generates a random number r2∈[1, N-1] and calculates h=H2(M||w,N), s'=r2-hd2, send h and s' to the first communication party, the first communication party calculates S=[r1+d1s']P1, performs data type conversion according to the SM9 algorithm, and outputs (h, S) as the complete signature.

[0108] According to the above implementation, collaborative signature can be completed. In the key generation stage of the collaborative signature method of the present application, the key generation center obtains the signature private key request of the user (the first communication party or the second communication party), uses the key calculation rules of the standard cryptographic algorithm, calculates the user private key related data according to the system master private key and the user ID, and splits it into the first sub-private key and the second sub-private key, and sends them to the first communication party and the second communication party respectively as their own sub-private keys for storage. Different private key splitting rules can correspond to different signature data calculation methods.

[0109] In the collaborative signature stage, the first communication party generates a random number, uses the random number and the first sub-private key to calculate the intermediate variable data and sends it to the second communication party; after receiving the variable data, the second communication party generates a random number, and on this basis uses the random number and the second sub-private key to calculate the second part of the signature data and sends it to the first communication party. The first communication party uses its own random number, first sub-private key, and the second part of the signature data to calculate the first part of the signature data, and obtains the complete signature data based on the first part of the signature data and the second part of the signature data.

[0110] According to the technical solution disclosed in this application, both communicating parties can store their own partial private keys and then perform a distributed signature in collaboration with each other. The beneficial effects are:

[0111] 1. The complete private key of the key algorithm never appears in the entire signing process, which improves the security of the algorithm private key;

[0112] 2. The private key is split into two parts, which can be stored in different terminals respectively, making it more suitable for application scenarios currently involved in many mobile smart terminals;

[0113] 3. The signing process does not introduce any new cryptographic operations, the calculation is simple, and less data is transmitted during the communication process, making it more suitable for cloud computing environments that require low latency and high interactivity.

[0114] 4. The basic operation modules of the key algorithm can be reused. For example, only the SM9 algorithm operation module is used, and there is no need to add new operation modules. The implementation is simple and the layout cost is low.

[0115] The present application also provides a collaborative signature system for executing the collaborative signature method of the above embodiment, the system comprising: a first communication party and a second communication party, wherein the first communication party generates a first random number, calculates variable data based on the first random number and a pre-applied first sub-private key, and sends the variable data to the second communication party;

[0116] The second communication party generates a second random number, calculates a second portion of signature data based on the second random number, the pre-applied second sub-private key, and the variable data, and sends the second portion of signature data to the first communication party;

[0117] The first communication party calculates the first portion of signature data based on the first random number, the first sub-private key, and the second portion of signature data;

[0118] The first communication party obtains the complete signature data based on the first part of the signature data and the second part of the signature data and signs the complete signature data.

[0119] It should be noted that the collaborative signature system provided in the above embodiment, when executing the collaborative signature method, is illustrated only by the division of the aforementioned functional modules. In actual applications, the aforementioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the collaborative signature system provided in the above embodiment and the collaborative signature method embodiment are based on the same concept. The implementation process is detailed in the method embodiment and will not be repeated here.

[0120] An embodiment of the present application also provides an electronic device corresponding to the collaborative signature method provided in the above embodiment to execute the above collaborative signature method.

[0121] Please refer to Figure 5 , which shows a schematic diagram of an electronic device provided by some embodiments of the present application. Figure 5 As shown, the electronic device includes: a processor 500, a memory 501, a bus 502 and a communication interface 503, and the processor 500, the communication interface 503 and the memory 501 are connected through the bus 502; the memory 501 stores a computer program that can be run on the processor 500, and when the processor 500 runs the computer program, it executes the collaborative signature method provided by any of the aforementioned embodiments of the present application.

[0122] The memory 501 may include high-speed random access memory (RAM) and may also include non-volatile memory, such as at least one disk storage. The system network element and at least one other network element are connected via at least one communication interface 503 (which may be wired or wireless), and may utilize the Internet, a wide area network, a local area network, a metropolitan area network, or the like.

[0123] Bus 502 may be an ISA bus, a PCI bus, or an EISA bus. Buses may be classified as address buses, data buses, and control buses. Memory 501 is used to store programs, and processor 500 executes the programs upon receiving execution instructions. The collaborative signature method disclosed in any of the aforementioned embodiments of the present application may be applied to or implemented by processor 500.

[0124] The processor 500 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits in the processor 500 or by software instructions. The above processor 500 may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), an off-the-shelf field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in conjunction with the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory 501 , and the processor 500 reads the information in the memory 501 and completes the steps of the above method in combination with its hardware.

[0125] The electronic device provided in the embodiment of the present application and the collaborative signature method provided in the embodiment of the present application are based on the same inventive concept and have the same beneficial effects as the methods adopted, operated or implemented by them.

[0126] The present application also provides a computer-readable storage medium corresponding to the collaborative signature method provided in the above embodiment. Figure 6 The computer-readable storage medium shown is a CD 600 on which a computer program (ie, a program product) is stored. When the computer program is run by a processor, it executes the collaborative signature method provided by any of the aforementioned embodiments.

[0127] It should be noted that examples of computer-readable storage media may also include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other optical or magnetic storage media, which are not listed here one by one.

[0128] The computer-readable storage medium provided in the above-mentioned embodiments of the present application and the collaborative signature method provided in the embodiments of the present application are based on the same inventive concept and have the same beneficial effects as the methods adopted, run or implemented by the application programs stored therein.

[0129] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0130] The above embodiments merely illustrate several implementations of the present invention, and while their descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art would be able to make numerous modifications and improvements without departing from the spirit of the present invention, all of which fall within the scope of protection of the present invention. Therefore, the scope of protection of the present invention shall be determined by the appended claims.

Claims

1. A collaborative signature method, characterized in that: include: The first communication party initiates a private key acquisition request; The key generation center receives the private key acquisition request, calculates the user private key related data, and splits the user private key related data into a first sub-private key and a second sub-private key; the key generation center converts the user private key related data t2 into a finite field F N Decomposed into t2 = d1 + d2, or, the key generation center will t2 in the finite field F N The above decomposition is t2=d1d2; when the private key splitting rules are different, the calculation method of the signature data is also different; The key generation center sends the first sub-private key to the first communication party and sends the second sub-private key to the second communication party; The first communication party generates a first random number, calculates variable data based on the first random number and a pre-applied first sub-private key, and sends the variable data to the second communication party; The second communication party generates a second random number, calculates a second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data, and sends the second portion of signature data to the first communication party; The first communication party calculates the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data; The first communication party obtains the complete signature data based on the first partial signature data and the second partial signature data and signs the complete signature data.

2. The method according to claim 1, characterized in that The key generation center calculates data related to the user private key and splits the data related to the user private key into a first sub-private key and a second sub-private key, including: The key generation center calculates the user's private key-related data based on the system master private key and user ID; Decompose the user private key related data on a finite field to obtain a first sub-private key and a second sub-private key.

3. The method according to claim 2, characterized in that When the sum of the first child private key and the second child private key is equal to the user private key-related data, calculating variable data according to the first random number and the pre-applied first child private key includes: Wherein, W1 represents the first variable component, D1 represents the second variable component, the variable data is composed of the first variable component and the second variable component, d1 represents the first sub-private key, r1 represents the first random number, g and P1 are G T The elements in G T represents a bilinear mapping group; Calculating the second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data includes: h=H2(M||w,N), Q1=[r2-h]P1, Q2=[d2](D1+Q1) Among them, h, Q1, Q2 represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function; Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes: S=[r1]P1+[d1]Q1+Q2 Where S represents the first part of the signature data.

4. The method according to claim 2, characterized in that When the sum of the first child private key and the second child private key is equal to the user private key-related data, calculating variable data according to the first random number and the pre-applied first child private key includes: Wherein, W1 represents the first variable component, D1 represents the second variable component, the variable data is composed of the first variable component and the second variable component, d1 represents the first sub-private key, r1 represents the first random number, g and P1 are G T The elements in G T represents a bilinear mapping group; Calculating the second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data includes: h=H2(M||w,N), Q1=[r2]P1, Q2=[d2]([r2]D1-[h]P1) Among them, h, Q1, Q2 represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function; Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes: S=[r1]Q1+Q2-[d1h]P1 Where S represents the first part of the signature data.

5. The method according to claim 2, characterized in that When the product of the first child private key and the second child private key is equal to the user private key related data, calculating variable data according to the first random number and the pre-applied first child private key includes: Wherein, W1 represents the variable data, d1 represents the first child private key, r1 represents the first random number, g represents G T The elements in G T represents a group of bilinear maps.

6. The method according to claim 5, characterized in that Calculating the second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data includes: h=H2(M||w,N), s'=r2-hd2 Among them, h and s' respectively represent the signature components of the second part of the signature data, d2 represents the second sub-private key, r2 represents the second random number, and w represents G T The elements in G T represents a bilinear mapping group, N represents a natural number, M represents the message bit string to be signed, and H2 represents a cryptographic function; Calculating the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data includes: S=[r1+d1s′]P1 Among them, S represents the first part of the signature data, d1 represents the first sub-private key, r1 represents the first random number, P1 is G T Elements in .

7. A collaborative signature system, characterized in that: include: A first communication party and a second communication party, wherein The first communication party initiates a private key acquisition request; the key generation center receives the private key acquisition request, calculates user private key-related data, and splits the user private key-related data into a first sub-private key and a second sub-private key; the key generation center decomposes the user private key-related data t2 over the finite field FN into t2=d1+d2, or decomposes t2 over the finite field FN into t2=d1d2; different private key splitting rules result in different signature data calculation methods; The key generation center sends the first sub-private key to the first communication party and sends the second sub-private key to the second communication party; The first communication party generates a first random number, calculates variable data based on the first random number and a pre-applied first sub-private key, and sends the variable data to the second communication party; The second communication party generates a second random number, calculates a second portion of signature data according to the second random number, the pre-applied second sub-private key, and the variable data, and sends the second portion of signature data to the first communication party; The first communication party calculates the first portion of signature data according to the first random number, the first sub-private key, and the second portion of signature data; The first communication party obtains the complete signature data based on the first partial signature data and the second partial signature data and signs the complete signature data.

8. An electronic device, characterized in that: The invention comprises a processor and a memory storing program instructions, wherein the processor is configured to execute a collaborative signature method according to any one of claims 1 to 6 when executing the program instructions.

9. A computer-readable medium, characterized in that Computer-readable instructions are stored thereon, and the computer-readable instructions are executed by a processor to implement a collaborative signature method as claimed in any one of claims 1 to 6.

Citation Information

Patent Citations

  • Collaborative signature method and device based on SM9 algorithm, and medium

    CN111314080A

  • Distributed signature method and system based on SM9

    CN111740837A