A data signature method, apparatus, device, and computer-readable storage medium

By using SGX technology and a cryptographically secure random number generator in a cloud computing environment, combined with elliptic curve hashing algorithm, we have achieved efficient multi-party authentication aggregation signature, which solves the problems of large computational load and frequent key changes in existing technologies, and ensures data integrity and non-repudiation.

CN116545631BActive Publication Date: 2025-12-02SHANDONG HAILIANG INFORMATION TECH RES INST
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310498595.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-27
Publication Date
2025-12-02
Estimated Expiration
2043-04-27

AI Technical Summary

Technical Problem

Existing data signature methods are computationally intensive, inefficient, require frequent key changes, and are vulnerable to key cancellation attacks and replay attacks.

Method used

The public key of the signing terminal is stored and computed using software-protected extended SGX technology. A cryptographically secure random number generator is used to generate random numbers. The shared public key and the random public key are computed using an elliptic curve hash algorithm. A multi-party authenticated aggregate signature is then performed to generate a signature result.

Benefits of technology

It effectively resists key cancellation attacks, ensures data integrity and non-repudiation, and greatly reduces signature verification time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116545631B_ABST
    Figure CN116545631B_ABST
Patent Text Reader

Abstract

This application discloses a data signature method, including obtaining each signing terminal and the target data to be signed; obtaining the public keys of each signing terminal from a confidential container based on software protection extensions, and calculating a shared public key; generating random numbers for each signing terminal, obtaining the system time at the time of generation, and the terminal identification information of each signing terminal; performing digest calculation on the random numbers, system time, and terminal identification information; calculating the random public key corresponding to each signing terminal based on the calculated random keys, and calculating a shared random number public key; performing hash calculation on the target data based on the shared public key and the shared random number public key, and calculating the initial signature result of each signing terminal based on the hash calculation result; and aggregating to obtain the target signature result. This application can resist key cancellation attacks, ensure data integrity and non-repudiation, and reduce signature verification time. This application also discloses an apparatus, device, and storage medium, which have corresponding technical effects.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of cloud computing security technology, and in particular to a data signature method, apparatus, device, and computer-readable storage medium. Background Technology

[0002] With the advent of the cloud computing era, in the actual business of cloud tenants, a document or material often needs to be signed (or stamped) by several units or departments to be valid. The cloud is an insecure scenario, and cloud service providers can view or even manipulate the data of all cloud tenants. There are problems with the storage and use of key sensitive information (such as secret keys) used in the signing process.

[0003] Multi-signature technology, as a method to solve the above problems in a network environment, is used when a document must be signed by multiple people to be valid. Multi-signature involves multiple signers jointly signing an electronic document. The signatures of multiple signers are verified, and if any one of them is invalid, the entire authentication result is rejected. Currently, the main methods include: 1) Individual signatures by each party to ensure integrity and non-repudiation. This method requires verifying multiple signatures, resulting in high computational cost and low efficiency; 2) Key sharing using the Shamir secret sharing algorithm, where more than a threshold number of people recover the key, encrypt and decrypt the file, and perform hash calculations. This method is computationally intensive, and if one or more keys are lost or changed, everyone else must also change their keys, making it impractical; 3) Schnorr aggregation signature to sign the file to ensure integrity and non-repudiation. This method has low computational cost but cannot resist key cancellation attacks, replay attacks, etc.

[0004] In summary, how to effectively solve the problems of high computational cost, low efficiency, frequent key changes, and inability to resist key cancellation attacks and replay attacks in current data signature methods is an urgent issue that needs to be addressed by those skilled in the art. Summary of the Invention

[0005] The purpose of this application is to provide a data signature method that can resist key cancellation attacks, ensure data integrity and non-repudiation, and greatly reduce signature verification time; another purpose of this application is to provide a data signature device, apparatus, and computer-readable storage medium.

[0006] To solve the above-mentioned technical problems, this application provides the following technical solution:

[0007] A data signature method, comprising:

[0008] The received data signature requests are parsed to obtain the signature terminals and the target data to be signed.

[0009] Obtain the public key corresponding to each of the signing terminals from the confidential container based on the software protection extension, and calculate the shared public key based on each of the public keys;

