Proxy signature and verification method based on digital certificate

By introducing agent signatures and verification methods based on digital certificates into the electronic authentication service system, the problem of entrusted agent signatures within the enterprise is solved, the main responsibility for electronic signatures is clarified, and protection of the use of the private key of the agent signer is provided.

CN119232505BActive Publication Date: 2025-03-11SICHUAN DIGITAL CERTIFICATE AUTHENTICATION MANAGEMENT CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411757327.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-03
Publication Date
2025-03-11
Estimated Expiration
2044-12-03

AI Technical Summary

Technical Problem

The existing technology lacks engineering methods based on electronic certification service system to solve the problem of agency signatures between organizations and personnel within an enterprise, and personnel, resulting in unclear responsibility for electronic signature behavior.

Method used

A proxy signature and verification method based on digital certificates is adopted to issue authorization tuples (PKA, PKB, Mw, SA) to proxy signer B through signer A, and proxy signer B applies for proxy signature digital certificate CertP through certificate certification agency to ensure that data messages within the scope of authorization are electronically signed.

Benefits of technology

It effectively solves the problem of proxy signatures, clarifies the electronic signatures completed by specific roles in the organization, ensures that the main responsibility of electronic signatures is clear, and provides distinctive protection for the use of the proxy signature's own private key.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

The invention discloses a proxy signature and verification method based on digital certificate, which relates to the field of information security technology, including: a signer and a proxy signer apply for a digital certificate from a certificate authentication agency; the signer calculates an authorization tuple representing the authorization scope, and encrypts it with the public key of the proxy signer and sends it to the proxy signer; the proxy signer receives the authorization tuple ciphertext, and generates a proxy signature key pair according to the authorization tuple after decryption and verification; the proxy signer calculates the tuple, and sends it to the certificate authentication agency to apply for a digital certificate; the certificate authentication agency performs verification according to the tuple, and issues a digital certificate after verification; the proxy signer uses the private key corresponding to the digital certificate of the proxy signature to electronically sign a data message to obtain an electronic signature; the electronic signature relying party performs electronic signature verification according to the electronic signature; the invention can effectively solve the problem of proxy signature in engineering practice.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of information security, and in particular to a proxy signature and verification method based on digital certificates. Background Art

[0002] At present, the application of electronic signature and verification technology is becoming more and more widespread. Through electronic signature, the signer's recognition of the signed information can be determined, which can play the role of identity authentication, data tampering prevention, and denial prevention. However, in an organization, personnel in different departments usually use different digital certificates (usually USBKey digital certificates) to identify different personnel's recognition of the signed information. For example, the sales vice president of an organization can use digital certificates to sign electronic contracts on behalf of the organization and other organizations. When the organization applies for a digital certificate, there is no authorized agency relationship between the certificates controlled by personnel in various departments of the organization. The usual practice is to apply for multiple digital certificates representing different purposes of the organization, which are handed over to personnel with different roles and used separately in e-commerce, e-government and other fields. Although there are currently a variety of proxy signature schemes that can enable the signer to entrust the proxy signer to electronically sign the data message, there is a lack of engineering methods based on the current electronic certification service system to solve the problem of entrustment and proxy signature between organizations and personnel, and between personnel in the enterprise in actual applications.

[0003] Currently, organizations apply to the Certificate Authority (CA) for multiple digital certificates representing the organization, and use digital certificates in different fields to implement electronic signatures. The current signature method only clarifies the main responsibility of the organization's electronic signature, but it cannot effectively solve the problem of which role of the person in the organization completes the electronic signature, and there is a problem of unclear main responsibility of the electronic signature behavior. For example, in the application of electronic signatures in the medical field, when doctors in the hospital and doctors in training sign medical data electronically, they usually use the digital certificates of doctors in the hospital to complete it, but the actual signer may be a doctor in training. In this case, there is a problem of unclear main responsibility; for example, in an enterprise, the enterprise applies for a certificate for social security handling and a certificate for contract signing. When the enterprise signs an electronic contract with other enterprises, the certificate for contract signing is handed over to the vice president of sales to sign the electronic contract. In this case, when the signed electronic contract is verified in an electronic environment, only the specific enterprise can be identified, but it cannot be clear which specific person in the enterprise has completed the electronic contract signing. Summary of the invention

