CN111200502A - Collaborative digital signature method and device - Google Patents

Collaborative digital signature method and device Download PDF

Info

Publication number
CN111200502A
CN111200502A CN202010006969.5A CN202010006969A CN111200502A CN 111200502 A CN111200502 A CN 111200502A CN 202010006969 A CN202010006969 A CN 202010006969A CN 111200502 A CN111200502 A CN 111200502A
Authority
CN
China
Prior art keywords
server
client
component
sub
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010006969.5A
Other languages
Chinese (zh)
Other versions
CN111200502B (en
Inventor
杜庚华
刘
梁良兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xin'an Shenzhou Technology Guangzhou Co Ltd
Original Assignee
Xin'an Shenzhou Technology Guangzhou Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xin'an Shenzhou Technology Guangzhou Co Ltd filed Critical Xin'an Shenzhou Technology Guangzhou Co Ltd
Priority to CN202010006969.5A priority Critical patent/CN111200502B/en
Publication of CN111200502A publication Critical patent/CN111200502A/en
Application granted granted Critical
Publication of CN111200502B publication Critical patent/CN111200502B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3252Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

The disclosure relates to the technical field of cryptography, and particularly provides a collaborative digital signature method and device. The collaborative digital signature method is applied to the client and comprises the steps of sending a signature request and receiving a first ciphertext returned by the server; randomly generating a first client key parameter and a second client key parameter, and processing data to be signed to obtain first signature data; calculating to obtain a second ciphertext according to the second client key parameter and the first signature data, and sending the second ciphertext to the server; receiving sub-signature data sent by a server, and calculating to obtain second signature data; and synthesizing according to the first signature data and the second signature data to obtain the digital signature. According to the scheme, the private key components are respectively stored in the client and the server, so that the use safety of the private key of the user is improved, the hash value of the signature information cannot be exposed during data transmission, the possibility that an attacker forges the hash is avoided, and the safety of the collaborative signature is greatly improved.

Description

Collaborative digital signature method and device
Technical Field
The disclosure relates to the technical field of cryptography, in particular to a collaborative digital signature method and device.
Background
The SM2 algorithm is an elliptic curve public key cryptographic algorithm specified by the State encryption administration and can be applied to digital signatures and signature verification. In order to improve the use security of the user private key, a special hardware cryptographic module is conventionally used to store the user private key, such as a security chip, a usb key, an SD encryption card, and other hardware, which requires the user to carry the hardware additionally for signature. And for the mobile terminal, often do not have the interface of interfacing with the hardware cryptographic module, so the user is very inconvenient when realizing mobile end signature. However, if the user private key is stored in the mobile terminal of the user in a software form, the risk of disclosure of the user private key is greatly increased in the signing process, and the security protection capability is poor.
In order to realize the secure signature of the mobile terminal of the user, the private key of the user is divided into two parts in the related technology, the two parts are respectively stored in the mobile client and the server, the digital signature can be realized through the cooperation of the client and the server, and even if any party is controlled by an attacker, the signature of the user cannot be forged singly. However, in the existing collaborative signing process, when the client transmits data to the server, the Hash value of the data to be signed is exposed, so that an attacker is likely to eavesdrop and forge the Hash, thereby bringing risks to the signing process.
Disclosure of Invention
In order to improve the security of digital signatures, the disclosure provides a collaborative digital signature method and device.
In a first aspect, the present disclosure provides a collaborative digital signature method, applied to a client, the method including:
sending a signature request, and receiving a first ciphertext returned by a server end in response to the signature request; the first ciphertext is an elliptic curve group element obtained by the server through calculation according to the client public key component and a first server key parameter generated randomly;
randomly generating a first client key parameter and a second client key parameter, and processing data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data;
calculating according to a second client key parameter and first signature data to obtain a second ciphertext, and sending the second ciphertext to a server side, so that the server side calculates according to the second ciphertext, the first server key parameter and a server side private key component to obtain sub-signature data;
receiving the sub-signature data sent by the server, and calculating to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data;
and synthesizing according to the first signature data and the second signature data to obtain a digital signature.
In some embodiments, the server public key component includes a first server public key subcomponent and a second server public key subcomponent, and the server private key component includes a first server private key subcomponent and a second server private key subcomponent;
the processing the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data comprises:
calculating to obtain an elliptic curve point according to the first client key parameter, the second server public key sub-component and the first ciphertext;
and calculating to obtain the first signature data according to the abscissa of the elliptic curve point and the hash value of the data to be signed.
In some embodiments, before the sending a signature request and receiving a first ciphertext returned by a server in response to the signature request, the method further includes:
randomly generating a client private key component, and calculating according to the client private key component to obtain a client public key component;
and sending the client public key component to the server so that the server calculates to obtain an encrypted public key according to the client public key component and the randomly generated first server private key sub-component and second server private key sub-component.
In some embodiments, after receiving the encrypted public key and the second server public key sub-component sent by the server, the method further includes:
receiving an endorsement certificate sent by a server, wherein the endorsement certificate is obtained by the server through calculation according to a first server private key subcomponent and a second server private key subcomponent;
calculating according to the client side private key component and the encrypted public key to obtain a first verification value;
determining whether the first verification value is equal to the signature verification credential,
if yes, the verification is passed;
if not, the verification fails, the steps of randomly generating the client private key component and calculating to obtain the client public key component according to the client private key component are executed.
In a second aspect, the present disclosure provides a collaborative digital signature method, applied to a server, the method including:
when a signature request sent by a client is received, randomly generating a first server key parameter, and calculating elliptic curve group elements according to a client public key component and the randomly generated first server key parameter to obtain a first ciphertext;
sending the first ciphertext to a client, so that the client processes data to be signed according to a first client key parameter and a second client key parameter which are randomly generated, a server public key component and the first ciphertext to obtain first signature data, and the client calculates according to the second client key parameter and the first signature data to obtain a second ciphertext;
receiving the second ciphertext sent by the client, and calculating according to the second ciphertext, the first service side key parameter and the service side private key component to obtain sub-signature data;
and sending the sub-signature data to the client so that the client calculates to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data, and synthesizes the first signature data and the second signature data to obtain a digital signature.
In some embodiments, the server public key component includes a first server public key subcomponent and a second server public key subcomponent, and the server private key component includes a first server private key subcomponent and a second server private key subcomponent; the sub-signature data comprises first sub-data and second sub-data;
the receiving the second ciphertext sent by the client, and calculating to obtain sub-signature data according to the second ciphertext, the first service-side key parameter and the service-side private key component, including:
calculating to obtain the first subdata according to the first server side key parameter, the first server side private key sub-component and the second server side private key sub-component;
and calculating to obtain the second subdata according to the second ciphertext, the first server side private key sub-component and the second server side private key sub-component.
In some embodiments, before said randomly generating the first server key parameter when receiving the signing request sent by the client, further includes:
randomly generating a first server private key sub-component and a second server private key sub-component, and obtaining a corresponding first server public key sub-component and a corresponding second server public key sub-component according to the first server private key sub-component and the second server private key sub-component;
receiving a client public key component sent by a client, wherein the client public key component is obtained by the client through calculation according to a client private key component generated randomly;
and calculating to obtain an encrypted public key according to the client public key component, the first server private key subcomponent and the second server private key subcomponent.
In some embodiments, after the sending the encrypted public key and the second server public key sub-component to the client, the method further includes:
calculating according to the first server side private key sub-component and the second server side private key sub-component to obtain an identification certificate, and sending the identification certificate to the client side;
and receiving a verification result sent by the client, and executing a step of receiving the client public key component sent by the client if the verification fails.
In a third aspect, the present disclosure provides a collaborative digital signature method, which is applied to a digital signature system, where the digital signature system includes a client and a server, and the method includes:
the client sends a signature request to the server;
the server calculates elliptic curve group elements according to the client public key component and a first server key parameter generated randomly to obtain a first ciphertext, and sends the first ciphertext to the client;
the client randomly generates a first client key parameter and a second client key parameter, and processes the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data;
the client calculates to obtain a second ciphertext according to the second client key parameter and the first signature data, and sends the second ciphertext to the server;
the server calculates to obtain sub-signature data according to the second ciphertext, the first server key parameter and the server private key component, and sends the sub-signature data to the client;
the client calculates to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data, and synthesizes to obtain a digital signature according to the first signature data and the second signature data.
In some embodiments, before the client sends the signature request to the server, the method further includes:
the client randomly generates a client private key component, and calculates according to the client private key component to obtain a client public key component;
the server randomly generates a first server private key sub-component and a second server private key sub-component, and obtains a corresponding first server public key sub-component and a corresponding second server public key sub-component according to the first server private key sub-component and the second server private key sub-component;
and the client side sends the client side public key component to the server side so that the server side calculates to obtain an encrypted public key according to the client side public key component and the randomly generated first server side private key sub-component and second server side private key sub-component.
In a fourth aspect, the present disclosure provides a collaborative digital signature apparatus, applied to a client, the apparatus including:
the first sending module is used for sending a signature request and receiving a first ciphertext returned by the server end in response to the signature request; the first ciphertext is an elliptic curve group element obtained by the server through calculation according to the client public key component and a first server key parameter generated randomly;
the first processing module is used for randomly generating a first client key parameter and a second client key parameter, and processing the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data; and also used for
Calculating according to a second client key parameter and first signature data to obtain a second ciphertext, and sending the second ciphertext to a server side, so that the server side calculates according to the second ciphertext, the first server key parameter and a server side private key component to obtain sub-signature data;
the first receiving module is used for receiving the sub-signature data sent by the server and calculating to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data;
and the signature module is used for synthesizing to obtain a digital signature according to the first signature data and the second signature data.
In some embodiments, the server public key component includes a first server public key subcomponent and a second server public key subcomponent, and the server private key component includes a first server private key subcomponent and a second server private key subcomponent;
the first processing module, when configured to process the data to be signed according to the first client-side key parameter, the second client-side key parameter, the server-side public key component, and the first ciphertext to obtain first signature data, is specifically configured to:
calculating to obtain an elliptic curve point according to the first client key parameter, the second server public key sub-component and the first ciphertext;
and calculating to obtain the first signature data according to the abscissa of the elliptic curve point and the hash value of the data to be signed.
In a fifth aspect, the present disclosure provides a collaborative digital signature apparatus, applied to a server, the apparatus including:
the second processing module is used for randomly generating a first server key parameter when receiving a signature request sent by a client, and calculating elliptic curve group elements according to the client public key component and the randomly generated first server key parameter to obtain a first ciphertext;
the third sending module is used for sending the first ciphertext to the client, so that the client processes the data to be signed to obtain first signature data according to the randomly generated first client key parameter and second client key parameter, the server public key component and the first ciphertext, and the client calculates the second ciphertext according to the second client key parameter and the first signature data;
the third receiving module is used for receiving the second ciphertext sent by the client and calculating to obtain sub-signature data according to the second ciphertext, the first service-side key parameter and the service-side private key component;
and the fourth sending module is used for sending the sub-signature data to the client so that the client can obtain second signature data by calculating according to the first client key parameter, the client private key component, the first signature data and the sub-signature data, and the client can obtain a digital signature by synthesizing according to the first signature data and the second signature data.
In some embodiments, the server public key component includes a first server public key subcomponent and a second server public key subcomponent, and the server private key component includes a first server private key subcomponent and a second server private key subcomponent; the sub-signature data comprises first sub-data and second sub-data;
the third receiving module is specifically configured to, when configured to receive the second ciphertext sent by the client, and calculate sub-signature data according to the second ciphertext, the first server key parameter, and the server private key component, perform:
calculating to obtain the first subdata according to the first server side key parameter, the first server side private key sub-component and the second server side private key sub-component;
and calculating to obtain the second subdata according to the second ciphertext, the first server side private key sub-component and the second server side private key sub-component.
In a sixth aspect, the present disclosure provides a collaborative digital signature apparatus, including:
a processor;
a memory communicatively coupled to the processor and storing computer readable instructions, the processor performing the method according to any of the embodiments of the first aspect, or the method according to any of the embodiments of the second aspect, or the method according to any of the embodiments of the third aspect when the computer readable instructions are read.
In a seventh aspect, the present disclosure provides a storage medium storing computer-readable instructions for causing a computer to perform the method according to any one of the embodiments of the first aspect, or the method according to any one of the embodiments of the second aspect, or the method according to any one of the embodiments of the third aspect.
The collaborative digital signature method in the embodiment of the disclosure comprises the steps that a client sends a signature request to a server and receives a first ciphertext returned by the server, wherein the first ciphertext is an elliptic curve group element calculated by the server according to a client public key component and a first server key parameter generated randomly. The server side converts the key parameters of the signature server side into intermediate variables for transmission through the public key component of the client side, so that the safety of data transmission is improved. The client processes the hash value of the information to be signed according to the server public key component and the first ciphertext to obtain first signature data, then converts the first signature data into a middle variable second ciphertext according to the client key parameter and sends the middle variable second ciphertext to the server instead of directly transmitting the hash value of the signature information to the server, so that the hash value of the signature information is not exposed during data transmission, the possibility that an attacker forges the hash is avoided, and the security of the collaborative signature is greatly improved. And the server calculates the sub-signature data according to the second ciphertext and the private key component of the server and sends the sub-signature data to the client, so that the client can complete digital signature by combining the first signature data and the second signature data according to the second signature data calculated by the sub-signature data.
In the method for collaborative digital signature in the disclosed embodiment, when generating a key, the client randomly generates a client private key component and calculates a corresponding client public key component, the server receives the client public key component sent by the client and randomly generates a first server public key sub-component and a second server public key sub-component, calculates a corresponding first server private key sub-component and a corresponding second server private key sub-component, and calculates an encrypted public key according to the first server private key sub-component, the second server private key sub-component and the client public key component. The client side stores one private key segment, the server side stores two private key segments, the use safety of the private key of the user is further improved by the private key components, the signature can be realized only by the collaborative calculation of the three private key segments, and the safety of the digital signature is improved.
Drawings
In order to more clearly illustrate the embodiments of the present disclosure or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present disclosure, and other drawings can be obtained by those skilled in the art without creative efforts.
FIG. 1 is a block diagram of a collaborative digital signature system according to some embodiments of the present disclosure.
Fig. 2 is a flow chart of a collaborative digital signature method according to some embodiments of the present disclosure.
FIG. 3 is a schematic diagram of a collaborative digital signature method in accordance with some embodiments of the present disclosure.
FIG. 4 is a schematic diagram of a collaborative digital signature method according to further embodiments of the present disclosure.
Fig. 5 is a flow chart of a collaborative digital signature method according to an embodiment of the present disclosure.
Fig. 6 is a block diagram of a cooperative digital signature apparatus according to some embodiments of the present disclosure.
Fig. 7 is a block diagram of a cooperative digital signature apparatus according to further embodiments of the present disclosure.
FIG. 8 is a schematic diagram of a computer system suitable for implementing the disclosed collaborative digital signature method.
Detailed Description
The technical solutions of the present disclosure will be described clearly and completely with reference to the accompanying drawings, and it is to be understood that the described embodiments are only some embodiments of the present disclosure, but not all embodiments. All other embodiments, which can be derived by one of ordinary skill in the art from the embodiments disclosed herein without making any creative effort, shall fall within the protection scope of the present disclosure. In addition, technical features involved in different embodiments of the present disclosure described below may be combined with each other as long as they do not conflict with each other.
The collaborative digital signature method and device provided by the disclosure are suitable for an SM2 system digital signature system, the system can comprise a client and a server, the client and the server complete generation and storage of a secret key together through the same SM2 algorithm, and the client and the server complete collaboratively during digital signature.
A system architecture suitable for implementing the methods and apparatus of the present disclosure is shown in fig. 1, and the system includes a client 100 and a server 200. The client 100 may be any terminal having a network access function, and may be embodied as a mobile phone, a tablet computer, a Personal Digital Assistant (PDA), and the like, and the client 100 may access the server 200 through a wireless network.
The server 200 may be a server or a server cluster providing corresponding data storage, analysis and processing in response to a client request, for example, as shown in fig. 1, the server 200 establishes a communicative connection with the client 100 through a wireless network, so as to provide corresponding data storage, analysis and processing according to the service request of the client 100. It is to be understood that one server may provide one or more services, and the same service may be provided by a plurality of servers, which are not limited by the present disclosure.
It should be noted that, in the elliptic curve public key cryptography algorithm based on SM2, the digital signature algorithm mainly includes two parts, namely key generation and signature generation, and for easy understanding, the basic knowledge of the digital signature algorithm in the SM2 algorithm is first described.
According to the GM/T0003.5 cryptographic standard, some parameters are defined as follows:
e: is defined in a finite field FpThe upper elliptic curve.
G: the base point on the elliptic curve E.
n: the order of the base point G.
[]: representing a point doubling operation on an elliptic curve.
() mod n: modulo n arithmetic is identified.
Firstly, a key generation process is as follows:
1) a random number generator is used to generate a random integer da ∈ [1, n-2 ].
2) The elliptic curve point P ═ x, y ═ da ] G is calculated.
3) The key pair is (da, P), where da is the private key and P is the public key.
Secondly, the signature generation process is as follows:
1) and calculating a plaintext hash value e-H (Z-M), wherein Z represents a user identifier, and M is data to be signed.
2) And generating a random number k epsilon [1, n-1], and calculating an elliptic curve point (x1, y1) ═ k ] G.
3) And (e + x1) mod n, and if r is 0 or r + k is n, skipping to the step 2) for re-execution.
4) Calculate s ═ (1+ da)-1(k-rda) mod n, if s is equal to 0, go to step 2) and re-execute.
5) And (r, s) is taken as a signature result.
It is understood that the digital signature algorithm based on SM2 is guaranteed to meet the specifications of the cryptographic standard. In the collaborative signing process of the client and the server in the prior art, the client and the server need to transmit the generated plaintext hash value e, so that the hash value of the signed data is directly exposed in the intermediate data transmission process, and if an attacker eavesdrops and intercepts the hash value, the risk of hash forgery exists, thereby bringing risks to digital signatures.
Based on the above-mentioned drawbacks of the prior art, the present disclosure provides a method for digital signature, which can be applied to a digital signature system such as that shown in fig. 1. As shown in fig. 2, in some embodiments, the method of the present disclosure may be performed by a client 100, which specifically includes:
s201, sending a signature request, and receiving a first ciphertext returned by a server in response to the signature request, wherein the first ciphertext is an elliptic curve group element calculated by the server according to a client public key component and a first server key parameter generated randomly.
In particular, the client may generate a digital signature request based on the user's signature instructions, for example, the signature request may be triggered by the user through the client, or by the user when using client communications, the client triggers the signature request with the user communication instructions.
The client sends a signature request to the server, and when the server receives the digital signature request, the process of digital signature is represented, so that the server calculates a first ciphertext according to the public key component of the client and the generated key parameter of the first server. The client public key component is generated by the client in the key generation stage, and can be sent to the server by the client after the key is generated, and the server stores the key. And the server side sends the first ciphertext obtained by calculation to the client side.
S202, randomly generating a first client key parameter and a second client key parameter, and processing the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data.
Specifically, the client receives a first ciphertext returned by the server to generate two random numbers, calculates according to the two random numbers, the first ciphertext and the server public key component to obtain an abscissa of an elliptic curve, and further calculates through the abscissa and a plaintext hash value to obtain first signature data. The server public key component is generated by the server in the key generation stage, and can be sent to the client by the server after the key is generated, and the client stores the key.
S203, calculating according to the second client key parameter and the first signature data to obtain a second ciphertext, and sending the second ciphertext to the server, so that the server calculates according to the second ciphertext, the first server key parameter and the server private key component to obtain sub-signature data.
Specifically, the client generates an intermediate parameter, namely a second ciphertext, according to a second client key parameter and first signature data which are randomly generated, and sends the second ciphertext to the server. In the embodiment of the disclosure, the client converts the first signature data into the intermediate parameter and transmits the intermediate parameter, instead of directly transmitting the hash value of the signature information to the server, so that the hash value of the signature information is not exposed during data transmission, thereby avoiding the possibility that an attacker forges the hash, and greatly improving the security of the collaborative signature.
And the server receives the second ciphertext sent by the client, calculates to obtain sub-signature data according to the second ciphertext, the randomly generated first server key parameter and the self private key component, and sends the sub-signature data to the client.
S204, receiving the sub-signature data sent by the server, and calculating to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data.
Specifically, the server side calculates to obtain second signature data according to the sub-signature data, the private key component of the server side and the key parameter of the first client side.
And S205, synthesizing to obtain a digital signature according to the first signature data and the second signature data.
And the client combines the first signature data and the second signature data to obtain a signature result, namely a signature (r, s) meeting the national secret standard.
Therefore, in the collaborative digital signature method in the embodiment of the disclosure, the client and the server collaboratively complete digital signature, so that even if the private key component of any party is controlled by an attacker, the signature of the user cannot be forged singly, and the signature process is safer. And when the client and the server transmit data, the collaborative calculation parameters are converted into intermediate variables for transmission, instead of directly transmitting the hash value of the signature information to the server, so that the hash value of the signature information is not exposed during data transmission, the possibility of falsification of the hash by an attacker is avoided, and the security of the collaborative signature is greatly improved.
The key generation method of the disclosed method, which may be applied to the digital signature system shown in fig. 1, is illustrated in fig. 3 in some embodiments. As shown in fig. 3, prior to performing digital signing, the method of key generation may include:
s301, the client randomly generates a client private key component d1, and calculates a client public key component p1 according to d 1.
Specifically, the client randomly generates a random number d1 between [1, n-2], with d1 as the private key component of the client. And calculating the corresponding client public key component p1 ═ d1] G according to an elliptic curve algorithm.
S302, the client sends the public key component p1 to the server.
Specifically, the client sends its own public key component p1 to the server, and the server stores it.
S303, the server randomly generates a first server private key sub-component d2 and a second server private key sub-component d 3.
Specifically, the server randomly generates two random numbers d2 and d3 between [1, n-2], and takes d2 and d3 as two private key subcomponents of the server.
S304, the server calculates and obtains a corresponding first server public key subcomponent p2 and a corresponding second server public key subcomponent p3 according to d2 and d 3.
Specifically, p2 ═ d2] G and p3 ═ d3] G were calculated respectively according to the elliptic curve algorithm.
S305, the server calculates and obtains an encrypted public key P according to the received client public key component P1 and the self private key component.
Specifically, the server calculates the common encryption public key P according to the following formula,
P=[d2+d3]p1-G
s306, the server side returns the encrypted public key P and the second server side public key subcomponent P3 to the client side, and the client side stores the encrypted public key P and the second server side public key subcomponent P3.
After the operation is finished, the client side stores a client side private key component d1, the server side stores a first server side private key subcomponent d2 and a second server side private key subcomponent d3, and the encrypted public key P is public. In some embodiments, the encrypted public key P may be submitted to a CA (Certificate Authority) for application of a digital Certificate.
In some embodiments, after the key generation, a method for verifying the key is further included, so as to ensure that the key components of the client and the server are matched. The verification method is also executed by the client and the server in cooperation, as shown in fig. 4, and includes:
s401, the server side calculates according to the first server side private key sub-component d2 and the second server side private key sub-component d3 to obtain a signature checking voucher.
Specifically, after generating the encrypted public key P, the server calculates a public signature verification certificate, named as [ d2+ d3] G, from its private key components d2 and d 3.
S402, the server side sends the signature verification certificate credential to the client side.
And S403, the client calculates to obtain a first verification value according to the client private key component d1 and the encrypted public key P.
Specifically, the client calculates a first verification value Q, which is expressed as a first verification value Q, according to the private key component d1 and the public key P
Q=d1-1(P+G)
S404, the client judges whether the first verification value Q is equal to the signature verification certificate, if so, the private key components d1, d2 and d3 of the client and the server are matched with the encrypted public key P, and the verification is passed. On the contrary, if the private key components of the client and the server are not equal to the public key, the verification fails, and meanwhile, the existing key pair needs to be discarded to regenerate the private key components, that is, the process shown in fig. 3 is executed again.
S405, the client returns a verification result to the server, and if the verification is not matched, the server responds to the request of the client to re-execute the key generation process to generate a new key pair.
As can be seen from the above, in the embodiment of the present disclosure, before performing digital signature, the private key components and the public key of each part of the client and the server are verified, so as to ensure the use safety of the private key and improve the safety of the digital signature.
Fig. 5 shows a specific embodiment of the digital signature method according to the present disclosure, in which the digital signature method can be applied to the digital signature system shown in fig. 1, and is cooperatively performed by a client and a server. As shown in fig. 5, the digital signature method of the present disclosure includes:
s501, the client sends a digital signature request to the server.
The client terminal can generate a digital signature request based on the signature instruction of the user, for example, the user can trigger the signature instruction through a trigger operation, and for example, the client terminal can send out the signature request along with the user communication instruction when the user uses the client terminal for communication. The client generates a digital signature request according to the signature instruction and sends the signature request to the server.
S502, the server randomly generates a first server key parameter k1, and calculates a first ciphertext R1 according to k1 and the client public key component p 1.
Specifically, the server receives a signature request sent by the client, and the signature request represents that a digital signature process can be executed. The server randomly generates a random integer k1, k 1E [1, n-1], k1 as the first service end key parameter. The server calculates elliptic curve group elements according to k1 and the stored client public key component p1 to obtain a first ciphertext R1, which is represented as: r1 ═ k1] p 1.
S503, the server sends R1 to the client.
S504, the client randomly generates a first client key parameter k3 and a second client key parameter k 4.
After the client receives the first ciphertext R1, two random integers k3 and k4 are randomly generated, k3 belongs to [1, n-1], k4 belongs to [1, n-1], k3 serves as a first client key parameter, and k4 serves as a second client key parameter.
S505, the client calculates an elliptic curve point (x1, y1) according to the first client key parameter k3, the second client key parameter k4, the second server public key subcomponent p3 and the first ciphertext R1. And calculating to obtain first signature data r according to the abscissa x1 of the elliptic curve point and the hash value of the data to be signed.
Specifically, first, the client computes the elliptic curve point (x1, y1) as:
(x1,y1)=[k3]R1+p3+[k4]G
the abscissa x1 of the elliptic curve point is obtained. Then, as can be seen from the SM2 encryption algorithm, the client first calculates the hash value e of the data to be signed, which is denoted as e ═ H (Z | | M). The first signature data r is then computed as:
r=(e+x1)mod n
a first part of the digital signature, i.e. the first signature data r, is obtained. If R is 0 or rG + [ k3] R1+ p3+ [ k4] G is 0, the process returns to step S502, and the random number is regenerated. Otherwise, step S506 is executed.
S506, the client calculates a second ciphertext w according to the first signature data r and the second client key parameter k 4. Expressed as:
w=(r+k4)mod n
and S507, the client sends the second ciphertext w to the server.
S508, the server calculates to obtain first subdata S1 according to the first server key parameter k1, the first server private key subcomponent d2 and the second server private key subcomponent d 3. And the server calculates to obtain second sub-data s2 according to the second ciphertext w, the first server private key subcomponent d2 and the second server private key subcomponent d 3.
The specific calculation formula is as follows:
s1=(k1*(d2+d3)-1)mod n
s2=((w+d3)*(d2+d3)-1)mod n
sub-signature data is obtained. If S1 or S2 is 0, the process returns to step S504 to regenerate the random number. Otherwise, step S509 is performed.
S509, the server sends the first sub-data S1 and the second sub-data S2 to the client.
S510, the client calculates second signature data S according to the first sub-data S1, the second sub-data S2 and the first client key parameter k 3.
The specific calculation formula is expressed as:
s=k3*s1+s2*d1-1-r
a second partial signature, i.e. second signature data s, is obtained.
S511, combining r and S to obtain signature data (r, S).
And the client synthesizes r and s according to the first signature data r generated previously to obtain the digital signature data meeting the SM2 standard, and completes the digital signature.
Therefore, in the digital signature method of the embodiment, the client and the server cooperate to complete digital signature, so that even if the private key component of any party is controlled by an attacker, the signature of the user cannot be forged singly, and the signature process is safer. And when the client and the server transmit data, the collaborative calculation parameters are converted into intermediate variables for transmission, instead of directly transmitting the hash value of the signature information to the server, so that the hash value of the signature information is not exposed during data transmission, the possibility of falsification of the hash by an attacker is avoided, and the security of the collaborative signature is greatly improved. Moreover, the client side stores one private key segment, the server side stores two private key segments, the use safety of the private key of the user is further improved by the private key components, the signature can be realized only by the cooperative calculation of the three private key segments, and the safety of the digital signature is improved.
In another aspect, the present disclosure provides an apparatus for collaborative digital signing, which is applicable to the system shown in fig. 1. Fig. 6 illustrates some implementations of a signing device, in which the device is applied to a client, comprising:
the first sending module 10 is configured to send a signature request, and receive a first ciphertext returned by the server in response to the signature request; the first ciphertext is an elliptic curve group element obtained by the server through calculation according to the client public key component and a first server key parameter generated randomly;
the first processing module 20 is configured to randomly generate a first client key parameter and a second client key parameter, and process the data to be signed according to the first client key parameter, the second client key parameter, the server public key component, and the first ciphertext to obtain first signature data; and also used for
Calculating according to the second client key parameter and the first signature data to obtain a second ciphertext, and sending the second ciphertext to the server side, so that the server side calculates according to the second ciphertext, the first server key parameter and the server side private key component to obtain sub-signature data;
the first receiving module 30 is configured to receive the sub-signature data sent by the server, and calculate to obtain second signature data according to the first client key parameter, the client private key component, the first signature data, and the sub-signature data;
and the signature module 40 is configured to synthesize a digital signature according to the first signature data and the second signature data.
In this embodiment, the server public key component includes a first server public key subcomponent and a second server public key subcomponent, and the server private key component includes a first server private key subcomponent and a second server private key subcomponent;
the first processing module 20 is specifically configured to, when configured to process the data to be signed according to the first client key parameter, the second client key parameter, the server public key component, and the first ciphertext to obtain first signature data:
calculating to obtain an elliptic curve point according to the first client key parameter, the second server public key sub-component and the first ciphertext;
and calculating to obtain first signature data according to the abscissa of the elliptic curve point and the hash value of the data to be signed.
In other embodiments, as shown in fig. 7, the present disclosure provides an apparatus for collaborative digital signature, which is applicable to a server, including:
the second processing module 50 is configured to randomly generate a first server key parameter when receiving a signature request sent by a client, and calculate an elliptic curve group element according to a client public key component and the randomly generated first server key parameter to obtain a first ciphertext;
the third sending module 60 is configured to send the first ciphertext to the client, so that the client processes the data to be signed to obtain first signature data according to the first client key parameter and the second client key parameter that are randomly generated, the server public key component, and the first ciphertext, and calculates the second ciphertext according to the second client key parameter and the first signature data;
the third receiving module 70 is configured to receive a second ciphertext sent by the client, and calculate to obtain sub-signature data according to the second ciphertext, the first service-side key parameter, and the service-side private key component;
the fourth sending module 80 is configured to send the sub-signature data to the client, so that the client calculates second signature data according to the first client key parameter, the client private key component, the first signature data, and the sub-signature data, and synthesizes the first signature data and the second signature data to obtain a digital signature.
In this embodiment, the server public key component includes a first server public key subcomponent and a second server public key subcomponent, and the server private key component includes a first server private key subcomponent and a second server private key subcomponent; the sub-signature data comprises first sub-data and second sub-data;
the third receiving module 70 is specifically configured to, when configured to receive the second ciphertext sent by the client, and calculate the sub-signature data according to the second ciphertext, the first service-side key parameter, and the service-side private key component:
calculating according to the first service side key parameter, the first service side private key sub-component and the second service side private key sub-component to obtain first subdata;
and calculating to obtain second subdata according to the second ciphertext, the first server side private key subcomponent and the second server side private key subcomponent.
In yet another aspect, the present disclosure provides a collaborative digital signature apparatus, including:
a processor; and
a memory communicatively coupled to the processor and storing computer readable instructions readable by the processor, the processor performing the method of any of the above embodiments when the computer readable instructions are read.
In yet another aspect, the present disclosure provides a storage medium storing computer instructions for causing a computer to perform the method of any one of the above embodiments.
In particular, fig. 8 shows a schematic structural diagram of a computer system 600 suitable for implementing the method or processor of the present disclosure, and the corresponding functions of the signature device and the storage medium are implemented by the system shown in fig. 8.
As shown in fig. 8, the computer system 600 includes a Central Processing Unit (CPU)601 that can perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM)602 or a program loaded from a storage section 608 into a Random Access Memory (RAM) 603. In the RAM 603, various programs and data necessary for the operation of the system 600 are also stored. The CPU 601, ROM 602, and RAM 603 are connected to each other via a bus 604. An input/output (I/O) interface 605 is also connected to bus 604.
The following components are connected to the I/O interface 605: an input portion 606 including a keyboard, a mouse, and the like; an output portion 607 including a display such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, and a speaker; a storage section 608 including a hard disk and the like; and a communication section 609 including a network interface card such as a LAN card, a modem, or the like. The communication section 609 performs communication processing via a network such as the internet. The driver 610 is also connected to the I/O interface 605 as needed. A removable medium 611 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 610 as necessary, so that a computer program read out therefrom is mounted in the storage section 608 as necessary.
In particular, the above method processes may be implemented as a computer software program according to embodiments of the present disclosure. For example, embodiments of the present disclosure include a computer program product comprising a computer program tangibly embodied on a machine-readable medium, the computer program comprising program code for performing the above-described method. In such embodiments, the computer program may be downloaded and installed from a network through the communication section 609, and/or installed from the removable medium 611.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It should be understood that the above embodiments are only examples for clearly illustrating the present invention, and are not intended to limit the present invention. Other variations and modifications will be apparent to persons skilled in the art in light of the above description. And are neither required nor exhaustive of all embodiments. And obvious variations or modifications of the present disclosure may be made without departing from the scope of the present disclosure.