[0010] A cryptographically secure random number generator is used to generate random numbers corresponding to each of the signing terminals, and the system time corresponding to the generation of each random number and the terminal identification information corresponding to each of the signing terminals are obtained.

[0011] Obtain the order of the preset elliptic curve parameters, and use the same hash algorithm as the order of the elliptic curve parameters to perform digest calculations on the random number, system time and terminal identification information corresponding to each signature terminal to obtain the random key corresponding to each signature terminal.

[0012] Calculate the random public key corresponding to each of the signature terminals based on each of the random keys, and calculate the shared random number public key based on each of the random public keys;

[0013] The target data is hashed based on the shared public key and the shared random number public key, and the initial signature result corresponding to each signature terminal is calculated based on the hash calculation result.

[0014] The initial signature results are aggregated to obtain the target signature result.

[0015] In one specific embodiment of this application, obtaining the public key corresponding to each of the signing terminals from the confidential container based on software protection extensions includes:

[0016] Obtain the public key corresponding to each of the signing terminals from the global public module of the confidential container based on software protection extensions.

[0017] In one specific embodiment of this application, obtaining the order of a preset elliptic curve parameter includes:

[0018] Obtain the order of the preset elliptic curve parameters from the global public module of the confidential container.

[0019] In one specific embodiment of this application, a cryptographically secure random number generator is used to generate random numbers corresponding to each of the signature terminals, including:

[0020] The signature module in the confidential container is accessed so that the signature module generates a random number corresponding to each of the signature terminals using a cryptographically secure random number generator.

[0021] In one specific embodiment of this application, it further includes:

[0022] When a target signing terminal fails to calculate the initial signature result, the key pair generation module in the confidential container is accessed to regenerate the key pair information corresponding to the target signing terminal, and the step of obtaining the public key corresponding to each signing terminal from the confidential container based on software protection extension is repeated; wherein, the key pair information includes the target private key and the target public key corresponding to the target signing terminal, and the target public key is the product of the target private key and the pre-selected elliptic curve base point.

[0023] In one specific embodiment of this application, after obtaining the target signature result, the method further includes:

[0024] When an access request for the target data is received, the signature result of the target is verified.

[0025] In one specific embodiment of this application, the verification operation of the target signature result includes:

[0026] Calculate the product of the target signature result and the pre-selected elliptic curve base point to obtain the first product result;

[0027] Calculate the product of the hash calculation result and the shared public key to obtain a second product result, and sum the second product result with the shared random number public key to obtain a summation result;

[0028] The signature result of the target signature is verified by comparing the consistency between the first product result and the summation result.

[0029] A data signature device, comprising:

[0030] The request parsing unit is used to parse the received data signature requests to obtain the signature terminals and the target data to be signed;

[0031] A shared public key calculation unit is used to obtain the public keys corresponding to each of the signature terminals from the confidential container based on software protection extensions, and to calculate a shared public key based on each of the public keys;

[0032] The random number generation and information acquisition unit is used to generate random numbers corresponding to each of the signing terminals using a cryptographically secure random number generator, and to acquire the system time corresponding to the generation of each random number and the terminal identification information corresponding to each of the signing terminals.

[0033] The random key acquisition unit is used to obtain the order of the preset elliptic curve parameters, and to perform digest calculations on the random number, system time and terminal identification information corresponding to each of the signature terminals using a hash algorithm with the same order as the elliptic curve parameters, so as to obtain the random key corresponding to each of the signature terminals.

[0034] A shared random number public key calculation unit is used to calculate the random public key corresponding to each of the signature terminals based on each of the random keys, and to calculate the shared random number public key based on each of the random public keys;

[0035] The initial signature result calculation unit is used to perform hash calculation on the target data based on each of the shared public keys and the shared random number public key, and to calculate the initial signature result corresponding to each of the signature terminals based on the hash calculation result;

[0036] The target signature result acquisition unit is used to perform an aggregation operation on each of the initial signature results to obtain the target signature result.

[0037] A data signature device, comprising:

[0038] Memory, used to store computer programs;

[0039] A processor for implementing the steps of the data signature method as described above when executing the computer program.

[0040] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the data signature method as described above.