[0004] In order to solve the problems existing in the prior art, the purpose of the present invention is to provide a proxy signature and verification method based on digital certificates, which can effectively solve the problem of proxy signature in engineering practice.

[0005] To achieve the above object, the technical solution adopted by the present invention is: a proxy signature and verification method based on digital certificate, comprising the following steps:

[0006] S10, the signer A and the proxy signer B respectively use the user ID A 、ID B Apply for a digital certificate from a certification authority A , Cert B , and their corresponding key pairs are (SK A ,PK A ), (SK B ,PK B );

[0007] S20. Signer A issues an authorization tuple to proxy signer B: Signer A calculates the representative authorization scope M w The authorization tuple (PK A ,PK B ,M w ,S A ), and uses the public key PK of the proxy signer B B After encryption, it is sent to the proxy signer B, where S A It is the signature information of signer A;

[0008] S30, the proxy signer B verifies the authorization tuple and generates an authorization certificate application tuple: the proxy signer B receives the authorization tuple (PK A ,PK B ,M w ,S A ) ciphertext, and decrypt and verify it according to the authorization tuple (PK A ,PK B ,M w ,S A )Generate a proxy signing key pair (SK P ,PK P ); Proxy signer B calculates the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ), sent to the certification authority to apply for a digital certificate, where CSR P It is a request for a proxy signature digital certificate. B It is the confirmation signature of the proxy signatory B on the authorized signature of signatory A;

[0009] S40, the certificate authority verifies the authorization element and issues a proxy signature digital certificate: the certificate authority verifies the authorization element and issues a proxy signature digital certificate based on the tuple (CSR P ,PKA ,PK B ,M w ,S A ,S B ) to verify, and the verification is done by issuing a digital certificate Cert P ;

[0010] S50, the proxy signer B uses the proxy signature digital certificate Cert P The corresponding private key SK P For M∈{M w} to electronically sign the data message and obtain the electronic signature S P , where M represents data message;

[0011] S60. The party relying on the electronic signature shall P Perform electronic signature verification.

[0012] As a further improvement of the present invention, the S20 specifically includes the following steps:

[0013] S2001, signer A uses the user ID of proxy signer B B Query the digital certificate Cert of the agent signatory B from the electronic certification service agency B , and based on the digital certificate Cert B Parse the public key PK of the proxy signer B B ;

[0014] S2002, signer A obtains the signer's digital certificate Cert A And parse the public key PK A ;

[0015] S2003, Signer A determines the authorization scope M w , and then use the SM3 hash algorithm to calculate H 1 =SM3(PK A ), H 2 =SM3(PK B ), H 3 =SM3(M w ), and H=SM3(H 1 ||H 2 ||H 3 );

[0016] S2004, signer A uses private key SK A Calculate A's electronic signature: S A =SM2Sign(H,SK A ), the signer A sends the public key PK to the proxy signer B B Encrypted authorization tuple (PKA ,PK B ,M w ,S A ).

[0017] As a further improvement of the present invention, the S30 specifically includes the following steps:

[0018] S3001, proxy signer B receives tuple (PK A ,PK B ,M w ,S A ) and then use the private key SK B Decryption, using SM3 hash algorithm to calculate H 1 ’ =SM3(PK A ), H 2 ’ =SM3(PK B ), H 3 ’ =SM3(M w ), and H ’ =SM3(H 1 ’ ||H 2 ’ ||H 3 ’ );

[0019] S3002, agent signer B performs electronic signature verification, i.e. SM2Verify (S A ,PK A ,H ’ ), if the verification is passed, the process goes to S3003; if the verification is not passed, the process ends directly, where SM2Verify indicates the signature verification of the SM2 algorithm;