Claims (16)

1. A collaborative digital signature method is applied to a client, and the method comprises the following steps:
sending a signature request, and receiving a first ciphertext returned by a server end in response to the signature request; the first ciphertext is an elliptic curve group element obtained by the server through calculation according to the client public key component and a first server key parameter generated randomly;
randomly generating a first client key parameter and a second client key parameter, and processing data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data;
calculating according to a second client key parameter and first signature data to obtain a second ciphertext, and sending the second ciphertext to a server side, so that the server side calculates according to the second ciphertext, the first server key parameter and a server side private key component to obtain sub-signature data;
receiving the sub-signature data sent by the server, and calculating to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data;
and synthesizing according to the first signature data and the second signature data to obtain a digital signature.
2. The method of claim 1, wherein the server-side public key component comprises a first server-side public key sub-component and a second server-side public key sub-component, and wherein the server-side private key component comprises a first server-side private key sub-component and a second server-side private key sub-component;
the processing the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data comprises:
calculating to obtain an elliptic curve point according to the first client key parameter, the second server public key sub-component and the first ciphertext;
and calculating to obtain the first signature data according to the abscissa of the elliptic curve point and the hash value of the data to be signed.
3. The method according to claim 1, before said sending a signature request and receiving a first ciphertext returned by the server in response to the signature request, further comprising:
randomly generating a client private key component, and calculating according to the client private key component to obtain a client public key component;
and sending the client public key component to the server so that the server calculates to obtain an encrypted public key according to the client public key component and the randomly generated first server private key sub-component and second server private key sub-component.
4. The method of claim 3, wherein after receiving the encrypted public key and the second server public key sub-component sent by the server, further comprising:
receiving an endorsement certificate sent by a server, wherein the endorsement certificate is obtained by the server through calculation according to a first server private key subcomponent and a second server private key subcomponent;
calculating according to the client side private key component and the encrypted public key to obtain a first verification value;
determining whether the first verification value is equal to the signature verification credential,
if yes, the verification is passed;
if not, the verification fails, the steps of randomly generating the client private key component and calculating to obtain the client public key component according to the client private key component are executed.
5. A collaborative digital signature method is applied to a server side, and the method comprises the following steps:
when a signature request sent by a client is received, randomly generating a first server key parameter, and calculating elliptic curve group elements according to a client public key component and the randomly generated first server key parameter to obtain a first ciphertext;
sending the first ciphertext to a client, so that the client processes data to be signed according to a first client key parameter and a second client key parameter which are randomly generated, a server public key component and the first ciphertext to obtain first signature data, and the client calculates according to the second client key parameter and the first signature data to obtain a second ciphertext;
receiving the second ciphertext sent by the client, and calculating according to the second ciphertext, the first service side key parameter and the service side private key component to obtain sub-signature data;
and sending the sub-signature data to the client so that the client calculates to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data, and synthesizes the first signature data and the second signature data to obtain a digital signature.
6. The method of claim 5,
the server public key component comprises a first server public key subcomponent and a second server public key subcomponent, and the server private key component comprises a first server private key subcomponent and a second server private key subcomponent; the sub-signature data comprises first sub-data and second sub-data;
the receiving the second ciphertext sent by the client, and calculating to obtain sub-signature data according to the second ciphertext, the first service-side key parameter and the service-side private key component, including:
calculating to obtain the first subdata according to the first server side key parameter, the first server side private key sub-component and the second server side private key sub-component;
and calculating to obtain the second subdata according to the second ciphertext, the first server side private key sub-component and the second server side private key sub-component.
7. The method of claim 5, wherein before randomly generating the first server key parameter when receiving the signing request sent by the client, the method further comprises:
randomly generating a first server private key sub-component and a second server private key sub-component, and obtaining a corresponding first server public key sub-component and a corresponding second server public key sub-component according to the first server private key sub-component and the second server private key sub-component;
receiving a client public key component sent by a client, wherein the client public key component is obtained by the client through calculation according to a client private key component generated randomly;
and calculating to obtain an encrypted public key according to the client public key component, the first server private key subcomponent and the second server private key subcomponent.
8. The method of claim 7, wherein after sending the encrypted public key and the second server public key sub-component to the client, further comprising:
calculating according to the first server side private key sub-component and the second server side private key sub-component to obtain an identification certificate, and sending the identification certificate to the client side;
and receiving a verification result sent by the client, and executing a step of receiving the client public key component sent by the client if the verification fails.
9. A collaborative digital signature method is applied to a digital signature system, wherein the digital signature system comprises a client and a server, and the method comprises the following steps:
the client sends a signature request to the server;
the server calculates elliptic curve group elements according to the client public key component and a first server key parameter generated randomly to obtain a first ciphertext, and sends the first ciphertext to the client;
the client randomly generates a first client key parameter and a second client key parameter, and processes the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data;
the client calculates to obtain a second ciphertext according to the second client key parameter and the first signature data, and sends the second ciphertext to the server;
the server calculates to obtain sub-signature data according to the second ciphertext, the first server key parameter and the server private key component, and sends the sub-signature data to the client;
the client calculates to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data, and synthesizes to obtain a digital signature according to the first signature data and the second signature data.
10. The method of claim 9, before the client sends the signature request to the server, further comprising:
the client randomly generates a client private key component, and calculates according to the client private key component to obtain a client public key component;
the server randomly generates a first server private key sub-component and a second server private key sub-component, and obtains a corresponding first server public key sub-component and a corresponding second server public key sub-component according to the first server private key sub-component and the second server private key sub-component;
and the client side sends the client side public key component to the server side so that the server side calculates to obtain an encrypted public key according to the client side public key component and the randomly generated first server side private key sub-component and second server side private key sub-component.
11. A collaborative digital signature apparatus applied to a client, the apparatus comprising:
the first sending module is used for sending a signature request and receiving a first ciphertext returned by the server end in response to the signature request; the first ciphertext is an elliptic curve group element obtained by the server through calculation according to the client public key component and a first server key parameter generated randomly;
the first processing module is used for randomly generating a first client key parameter and a second client key parameter, and processing the data to be signed according to the first client key parameter, the second client key parameter, the server public key component and the first ciphertext to obtain first signature data; and also used for
Calculating according to a second client key parameter and first signature data to obtain a second ciphertext, and sending the second ciphertext to a server side, so that the server side calculates according to the second ciphertext, the first server key parameter and a server side private key component to obtain sub-signature data;
the first receiving module is used for receiving the sub-signature data sent by the server and calculating to obtain second signature data according to the first client key parameter, the client private key component, the first signature data and the sub-signature data;
and the signature module is used for synthesizing to obtain a digital signature according to the first signature data and the second signature data.
12. The apparatus of claim 11, wherein the server public key component comprises a first server public key sub-component and a second server public key sub-component, and wherein the server private key component comprises a first server private key sub-component and a second server private key sub-component;
the first processing module, when configured to process the data to be signed according to the first client-side key parameter, the second client-side key parameter, the server-side public key component, and the first ciphertext to obtain first signature data, is specifically configured to:
calculating to obtain an elliptic curve point according to the first client key parameter, the second server public key sub-component and the first ciphertext;
and calculating to obtain the first signature data according to the abscissa of the elliptic curve point and the hash value of the data to be signed.
13. A collaborative digital signature apparatus, applied to a server, the apparatus comprising:
the second processing module is used for randomly generating a first server key parameter when receiving a signature request sent by a client, and calculating elliptic curve group elements according to the client public key component and the randomly generated first server key parameter to obtain a first ciphertext;
the third sending module is used for sending the first ciphertext to the client, so that the client processes the data to be signed to obtain first signature data according to the randomly generated first client key parameter and second client key parameter, the server public key component and the first ciphertext, and the client calculates the second ciphertext according to the second client key parameter and the first signature data;
the third receiving module is used for receiving the second ciphertext sent by the client and calculating to obtain sub-signature data according to the second ciphertext, the first service-side key parameter and the service-side private key component;
and the fourth sending module is used for sending the sub-signature data to the client so that the client can obtain second signature data by calculating according to the first client key parameter, the client private key component, the first signature data and the sub-signature data, and the client can obtain a digital signature by synthesizing according to the first signature data and the second signature data.
14. The apparatus of claim 13, wherein the server public key component comprises a first server public key sub-component and a second server public key sub-component, and wherein the server private key component comprises a first server private key sub-component and a second server private key sub-component; the sub-signature data comprises first sub-data and second sub-data;
the third receiving module is specifically configured to, when configured to receive the second ciphertext sent by the client, and calculate sub-signature data according to the second ciphertext, the first server key parameter, and the server private key component, perform:
calculating to obtain the first subdata according to the first server side key parameter, the first server side private key sub-component and the second server side private key sub-component;
and calculating to obtain the second subdata according to the second ciphertext, the first server side private key sub-component and the second server side private key sub-component.
15. A collaborative digital signature apparatus, comprising:
a processor;
a memory communicatively coupled to the processor and storing computer readable instructions which, when read, cause the processor to perform the method of any of claims 1 to 4, or the method of any of claims 5 to 8, or the method of any of claims 9 to 10.
16. A storage medium storing computer readable instructions for causing a computer to perform the method of any one of claims 1 to 4, or the method of any one of claims 5 to 8, or the method of any one of claims 9 to 10.
CN202010006969.5A 2020-01-03 2020-01-03 Collaborative digital signature method and device Active CN111200502B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010006969.5A CN111200502B (en) 2020-01-03 2020-01-03 Collaborative digital signature method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010006969.5A CN111200502B (en) 2020-01-03 2020-01-03 Collaborative digital signature method and device