[0041] The data signature method provided in this application parses the received data signature request to obtain each signing terminal and the target data to be signed; retrieves the public key corresponding to each signing terminal from a confidential container based on software protection extensions, and calculates a shared public key based on each public key; generates random numbers corresponding to each signing terminal using a cryptographically secure random number generator, and obtains the system time and terminal identification information corresponding to each signing terminal when generating each random number; obtains the order of a preset elliptic curve parameter, and performs digest calculations on the random numbers, system time, and terminal identification information corresponding to each signing terminal using a hash algorithm with the same order as the elliptic curve parameter, to obtain a random key corresponding to each signing terminal; calculates the random public key corresponding to each signing terminal based on each random key, and calculates a shared random number public key based on each random public key; performs hash calculations on the target data based on each shared public key and the shared random number public key, and calculates the initial signature result corresponding to each signing terminal based on the hash calculation result; and performs an aggregation operation on each initial signature result to obtain the target signature result.

[0042] As can be seen from the above technical solutions, by using the Software Protection Extensions (SGX) technology for storing and computing the public and shared public keys of the signing terminals, the data security of critical and sensitive information is guaranteed. Using a cryptographically secure random number generator to generate random numbers resists key cancellation attacks and avoids random number collisions. The aggregated signatures of the target data by multiple authentication terminals ensure data integrity and non-repudiation. The aggregated signature generates only one signature, and only one signature needs to be verified during signature verification, greatly reducing the signature verification time.

[0043] Accordingly, this application also provides a data signature apparatus, device, and computer-readable storage medium corresponding to the above-mentioned data signature method, which have the above-mentioned technical effects, and will not be described in detail here. Attached Figure Description

[0044] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0045] Figure 1 This is a flowchart illustrating one implementation of the data signature method in this application.

[0046] Figure 2 This is a flowchart illustrating another implementation of the data signature method in this application.

[0047] Figure 3 This is a structural block diagram of a data signature device according to an embodiment of this application;

[0048] Figure 4 This is a structural block diagram of a data signature device according to an embodiment of this application;

[0049] Figure 5 This is a schematic diagram of the specific structure of a data signature device provided in this embodiment. Detailed Implementation

[0050] With the advent of the cloud computing era, true resource sharing has been achieved at a very low cost. Cloud computing is divided into IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service), which can meet the business needs of most users. This allows companies to migrate their business systems to the cloud platform, leaving hardware and firmware maintenance to the cloud service provider. As a tenant, the company only needs to focus on business operations, significantly reducing its upfront investment in fixed assets.

[0051] Multi-signature technology, as a method to solve the above problems in a network environment, currently mainly includes the following approaches: 1) Individual signatures by each party to ensure integrity and non-repudiation. This method requires verifying multiple signatures, resulting in high computational cost and low efficiency; 2) Key sharing using the Shamir secret sharing algorithm, where more than a threshold number of people recover the key, encrypt and decrypt the file, and perform hash calculations. This method is computationally intensive, and if one or more keys are lost or replaced by any party, everyone else must also replace their keys, making it impractical; 3) Signing files using Schnorr aggregation signatures to ensure integrity and non-repudiation. This method has low computational cost but is vulnerable to key cancellation attacks and replay attacks.

[0052] Therefore, the data signature method provided in this application can resist key cancellation attacks, ensure data integrity and non-repudiation, and greatly reduce signature verification time.

[0053] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments. Obviously, the described embodiments are merely some embodiments of the present application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0054] See Figure 1 , Figure 1 This is a flowchart illustrating one implementation of the data signature method in this application. The method may include the following steps:

[0055] S101: Parse the received data signature request to obtain the signature terminals and the target data to be signed.

[0056] When data needs to be signed, a data signature request is generated. This request contains information about the signing terminals and the target data to be signed, and is sent to the cloud computing data center. The cloud computing data center receives the data signature request, parses it, and obtains the information about the signing terminals and the target data to be signed.

[0057] S102: Obtain the public key corresponding to each signing terminal from the confidential container based on software protection extension, and calculate the shared public key based on each public key.

[0058] An Enclave confidential container based on Software Guard eXtensions (SGX) is pre-created, and public keys corresponding to each signing terminal are pre-generated and stored in the SGX-based confidential container. After parsing the signing terminals, the public key p corresponding to each signing terminal is retrieved from the SGX-based confidential container. i ,i∈{1,n}, and according to each public key p i Calculate the shared public key Q for i∈{1,n}. The shared public key can be calculated from the individual public keys using the following formula:

[0059] t = hash(P1 / P2 / ... / P) n );

[0060] a i =hash(t / p) i );

[0061]

[0062] Where t, a i All of these are temporary variables.

[0063] SGX (Software Guard eXtensions) is essentially a set of CPU (Central Processing Unit) instruction extensions that create a trusted execution environment to protect code and data, inaccessible even to root users. Applications can use it to isolate specific trusted areas of code and data, preventing attacks after the underlying operating system (OS) has been compromised. It also eliminates the need to trust cloud providers for software management, aligning well with current cloud computing security challenges, such as storing keys for security-sensitive services. SGX allows applications to implement a container called an Enclave, which partitions a protected area within the application's address space, providing confidentiality and integrity protection for the code and data within the container, safeguarding it from malware with special privileges.

[0064] In one specific embodiment of this application, obtaining the public keys corresponding to each signing terminal from the confidential container based on software protection extensions may include the following steps:

[0065] Obtain the public key corresponding to each signing terminal from the global public module of the confidential container based on software protection extensions.

[0066] The confidential container based on software protection extensions pre-loads a global public module, which stores the public keys corresponding to each signing terminal. After parsing the signing terminals, the public key p corresponding to each signing terminal is retrieved from the global public module of the confidential container based on software protection extensions. i ,i∈{1,n}. By utilizing the global public module in the confidential container based on software protection extensions, the public key p corresponding to each signing terminal is... i This storage ensures the data security of critical and sensitive information.

[0067] S103: Use a cryptographically secure random number generator to generate random numbers corresponding to each signing terminal, and obtain the system time corresponding to the generation of each random number and the terminal identification information corresponding to each signing terminal.

[0068] After obtaining the signature terminals, a cryptographically secure random number generator (CSPRNG) is used to generate random numbers corresponding to each signature terminal. The system time corresponding to the generation of each random number and the terminal identifier information corresponding to each signature terminal are then obtained. By using a cryptographically secure random number generator to generate random numbers corresponding to each signature terminal, the security of random number generation is improved.

[0069] In one specific embodiment of this application, generating random numbers corresponding to each signing terminal using a cryptographically secure random number generator may include the following steps:

[0070] Access the signature module in the confidential container to enable the signature module to generate random numbers for each signature terminal using a cryptographically secure random number generator.

[0071] The confidential container, based on software protection extensions, also pre-loads a signature module. By accessing the signature module within the confidential container, the module utilizes a cryptographically secure random number generator to generate a random number tk corresponding to each signing terminal. By pre-loading the signature module into the confidential container, the generation of random numbers corresponding to each signing terminal can be effectively controlled.

[0072] S104: Obtain the order of the preset elliptic curve parameters, and use the same hash algorithm as the order of the elliptic curve parameters to perform digest calculations on the random number, system time and terminal identification information corresponding to each signing terminal to obtain the random key corresponding to each signing terminal.

[0073] Predefine public parameters on the elliptic curve, including p, q, E, and G, where p is a large prime number, and E is a finite field defined on the finite field F. p Let G = (x, y) be the base point of order q on the elliptic curve E. After generating random numbers for each signing terminal using a cryptographically secure random number generator, the order q of the preset elliptic curve parameter is obtained. Then, a hash algorithm with the same order as the elliptic curve parameter is used to calculate the digest of the random number, system time T, and terminal identification information ID corresponding to each signing terminal, yielding the random key r for each signing terminal. i The random key r corresponding to each signing terminal can be calculated using the following formula. i :

[0074] r i = hash(ID / tk / T);

[0075] In this context, / indicates splicing.

[0076] By using a cryptographically secure random number generator and timestamps, and then performing hash calculations to generate random numbers, the problem of random number collisions is avoided.

[0077] In one specific embodiment of this application, obtaining the order of a preset elliptic curve parameter may include the following steps:

[0078] Obtain the order of the preset elliptic curve parameters from the global public module of the confidential container.

[0079] After setting the public parameters on the elliptic curve, these parameters can be stored in the global public module of the confidential container. After generating random numbers for each signing terminal using a cryptographically secure random number generator, the order of the preset elliptic curve parameters is retrieved from the global public module of the confidential container. By storing the preset order of the elliptic curve parameters in the global public module of the confidential container, the data security of critical and sensitive information is ensured.