[0020] S3003, generate a random number K r , and calculate H r =SM3(K r ), H SKB =SM3(SK B ), calculate SK P =H ’ + H SKB +H r , PK P =[SK P ]G, G is the base point, [SK P ]G represents the SK of the elliptic curve point G P times, (SK P ,PK P ) is the proxy signature key pair;

[0021] S3004, proxy signer B calculates H ” =SM3(S A ), using the private key SK A The SM2 algorithm is used to calculate the electronic signature, that is, S B =SM2Sign(H ” ,SK B ) ; Calculate and assemble the certificate application request CSR for the proxy signature certificate P , using the identification value B@A of the proxy signer B on behalf of the signer A as the certificate subject, and sending the certificate to the certificate authority using the public key PK of the certificate authority CA Encrypted tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B )Apply for a digital certificate.

[0022] As a further improvement of the present invention, the S40 specifically includes the following steps:

[0023] S4001, the certificate authority receives the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) and use the private key SK CA After decryption, the SM3 hash algorithm is used to calculate H 1 * =SM3(PK A ), H 2 * =SM3(PK B ), H 3 * =SM3(M w ), and H * =SM3(H 1 * ||H 2 * ||H 3 * );

[0024] S4002, the certification authority verifies the SM2 electronic signature of the signatory A, that is, SM2Verify (S A ,PK A , H * ), if the verification is passed, proceed to S4003, if the verification is not passed, end directly;

[0025] S4003, the certification authority verifies the SM2 electronic signature of the agent signatory A, that is, calculates H B =SM3(S A ), and verify SM2Verify(S B ,PK B , H B ), if the verification is passed, proceed to S4004, if the verification is not passed, end directly;

[0026] S4004, Certification Authority Verifies CSR P , that is, parse out the proxy signature public key PK P , according to CSR P The algorithm for calculating CSR P .Hash value of certificationRequestInfo c , and perform signature verification SignVerify(CSR P .signature,PK P , H c ), if the verification is passed, it will go to S4005, if the verification is not passed, it will end directly. P .certificationRequestInfo represents the certificate application request data, CSR P .signature indicates the signature value of the proxy signature private key for the certificate application request;

[0027] S4005, the certificate authority issues a digital certificate Cert with the proxy signer B representing the signer A's identification value B@A as the certificate subject. P , and through PK P After encryption, it is returned to the proxy signer B.

[0028] As a further improvement of the present invention, the S60 is specifically as follows:

[0029] Parse the digital certificate Cert P The certificate authority verifies the validity of the certificate based on the digital certificate Cert stored by the certificate authority. P Sequence Number and Tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ), verify the proxy authorization relationship between signer A and proxy signer B, and return the proxy authorization scope M w ; Finally, verify whether the data message M to be verified has changed; Finally, return the verification result of the proxy signature, which shows that the signer A allows the proxy signer B to sign within the authorization scope Mw The electronic signature is performed within, and whether the current data message M to be verified has changed.

[0030] The principle of the present invention is as follows:

[0031] In the present invention, A and B apply for a digital certificate Cert from a certificate authority (CA). A , Cert B , the SM2 key pairs are (SK A , PK A ) and (SK B , PK B ), SK represents the private key, which is kept by the signer, and PK represents the public key, which can be made public; when issuing a digital certificate, CA needs to verify the true identity of the signer. Then, A calculates H through the SM3 hash algorithm 1 =SM3(PK A ), H 2 =SM3(PK B ), H 3 =SM3(M w ), and H=SM3(H 1 ||H 2 ||H 3 ), and use the SM2 algorithm to calculate A's electronic signature S A =SM2Sign(H,SK A ), here through the tuple (PK A ,PK B ,M w ,S A ) can fully express that the signatory A authorized the proxy signatory B to w The signature of the data message in the range, A puts the tuple (PK A ,PK B ,M w ,S A ) is sent to B; B receives the tuple (PK A ,PK B ,M w ,S A ), B uses the SM3 hash algorithm to calculate H 1 ’ =SM3(PK A ), H 2 ’ =SM3(PK B ), H 3 ’ =SM3(M w ), and H ’ =SM3(H 1 ’ ||H2 ’ ||H 3 ’ ), perform SM2 electronic signature verification, namely SM2Verify(S A ,PK A , H ’ ), if the verification fails, it terminates, if the verification passes, a random number K is generated r , and calculate H r =SM3(K r ), calculate SK P =H ’ +SK B +H r , PK P =[SK P ]G, G is the base point, then (SK P ,PK P ) is the proxy signature key pair, where SK P is the private key, which is controlled by B, PK P Because the public key can be made public, calculate H ” =SM3(S A ), B's electronic signature S B =SM2Sign(H ” ,SK B ), S B Representative B accepts and approves the proxy signature authorization, and then generates a certificate application request CSR P , using the proxy signer B representing the signer A's identification value B@A as the certificate subject to apply for a digital certificate from the CA. When applying for a certificate, you need to send a tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ), here through the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) can clearly express that the signatory A has authorized the proxy signatory B to w The signing of the data message within the scope of the contract, and B applies to CA for a digital certificate based on the authorization. CA issues a proxy signature digital certificate Cert to B based on the request. P . Later, B can pass Cert P The corresponding private key SK P Electronic signatures are made and third parties can verify the agent's signature.