Publications (2)

Publication Number Publication Date
CN111200502A true CN111200502A (en) 2020-05-26
CN111200502B CN111200502B (en) 2023-04-07

Family

ID=70746824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010006969.5A Active CN111200502B (en) 2020-01-03 2020-01-03 Collaborative digital signature method and device

Country Status (1)

Country Link
CN (1) CN111200502B (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111565108A (en) * 2020-07-15 2020-08-21 北京信安世纪科技股份有限公司 Signature processing method, device and system
CN112241527A (en) * 2020-12-15 2021-01-19 杭州海康威视数字技术股份有限公司 Key generation method and system and electronic equipment
CN112422293A (en) * 2020-11-27 2021-02-26 苏博云科数字认证有限公司 Key generation method, device and information processing method
CN113468580A (en) * 2021-07-23 2021-10-01 建信金融科技有限责任公司 Multi-party collaborative signature method and system
CN113922958A (en) * 2021-12-15 2022-01-11 深圳市财富趋势科技股份有限公司 Password protection method and device based on biometric identification and SM2 cooperative password algorithm
CN114268438A (en) * 2021-11-12 2022-04-01 中国南方电网有限责任公司 Multi-party collaborative signature method and device, computer equipment and storage medium
CN114650136A (en) * 2022-05-18 2022-06-21 杭州天谷信息科技有限公司 Electronic signature method and device based on hybrid cloud
CN114844650A (en) * 2022-05-24 2022-08-02 北京宏思电子技术有限责任公司 Equipment signature method and system
CN115208586A (en) * 2022-09-13 2022-10-18 中安网脉(北京)技术股份有限公司 Secret sharing-based digital signature method and system
CN115314205A (en) * 2022-10-11 2022-11-08 中安网脉(北京)技术股份有限公司 Collaborative signature system and method based on key segmentation
WO2023174350A1 (en) * 2022-03-17 2023-09-21 ***通信集团有限公司 Identity authentication method, apparatus and device, and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864037A (en) * 2017-10-25 2018-03-30 深圳奥联信息安全技术有限公司 SM9 Combination with Digital endorsement method and device
CN108880807A (en) * 2018-08-02 2018-11-23 中钞***产业发展有限公司杭州区块链技术研究院 Private key signature process method, apparatus, equipment and medium
CN109672539A (en) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 SM2 algorithm collaboration signature and decryption method, apparatus and system
CN110278088A (en) * 2019-07-18 2019-09-24 广州安研信息科技有限公司 A kind of SM2 collaboration endorsement method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864037A (en) * 2017-10-25 2018-03-30 深圳奥联信息安全技术有限公司 SM9 Combination with Digital endorsement method and device
CN108880807A (en) * 2018-08-02 2018-11-23 中钞***产业发展有限公司杭州区块链技术研究院 Private key signature process method, apparatus, equipment and medium
CN109672539A (en) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 SM2 algorithm collaboration signature and decryption method, apparatus and system
CN110278088A (en) * 2019-07-18 2019-09-24 广州安研信息科技有限公司 A kind of SM2 collaboration endorsement method

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111565108A (en) * 2020-07-15 2020-08-21 北京信安世纪科技股份有限公司 Signature processing method, device and system
CN112422293B (en) * 2020-11-27 2023-09-05 苏博云科数字认证有限公司 Key generation method, device and information processing method
CN112422293A (en) * 2020-11-27 2021-02-26 苏博云科数字认证有限公司 Key generation method, device and information processing method
CN112241527A (en) * 2020-12-15 2021-01-19 杭州海康威视数字技术股份有限公司 Key generation method and system and electronic equipment
CN112241527B (en) * 2020-12-15 2021-04-27 杭州海康威视数字技术股份有限公司 Secret key generation method and system of terminal equipment of Internet of things and electronic equipment
CN113468580A (en) * 2021-07-23 2021-10-01 建信金融科技有限责任公司 Multi-party collaborative signature method and system
CN114268438A (en) * 2021-11-12 2022-04-01 中国南方电网有限责任公司 Multi-party collaborative signature method and device, computer equipment and storage medium
CN114268438B (en) * 2021-11-12 2024-02-09 中国南方电网有限责任公司 Multiparty collaborative signature method, multiparty collaborative signature device, multiparty collaborative signature computer equipment and storage medium
CN113922958A (en) * 2021-12-15 2022-01-11 深圳市财富趋势科技股份有限公司 Password protection method and device based on biometric identification and SM2 cooperative password algorithm
CN113922958B (en) * 2021-12-15 2022-03-11 深圳市财富趋势科技股份有限公司 Password protection method and device based on biometric identification and SM2 cooperative password algorithm
WO2023174350A1 (en) * 2022-03-17 2023-09-21 ***通信集团有限公司 Identity authentication method, apparatus and device, and storage medium
CN114650136A (en) * 2022-05-18 2022-06-21 杭州天谷信息科技有限公司 Electronic signature method and device based on hybrid cloud
CN114844650B (en) * 2022-05-24 2023-12-01 北京宏思电子技术有限责任公司 Equipment signature method and system
CN114844650A (en) * 2022-05-24 2022-08-02 北京宏思电子技术有限责任公司 Equipment signature method and system
CN115208586A (en) * 2022-09-13 2022-10-18 中安网脉(北京)技术股份有限公司 Secret sharing-based digital signature method and system
CN115314205B (en) * 2022-10-11 2023-01-03 中安网脉(北京)技术股份有限公司 Collaborative signature system and method based on key segmentation
CN115314205A (en) * 2022-10-11 2022-11-08 中安网脉(北京)技术股份有限公司 Collaborative signature system and method based on key segmentation

Also Published As

Publication number Publication date
CN111200502B (en) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111200502B (en) Collaborative digital signature method and device
CN109756485B (en) Electronic contract signing method, electronic contract signing device, computer equipment and storage medium
CN111628868B (en) Digital signature generation method and device, computer equipment and storage medium
CN109246129B (en) SM2 collaborative signature method and system capable of verifying client identity
CN111130803B (en) Method, system and device for digital signature
JP4649040B2 (en) Mask digital signature
WO2021012574A1 (en) Multisignature method, signature center, medium and electronic device
US20130322621A1 (en) Private key generation apparatus and method, and storage media storing programs for executing the methods
CN107483191B (en) SM2 algorithm key segmentation signature system and method
CN111464315B (en) Digital signature processing method, device, computer equipment and storage medium
EP2582085A1 (en) Generating implicit certificates
CN103733564A (en) Digital signatures with implicit certificate chains
JP2020532928A (en) Digital signature methods, devices and systems
CN111884811B (en) Block chain-based data evidence storing method and data evidence storing platform
CN111342955B (en) Communication method and device and computer storage medium
TW201801491A (en) Public key certificate method can generate updated key pair matching the information security requirements without updating the digital certificate
CN110690969B (en) Method and system for achieving bidirectional SSL/TLS authentication through multiparty cooperation
CN112734423A (en) Transaction method based on block chain and terminal equipment
CN112653554A (en) Signature method, system, equipment and readable storage medium
CN114553590A (en) Data transmission method and related equipment
CN114726546A (en) Digital identity authentication method, device, equipment and storage medium
CN113765662A (en) Signature and decryption method and system based on SM2 algorithm
WO2022116176A1 (en) Method and device for generating digital signature, and server
WO2022116175A1 (en) Method and apparatus for generating digital signature and server
CN111865761B (en) Social chat information evidence storing method based on block chain intelligent contracts

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Room 301-A30, 3rd Floor, 123 Dongjiao South Road, Liwan District, Guangzhou City, Guangdong Province, 510375

Patentee after: Xin'an Shenzhou Technology (Guangzhou) Co.,Ltd.

Address before: Unit 3F-13, Self-made Building A, No. 16, East Ho Shell Street, Shixi Village, Haizhu District, Guangzhou City, Guangdong Province, 510000

Patentee before: Xin'an Shenzhou Technology (Guangzhou) Co.,Ltd.