[0080] S105: Calculate the random public key corresponding to each signing terminal based on each random key, and calculate the shared random number public key based on each random public key.

[0081] After calculating the random key corresponding to each signing terminal, the random public key R corresponding to each signing terminal is calculated based on the random key. i The shared random public key R is calculated based on each random public key. The random public key corresponding to each signing terminal can be calculated using the following formula:

[0082] R i =r i G, i∈{1,n};

[0083] After calculating the random public key corresponding to each signing terminal using each random key, the random public key corresponding to each signing terminal can be saved to the global public module.

[0084] The shared random number public key can be calculated from each random public key using the following formula:

[0085]

[0086] S106: Perform hash calculation on the target data based on each shared public key and the shared random number public key, and calculate the initial signature result corresponding to each signing terminal based on the hash calculation result.

[0087] After calculating the shared public key and shared random number public key, the target data is hashed based on each shared public key and shared random number public key. Then, the initial signature result for each signing terminal is calculated based on the hash calculation result. The hash calculation of the target data based on each shared public key and shared random number public key can be performed using the following formula:

[0088] e = hash(Q / R / m);

[0089] Where e is the hash calculation result.

[0090] The initial signature result S for each signature terminal is calculated using the following formula based on the hash calculation result. i :

[0091] Si =r i +dA i a i *e;

[0092] Among them, (R) i S i ), where i∈{1,n} is the signature value of each signature terminal.

[0093] S107: Perform an aggregation operation on each initial signature result to obtain the target signature result.

[0094] After calculating the initial signature result for each signing terminal, the initial signature results are aggregated to obtain the target signature result. The aggregation operation for the initial signature results can be performed using the following formula:

[0095]

[0096] Where (R, S) is the final signature result.

[0097] The MuSig aggregate signature technology, which uses multiple authentication terminals to aggregate signatures on files or data, ensures the integrity and non-repudiation of the files or data. Furthermore, by adding random numbers, it can resist key cancellation attacks.

[0098] As can be seen from the above technical solutions, by using the Software Protection Extensions (SGX) technology for storing and computing the public and shared public keys of the signing terminals, the data security of critical and sensitive information is guaranteed. Using a cryptographically secure random number generator to generate random numbers resists key cancellation attacks and avoids random number collisions. The aggregated signatures of the target data by multiple authentication terminals ensure data integrity and non-repudiation. The aggregated signature generates only one signature, and only one signature needs to be verified during signature verification, greatly reducing the signature verification time.

[0099] It should be noted that, based on the above embodiments, this application also provides corresponding improvements. In subsequent embodiments, steps that are the same as or corresponding to those in the above embodiments can be referred to each other, and the corresponding beneficial effects can also be referred to each other. These improvements will not be elaborated upon in the following improved embodiments.

[0100] In one specific embodiment of this application, the method may further include the following steps:

[0101] When there is a target signing terminal that fails to calculate the initial signature result, the key pair generation module in the confidential container is accessed to regenerate the key pair information corresponding to the target signing terminal, and the step of obtaining the public key corresponding to each signing terminal from the confidential container based on software protection extension is repeated; wherein, the key pair information includes the target private key and the target public key corresponding to the target signing terminal, and the target public key is the product of the target private key and the pre-selected elliptic curve base point.

[0102] During the signing process, unpredictable events such as system crashes or outages may cause the initial signature calculation to fail. In such cases, it is necessary to re-access the key pair generation module in the confidential container to regenerate the key pair information of the target signing terminal whose initial signature calculation failed. Then, the step of retrieving the public key corresponding to each signing terminal from the confidential container based on software protection extensions is repeated, and each signing terminal regenerates a random number and re-signs, thereby avoiding random number attacks.

[0103] See Figure 2 , Figure 2 This is a flowchart illustrating another implementation of the data signature method in this application. The method may include the following steps:

[0104] S201: Parse the received data signature request to obtain the signature terminals and the target data to be signed.

[0105] S202: Obtain the public key corresponding to each signing terminal from the confidential container based on the software protection extension, and calculate the shared public key based on each public key.

[0106] S203: Use a cryptographically secure random number generator to generate random numbers corresponding to each signing terminal, and obtain the system time corresponding to the generation of each random number and the terminal identification information corresponding to each signing terminal.