[0032] The present invention adopts the method that the signer A issues the authorization tuple (PK A ,PK B ,M w ,S A ) to clearly express that the signatory A has authorized the proxy signatory B to w The proxy signer B can sign the data message within the scope of the authorization tuple (PK A ,PK B ,M w ,S A ) Apply for a digital certificate; the calculation of the authorization tuple uses public information PK A ,PK B 、M w As the authorization scope, the private key SK of signer A is used A The authorization is signed and confirmed, so that the scope, object, and authorization intention of this authorization tuple can be clarified; at the same time, the authorization tuple is signed by the public key PK of the proxy signer B. B It is encrypted and can only be used by proxy signer B.

[0033] The present invention generates a proxy signature digital certificate key pair (SK P ,PK P ), the public key PK of signer A is used A 、Proxy signer B public key PK B 、Authorization scope M w The hash value of the random number, the private key SK of the proxy signer B B The hash value generates the private key SK of the key pair P , thereby ensuring the randomness of private key generation, the relevance with proxy signer B, and the relevance of authorization information.

[0034] The present invention is based on tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) Apply for a proxy signature digital certificate from a certificate authority, tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) can clearly express that under the authorization of signer A, proxy signer B explicitly confirms to apply for a digital certificate from the CA organization. This tuple contains signer A, proxy signer B, authorization scope M w , the signatory's signature on the authorization A, the confirmation signature S of the agent signatory B on the authorized signature of the signatory A B .

[0035] The present invention uses the identification value B@A of the proxy signer B representing the signer A as the certificate subject, and the certificate certification authority (CA) saves the proxy signature digital certificate Cert after issuing the certificate. P The serial number and (CSR P ,PK A ,PK B ,M w ,S A ,S B ), so that when verifying the electronic signature, the certificate authority (CA) verifies the validity of the certificate and can verify the validity of the digital certificate Cert stored by the certificate authority. P Sequence Number and Tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) to verify the proxy authorization relationship between signer A and proxy signer B, and return the proxy authorization scope M w .

[0036] The beneficial effects of the present invention are:

[0037] Based on the current electronic authentication service system, this invention solves the problem of how to implement proxy signatures between organizations and personnel, and between personnel through secure means. It uses the private key corresponding to the proxy signature certificate for electronic signature, which can effectively solve the problem of proxy signatures in engineering practice. The proxy signature implemented by this method can clarify the main responsibility of the organization's electronic signature, and clearly locate the person in which role in the organization completes the electronic signature. At the same time, this method can be used to identify the private key SK of the proxy signer himself. B The completed signature plays an effective role in distinguishing protection, that is, the signature made by the proxy signer using the private key of the non-proxy signature digital certificate is an expression of his or her own will; while the signature completed using the private key of the proxy signature certificate is the exercise of the proxy's power. DETAILED DESCRIPTION

[0038] The embodiments of the present invention are described in detail below.

[0039] Example:

[0040] A proxy signature and verification method based on digital certificates, comprising the following steps:

[0041] S10: The signatory A and the proxy signatory B respectively use the user ID A 、ID BApply for a digital certificate from a certificate authority (CA) with the following information: A , Cert B , and their corresponding key pairs are (SK A ,PK A ), (SK B ,PK B ), where the digital certificate Cert A , Cert B Contains the corresponding public key PK A ,PK B , can be made public.

[0042] S20: Signer A calculates the authorized scope M w The authorization tuple (PK A ,PK B ,M w ,S A ), and uses the public key PK of the proxy signer B B After encryption, it is sent to the proxy signer, where M w Represents a strictly defined scope of authorization, S A is the signature information of signer A; S A The calculation process is: Calculate H 1 =SM3(PK A ), H 2 =SM3(PK B ), H 3 =SM3(M w ), and H=SM3(H 1 ||H 2 ||H 3 ), S A =SM2Sign(H,SK A ).

[0043] S30: The proxy signer receives the authorization tuple (PK A ,PK B ,M w ,S A ) ciphertext, and decrypt and verify it according to the authorization tuple (PK A ,PK B ,M w ,S A )Generate a proxy signing key pair (SK P ,PK P ); Proxy signer B calculates the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B), send it to the certificate authority (CA) to apply for a digital certificate, including CSR P It is a request for a proxy signature digital certificate, encapsulated according to the PKCS#10 standard. B It is the confirmation signature of the proxy signer B on the authorized signature of the signer A. The calculation process is: Calculate H ” =SM3(S A ), S B =SM2Sign(H ” ,SK B ).

[0044] S40: Certificate Authority (CA) based on tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) to verify, and the verification is done by issuing a digital certificate Cert P ; The verification process is: first verify the authorization tuple (PK A ,PK B ,M w ,S A ), then verify the confirmation signature of the proxy signer B on the signer's authorized signature, and finally verify the proxy signature digital certificate application request; after all verifications are passed, issue a proxy signature digital certificate Cert to the proxy signer with the identification value B@A of the proxy signer B representing the signer A as the certificate subject P The digital certificate is returned to the proxy signer B, who stores the certificate in a self-controlled storage medium. At the same time, the certificate authority (CA) saves the digital certificate Cert. P Sequence Number and Tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) for subsequent verification of the digital signature.

[0045] S50: Proxy signer B uses the proxy signature digital certificate Cert P The corresponding private key SK P For M∈{M w} to electronically sign the data message and obtain S P Since the private key SK of the proxy signature digital certificate P Only the proxy signer B is in charge, and when applying for a proxy signature digital certificate, it is based on the authorization tuple (PK) from signer A to proxy signer B. A ,PK B ,Mw ,S A ), and has been confirmed by the proxy signer, so the signed data message M satisfies M∈{M w}, the proxy signature S P Qualifies as a reliable electronic signature.

[0046] S60: The party relying on the electronic signature shall P Perform electronic signature verification. The specific process is: parse the electronic signature structure and parse the digital certificate Cert P ; The certificate authority (CA) verifies the validity of the certificate, based on the digital certificate Cert stored by the certificate authority P Sequence Number and Tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) to verify the proxy authorization relationship between signer A and proxy signer B, and return the proxy authorization scope M w ; Finally, verify whether the data message M to be verified has changed; Finally, return the verification result of the proxy signature, which can reflect that the signer A allows the proxy signer B to sign within the authorization scope M w The electronic signature is performed within, and whether the current data message M to be verified has changed.

[0047] The present embodiment is further described below:

[0048] The authorization tuple issued by signer A to proxy signer B specifically includes:

[0049] S2001: Signer A based on ID B (usually the signatory's unique identifier such as ID number, etc.) Query the digital certificate of the agent signatory from the electronic certification service agency (CA) B , and parse the public key PK of the proxy signer based on the digital certificate B .

[0050] S2002: Signer A obtains the signer digital certificate Cert from the autonomous control storage medium A And parse the public key PK A .

[0051] S2003: Signer A determines the authorization scope M w (The authorization scope information is usually a text description, which needs to be written and reviewed before being entered or imported during authorization), and then the SM3 hash algorithm is used to calculate H 1 =SM3(PK A ), H2 =SM3(PK B ), H 3 =SM3(M w ), and H=SM3(H 1 ||H 2 ||H 3 ).

[0052] S2004: Signer A uses the private key SK under his own control A (The private key is usually stored in a storage medium controlled by the signer A. Whether it is stored in USBKey or by key splitting, the private key is protected by the cryptographic module. The use of the private key usually requires entering a PIN code to protect the private key.) Calculate A's electronic signature S A =SM2Sign(H,SK A ), the signer A sends the public key PK to the proxy signer B B Encrypted authorization tuple (PK A ,PK B ,M w ,S A ), using public key PK B Encryption is performed to ensure that the authorization tuple (PK A ,PK B ,M w ,S A ) security to ensure confidentiality; here, signer A sends the encrypted tuple (PK A ,PK B ,M w ,S A ), can be sent directly or sent to a certificate authority (CA) and managed by the certificate authority (CA). Here, the authorization tuple (PK A ,PK B ,M w ,S A ) can fully express that the signatory A authorized the proxy signatory B to w In actual implementation, the signer can specify the validity period of the certificate, that is, the period of time during which the proxy signer B can have the proxy signing authority.

[0053] Proxy signer B verifies the authorization tuple and generates an authorization certificate application tuple, which specifically includes:

[0054] S3001: Proxy signer B receives tuple (PK A ,PK B ,M w ,S A ) and then use the private key SK BDecryption, using SM3 hash algorithm to calculate H 1 ’ =SM3(PK A ), H 2 ’ =SM3(PK B ), H 3 ’ =SM3(M w ), and H ’ =SM3(H 1 ’ ||H 2 ’ ||H 3 ’ ).

[0055] S3002: Proxy signatory B performs electronic signature verification, i.e. SM2Verify (S A ,PK A ,H ’ ), if the verification is passed, it goes to S3003, if the verification is not passed, it ends directly, where SM2Verify represents the signature verification of the SM2 algorithm.

[0056] S3003: Generate a random number K r , and calculate H r =SM3(K r ), H SKB =SM3(SK B ), calculate SK P =H ’ + H SKB +H r , PK P =[SK P ]G, G is the base point, [SK P ]G represents the SK of the elliptic curve point G P times, (SK P ,PK P ) is the proxy signing key pair.

[0057] S3004: Proxy signer B calculates H ” =SM3(S A ), B uses the private key SK controlled by itself A (The private key is usually stored in a storage medium controlled by the signer A. Whether it is stored in USBKey or by key splitting, the private key is protected by the cryptographic module. The use of the private key usually requires entering a PIN code to protect the private key.) The electronic signature is calculated using the SM2 algorithm, that is, S B =SM2Sign(H ” ,SK B) ; Calculate and assemble the certificate application request CSR for the proxy signature certificate P , encapsulated according to the PKCS#10 standard, with the proxy signer B representing the signer A's identification value B@A as the certificate subject, and sending the certificate to the certificate authority (CA) using the certificate authority's public key PK CA Encrypted tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) to apply for a digital certificate. Here, the identity value B@A of the proxy signer B representing the signer A is used as the certificate subject, which is equivalent to applying for a digital certificate with the authorization of the signer A using the proxy signer B as the subject; the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) can clearly express that under the authorization of signer A, the proxy signer B clearly confirms to apply for a digital certificate from the CA. In the specific implementation summary, for the authorization scope M w , the proxy signatory B can save it in a secure storage medium and use it as a prompt for confirmation when signing specifically.

[0058] The CA verifies the authorization element and issues the proxy signature digital certificate, which includes the following steps:

[0059] S4001: The certificate authority (CA) receives the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) and use the private key SK CA After decryption, the SM3 hash algorithm is used to calculate H 1 * =SM3(PK A ), H 2 * =SM3(PK B ), H 3 * =SM3(M w ), and H * =SM3(H 1 * ||H 2 * ||H 3 * ).

