WO2021143456A1 - Sm9数字签名生成方法、装置、计算机设备和存储介质 - Google Patents
Sm9数字签名生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- WO2021143456A1 WO2021143456A1 PCT/CN2020/137523 CN2020137523W WO2021143456A1 WO 2021143456 A1 WO2021143456 A1 WO 2021143456A1 CN 2020137523 W CN2020137523 W CN 2020137523W WO 2021143456 A1 WO2021143456 A1 WO 2021143456A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- signature
- password
- cyclic group
- digital signature
- key generation
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 127
- 230000001960 triggered effect Effects 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 31
- 239000000654 additive Substances 0.000 claims description 20
- 230000000996 additive effect Effects 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007850 degeneration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Definitions
- This application relates to the field of information security technology, in particular to a SM9 digital signature generation method, device, computer equipment and storage medium.
- Digital signature technology is a combined application of asymmetric cryptography and digital digest technology.
- the sender is the signing party. It digitally signs audio and video files, emails, official letters, contracts, and network data packets waiting to be signed. After the digital signature is generated, the The signed data information is sent to the recipient together with the digital signature.
- the SM9 identification cryptographic algorithm is an identification cryptosystem based on elliptic curve pairs (bilinear pairs). It is a standard algorithm for public key cryptographic algorithms in the commercial cryptographic industry in my country, including digital signature algorithms.
- the user terminal provides the user's public key to the key generation center (KGC, key generation center).
- KGC key generation center
- the user's public key is uniquely determined by the user ID, and the key generation center KGC responds to the user terminal.
- the existing SM9 digital signature generation method needs to directly use the user's private key, in some insecure application scenarios, the user's private key may be exposed or stolen, so there is a problem of low security.
- An SM9 digital signature generation method includes:
- the key generation center calculates the signature identity credential according to the user ID and the signature password;
- a digital signature is output.
- the method before the obtaining the first element of the multiplicative cyclic group, the method further includes: according to the generator of the first additive cyclic group and the signature master public key in advance, based on the bilinear pairing operation, the method of obtaining the multiplicative cyclic group The first element; the first element of the multiplication cyclic group is stored.
- sending the user ID and the signature password to the key generation center to apply for signature identity credentials includes: when the acquisition of the digital signature is triggered, the signature password is randomly generated; The data type of the signature password is converted from an integer type to a byte string type; the user identification and the converted signature password are sent to the key generation center, and the key generation center determines the signature according to the user identification and the converted signature password Identity credentials; the value range of the signature password is a positive integer less than the order of the multiplicative cyclic group.
- the key generation center calculating the signature identity credential according to the user identification and the signature password includes: identifying based on the user identification and private key generation function based on a first cryptographic hash function And the order of the multiplication cyclic group to obtain a first temporary variable; according to the first temporary variable and the signature master private key, a second temporary variable is obtained; according to the second temporary variable, the signature password, and the first temporary variable A generator of the cyclic group is added to obtain the signature identity credential.
- the determining the first part of the digital signature includes: generating a random number according to the order of the multiplication cyclic group; obtaining the first element of the multiplication cyclic group according to the first element of the multiplication cyclic group and the random number Two elements; based on the second cryptographic hash function, the first part of the digital signature is obtained according to the message string to be signed, the second element of the multiplicative cyclic group, and the order of the multiplicative cyclic group.
- the obtaining the second part of the digital signature according to the signature identity credential and the signature password includes: calculating an intermediate variable; when the intermediate variable is 0, jump to the cycle group according to the multiplication When the intermediate variable is not 0, calculate the digital signature according to the intermediate variable, the signature identity credential, the signature password, and the generator of the first addition cycle group the second part.
- the first element of the multiplication cyclic group is obtained at any time before or after sending the user ID and the signature password to the key generation center to apply for signature identity credentials.
- An SM9 digital signature generation device includes:
- the signature application module when the acquisition of a digital signature is triggered, sends a user ID and a signature password to the key generation center to apply for a signature identity credential; the key generation center calculates the signature identity credential according to the user ID and the signature password ; Receiving the signature identity credential returned by the key generation center;
- Get element module used to get the first element of the multiplicative cyclic group
- Determine the signature module used to determine the first part of the digital signature; obtain the second part of the digital signature according to the signature identity credential and the signature password;
- the output signature module is used to output the digital signature according to the first part of the digital signature and the second part of the digital signature.
- a computer device includes a memory, a processor, and a computer program that is stored on the memory and can run on the processor, and the processor implements the following steps when the processor executes the computer program:
- the key generation center calculates the signature identity credential according to the user ID and the signature password;
- a digital signature is output.
- a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the following steps are implemented:
- the key generation center calculates the signature identity credential according to the user ID and the signature password;
- a digital signature is output.
- the aforementioned SM9 digital signature generation method, device, computer equipment and storage medium send the user ID and signature password to the key generation center to apply for signature identity credentials, receive the signature identity credentials returned by the key generation center, and then according to the received signature identity
- the credentials and signature password are digitally signed. Therefore, the key generation center is no longer to issue the user's private key, but to issue the signature identity credential obtained according to the signature password, and the user terminal executes the signature based on the signature identity credential and the paired signature password.
- the key generation center is no longer to issue the user's private key, but to issue the signature identity credential obtained according to the signature password, and the user terminal executes the signature based on the signature identity credential and the paired signature password.
- the signature identity credential and the signature password are paired, and the digital signature cannot be generated without one of them, which improves the security of the digital signature.
- Figure 1 is an application scenario diagram of the SM9 digital signature generation method in an embodiment
- Figure 2 is a schematic flow chart of an SM9 digital signature generation method in an embodiment
- FIG. 3 is a schematic flowchart of the steps of calculating the signature identity credential according to the user ID and the signature password by the key generation center in an embodiment
- Figure 5 is a schematic flow chart of the steps of determining the first part of the digital signature in an embodiment
- FIG. 6 is a schematic flowchart of the steps of obtaining the second part of the digital signature according to the signature identity credential and the signature password in an embodiment
- Figure 7 is a structural block diagram of an SM9 digital signature generating device in an embodiment
- Fig. 8 is an internal structure diagram of a computer device in an embodiment.
- an SM9 digital signature system which includes a terminal 110 and a key generation center KGC120, and the terminal 110 communicates with the key generation center KGC120 through a network.
- the terminal 110 has the function of accessing the Internet and the function of signing messages, and may be a personal computer, a notebook computer, a smart phone, a tablet computer, a portable wearable device, and the like.
- the key generation center KGC is responsible for selecting system parameters. It is a trusted organization that generates the master key, and uses the user's public key and signature password to issue signed identity credentials to the user.
- the terminal 110 can be used to execute an SM9 digital signature generation method.
- a method for generating an SM9 digital signature is provided. Taking the method applied to the terminal in FIG. 1 as an example, the method includes the following steps S202 to S212:
- Step S202 When the acquisition of the digital signature is triggered, the user ID and the signature password are sent to the key generation center to apply for the signature identity credential; the key generation center calculates the signature identity credential according to the user ID and the signature password.
- the user identification can uniquely determine the identity of an entity.
- ID A is composed of information that the entity cannot deny, and can be characters of any length, such as the entity's identifiable Name, email address, ID number, phone number, street address, etc.
- X is a signature of the signing party
- password is a signed identity credentials (T A) of the signature password pair used may be randomly generated by the terminal corresponding to the user.
- the signature identity credential T A is paired with the signature password x, which is the point of the elliptic curve E on the finite field F q , and is calculated and generated by the key generation center KGC according to the user identification ID A and the corresponding signature password x.
- the user when the user needs to sign the data information to be sent, the user is the signer A, and the terminal corresponding to the signer A sends the user identification ID A to the key generation center KGC, and the terminal corresponding to the signer A randomly generates And apply for the signature identity credential T A of signer A from the key generation center KGC.
- the key generation center calculates the signature identity credential according to the user ID and the signature password, including the following steps S302 to S306:
- Step S302 Based on the first cryptographic hash function, a first temporary variable is obtained according to the user ID, the private key generation function identifier, and the order of the multiplication cyclic group.
- the first cryptographic hash function is the cryptographic function H 1
- the input of the cryptographic function H 1 (Z, n) is the bit string Z and the integer n
- the bit string Z is the user identification ID A and private key of the signer A
- the integer n is the order N of the multiplication cyclic group
- the output is an integer h 1
- the range of the output integer h 1 is [1, n-1].
- the private key generation function identifier hid is a one-byte signature private key generation function identifier, which is selected and published by the key generation center KGC.
- t 1 is calculated as follows:
- ID A is the user ID of signer A
- hid is the identifier of the private key generation function
- ID A and hid are spliced together
- N is the order of the multiplicative cyclic group G T
- s is the signature master private key
- the length is L, such as 256 bits, is generally generated by the key generation center KGC through a random number generator.
- the key generation center KGC inputs the concatenated bit string or character string of the user identification ID A of the signer A and the private key generation function identifier hid input by the terminal corresponding to the user, and the order N of the multiplicative cyclic group G T , Based on the first cipher hash function, output the integer h 1 , take the modulus of the sum of the integer h 1 and the signature master private key s to obtain the first temporary variable t 1 .
- Step S304 Obtain a second temporary variable according to the first temporary variable and the signature master private key.
- the key generation center KGC takes the modulo N according to the product of the minus 1 power of the first temporary variable t 1 and the signature master private key s, and obtains that the value of the second temporary variable t 2 is not greater than the order N.
- Step S306 Obtain the signature identity credential according to the second temporary variable, the signature password, and the generator of the first addition cycle group.
- the generator of the first additive cyclic group G 1 is P 1 . Calculated as follows:
- the key generation center KGC calculates the result of (t 2 ⁇ x) times the generator P 1 of the first additive cyclic group G 1 , and uses the calculated result as the signature identity credential of the signer A.
- the signature identity credential of the signer is obtained through the user ID of the signer and the paired signature password, that is, the token that calculates the signature, which replaces the user's private key, effectively preventing the user's private key from being stolen or exposed. .
- step S202 it further includes step S204 of receiving the signature identity credential returned by the key generation center.
- KGC calculated signature of a signer identity credentials A T A
- a signing party terminal corresponding to the received key generation center signature returned KGC identity credentials T A, using the signature corresponding to the identity and credentials T A
- the signature password x is paired to perform signature.
- Step S206 Obtain the first element of the multiplicative cyclic group.
- the multiplicative cyclic group (G T ) is a multiplicative cyclic group of prime number N.
- the first element of the multiplicative cyclic group G T refers to the element g.
- the element g passes through the first additive cyclic group G of an elliptic curve defined on a finite field. 1.
- the bilinear pair e (the bilinear pair from G 1 ⁇ G 2 to G T ) from the second additive cyclic group G 2 to the multiplicative cyclic group G T is calculated.
- the order of the first additive cyclic group G 1 , the second additive cyclic group G 2 and the multiplicative cyclic group G T are all prime numbers N.
- the bilinear pair is defined on the elliptic curve group, and there are mainly Weil pair, Tate pair, Ate Yes, R-ate is equivalent.
- the first element of the multiplication cycle group in order to improve calculation efficiency, can be pre-calculated and stored at any time before or after sending the user ID and the signature password to the key generation center to apply for the signature identity credential.
- the first element of the multiplication cyclic group obtained by the pre-calculation can be directly obtained, which achieves a time-saving effect.
- the step of pre-calculating the first element of the multiplication cyclic group includes the following steps S402 to S404:
- Step S402 According to the generator and the signature master public key of the first additive cyclic group in advance, the first element of the multiplicative cyclic group is obtained based on the bilinear pairing operation.
- the calculation formula of the first element g of the multiplicative cyclic group is as follows:
- the terminal corresponding to signer A advances from the first additive cyclic group G 1 , the second additive cyclic group G 2 to the multiplication cycle according to the generator P 1 of the first additive cyclic group and the signature master public key P pub in advance.
- the bilinear pair e of the group G T (the bilinear pair from G 1 ⁇ G 2 to G T ) is calculated. This process is a pre-calculation process to obtain the first element g of the multiplicative cyclic group.
- the bilinear pair e is The mapping from G 1 ⁇ G 2 to G T satisfies bilinearity, non-degeneration and computability.
- Step S404 storing the first element of the multiplication cyclic group.
- the value of the first element g of the multiplicative cyclic group is stored for use when the terminal corresponding to the signer A subsequently executes the signature.
- the g element is calculated in advance through the pre-calculation process, which improves the calculation efficiency of the algorithm, removes the time-consuming bilinear pairing operation in the execution of the signature process, and does not need to calculate the g element every time the signature is executed, which speeds up The speed at which the signature is executed.
- Step S208 is further included after step S206 to determine the first part of the digital signature.
- determining the first part of the digital signature includes the following steps S502 to S506:
- step S502 a random number is generated according to the order of the multiplication cyclic group.
- the terminal corresponding to signer A generates a random number r according to the order N of the multiplication cyclic group, where the value range of the random number r belongs to [1, N-1], that is, the value of the random number r is less than A positive integer of N.
- Step S504 Obtain the second element of the multiplicative cyclic group according to the first element of the multiplicative cyclic group and the random number.
- the second element of the multiplication cyclic group is the w element, and the length is 12 ⁇ 256 bits.
- the calculation formula for the w element is as follows:
- the terminal corresponding to the signer A performs an exponentiation operation according to the first element g of the multiplication cyclic group and the random number r to obtain the second element w of the multiplication cyclic group.
- the data type of the second element w is converted from the field element type to the byte string type, and the byte string type is converted to the bit string type, so that the step of calculating the first part of the digital signature can be performed subsequently.
- Step S506 based on the second cryptographic hash function, obtain the first part of the digital signature according to the message string to be signed, the second element of the multiplicative cyclic group, and the order of the multiplicative cyclic group.
- the second cryptographic hash function is the cryptographic function H 2
- the message string to be signed is the bit string M
- the formula for obtaining the first part h of the digital signature is:
- the terminal corresponding to the signer A uses the second cryptographic hash function H 2 , the input of the cryptographic function H 2 (Z, n) is the bit string Z and the integer n, where the bit string Z is the message string to be signed The concatenated bit string of M and the second element w of the multiplicative cyclic group, the integer n is the order N of the multiplicative cyclic group, and the output is an integer h, and the range of the output integer h is [1, n-1], the integer h That is the first part of the digital signature.
- step S208 it further includes step S210, obtaining the second part of the digital signature according to the signature identity credential and the signature password.
- obtaining the second part of the digital signature according to the signature identity credential and the signature password includes the following steps S602 to S604:
- Step S602 Calculate the intermediate variable; when the intermediate variable is 0, jump to the step of generating random numbers according to the order of the multiplication cyclic group, that is, recalculating the first part of the digital signature.
- the intermediate variable is l
- the calculation formula for l is:
- the terminal corresponding to the signer A takes the difference between the random number r and the first part h of the digital signature modulo N, and the result obtained is the intermediate variable l.
- the intermediate variable l is 0, an exception occurs.
- Step S604 When the intermediate variable is not 0, calculate the second part of the digital signature according to the intermediate variable, the signature identity credential, the signature password, and the generator of the first addition cycle group.
- the second part of the digital signature is S.
- the calculation formula for S is as follows:
- the terminal corresponding to the signer A multiplies the generator P 1 of the first addition cyclic group by the signature password x, and adds the result of the first dot multiplication to the signature identity credential TA of the signer A ,
- the result of the addition is multiplied by the intermediate variable l, and the result of the second dot multiplication is the second part S of the digital signature.
- the reply user private key is temporarily calculated by using the signed identity credential T A plus the input signature password x, which avoids directly using the user private key for signing, and increases the security of the user private key in the calculation process.
- step S210 it further includes step S212, outputting the digital signature according to the first part of the digital signature and the second part of the digital signature.
- the terminal corresponding to the signer A converts the data type of the first part h of the digital signature from integer type to byte string type, and converts the data type of the second part S of the digital signature from elliptic curve point type to byte String type, output digital signature (h, S).
- the first part h of the digital signature is a 32-byte byte string
- the second part of the digital signature S is also a 32-byte byte string
- the digital signature (h, S) is a 64-byte byte string.
- the SM9 digital signature generation method described above applies for signature identity credentials by sending a user ID and a signature password to the key generation center, receives the signature identity credential returned by the key generation center, and obtains a digital signature according to the received signature identity credential and signature password. Therefore, the key generation center is no longer to issue the user's private key, but to issue the signature identity credential obtained according to the signature password, and the user terminal executes the signature based on the signature identity credential and the paired signature password. On the one hand, it avoids the user The transmission of the private key on the network avoids the risk of exposure or theft during the transmission process. On the other hand, the signature identity credential and the signature password are paired, and the digital signature cannot be generated without one of them, which improves the security of the digital signature.
- the user ID and the signature password are sent to the key generation center to apply for signature identity credentials, including: when the digital signature acquisition is triggered, the signature password is randomly generated; and the data type of the signature password is changed The integer type is converted to the byte string type; the user ID and the converted signature password are sent to the key generation center, and the key generation center determines the signature identity credential according to the user ID and the converted signature password; the value range of the signature password It is a positive integer smaller than the order of the multiplicative cyclic group.
- the terminal corresponding to signer A randomly generates a large integer, that is, the signature password x.
- the terminal corresponding to signer A converts the randomly generated integer type signature password x into bytes
- the signature password x of the string type, the signature password x at this time is a byte string identifiable by the computer, and the user ID A of the signer A and the converted signature password x are sent to the key generation center KGC, the key generation center
- the KGC determines the signature identity credential according to the user ID A of the signer A and the converted signature password x.
- the key generation center KGC converts the data type of the received converted signature password x into an integer type again, and calculates the signature identity credential.
- the value range of the integer type signature password x is [1, N-1], if it exceeds this range, an error will be reported, and N is the order of the multiplicative cyclic group.
- the first element of the multiplication cyclic group is obtained at any time before or after sending the user identification and the signature password to the key generation center to apply for the signature identity credential.
- the first element g has nothing to do with whether the user's private key is obtained or not, so it can be obtained at any time before the execution of the signature, that is, the process of calculating the first element g in advance, that is, pre-calculation, can obtain the signature identity from signer A
- the first element g of the pre-calculated result is stored for use in subsequent signatures. It only needs to be calculated once, and there is no need to temporarily calculate the value of the first element g during the actual signing. Directly read the value of the first element g calculated and stored in advance.
- the first element g since the two parameters involved in the operation of the first element g of the multiplication cyclic group are fixed, the first element g is calculated in advance and stored, and there is no need to temporarily calculate the first element g when the signature is actually executed.
- One element g improves the efficiency of generating digital signatures.
- an SM9 digital signature generation device including: an application signature module 702, an element acquisition module 704, a signature determination module 706, and an output signature module 708, wherein:
- the signature application module 702 is used to send the user ID and the signature password to the key generation center to apply for signature identity credentials when the digital signature acquisition is triggered; the key generation center calculates the signature identity credential according to the user identification and the signature password; receives the key generation The signed identity credential returned by the center.
- the obtaining element module 704 is used to obtain the first element of the multiplication cyclic group.
- the signature determining module 706 is used to determine the first part of the digital signature; obtain the second part of the digital signature according to the signature identity credential and the signature password.
- the output signature module 708 is configured to output the digital signature according to the first part of the digital signature and the second part of the digital signature.
- the obtaining element module 704 further includes: obtaining the first element of the multiplicative cyclic group based on the bilinear pairing operation according to the generator and the signature master public key of the first additive cyclic group in advance; and storing the information of the multiplicative cyclic group The first element.
- the application signature module 702 further includes: when the digital signature acquisition is triggered, a signature password is randomly generated; the data type of the signature password is converted from an integer type to a byte string type; and the user identification and the converted The signature password is sent to the key generation center, and the key generation center determines the signature identity credential according to the user ID and the converted signature password; the value range of the signature password is a positive integer less than the order of the multiplication cyclic group.
- the application signature module 702 further includes: based on the first cryptographic hash function, the first temporary variable is obtained according to the user ID, the private key generation function identifier, and the order of the multiplication cyclic group; according to the first temporary variable and Sign the master private key to obtain the second temporary variable; obtain the signature identity credential according to the second temporary variable, the signature password, and the generator of the first addition cycle group.
- the determining signature module 706 includes: generating a random number according to the order of the multiplication cyclic group; obtaining the second element of the multiplication cyclic group according to the first element of the multiplication cyclic group and the random number; based on the second cryptographic hash function, According to the message string to be signed, the second element of the multiplicative cyclic group and the order of the multiplicative cyclic group, the first part of the digital signature is obtained.
- the determining signature module 706 includes: calculating an intermediate variable; when the intermediate variable is 0, jump to the step of generating random numbers according to the order of the multiplication cyclic group; when the intermediate variable is not 0, according to the intermediate variable , The signature identity credential, the signature password, and the generator of the first addition cycle group, the second part of the digital signature is calculated.
- the obtaining element module 704 further includes: the first element of the multiplication cyclic group, which is obtained at any time before or after sending the user identification and the signature password to the key generation center to apply for the signature identity credential.
- Each module in the aforementioned SM9 digital signature generating device can be implemented in whole or in part by software, hardware, and a combination thereof.
- the above-mentioned modules may be embedded in the form of hardware or independent of the processor in the computer equipment, or may be stored in the memory of the computer equipment in the form of software, so that the processor can call and execute the operations corresponding to the above-mentioned modules.
- a computer device is provided.
- the computer device may be a terminal, and its internal structure diagram may be as shown in FIG. 8.
- the computer equipment includes a processor, a memory, a network interface, a display screen and an input device connected through a system bus.
- the processor of the computer device is used to provide calculation and control capabilities.
- the memory of the computer device includes a non-volatile storage medium and an internal memory.
- the non-volatile storage medium stores an operating system and a computer program.
- the internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium.
- the network interface of the computer device is used to communicate with an external terminal through a network connection.
- the computer program is executed by the processor to realize an SM9 digital signature generation method.
- the display screen of the computer equipment can be a liquid crystal display screen or an electronic ink display screen
- the input device of the computer equipment can be a touch layer covered on the display screen, or it can be a button, a trackball or a touch pad set on the housing of the computer equipment , It can also be an external keyboard, touchpad, or mouse.
- FIG. 8 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied.
- the specific computer device may Including more or fewer parts than shown in the figure, or combining some parts, or having a different arrangement of parts.
- a computer device including a memory, a processor, and a computer program stored in the memory and capable of running on the processor, and the processor implements the following steps when the processor executes the computer program:
- the user ID and signature password are sent to the key generation center to apply for signature identity credentials;
- the key generation center calculates the signature identity credentials based on the user ID and the signature password;
- the digital signature is output.
- the processor further implements the following steps when executing the computer program: before obtaining the first element of the multiplicative cyclic group, it further includes: pre-according to the generator and the signature master public key of the first additive cyclic group, based on the bilinear For the operation, the first element of the multiplication cyclic group is obtained; the first element of the multiplication cyclic group is stored.
- the processor further implements the following steps when executing the computer program: when the digital signature acquisition is triggered, sending the user ID and the signature password to the key generation center to apply for signature identity credentials, including: when the digital signature acquisition is triggered, Randomly generate a signature password; convert the data type of the signature password from an integer type to a byte string type; send the user ID and the converted signature password to the key generation center, and the key generation center based on the user ID and the converted signature password Determine the signature identity credentials; the value range of the signature password is a positive integer less than the order of the multiplicative cyclic group.
- the processor further implements the following steps when executing the computer program: the key generation center calculates the signature identity credential according to the user identification and the signature password, including: based on the first cryptographic hash function, identification according to the user identification and private key generation function According to the order of the symbol and multiplication cyclic group, the first temporary variable is obtained; according to the first temporary variable and the signature master private key, the second temporary variable is obtained; according to the second temporary variable, the signature password and the generator of the first additive cyclic group, Obtain signed identity credentials.
- the key generation center calculates the signature identity credential according to the user identification and the signature password, including: based on the first cryptographic hash function, identification according to the user identification and private key generation function According to the order of the symbol and multiplication cyclic group, the first temporary variable is obtained; according to the first temporary variable and the signature master private key, the second temporary variable is obtained; according to the second temporary variable, the signature password and the generator of the first additive cyclic group, Obtain signed identity credentials.
- the processor further implements the following steps when executing the computer program: determining the first part of the digital signature includes: generating a random number according to the order of the multiplication cyclic group; obtaining the multiplication according to the first element of the multiplication cyclic group and the random number The second element of the cyclic group; based on the second cryptographic hash function, the first part of the digital signature is obtained according to the message string to be signed, the second element of the multiplicative cyclic group, and the order of the multiplicative cyclic group.
- the processor further implements the following steps when executing the computer program: obtaining the second part of the digital signature according to the signature identity credential and the signature password, including: calculating an intermediate variable; when the intermediate variable is 0, jump to The step of generating random numbers from the order of the cyclic group; when the intermediate variable is not 0, calculate the second part of the digital signature according to the intermediate variable, the signature identity credential, the signature password, and the generator of the first additive cyclic group.
- the processor further implements the following steps when executing the computer program: the first element of the multiplication cyclic group is obtained at any time before or after sending the user ID and the signature password to the key generation center to apply for the signature identity credential .
- a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:
- the user ID and signature password are sent to the key generation center to apply for signature identity credentials;
- the key generation center calculates the signature identity credentials based on the user ID and the signature password;
- the digital signature is output.
- the method when the computer program is executed by the processor, the following steps are further implemented: before obtaining the first element of the multiplicative cyclic group, the method further includes: pre-according to the generator of the first additive cyclic group and the signature master public key, based on the two-line Operation of sex pairs, get the first element of the multiplication cyclic group; store the first element of the multiplication cyclic group.
- the following steps are further implemented: when the acquisition of the digital signature is triggered, sending the user ID and the signature password to the key generation center to apply for signature identity credentials, including: when the acquisition of the digital signature is triggered , Randomly generate the signature password; convert the data type of the signature password from an integer type to a byte string type; send the user ID and the converted signature password to the key generation center, and the key generation center based on the user ID and the converted signature
- the password determines the signature identity credential; the value range of the signature password is a positive integer less than the order of the multiplicative cyclic group.
- the key generation center calculates the signature identity credential according to the user identification and the signature password, and further includes: generating the signature based on the user identification and private key based on the first cryptographic hash function The function identifier and the order of the multiplication cyclic group are used to obtain the first temporary variable; according to the first temporary variable and the signature master private key, the second temporary variable is obtained; according to the second temporary variable, the signature password and the generation of the first additive cyclic group Yuan, get the signed identity credential.
- determining the first part of the digital signature includes: generating a random number according to the order of the multiplication cyclic group; obtaining the random number according to the first element of the multiplication cyclic group and the random number The second element of the multiplicative cyclic group; based on the second cryptographic hash function, the first part of the digital signature is obtained according to the message string to be signed, the second element of the multiplicative cyclic group, and the order of the multiplicative cyclic group.
- the following steps are also implemented: obtaining the second part of the digital signature according to the signature identity credential and the signature password, including: calculating the intermediate variable; when the intermediate variable is 0, jump to The step of generating random numbers from the order of the multiplicative cyclic group; when the intermediate variable is not 0, calculate the second part of the digital signature according to the intermediate variable, the signature identity credential, the signature password, and the generator of the first additive cyclic group.
- the following steps are also implemented: the first element of the multiplication cyclic group, at any time before or after sending the user ID and the signature password to the key generation center to apply for the signature identity credential get.
- Non-volatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
- Volatile memory may include random access memory (RAM) or external cache memory.
- RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain Channel (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Telephonic Communication Services (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (10)
- 一种SM9数字签名生成方法,所述方法包括:当触发数字签名获取时,向密钥生成中心发送用户标识和签名口令以申请签名身份凭据;所述密钥生成中心根据所述用户标识和所述签名口令计算所述签名身份凭据;接收所述密钥生成中心返回的所述签名身份凭据;获取乘法循环群的第一元素;确定数字签名的第一部分;根据所述签名身份凭据和所述签名口令得到数字签名的第二部分;根据所述数字签名的第一部分和所述数字签名的第二部分,输出数字签名。
- 根据权利要求1所述的方法,其特征在于,所述获取乘法循环群的第一元素之前,还包括:预先根据第一加法循环群的生成元和签名主公钥,基于双线性对运算,得到乘法循环群的第一元素;存储所述乘法循环群的第一元素。
- 根据权利要求1所述的方法,其特征在于,所述当触发数字签名获取时,向密钥生成中心发送用户标识和签名口令以申请签名身份凭据,包括:当触发数字签名获取时,随机生成签名口令;将所述签名口令的数据类型由整数类型转换为字节串类型;将用户标识和转换后的签名口令发送至密钥生成中心,密钥生成中心根据所述用户标识和转换后的签名口令确定签名身份凭据;所述签名口令的取值范围为小于乘法循环群的阶数的正整数。
- 根据权利要求1所述的方法,其特征在于,所述密钥生成中心根据所述用户标识和所述签名口令计算所述签名身份凭据,包括:基于第一密码杂凑函数,根据所述用户标识、私钥生成函数识别符和所述乘法循环群的阶数,得到第一临时变量;根据所述第一临时变量和签名主私钥,得到第二临时变量;根据所述第二临时变量、所述签名口令以及第一加法循环群的生成元,得到签名身份凭据。
- 根据权利要求1所述的方法,其特征在于,所述确定数字签名的第一部分,包括:根据乘法循环群的阶数产生随机数;根据所述乘法循环群的第一元素、所述随机数得到乘法循环群的第二元素;基于第二密码杂凑函数,根据待签名的消息串、所述乘法循环群的第二元素和所述乘法循环群的阶数,得到所述数字签名的第一部分。
- 根据权利要求5所述的方法,其特征在于,所述根据所述签名身份凭据和所述签名口令得到数字签名的第二部分,包括:计算中间变量;当所述中间变量为0时,跳转至根据乘法循环群的阶数产生随机数的步骤;当所述中间变量不为0时,根据所述中间变量、所述签名身份凭据、所述签名口令以及第一加法循环群的生成元,计算得到数字签名的第二部分。
- 根据权利要求2所述的方法,其特征在于,所述乘法循环群的第一元素,在向密钥生成中心发送用户标识和签名口令以申请签名身份凭据的之前或者之后任一时刻得到。
- 一种SM9数字签名生成装置,其特征在于,所述装置包括:申请签名模块,当触发数字签名获取时,向密钥生成中心发送用户标识和签名口令以申请签名身份凭据;所述密钥生成中心根据所述用户标识和所述签名口令计算所述签名身份凭据;接收所述密钥生成中心返回的所述签名身份凭据;获取元素模块,用于获取乘法循环群的第一元素;确定签名模块,用于确定数字签名的第一部分;根据所述签名身份凭据和所述签名口令得到数字签名的第二部分;输出签名模块,用于根据所述数字签名的第一部分和数字签名的第二部分,输出数字签名。
- 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010041962.7A CN111262704A (zh) | 2020-01-15 | 2020-01-15 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
CN202010041962.7 | 2020-01-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021143456A1 true WO2021143456A1 (zh) | 2021-07-22 |
Family
ID=70954056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/137523 WO2021143456A1 (zh) | 2020-01-15 | 2020-12-18 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111262704A (zh) |
WO (1) | WO2021143456A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001711A (zh) * | 2022-06-10 | 2022-09-02 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115314208A (zh) * | 2022-07-04 | 2022-11-08 | 武汉理工大学 | 一种安全可控的sm9数字签名生成方法及系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111262704A (zh) * | 2020-01-15 | 2020-06-09 | 江苏芯盛智能科技有限公司 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
CN114640440B (zh) * | 2020-12-16 | 2023-11-17 | 华为技术有限公司 | 一种分布式门限签名的方法和装置 |
CN113055161B (zh) * | 2021-03-09 | 2021-11-26 | 武汉大学 | 一种基于sm2和sm9数字签名算法的移动终端认证方法与系统 |
CN113127912A (zh) * | 2021-05-07 | 2021-07-16 | 杭州天谷信息科技有限公司 | 一种数据保密以及公布的方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664957B2 (en) * | 2004-05-20 | 2010-02-16 | Ntt Docomo, Inc. | Digital signatures including identity-based aggregate signatures |
CN107438005A (zh) * | 2017-06-21 | 2017-12-05 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110505061A (zh) * | 2019-09-06 | 2019-11-26 | 北京天诚安信科技股份有限公司 | 一种数字签名算法及系统 |
CN110557260A (zh) * | 2019-08-26 | 2019-12-10 | 武汉理工大学 | 一种sm9数字签名生成方法及装置 |
CN111262704A (zh) * | 2020-01-15 | 2020-06-09 | 江苏芯盛智能科技有限公司 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936584B (zh) * | 2017-03-08 | 2020-07-10 | 平顶山学院 | 一种无证书公钥密码系统的构造方法 |
CN107579819B (zh) * | 2017-09-13 | 2019-11-19 | 何德彪 | 一种sm9数字签名生成方法及系统 |
CN108599950A (zh) * | 2018-04-09 | 2018-09-28 | 北京无字天书科技有限公司 | 一种适用于sm9标识密码的用户密钥申请下载安全协议的实现方法 |
CN109039611B (zh) * | 2018-08-31 | 2019-05-21 | 北京海泰方圆科技股份有限公司 | 基于sm9算法的解密密钥分割及解密方法、装置、介质 |
CN109039656B (zh) * | 2018-09-19 | 2021-06-18 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法、装置和计算机设备 |
CN110166239B (zh) * | 2019-06-04 | 2023-01-06 | 成都卫士通信息产业股份有限公司 | 用户私钥生成方法、系统、可读存储介质及电子设备 |
-
2020
- 2020-01-15 CN CN202010041962.7A patent/CN111262704A/zh active Pending
- 2020-12-18 WO PCT/CN2020/137523 patent/WO2021143456A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664957B2 (en) * | 2004-05-20 | 2010-02-16 | Ntt Docomo, Inc. | Digital signatures including identity-based aggregate signatures |
CN107438005A (zh) * | 2017-06-21 | 2017-12-05 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110557260A (zh) * | 2019-08-26 | 2019-12-10 | 武汉理工大学 | 一种sm9数字签名生成方法及装置 |
CN110505061A (zh) * | 2019-09-06 | 2019-11-26 | 北京天诚安信科技股份有限公司 | 一种数字签名算法及系统 |
CN111262704A (zh) * | 2020-01-15 | 2020-06-09 | 江苏芯盛智能科技有限公司 | Sm9数字签名生成方法、装置、计算机设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001711A (zh) * | 2022-06-10 | 2022-09-02 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115001711B (zh) * | 2022-06-10 | 2024-01-30 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115314208A (zh) * | 2022-07-04 | 2022-11-08 | 武汉理工大学 | 一种安全可控的sm9数字签名生成方法及系统 |
CN115314208B (zh) * | 2022-07-04 | 2024-04-02 | 武汉理工大学 | 一种安全可控的sm9数字签名生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111262704A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021143456A1 (zh) | Sm9数字签名生成方法、装置、计算机设备和存储介质 | |
WO2021238527A1 (zh) | 数字签名生成方法、装置、计算机设备和存储介质 | |
CN112822014B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CA2329590C (en) | Method of public key generation | |
EP3035590B1 (en) | Method and device for generating digital signature | |
US9003181B2 (en) | Incorporating data into cryptographic components of an ECQV certificate | |
US9571274B2 (en) | Key agreement protocol | |
US20120096274A1 (en) | Authenticated encryption for digital signatures with message recovery | |
CN109450640B (zh) | 基于sm2的两方签名方法及系统 | |
JP5690465B2 (ja) | カスタム静的ディフィ−ヘルマン(Diffie−Hellman)群 | |
CA2768861C (en) | Incorporating data into ecdsa signature component | |
US20120096273A1 (en) | Authenticated encryption for digital signatures with message recovery | |
JP2008527865A (ja) | デジタル署名と公開鍵の促進された検証 | |
CN110932865B (zh) | 一种基于sm2数字签名算法的可链接环签名生成方法 | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 | |
JP4250429B2 (ja) | 連鎖型署名作成装置、及びその制御方法 | |
CN112118113A (zh) | 一种基于sm2算法的多方协同群签名方法及装置、系统、介质 | |
Stebila et al. | Elliptic curve algorithm integration in the secure shell transport layer | |
WO2021143029A1 (zh) | 零知识证明方法、装置及存储介质 | |
Stallings | Digital signature algorithms | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
WO2023093278A1 (zh) | 数字签名门限方法和装置 | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
CN116318636A (zh) | 一种基于sm2的门限签名方法 | |
JP2004253950A (ja) | 事前計算による電子署名高速生成方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20914564 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20914564 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20914564 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 24.02.2023) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20914564 Country of ref document: EP Kind code of ref document: A1 |