[0107] S204: Obtain the order of the preset elliptic curve parameters, and use the same hash algorithm as the order of the elliptic curve parameters to perform digest calculations on the random number, system time and terminal identification information corresponding to each signing terminal to obtain the random key corresponding to each signing terminal.

[0108] S205: Calculate the random public key corresponding to each signing terminal based on each random key, and calculate the shared random number public key based on each random public key.

[0109] S206: Perform hash calculation on the target data based on each shared public key and the shared random number public key, and calculate the initial signature result corresponding to each signing terminal based on the hash calculation result.

[0110] S207: Perform an aggregation operation on each initial signature result to obtain the target signature result.

[0111] S208: When a request to access the target data is received, the signature result of the target is verified.

[0112] After aggregating the initial signature results to obtain the target signature result, a signature verification operation is performed on the target signature result when an access request for the target data is received. Signature verification ensures the security of data access.

[0113] In one specific embodiment of this application, verifying the target signature result may include the following steps:

[0114] Step 1: Calculate the product of the target signature result and the pre-selected elliptic curve base point to obtain the first product result;

[0115] Step 2: Calculate the product of the hash calculation result and the shared public key to obtain the second product result, and sum the second product result with the shared random number public key to obtain the sum result;

[0116] Step 3: Verify the target signature by comparing the consistency between the first product result and the summation result.

[0117] For ease of description, the three steps above can be combined for explanation.

[0118] The confidential container based on software protection extensions can also pre-store a signature verification module. It calculates the product of the target signature result S and the pre-selected elliptic curve base point G to obtain the first product result SG. It then calculates the product of the hash calculation result e and the shared public key Q to obtain the second product result eQ. Finally, it sums the second product result eQ with the shared random number public key R to obtain the sum R+eQ. The signature is verified by comparing the consistency between the first product result SG and the sum R+eQ. The derivation process is as follows:

[0119]

[0120]

[0121]

[0122]

[0123]

[0124] SG = R + eQ;

[0125] If they match, the signature is fine and verification is successful; if they do not match, the signature is faulty and verification fails.

[0126] Corresponding to the above method embodiments, this application also provides a data signature device, and the data signature device described below can be referred to in correspondence with the data signature method described above.

[0127] See Figure 3 , Figure 3 This is a structural block diagram of a data signature device according to an embodiment of this application. The device may include:

[0128] The request parsing unit 31 is used to parse the received data signature request to obtain each signing terminal and the target data to be signed;

[0129] The shared public key calculation unit 32 is used to obtain the public keys corresponding to each signing terminal from the confidential container based on software protection extension, and calculate the shared public key based on each public key;

[0130] The random number generation and information acquisition unit 33 is used to generate random numbers corresponding to each signing terminal using a cryptographically secure random number generator, and to acquire the system time corresponding to each random number generation and the terminal identification information corresponding to each signing terminal.

[0131] The random key acquisition unit 34 is used to obtain the order of the preset elliptic curve parameter, and to perform digest calculations on the random number, system time and terminal identification information corresponding to each signing terminal using a hash algorithm with the same order as the elliptic curve parameter, so as to obtain the random key corresponding to each signing terminal.

[0132] The shared random number public key calculation unit 35 is used to calculate the random public key corresponding to each signing terminal based on each random key, and to calculate the shared random number public key based on each random public key;

[0133] The initial signature result calculation unit 36 ​​is used to perform hash calculation on the target data based on each shared public key and the shared random number public key, and to calculate the initial signature result corresponding to each signature terminal based on the hash calculation result.

[0134] The target signature result acquisition unit 37 is used to perform aggregation operations on each initial signature result to obtain the target signature result.

[0135] As can be seen from the above technical solutions, by using the Software Protection Extensions (SGX) technology for storing and computing the public and shared public keys of the signing terminals, the data security of critical and sensitive information is guaranteed. Using a cryptographically secure random number generator to generate random numbers resists key cancellation attacks and avoids random number collisions. The aggregated signatures of the target data by multiple authentication terminals ensure data integrity and non-repudiation. The aggregated signature generates only one signature, and only one signature needs to be verified during signature verification, greatly reducing the signature verification time.

[0136] In one specific embodiment of this application, the shared public key calculation unit 32 is specifically a unit that obtains the public keys corresponding to each signing terminal from the global public module of the confidential container based on software protection extension.