[0060] S4002: The certification authority (CA) verifies the SM2 electronic signature of signer A, i.e. SM2Verify (S A ,PK A ,H * ), if the verification is passed, proceed to S4003, if the verification is not passed, end directly.

[0061] S4003: The certification authority (CA) verifies the SM2 electronic signature of the proxy signatory A, that is, calculates H B =SM3(S A ), and verify SM2Verify(S B ,PK B , H B ), if the verification is passed, proceed to S4004, if the verification is not passed, end directly.

[0062] S4004: Certificate Authority (CA) verifies CSR P , that is, parse out the proxy signature public key PK P , according to CSR P The algorithm for calculating CSR P .Hash value of certificationRequestInfo c , and perform signature verification SignVerify(CSR P .signature,PK P , H c ), if the verification is passed, it will go to S4005, if the verification is not passed, it will end directly. P .certificationRequestInfo represents the certificate application request data, CSR P .signature indicates the signature value of the proxy signature private key for the certificate application request.

[0063] S4005: The certificate authority (CA) issues a digital certificate Cert with the identification value B@A of the proxy signer B on behalf of the signer A as the certificate subject. P , and through PK P After encryption, the proxy signer B receives the certificate information and decrypts it and stores it in the self-controlled storage medium. Here, the identification value B@A of the proxy signer B representing the signer A is used as the certificate subject, which can clearly indicate that the certificate is used by the proxy signer B under the authorization of the signer A. The certificate certification authority (CA) stores the digital certificate Cert P Sequence Number and Tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B) for subsequent verification of the digital signature.

[0064] The above-mentioned embodiments only express the specific implementation of the present invention, and the description thereof is relatively specific and detailed, but it cannot be understood as limiting the scope of the present invention. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present invention, which all belong to the protection scope of the present invention.

Claims

1. A proxy signature and verification method based on digital certificates, characterized in that: The following steps are involved: S10, the signer A and the proxy signer B respectively use the user ID A 、ID B Apply for a digital certificate from a certification authority A , Cert B , and their corresponding key pairs are (SK A ,PK A ), (SK B ,PK B ); S20. Signer A issues an authorization tuple to proxy signer B: Signer A calculates the representative authorization scope M w The authorization tuple (PK A ,PK B ,M w ,S A ), and uses the public key PK of the proxy signer B B After encryption, it is sent to the proxy signer B, where S A It is the signature information of signer A; S30, the proxy signer B verifies the authorization tuple and generates an authorization certificate application tuple: the proxy signer B receives the authorization tuple (PK A ,PK B ,M w ,S A ) ciphertext, and decrypt and verify it according to the authorization tuple (PK A ,PK B ,M w ,S A )Generate a proxy signing key pair (SK P ,PK P ); Proxy signer B calculates the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ), sent to the certification authority to apply for a digital certificate, where CSR P It is a request for a proxy signature digital certificate. B It is the confirmation signature of the proxy signatory B on the authorized signature of signatory A; S40, the certificate authority verifies the authorization element and issues a proxy signature digital certificate: the certificate authority verifies the authorization element and issues a proxy signature digital certificate based on the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) to verify, and the verification is done by issuing a digital certificate Cert P ; The S40 specifically includes the following steps: S4001, the certificate authority receives the tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ) and use the private key SK CA After decryption, the SM3 hash algorithm is used to calculate H1 * =SM3(PK A ), H2 * =SM3(PK B )、H3 * =SM3(M w ), and H * =SM3(H1 * ||H2 * ||H3 * ); S4002, the certification authority verifies the SM2 electronic signature of the signatory A, that is, SM2Verify (S A ,PK A , H * ), if the verification is passed, proceed to S4003, if the verification is not passed, end directly; S4003, the certification authority verifies the SM2 electronic signature of the agent signatory A, that is, calculates H B =SM3(S A ), and verify SM2Verify(S B ,PK B , H B ), if the verification is passed, proceed to S4004, if the verification is not passed, end directly; S4004, Certification Authority Verifies CSR P , that is, parse out the proxy signature public key PK P , according to CSR P The algorithm for calculating CSR P .Hash value of certificationRequestInfo c , and perform signature verification SignVerify(CSR P .signature,PK P , H c ), if the verification is passed, it will go to S4005, if the verification is not passed, it will end directly. P .certificationRequestInfo represents the certificate application request data, CSR P .signature indicates the signature value of the proxy signature private key for the certificate application request; S4005, the certificate authority issues a digital certificate Cert with the proxy signer B representing the signer A's identification value B@A as the certificate subject. P , and through PK P After encryption, it is returned to the proxy signer B; S50, the proxy signer B uses the proxy signature digital certificate Cert P The corresponding private key SK P For M∈{M w } to electronically sign the data message and obtain the electronic signature S P , where M represents data message; S60. The party relying on the electronic signature shall P Perform electronic signature verification.