[0137] In one specific embodiment of this application, the random key acquisition unit 34 is specifically a unit that obtains the order of a preset elliptic curve parameter from the global public module of the confidential container.

[0138] In one specific embodiment of this application, the random number generation and information acquisition unit 33 is specifically a unit that accesses the signature module in the confidential container so that the signature module can generate random numbers corresponding to each signature terminal using a cryptographically secure random number generator.

[0139] In one specific embodiment of this application, the device may further include:

[0140] The key pair regeneration unit is used to access the key pair generation module in the confidential container when there is a target signing terminal whose initial signature result calculation fails, in order to regenerate the key pair information corresponding to the target signing terminal, and repeat the step of obtaining the public key corresponding to each signing terminal from the confidential container based on software protection extension; wherein, the key pair information includes the target private key and the target public key corresponding to the target signing terminal, and the target public key is the product of the target private key and the pre-selected elliptic curve base point.

[0141] In one specific embodiment of this application, the device may further include:

[0142] The signature verification unit is used to perform signature verification on the target signature result after obtaining the target signature result and when an access request for the target data is received.

[0143] In one specific embodiment of this application, the signature verification unit includes:

[0144] The first product result obtains a sub-unit, which is used to calculate the product of the target signature result and the pre-selected elliptic curve base point to obtain the first product result;

[0145] The summation result yields a sub-unit, which is used to calculate the product of the hash calculation result and the shared public key to obtain the second product result. The second product result is then summed with the shared random number public key to obtain the summation result.

[0146] The signature verification subunit is used to verify the target signature result by comparing the consistency between the first product result and the summation result.

[0147] For the method embodiments described above, see [link to relevant documentation]. Figure 4 , Figure 4This is a schematic diagram of the data signature device provided in this application. The device may include:

[0148] Memory 332 is used to store computer programs;

[0149] The processor 322 is used to implement the steps of the data signature method in the above method embodiments when executing a computer program.

[0150] For details, please refer to Figure 5 , Figure 5 This is a schematic diagram illustrating the specific structure of a data signature device provided in this embodiment. The data signature device can vary significantly due to differences in configuration or performance. It may include a processor (central processing unit, CPU) 322 (e.g., one or more processors) and a memory 332. The memory 332 stores one or more computer programs 342 or data 344. The memory 332 can be temporary or persistent storage. The program stored in the memory 332 may include one or more modules (not shown in the diagram), each module including a series of instruction operations on the data processing device. Furthermore, the processor 322 may be configured to communicate with the memory 332 and execute the series of instruction operations stored in the memory 332 on the data signature device 301.

[0151] The data signature device 301 may also include one or more power supplies 326, one or more wired or wireless network interfaces 350, one or more input / output interfaces 358, and / or one or more operating systems 341.

[0152] The steps in the data signature method described above can be implemented by the structure of a data signature device.

[0153] Corresponding to the above method embodiments, this application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, can perform the following steps:

[0154] The received data signing request is parsed to obtain the signing terminals and the target data to be signed. The public keys corresponding to each signing terminal are retrieved from the confidential container based on software protection extensions, and a shared public key is calculated based on these public keys. A cryptographically secure random number generator is used to generate random numbers corresponding to each signing terminal, and the system time and terminal identification information corresponding to each random number generation are obtained. The order of the preset elliptic curve parameter is obtained, and a hash algorithm with the same order as the elliptic curve parameter is used to calculate the digest of the random numbers, system time, and terminal identification information corresponding to each signing terminal, resulting in a random key corresponding to each signing terminal. A random public key corresponding to each signing terminal is calculated based on each random key, and a shared random number public key is calculated based on these random public keys. The target data is hashed based on the shared public key and the shared random number public key, and the initial signature result corresponding to each signing terminal is calculated based on the hash calculation result. The initial signature results are aggregated to obtain the target signature result.

[0155] The computer-readable storage medium may include 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.

[0156] For a description of the computer-readable storage medium provided in this application, please refer to the above method embodiments; further details will not be repeated here.

[0157] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatuses, devices, and computer-readable storage media disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the descriptions are relatively simple; relevant parts can be referred to the method section.