2. The digital certificate-based proxy signature and verification method according to claim 1, characterized in that: The S20 specifically includes the following steps: S2001, signer A uses the user ID of proxy signer B B Query the digital certificate Cert of the agent signatory B from the electronic certification service agency B , and based on the digital certificate Cert B Parse the public key PK of the proxy signer B B ; S2002, signer A obtains the signer's digital certificate Cert A And parse the public key PK A ; S2003, Signer A determines the authorization scope M w , and then use the SM3 hash algorithm to calculate H1=SM3(PK A )、H2=SM3(PK B )、H3=SM3(M w ), and H=SM3(H1||H2||H3); S2004, signer A uses private key SK A Calculate A's electronic signature: S A =SM2Sign(H,SK A ), the signer A sends the public key PK to the proxy signer B B Encrypted authorization tuple (PK A ,PK B ,M w ,S A ).

3. The digital certificate-based proxy signature and verification method according to claim 2, characterized in that: The S30 specifically includes the following steps: S3001, proxy signer B receives tuple (PK A ,PK B ,M w ,S A ) and then use the private key SK B Decryption, using SM3 hash algorithm to calculate H1 ’ =SM3(PK A ), H2 ’ =SM3(PK B )、H3 ’ =SM3(M w ), and H ’ =SM3(H1 ’ ||H2 ’ ||H3 ’ ); S3002, agent signer B performs electronic signature verification, i.e. SM2Verify (S A ,PK A ,H ’ ), if the verification is passed, the process goes to S3003; if the verification is not passed, the process ends directly, where SM2Verify indicates the signature verification of the SM2 algorithm; S3003, generate a random number K r , and calculate H r =SM3(K r ), H SKB =SM3(SK B ), calculate SK P =H ’ + H SKB +H r , PK P =[SK P ]G, G is the base point, [SK P ]G represents the SK of the elliptic curve point G P times, (SK P ,PK P ) is the proxy signature key pair; S3004, proxy signer B calculates H ” =SM3(S A ), using the private key SK A The SM2 algorithm is used to calculate the electronic signature, that is, S B =SM2Sign(H ” ,SK B ) ; Calculate and assemble the certificate application request CSR for the proxy signature certificate P , using the identification value B@A of the proxy signer B on behalf of the signer A as the certificate subject, and sending the certificate to the certificate authority using the public key PK of the certificate authority CA Encrypted tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B )Apply for a digital certificate.

4. The digital certificate-based proxy signature and verification method according to claim 1, characterized in that: The S60 is specifically as follows: Parse the digital certificate Cert P The certificate authority verifies the validity of the certificate based on the digital certificate Cert stored by the certificate authority. P Sequence Number and Tuple (CSR P ,PK A ,PK B ,M w ,S A ,S B ), verify the proxy authorization relationship between signer A and proxy signer B, and return the proxy authorization scope M w ; Finally, verify whether the data message M to be verified has changed; Finally, the verification result of the proxy signature is returned. The returned verification result shows that the signer A allows the proxy signer B to sign within the authorization scope M. w The electronic signature is performed within, and whether the current data message M to be verified has changed.

Citation Information

Patent Citations

  • Certificate-free generalized proxy signcryption method

    CN104821880A

  • Method for controlling reliable use of server-side secret key by user

    CN117118759A