[0158] This document uses specific examples to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the technical solutions and core ideas of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made to this application without departing from the principles of this application, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A data signature method, characterized in that, include: The received data signature requests are parsed to obtain the signature terminals and the target data to be signed. Obtain the public key corresponding to each of the signing terminals from the confidential container based on the software protection extension, and calculate the shared public key based on each of the public keys; A cryptographically secure random number generator is used to generate random numbers corresponding to each of the signing terminals, and the system time corresponding to the generation of each random number and the terminal identification information corresponding to each of the signing terminals are obtained. Obtain the order of the preset elliptic curve parameters, and use a hash algorithm with the same order as the elliptic curve parameters to perform digest calculations on the random number, system time, and terminal identification information corresponding to each signature terminal to obtain the random key corresponding to each signature terminal. Calculate the random public key corresponding to each of the signature terminals based on each of the random keys, and calculate the shared random number public key based on each of the random public keys; The target data is hashed based on the shared public key and the shared random number public key, and the initial signature result corresponding to each signature terminal is calculated based on the hash calculation result. The initial signature results are aggregated to obtain the target signature result.

2. The data signature method according to claim 1, characterized in that, Obtain the public key corresponding to each of the signing terminals from the confidential container based on software protection extensions, including: Obtain the public key corresponding to each of the signing terminals from the global public module of the confidential container based on software protection extensions.

3. The data signature method according to claim 1, characterized in that, Obtain the order of the preset elliptic curve parameters, including: Obtain the order of the preset elliptic curve parameters from the global public module of the confidential container.

4. The data signature method according to claim 1, characterized in that, Generating random numbers for each of the signing terminals using a cryptographically secure random number generator includes: The signature module in the confidential container is accessed so that the signature module generates a random number corresponding to each of the signature terminals using a cryptographically secure random number generator.

5. The data signature method according to claim 1, characterized in that, Also includes: When a target signing terminal fails to calculate the initial signature result, the key pair generation module in the confidential container is accessed to regenerate the key pair information corresponding to the target signing terminal, and the step of obtaining the public key corresponding to each signing terminal from the confidential container based on software protection extension is repeated; wherein, the key pair information includes the target private key and the target public key corresponding to the target signing terminal, and the target public key is the product of the target private key and the pre-selected elliptic curve base point.

6. The data signature method according to any one of claims 1 to 5, characterized in that, After obtaining the target signature result, the following is also included: When an access request for the target data is received, the signature result of the target is verified.

7. The data signature method according to claim 6, characterized in that, The signature verification operation for the target signature result includes: Calculate the product of the target signature result and the pre-selected elliptic curve base point to obtain the first product result; Calculate the product of the hash calculation result and the shared public key to obtain a second product result, and sum the second product result with the shared random number public key to obtain a summation result; The signature result of the target signature is verified by comparing the consistency between the first product result and the summation result.

8. A data signature device, characterized in that, include: The request parsing unit is used to parse the received data signature requests to obtain the signature terminals and the target data to be signed; A shared public key calculation unit is used to obtain the public keys corresponding to each of the signature terminals from the confidential container based on software protection extensions, and to calculate a shared public key based on each of the public keys; The random number generation and information acquisition unit is used to generate random numbers corresponding to each of the signing terminals using a cryptographically secure random number generator, and to acquire the system time corresponding to the generation of each random number and the terminal identification information corresponding to each of the signing terminals. The random key acquisition unit is used to obtain the order of the preset elliptic curve parameters, and to perform digest calculations on the random number, system time and terminal identification information corresponding to each of the signing terminals using a hash algorithm with the same order as the elliptic curve parameters, so as to obtain the random key corresponding to each of the signing terminals. A shared random number public key calculation unit is used to calculate the random public key corresponding to each of the signature terminals based on each of the random keys, and to calculate the shared random number public key based on each of the random public keys; The initial signature result calculation unit is used to perform hash calculation on the target data based on each of the shared public keys and the shared random number public key, and to calculate the initial signature result corresponding to each of the signature terminals based on the hash calculation result; The target signature result acquisition unit is used to perform an aggregation operation on each of the initial signature results to obtain the target signature result.

9. A data signature device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the data signature method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the data signature method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Distributed cooperative signature method and distributed cooperative signature device, soft shield system

    CN109274503A

  • Bidirectional identity verification method and device, equipment and storage medium

    CN114417309A