A method and system for generating integrated digital certificates and using certificates and keys

By integrating the digital certificate generation method, the differential information of different digital certificates is integrated into one digital certificate, which solves the problem that users need to hold multiple digital certificates, realizes automatic switching and unified management, and reduces maintenance costs and user inconvenience.

CN116155511BActive Publication Date: 2025-02-11BEIJING TIANWEI CHENGXIN ELECTRONIC COMMERCE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310159282.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-14
Publication Date
2025-02-11
Estimated Expiration
2043-02-14

AI Technical Summary

Technical Problem

In the prior art, users need to hold and maintain multiple different digital certificates, resulting in inconvenience to users and increasing maintenance costs, especially when switching to digital certificates of new public key algorithms that resist quantum attacks, lack of effective transitions. plan.

Method used

A method for generating an integrated digital certificate is proposed. By generating an integrated digital certificate A and adding the different information set DSetB of other different digital certificates B to the unsigned digital certificate A, it forms an encoded integrated digital certificate to be signed. A. After signing, generate the user's integrated digital certificate A. The user side saves the key pair of integrated digital certificate A in the password device or password component, and the application can automatically reconstruct the digital certificate Bi and its keys from the integrated digital certificate A.

Benefits of technology

It realizes that users only need to apply for and maintain one digital certificate to use in various applications, and automatically switch to different public key algorithms or anonymous digital certificates, avoiding the inconvenience of user manual intervention and multi-certificate maintenance, and reducing maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116155511B_ABST
    Figure CN116155511B_ABST
Patent Text Reader

Abstract

Integrated digital certificate generation and certificate and key usage method and system: The digital certificate issuance system generates an unsigned digital certificate A with other information filled in for the user's certificate request, and generates a digital certificate B signed by the issuer i , digital certificate B i The difference information set DSetB relative to the unsigned digital certificate A i , added to the unsigned digital certificate A, i = 1, ..., m, m ≥ 1, to form the integrated digital certificate A to be signed, and then sign it to obtain the integrated digital certificate A; on the user side, the key pair or private key of the integrated digital certificate A and the digital certificate B i The key pair or private key is stored in the user's password device or password component as an integrated key object; when needed, the application or digital certificate application programming interface reconstructs and restores a specific digital certificate B that needs to be used from the integrated digital certificate A. i Its key includes public key and private key, 1≤i≤m, and then use digital certificate B i and its key.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of cryptographic technology, and in particular to a method and system for generating an integrated digital certificate and using the certificate and key. Background Art

[0002] X509 digital certificate is a widely used electronic identity certificate, which can be used to implement security functions such as identity authentication, digital signature and data encryption in various applications. Each digital certificate corresponds to and only corresponds to a pair of user keys, public key and private key; the digital certificate contains the user public key, so it is also called a public key digital certificate; the user private key corresponding to the digital certificate (the user public key) usually exists in the user password device or password component in the form of a key pair key object (such as the key container of Windows CSP) or a private key key object (such as the private key object of PKCS#11), and is securely protected (the key object is a data structure for storing keys); the digital certificate is signed by the private key of the issuer (Issuer) and can be verified by the issuer's public key (the issuer's public key is issued by the issuer's digital certificate, i.e., the issuer CA certificate). The password device or password component that stores the key object of the key pair of the digital certificate (referred to as the key pair object) or the key object of the private key (referred to as the private key object) can be a password component or module combined with software and hardware, or a software password component or module.

[0003] At present, there may be such a problem in the actual application of digital certificates. Due to various reasons, different applications (programs, systems) support different cryptographic algorithms. For example, some applications only support the RSA algorithm and do not support the SM2 elliptic curve cryptographic algorithm, while the SM2 algorithm is currently the main public key algorithm in China. For such a situation, the current common practice is to issue different digital certificates to users for applications that use different cryptographic algorithms, and users use different digital certificates and certificate keys (public keys and private keys) in different applications. However, in actual applications, algorithms such as the RSA algorithm are not mainstream algorithms, and digital certificates and user keys (public keys and private keys) of the RSA algorithm are not often used. Therefore, this method not only brings inconvenience to users but also causes waste (each digital certificate has its maintenance cost).

[0004] In addition, the holder of a digital certificate (user) or a digital certificate application may have such a demand or requirement: in some applications, the user uses a real-name digital certificate, and in some applications, the user uses an anonymous (pseudonym) digital certificate. In order to meet such a demand or requirement, the current practice is to issue two digital certificates to the user, in which the user name (common name in the subject name) on one digital certificate is the real name (real name), and the user name on the other digital certificate is a pseudonym. Similarly, this method not only brings inconvenience to the user but also causes waste.

[0005] In addition, the various public key cryptographic algorithms (abbreviated as public key algorithm, Public KeyAlgorithm; the public key algorithm does not only refer to the algorithm of the public key itself, but refers to the cryptographic algorithm corresponding to the public key pair and its cryptographic operation, called the public key cryptographic algorithm, abbreviated as public key algorithm) currently in widespread use, such as the RSA cryptographic algorithm and the elliptic curve cryptographic algorithms such as SM2 and ECDSA, are not resistant to quantum computing attacks, and the cryptographic algorithms used by the user keys of current digital certificates, namely the public key algorithms, are all such non-quantum attack-resistant algorithms. Currently, a large number of digital certificate application systems and applications are developed and deployed based on these cryptographic algorithms that are not resistant to quantum attacks. They cannot be replaced overnight, and many digital certificate users cannot replace them either. Being able to replace their digital certificates overnight not only has time issues, but also replacement cost issues. Therefore, there is a transition problem for the cryptographic algorithm (public key algorithm) of the key of the digital certificate, including the cryptographic algorithm (public key algorithm) of the user key of the digital certificate and the key of the digital certificate issuer. There is currently no good solution for this. The transition plan currently proposed is to issue digital certificates using the existing public key algorithm to users at the same time, as well as digital certificates using the public key algorithm that can resist quantum attacks in the future. At the current stage, digital certificates using the existing public key algorithm are used, and then at some point in the future, they are switched to digital certificates using the public key algorithm that can resist quantum attacks. Similarly, this method not only brings inconvenience to users but also causes waste.

[0006] In short, the existing solutions for the above situations require users to hold and maintain multiple different digital certificates, which brings great inconvenience to users and increases the maintenance costs of all parties. From the user's perspective, it is of course best to only apply for and maintain one X509 digital certificate, and use one X509 digital certificate in various applications and various application scenarios. It is also expected that the transition from digital certificates using existing public key algorithms to digital certificates using new public key algorithms that are resistant to quantum attacks can be automatically completed without the user's knowledge and manual participation. This seems to be contrary to current common sense and practices, and there is currently no technology that can do this. Summary of the invention

[0007] The purpose of the present invention is to solve the problem that users currently hold multiple digital certificates and to propose a solution in which users only need to hold and maintain one digital certificate, and the digital certificate is still an X509 digital certificate.

[0008] In view of the purpose of the present invention, the technical solution proposed by the present invention includes an integrated digital certificate generation method, a method for using the digital certificate and certificate key generated by this method, and a corresponding digital certificate generation and use system.

[0009] The integrated digital certificate generation method of the present invention is specifically as follows.

[0010] When the digital certificate issuing system (CA system) issues a digital certificate for a user (or entity), it first generates a digital certificate A that is not signed by the issuer but has other information filled in (it can be an uncoded certificate template or an encoded quasi-digital certificate to be signed, the encoding is ASN.1BER, CER, DER encoding and encoding that meets the certificate format requirements. Currently, V3 digital certificates use DER encoding), generates digital certificates B1 signed by the issuer, ..., digital certificates B m , m≥1; unsigned digital certificate A and signed digital certificate B1,…, digital certificate B m The user public keys (or corresponding key pairs) do not need to be different (the issuer name, subject name, serial number and other information of different unsigned and signed digital certificates do not need to be different, and can be the same or different);

[0011] Digital certificate B1, ..., digital certificate B m The different information (i.e., difference information) relative to the unsigned digital certificate A constitutes difference information sets DSetB1, ..., DSetB m ; Unsigned digital certificate A has, digital certificate B1, ..., digital certificate B m There are also messages with different contents, unsigned digital certificate A has digital certificates B1, ..., digital certificate B m No information, and the unsigned digital certificate A does not have digital certificates B1, ..., digital certificates B m Some information, in DSetB1, ..., DSetB m are marked as different information (mark which different information is which type of different situation, if necessary, digital certificate B i What is the difference in information content); each signed digital certificate B1,..., digital certificate B m The certificate signature (i.e., the signature data obtained by using the signature private key of the issuer, i.e., the signature value) belongs to the difference information with the unsigned digital certificate A;

[0012] The digital certificate issuance system will DSetB1, ..., DSetB m The unsigned digital certificate A is added to the unsigned digital certificate A, and then the encoded integrated digital certificate A to be signed is generated. Then, the signature private key of the issuer in the unsigned digital certificate A is used to digitally sign the integrated digital certificate A to be signed, and the user's integrated digital certificate A (that is, the integrated digital certificate A except DSetB1, ..., DSetB mExcept for the certificate signature of the integrated digital certificate A, the other certificate information is the same as that of the unsigned digital certificate A. The user public key in the integrated digital certificate A is the user public key in the unsigned digital certificate A, and the user private key corresponding to the integrated digital certificate A is the user private key corresponding to the unsigned digital certificate A. In other words, the integrated digital certificate A has DSetB1, ..., DSetB m Information outside the digital certificate B1, ..., digital certificate B m The difference information is DSetB1, ..., DSetB m );

[0013] On the user side, the key pair of digital certificate A and digital certificates B1, ..., digital certificate B m The key pair is stored as an integrated key object (such as a Windows CSP key container) in the user password device or password component, or the private key of the integrated digital certificate A and digital certificates B1, ..., digital certificate B m The private key is stored in the user's cryptographic device or cryptographic component as an integrated key object (such as a PKCS#11 private key object);

[0014] The integrated key object is a key object that is no different from a key object storing a single key pair or private key from the perspective of the key usage program, but the key object actually stores the key pair or private key of the integrated digital certificate A, as well as digital certificates B1, ..., digital certificates B m The key pair or private key of the integrated key object; except for the key management interface, other programs use the keys in the integrated key object, including the public key and / or private key, using the user key corresponding to the integrated digital certificate A;

[0015] The above digital certificates include digital certificates for individual users, organizations (users) (such as digital seals and digital certificates for electronic signatures of organizations, and CA digital certificates of digital certificate issuers) and digital certificates for devices (such as SSL digital certificates and VPN digital certificates);

[0016] The digital certificates generated above after being signed by the issuer's private key are all X509 digital certificates.

[0017] DSetB i Given unsigned digital certificate A and digital certificate B i The marking of the difference information can be given directly, for example, by giving the difference information item, such as the name, identifier or number of the information item, the corresponding difference situation type indication, and, if necessary, the digital certificate B iThe corresponding difference information content is data, or is given in an implicit or default manner. For example, when the difference information is known and fixed, part or all of the difference information does not need to appear in DSetB. i For example, if the issuer name and signature algorithm are different, the difference information is known in advance and is fixed, and may not appear in DSetB. i middle.

[0018] The integrated digital certificate A is based on the originally applied digital certificate A and adds the difference information sets DSetB1, ..., DSetB m From the perspective of users and applications, the resulting digital certificate is no different from a regular X509 digital certificate.

[0019] Let me explain some technical concepts. Digital signature may have multiple meanings. For example, it can be a technical concept for anti-counterfeiting and anti-tampering, it can be an operation and calculation process of signing data with a private key, it can be the result (i.e., signature value) obtained after signing data with a private key. The specific meaning of digital signature should be understood according to the context. In addition, the issuer field in the digital certificate stores the name of the issuer, so the issuer name refers to the issuer name in the issuer field. The subject field in the digital certificate stores the name of the certificate holder, so the subject name refers to the subject name in the subject field.

[0020] DSetB1, ..., DSetB m Add to the unsigned digital certificate A, that is, DSetB1, ..., DSetB m The methods included in the integrated digital certificate A include:

[0021] DSetB1, ..., DSetB m Placed in the custom extension fields (extensionfields) in the digital certificate, or DSetB1, ..., DSetB m After being encoded, it is placed in the subject alias of the digital certificate (subject alternative name, subjectAltName, subject alias is a predefined extension field, and the type of its field content can be further expanded and defined);

[0022] For DSetB1, ..., DSetB m The encoding consists of converting DSetB1, ..., DSetB mThe data in the encoding (for example, base64 encoding) is a data type that meets the requirements of the subject alias (such as IA5String, PrintableString character type), and the data format that meets the requirements of the subject alias (for example, data that meets the requirements of the email address and URI format);

[0023] If DSetB1, ..., DSetB m After being encoded, it is placed in the subject alias of the digital certificate, then DSetB1, ..., DSetB m The data is encoded as pseudo-data in (one or more) subject aliases, where the pseudo-data refers to data having a specified data format (such as an email address, a URI format) but does not have a corresponding real meaning (such as a fake email address, a fake URI).

[0024] Add to the unsigned digital certificate A DSetB1, ..., DSetB m The data is uncompressed data or compressed data. If it is compressed data, the data is compressed before adding.

[0025] If the issued integrated digital certificate A and digital certificate B1, ..., digital certificate B m The user key pair is generated by the user end. When the user applies for a digital certificate, the digital certificate application client program of the user end (this client program is usually provided by the CA system manufacturer) calls the cryptographic device or cryptographic component to generate the digital certificate A, digital certificate B1, ..., digital certificate B1 requested to be issued. m The key pair is used to generate a Certificate Signing Request (CSR). The Certificate Signing Request is signed by the user's private key corresponding to the user's public key in the digital certificate A (that is, the user's public key in the integrated digital certificate A). The signed data in the Certificate Signing Request includes the user's public key of the unsigned digital certificate A, the digital certificate B i The user's public key and digital certificate B i The user's private key corresponding to the user's public key is the digital certificate B i The digital signature of the user’s public key, i=1,…,m.

[0026] The usage of the various digital certificates and certificate keys mentioned above include:

[0027] The application or digital certificate API directly uses the integrated digital certificate A and the corresponding key, or the application or digital certificate API reconstructs and recovers the (specific) digital certificate B from the integrated digital certificate A when needed. i and the corresponding key, 1≤i≤m, and then use the digital certificate Bi and the corresponding key, or the application or digital certificate API only uses the (specific) digital certificate B that needs to be used that is reconstructed and restored from the integrated digital certificate A i and the corresponding key, i = 1, ..., or m, without using the integrated digital certificate A, or the application or digital certificate application programming interface uses (a specific) digital certificate B reconstructed and restored from the integrated digital certificate A when needed i and the corresponding key, i = 1, ..., or m, replace the integrated digital certificate A, and then use the digital certificate B i , after which the integrated digital certificate A will no longer be used;

[0028] Integrate digital certificate A and digital certificate B i The corresponding keys include the user's public key on the digital certificate and the user's private key corresponding to the user's public key;

[0029] The application or digital certificate API selects and chooses a (specific) digital certificate B from the integrated digital certificate A. i , 1≤i≤m, the method includes: according to the application type or application needs or program code encoding or program setting / configuration, in the digital certificate B1, ..., digital certificate B m Select or choose a (specific) digital certificate to use.

[0030] When an application or digital certificate API needs to use digital certificate B i 、Digital Certificate B i The public key on the cryptographic operation, where 1≤i≤m, and there is no separate digital certificate B i When available, the application or digital certificate application programming interface or the program or system called by them uses the integrated digital certificate A to remove DSetB1, ..., DSetB m The information other than the unsigned digital certificate A (i.e., the information on the integrated digital certificate A corresponding to the unsigned digital certificate A plus the certificate signature on the integrated digital certificate A) and the difference information set DSetB i , reconstruct and restore the digital certificate B (signed by the issuer) i , then the application or digital certificate API uses digital certificate B i 、Digital Certificate B i Perform cryptographic operations with the public key on the

[0031] The program or system called by the application program or digital certificate application programming interface includes a digital certificate management interface or a digital certificate reconstruction system; the digital certificate reconstruction system provides a method for reconstructing and restoring a digital certificate B from an integrated digital certificate A. i The system served, 1≤i≤m.

[0032] The application can reconstruct and restore digital certificate B from integrated digital certificate A by itself i However, the application usually completes this operation through the digital certificate application programming interface or the digital certificate management interface or through the digital certificate reconstruction system; the digital certificate application programming interface can complete the reconstruction from the integrated digital certificate A and restore the digital certificate B by itself. i This operation can also be completed through the digital certificate management interface or through the digital certificate reconstruction system; usually, the application or digital certificate application programming interface calls the cryptographic device or cryptographic component through the cryptographic interface to use the public key for cryptographic operations (the cryptographic interface here can be the cryptographic interface provided by the cryptographic device or cryptographic component, such as PKCS#11, Windows CSP's CryptoSPI, or it can be a cryptographic application programming interface on top of the cryptographic interface provided by the cryptographic device or cryptographic component, such as calling CSP's CryptoSPI through Windows CryptoAPI).

[0033] The applications here include user-side applications and server-side applications (systems); user-side applications include applications that run independently on the user side (without server-side programs, such as desktop programs, independent apps) or client programs of the application service system.

[0034] If the difference information set DSetB in the integrated digital certificate A i If the data is compressed, use DSetB i Reconstruct and restore digital certificate B i Before that, decompress the compressed DSetB obtained from the integrated digital certificate A. i Data, restore DSetB i , i=1,…m.

[0035] When an application or digital certificate API needs to use digital certificate B i The corresponding user private key performs cryptographic operations, where 1≤i≤m, and there is no separate digital certificate B i When the corresponding user private key (i.e., a separate key pair or a key object of a private key) is available, the application or the digital certificate application programming interface uses the digital certificate B in the integrated key object for storing the key pair or private key corresponding to the integrated digital certificate A in the cryptographic device or cryptographic component. i The corresponding key pair or private key (the integrated key object contains the integrated digital certificate A and digital certificate B i The key pair or private key of the digital certificate B is constructed in the cryptographic device or cryptographic component. iThe key object of the key pair (such as the key container in the CSP) or the key object for the digital certificate B i The private key object of the digital certificate B (such as the private key object in PKCS#11), after which the application or the digital certificate application programming interface calls the cryptographic device or cryptographic component to use the digital certificate B i The cryptographic operation is performed on the user's private key in the key object of the corresponding key pair or the key object of the corresponding private key.

[0036] The application or digital certificate application programming interface completes the generation of key pairs of (the above various) digital certificates and the construction of key objects of (various) key pairs or private keys by calling the key management interface of the cryptographic device or cryptographic component; the application or digital certificate application programming interface performs cryptographic operations using the private key in the (integrated or ordinary) key object that stores the key pairs or private keys of (the above various) digital certificates in the cryptographic device or cryptographic component by calling the cryptographic interface (for example, the cryptographic interface of the cryptographic device or key component, or the cryptographic application programming interface above the cryptographic interface of the cryptographic device or key component).

[0037] The application can call the key management interface by itself to complete the generation of key pairs of (the above various) digital certificates, the construction of key pairs or key objects of private keys, and call the cryptographic interface by itself to use the private keys in the (integrated or ordinary) key objects that store key pairs of (the above various) digital certificates or private keys in the cryptographic devices or cryptographic components to perform cryptographic operations. It can also call the digital certificate application programming interface, and the digital certificate application programming interface will call the key management interface and the cryptographic interface to complete the corresponding operation processing.

[0038] Digital Certificate B i During the reconstruction, digital certificate B i The construction of the key pair or private key object is not necessary. For example, for applications or digital certificate application programming interfaces that are not digital certificate holders, only digital certificate B i Reconstruction, digital certificate B cannot be performed i The key pair or private key object (that is, key pair object or private key object) of the digital certificate holder is constructed (because non-digital certificate holders do not have the private key corresponding to the digital certificate), and for the application program or digital certificate application programming interface of the digital certificate holder, it is usually necessary to perform digital certificate B at the same time. i The reconstruction of a key pair or a private key and the construction of a key object of a key pair or a private key (ie, a key pair object or a private key object).

[0039] Digital Certificate B i 、Digital Certificate B iAfter use, the user public key and the corresponding user private key (i.e., key pair or private key object) can continue to exist and be saved for subsequent use (i.e., permanent) or be discarded (i.e., temporary). Digital Certificate B i Permanent and temporary digital certificates B i The corresponding user private key (i.e., key pair or private key object) is independent of its permanence and temporariness.

[0040] If the user's digital certificate (including integrated digital certificate A and digital certificate B1, ..., digital certificate B m )'s private key or private key secret is divided and stored in the user's cryptographic device or cryptographic component (integrated digital certificate A and digital certificate B1, ..., digital certificate B m The key pair or private key of the key object and the cryptographic device on the server (integrated digital certificate A and digital certificate B1, ..., digital certificate B m In the key object of the key pair or private key (if the private key or private key secret is divided by secret sharing, the corresponding private key share or secret share is stored in the key object of the user end and the server end respectively), when generating the certificate issuance request, the user's cryptographic device or cryptographic component and the server's cryptographic device (equipment) participate in the generation of the digital certificate key pair and the certificate issuance request. When constructing the digital certificate B i When the key pair or private key object is 1≤i≤m, the user and the server respectively target the (integrated digital certificate A and digital certificate B) in the user's cryptographic device or cryptographic component. i The key pair or private key of the key object and the cryptographic device on the server (integrated digital certificate A and digital certificate B i The (same or similar) key object construction operation is performed on the private key share or secret share in the key object of a key pair or private key), wherein the operation processing on the user side is completed by the application or digital certificate application programming interface (by calling the key management interface of the cryptographic device or cryptographic component), and the operation processing on the server side is completed by the key management program on the server side (usually by calling the key management interface of the cryptographic device); the private key secret refers to confidential data which is not a private key itself but can be used to recover or crack the private key.

[0041] If the user's digital certificate (including integrated digital certificate A and digital certificate B1, ..., digital certificate B m )'s private key or private key secret is stored in the server's cryptographic device (equipment) in a key escrow manner (integrated digital certificate A and digital certificate B1, ..., digital certificate B mIn the key object of the key pair or private key, when generating the certificate issuance request, the cryptographic device of the server participates in the generation of the digital certificate key pair and the certificate issuance request, and when constructing the digital certificate B i When the key pair or private key object is 1≤i≤m, the application or digital certificate application programming interface calls the key management program on the server side, targeting the (integrated digital certificate A and digital certificate B) in the cryptographic device on the server side. i The key pair or private key in the key object is used to perform operation processing on the key object construction (the key management program on the server side usually completes the corresponding operation processing by calling the key management interface of the cryptographic device).

[0042] Based on the above method, the following integrated digital certificate generation and use system can be constructed:

[0043] The system includes a digital certificate issuing system (CA system), a cryptographic device or cryptographic component, and a digital certificate application programming interface, wherein the digital certificate issuing system generates the above-mentioned integrated digital certificate A for the user according to the above-mentioned integrated digital certificate A generation method, and the cryptographic device or cryptographic component stores the integrated digital certificate A and digital certificates B1, ..., digital certificates B in the above-mentioned manner. m The corresponding user key pair or user private key, as well as the function of implementing cryptographic operations using the public key and / or the user private key, the digital certificate application programming interface reconstructs and restores the digital certificate B from the user integrated digital certificate A in the above manner. i , and (by calling the key management interface) constructing a digital certificate B in the user's cryptographic device or cryptographic component i The corresponding user key pair or private key key object, 1≤i≤m, uses the private key of the digital certificate in the key object (by calling the cryptographic interface); the cryptographic device or cryptographic component has a key management interface for managing the keys within the cryptographic device or cryptographic component, and a cryptographic interface for using the cryptographic device or cryptographic component to perform cryptographic operations.

[0044] From the above content of the invention and in combination with the specific implementation methods, it can be seen that based on the technical solution of the present invention, the user only needs to apply for and maintain a digital certificate, namely, an integrated digital certificate A. The integrated digital certificate A itself can be used as an ordinary X509 digital certificate. When needed, the application or the digital certificate application programming interface can automatically reconstruct and restore a specific digital certificate B from the integrated digital certificate A. i , automatically constructing a digital certificate B in a cryptographic device or component i The corresponding user key pair or user private key key object uses digital certificate B i and keys (public key, private key), 1≤i≤m, no manual intervention by the user is required; digital certificate B i, 1≤i≤m, can be a digital certificate using a different public key algorithm, or an anonymous (pseudonymous) digital certificate, or a digital certificate of a new public key algorithm for transitional resistance to quantum attacks. Therefore, the present invention utilizes an integrated digital certificate A to well solve the various problems mentioned in the background technology. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 Schematic diagram of the present invention

[0046] Figure 2 The relationship between the invented applications and various interfaces DETAILED DESCRIPTION

[0047] The following is an explanation of the specific implementation of the present invention. The following content is only an example of possible implementation of the present invention, not all, and is not intended to limit the scope of protection of the present invention.

[0048] The various digital certificates of the present invention, whether integrated digital certificate A, unsigned digital certificate A, or signed digital certificate B1, ..., digital certificate B m , it is still implemented according to X509, that is, it still complies with the X509 standard specifications and data formats.

[0049] In a specific implementation, the digital certificate A, the signed digital certificate B1, ..., the digital certificate B m , their issuers, subject names, certificate serial numbers, user key pairs corresponding to digital certificates, and the public key algorithms of user key pairs can be the same or different, depending on actual needs. If the issuer names of different digital certificates are the same, the certificate serial numbers of different digital certificates need to be different; if the issuer names of different digital certificates are different, the certificate serial numbers of different digital certificates can be different or the same; the public key algorithm of the signature private key used by the issuer when issuing a digital certificate can be the same as or different from the public key algorithm of the user key pair corresponding to the digital certificate. In specific implementations, the unsigned digital certificate A should be as identical as possible to the digital certificate B1,…, digital certificate B m The information of the difference information sets DSetB1, ..., DSetB m The amount of data in the file should be as small as possible.

[0050] In a specific implementation, the certificate issuance request (CSR) when applying for a digital certificate is a request for digital certificate A, for digital certificates B1, ..., digital certificates B m The certificate issuance request information is used as the user information included in the certificate issuance request (CSR) of digital certificate A.

[0051] In specific implementation, the unsigned digital certificate A can be a digital certificate template that has been filled with certificate information, but has not yet been encoded (such as ASN.1BER, CER, DER encoding, and X509 format, V3 digital certificate uses DER encoding) as a quasi-digital certificate that is only waiting for signature, that is, it is not a quasi-digital certificate that is only waiting for digital signature after encoding. Of course, the unsigned digital certificate A can also be implemented as a quasi-digital certificate that is only waiting for digital signature after encoding, but in this case, DSetB1, ..., DSetB2 are added to the unsigned digital certificate A. m It will be troublesome (re-coding required).

[0052] For difference information sets DSetB1, ..., DSetB m , which can be implemented as follows:

[0053] For unsigned digital certificate A, digital certificate B i There are also different information, i = 1, ..., m, in DSetB i The corresponding information identifiers and different situation types (A, B i Both have but are different), and digital certificate B i The corresponding information content (data) in

[0054] For unsigned digital certificate A, digital certificate B i There are also some same information, i=1,…,m, not in DSetB i Middle mark;

[0055] For unsigned digital certificate A, there is, while digital certificate B i No information, i = 1, ..., m, in DSetB i The corresponding information identifiers and different situation types are given in (A has B i No);

[0056] For unsigned digital certificate A, there is no, but digital certificate B i Some information, i = 1, ..., m, in DSetB i The corresponding information identifiers and different situation types are given in (A does not have B i Yes), and digital certificate B i The corresponding information content (data) in

[0057] For digital certificate B i The certificate signature of i = 1, ..., m, as a special unsigned digital certificate A has (although not, but the integrated digital certificate A has), digital certificate B i There is also different information in DSetB iThe corresponding information identifier is given in (B i Certificate signature), and give digital certificate B i The content of the certificate signature (signature value).

[0058] DSetB i The information identification (Identification) in the digital certificate is used to indicate what the specific information item in the digital certificate is (for example, the issuer name, the subject name, the key algorithm identifier, etc.) and its location (for example, a field in the subject name). The information identification can be the name of the information item, an identifier or a (customized) label, etc. The specific implementation is entirely up to the specific implementer. For information items with multi-layer and multi-value structures, the indication method for structure and multi-value data can be used to indicate the information item and specific location of the difference information, such as AB1, C.2, etc., where A, B, and C are information identifications, and 1 and 2 are locations. When the difference information items are predetermined and fixed, that is, what the difference information is and what the difference situation type is, is known and fixed in advance, the different information data are directly listed in order in DSetB. i For example, if the difference information is fixed to only include the subject name, subject public key information (subjectPublicKeyInfo), and certificate signature, and the difference situation type is fixed to be different, then the implicit marking point method can be used to list the three different information data in order in DSetB i That's it.

[0059] In some special cases, DSetB can be further simplified by default. i The data contained in, for example, digital certificate B i is a digital certificate of a new key algorithm for transitional quantum attack resistance, i = 1, ..., or m, digital certificate B i The only difference between the digital certificate A and the unsigned one is the issuer name, signature algorithm, subject public key information, and certificate signature (signature value). The issuer name and signature algorithm are known in advance and are fixed. Therefore, digital certificate B can be i The certificate information name, different situation type (different data or value), and specific different issuer name and signature algorithm of the integrated digital certificate A are encoded in the code of the application or digital certificate application programming interface or digital certificate management interface or digital certificate reconstruction system. DSetB i It only contains the subject public key information and certificate signature of digital certificate B1.

[0060] DSetB1, ..., DSetB m The internal data format and the format in which it is encoded in the digital certificate are determined by the implementer.

[0061] (Digital certificate issuance system) After receiving the certificate issuance request, the digital certificate issuance process usually includes the following stages: 1) Use the certificate application information and user information to construct a certificate template filled with certificate information; 2) Use the certificate template filled with certificate information to generate an encoded (such as DER encoded) quasi-digital certificate to be signed by the issuer's private key; 3) Call the cryptographic device (cryptographic device) to use the issuer's private key to digitally sign the quasi-digital certificate to be signed to obtain the signature value; 4) Combine the issuer's signature value with the quasi-digital certificate and encode it to form the final signed digital certificate. For digital certificates B1,..., digital certificate B m In the specific implementation, we only need to execute to the 3rd stage and then construct DSetB1, ..., DSetB m .

[0062] If DSetB1, ..., DSetB m If it is stored in a custom extension field of a digital certificate, DSetB i , i=1,…,m, each data in it is used as a data of a custom multi-valued extension field, or the whole is used as a data of a custom multi-valued extension field.

[0063] If DSetB i , i = 1, ..., m, added to the subject alias in the unsigned digital certificate A, then DSetB i Each data in DSetB is added as a field of the subject alias (such as an email address or URI) to the unsigned digital certificate A, or DSetB i The whole is added as a field of the subject alias (such as email address, URI) to the unsigned digital certificate A (that is, DSetB i The whole is treated as a string data, ignoring DSetB i internal structure of the data), or DSetB i The whole is taken as a data, and then segmented into multiple fields of the subject alias (such as email address, URI) and added to the unsigned digital certificate A.

[0064] The subject alias can store multiple aliases (fields) and can be different types of subject aliases. Different types of subject aliases (fields) have corresponding requirements on data types and data formats, such as IA5String, PrintableString data types, email addresses, and URI formats.

[0065] If DSetB1, ..., DSetB m To place it in the subject alias of the integrated digital certificate A, you need to put DSetB1, ..., DSetB mThe data in the encoding (for example, base64 encoding) is a character that meets the requirements of the subject alias (such as IA5String, PrintableString, not all subject aliases are of this data type, depending on the actual situation), and is encoded into a format data that meets the requirements of the subject alias (for example, email address, URI format), that is, DSetB1, ..., DSetB m The data in is encoded as pseudo-data in (one or more) subject aliases. The so-called pseudo-data is data with a specified data format (such as an email address, a URI format) but does not have a corresponding real meaning (such as a fake email address, a fake URI).

[0066] If DSetB1, ..., DSetB added to the unsigned digital certificate A m If the data is compressed data, DSetB1, ..., DSetB m The data is compressed first and then added. The compression can be targeted at DSetB i , i = 1, ..., m, each data in DSetB i As a whole as a data compression (DSetB i The whole is treated as a string data, ignoring DSetB i internal structure of the data).

[0067] For the use of integrated digital certificates A, except DSetB1, ..., DSetB m The information other than the one in the integrated digital certificate A (i.e., the information corresponding to the unsigned digital certificate A on the integrated digital certificate A plus the certificate signature on the integrated digital certificate A) and the difference information set DSetB i , reconstruct and recover a (signed and valid) digital certificate B i , which can be implemented as follows:

[0068] Build an empty certificate template;

[0069] For all the integrated digital certificates A except DSetB1, ..., DSetB m If this information is not in DSetB i If marked in DSetB, this information is added to the corresponding information field of the certificate template; if this information is in DSetB i Digital Certificate A is marked as unsigned, Digital Certificate B i If there is no information, this information will not be added to the certificate template; if this information is in DSetB i Digital Certificate A and Digital Certificate B marked as unsigned i If both have different information, DSetB iDigital certificate B given in i The corresponding information content (data) is added to the corresponding information field of the certificate template; if this information is in DSetB i Digital Certificate A is not marked as unsigned, but Digital Certificate B i If there is a certain information, DSetB i The digital certificate B given in i The corresponding information content (data) is added to the corresponding information field of the certificate template;

[0070] According to digital certificate B i Encode the information in the certificate template using a different encoding method (such as ASN.1BER, CER, DER, and X509 formats; V3 digital certificates use DER encoding) to form a quasi-digital certificate to be signed. i Digital certificate B in i The certificate signature is encoded and added to the quasi-digital certificate, and then the final encoding of the digital certificate data is performed to reconstruct and restore the digital certificate B. i .

[0071] Alternatively, reconstruct and restore the (signed by the issuer) digital certificate B as follows: i :

[0072] Construct a certificate template to integrate digital certificate A except DSetB1, ..., DSetB m Fill the certificate information other than the certificate signature into the certificate template;

[0073] For certificate templates that have, but not in DSetB i The information marked in DSetB is retained (the same information); for the certificate template, but in DSetB i Marked as different information, use DSetB i Replace the information in the certificate template with the corresponding information in (A, B i Both have but are different); for certificate templates, they have but are not in DSetB i The information marked as not present in the certificate template is deleted from the certificate template (A has B i No); for the certificate template is not, but in DSetB i The information marked as yes in DSetB i Add the corresponding information in the certificate template (A does not have B i have);

[0074] Afterwards, according to the digital certificate B iEncode the content in the certificate template using an encoding method (such as ASN.1BER, CER, DER, and X509 format; V3 digital certificates use DER encoding) to obtain the quasi-digital certificate to be signed, and then use DSetB i Digital certificate B in i The certificate signature is encoded and added to the quasi-digital certificate, and then the final encoding of the digital certificate data is performed to reconstruct and restore the digital certificate B. i .

[0075] If the difference information set DSetB in the integrated digital certificate A i If the data is compressed, use DSetB i Reconstruct and restore digital certificate B i Before that, decompress the compressed DSetB obtained from the integrated digital certificate A. i Data, i=1,…m.

[0076] Note that no matter what method is used to reconstruct and restore digital certificate B from integrated digital certificate A, i , reconstructed and restored digital certificate B i Not only the certificate information must be the same as the (originally signed) digital certificate B i The same, and the encoded data must be exactly the same, otherwise for digital certificate B i The signature verification of (certificate signature) will fail.

[0077] In fact, as long as a digital certificate B with certificate information is constructed i Based on the existing digital certificate issuance system (CA system) related program code, DSetB i Digital Certificate B i The digital signature (signature value) can be easily reconstructed and restored to the digital certificate B i As mentioned above, after receiving the certificate issuance request, the digital certificate issuance process includes four stages. If a digital certificate B with certificate information filled in has been constructed, i If the certificate template is not used, it is only necessary to change the call to the cryptographic device (cryptographic device) in stage 3) to use the issuer's private key to digitally sign the digital certificate to obtain the signature value, and then change it to DSetB i Get digital certificate B i The digital signature (signature value) of the DSetB is used, and other processing procedures remain unchanged. i The digital certificate is reconstructed and recovered from the integrated digital certificate A, 1≤i≤m.

[0078] In a specific implementation, how does an application or a digital certificate API determine a specific digital certificate B to be used? i , ≤i≤m, is completely determined by the implementer. For example, according to the application type and application requirements, a specific digital certificate B to be used is specified in the application code. i , or through the configuration information settings of the program (such as application programs, digital signature application programming interfaces).

[0079] In a specific implementation, the digital certificates B1, ..., B1 can be reconstructed and restored from the integrated digital certificate A in an application or a digital signature application programming interface. m The function can also be implemented by implementing additional digital certificate management interfaces or by implementing a digital certificate reconstruction system to provide reconstruction and recovery of digital certificates B1, ..., digital certificates B from the integrated digital certificate A. m The additional digital certificate management interface here refers to interface functions and interface methods other than the usual digital certificate management interface functions and interface methods. Because the usual digital certificate management interface does not have these interface functions, it is necessary to implement these functions through additional digital certificate management interfaces (interface functions and interface methods) (the additional digital certificate management interface can be a separate library or combined with the original digital certificate management interface in one library). Digital certificate reconstruction services can be provided by implementing a digital certificate reconstruction system that provides digital certificate reconstruction and recovery service functions.

[0080] In a specific implementation, the integrated key object corresponding to the user key pair or private key of the integrated digital certificate A in the cryptographic device or cryptographic component shall store not only the user key pair or private key of the integrated digital certificate A, but also the digital certificates B1, ..., digital certificates B m The user key pair or private key of the integrated key object must be marked and distinguished in a certain way. For example, the user key pair or private key corresponding to the integrated digital certificate A is marked as the primary key, digital certificate B1, ..., digital certificate B m The key pair or private key is marked as a secondary key and identified with the issuer name of the corresponding digital certificate + certificate serial number (or identified in other ways); from the application's perspective, the integrated key object is no different from the key object that usually stores key pairs or private keys. When the application calls the cryptographic interface to use the key pair or private key in the integrated key object, the user key pair or private key (i.e., the master key) corresponding to the integrated digital certificate A is used.

[0081] In a specific implementation, by implementing a corresponding key management interface, an integrated key object can be created inside a cryptographic device or cryptographic component, and a digital certificate B1, ..., a digital certificate Bm The key object of the user key pair or private key corresponding to a digital certificate in the cryptographic interface. Since the usual key management interface does not have these functions, these functions are usually implemented through additional key management interfaces (interface functions, interface methods) (the additional key management interface here can be a separate library, or it can be merged with the original key management interface in one library). The key management interface here can be part of the cryptographic interface (for example, as the same dynamic library, interface class library), or it can be an interface library outside the cryptographic interface (for example, as another dynamic library, interface class).

[0082] In a specific implementation, the cryptographic interface of the present invention can be an interface provided by a cryptographic device or a cryptographic component that can directly call the cryptographic function of the cryptographic device or the cryptographic component (such as a PKCS#11 interface, a CryptoSPI interface of a CSP), or it can be an application programming interface built on the cryptographic interface provided by the cryptographic device or the cryptographic component (for example, CryptoAPI, an application usually calls CSP CryptoSPI through CryptoAPI to call CSP, but an application can also directly call CSP through CryptoSPI of CSP).

[0083] Figure 1 is a schematic diagram of the present invention, Figure 2 The relationship between the application program and various interfaces of the present invention.

[0084] The following is a further description of the specific implementation of the present invention in combination with some specific application implementation scenarios of the present invention. Of course, the following application implementation scenarios are not all possible application implementation scenarios.

[0085] Application implementation scenario 1.

[0086] In this application implementation scenario, the user's integrated digital certificate A is the main digital certificate, that is, in various applications, this integrated digital certificate A and the key (including the user's public key and private key) are mainly used; digital certificates B1, ..., digital certificates B m is the auxiliary digital certificate, m≥1, digital certificate B i The key is only used in specific applications. The following is an application scenario for this application.

[0087] The SM2 algorithm is an algorithm issued by the National Cryptography Administration and is currently widely used in China. The RSA and ECDSA algorithms are still used in China for various reasons. In response to this situation, the integrated digital certificate A is implemented as an SM2 digital certificate according to X509, the corresponding user key is the SM2 key (public key, private key), and the subject public key information in the integrated digital certificate A is the SM2 public key information; there are two auxiliary digital certificates, i.e., m=2, one of which (such as digital certificate B1) is implemented as an RSA digital certificate according to X509, the corresponding user key is the RSA key (public key, private key), and the subject public key information in the RSA digital certificate is the RSA public key information, and the other (such as digital certificate B2) is implemented as an ECDSA digital certificate according to X509, the corresponding user key is the ECDSA key (public key, private key), and the subject public key information in the ECDSA digital certificate is the ECDSA public key information; the user SM2 key pair or private key of the integrated digital certificate A, the user RSA key pair or private key of the RSA digital certificate, and the user ECDSA key pair or private key of the ECDSA digital certificate are stored in the user cryptographic device or cryptographic component through the integrated key object.

[0088] In various SM2 applications, the integrated digital certificate A and key are used directly;

[0089] When faced with an application of RSA or ECDSA algorithm, which requires the use of RSA or ECDSA digital certificates but does not have them, the application or the digital certificate application programming interface called by the application (by itself or by calling the digital certificate management interface or the digital certificate reconstruction system) automatically reconstructs and recovers the RSA or ECDSA digital certificate from the integrated digital certificate A;

[0090] When faced with the application of RSA or ECDSA algorithm, when the user private key corresponding to the RSA or ECDSA digital certificate is needed but cannot be used directly, the application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component, separates the corresponding user RSA or ECDSA key pair or private key from the integrated key object (but does not delete it from the original key object), constructs a key object of the RSA or ECDSA key pair or private key, and uses the user RSA or ECDSA private key in the constructed key object to perform cryptographic operations (such as data decryption and digital signature).

[0091] In a specific implementation, the RSA or ECDSA digital certificate reconstructed and recovered from the integrated digital certificate A, and the user RSA or ECDSA key pair or private key (stored in the constructed key object) separated from the integrated key object can be stored in a permanent storage medium for long-term use, or destroyed after use and used temporarily.

[0092] In this implementation scenario, the subject names of different digital certificates are usually the same, at least the common names (Common Name, cn) in the subject names of the digital certificates are usually the same.

[0093] If digital certificate B i , i = 1, ..., m, and the integrated digital certificate A except DSetB1, ..., DSetB m The information other than the certificate is different, only the issuer name, signature algorithm, certificate signature, and subject public key information are different, and these differences are known in advance. The information of different issuer names and signature algorithms is known in advance and fixed (for a digital certificate signed by a CA system, this is usually the case). These differences can be encoded in the code of the application or digital certificate application programming interface or digital certificate management interface or digital certificate reconstruction system. i Contains only digital certificate B i The certificate signature (signature value) and subject public key information.

[0094] Application Implementation Scenario 2

[0095] In this application implementation scenario, the user's integrated digital certificate A is a shell digital certificate, that is, the integrated digital certificate A and the key (including the user's public key and private key) are not actually used, or are only used in a few occasions, such as certificate update, and the digital certificate B1, ..., digital certificate B m When a certificate in is revoked, etc.; Digital Certificate B1, ..., Digital Certificate B m is a digital certificate specifically used in various applications, m≥2, and the following are application scenarios for the implementation of this application.

[0096] The integrated digital certificate A (i.e., the unsigned digital certificate A) is implemented as a digital certificate of any permitted and valid cryptographic algorithm such as the SM2 algorithm according to X509, and the corresponding user key (public key, private key) is usually not actually used (note that even if it is not used, people other than the certificate holder cannot hold the private key corresponding to this digital certificate); there are digital certificates B1, digital certificates B2, and digital certificates B3 (m=3), one of which (such as digital certificate B1) is implemented as an SM2 digital certificate according to X509, and the corresponding user key is the SM2 key (public key, private key), and the subject public key information in the SM2 digital certificate is the SM2 public key information, and one (such as digital certificate B2) is implemented as an RSA digital certificate according to X509, The corresponding user key is the RSA key (public key, private key), and the subject public key information in the RSA digital certificate is the RSA public key information. One (for example, digital certificate B3) is implemented as an ECDSA digital certificate according to X509, and the corresponding user key is the ECDSA key (public key, private key), and the subject public key information in the ECDSA digital certificate is the ECDSA public key information; the user key pair or private key corresponding to the integrated digital certificate A, the user SM2 key pair or private key corresponding to the RSA digital certificate, the user RSA key pair or private key corresponding to the RSA digital certificate, and the user ECDSA key pair or private key corresponding to the ECDSA digital certificate are stored in the user cryptographic device or cryptographic component in the form of an integrated key object.

[0097] When faced with an application of SM2 or RSA or ECDSA algorithm, which requires the use of RSA or ECDSA digital certificates but does not have them, the application or the digital certificate application programming interface called by the application (by itself or by calling the digital certificate management interface or digital certificate reconstruction system) automatically reconstructs and recovers the SM2 or RSA or ECDSA digital certificate from the integrated digital certificate A;

[0098] When faced with the application of SM2, RSA or ECDSA algorithm, when the user private key corresponding to the RSA or ECDSA digital certificate is needed but cannot be used directly, the application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component, separates the corresponding user SM2 or RSA or ECDSA private key from the integrated key object (but does not delete it from the original key object), constructs the key object of the user SM2 or RSA or ECDSA key pair or private key, and enables the user SM2 or RSA or ECDSA private key to perform cryptographic operations (such as data decryption, digital signature).

[0099] In a specific implementation, the SM2 or RSA or ECDSA digital certificate reconstructed and recovered from the integrated digital certificate A, and the user SM2 or RSA or ECDSA key pair or private key (stored in the constructed key object) separated from the integrated key object can be stored in a permanent storage medium for long-term use, or destroyed after use and used only temporarily.

[0100] In this implementation scenario, the subject names of different digital certificates are usually the same, at least the common names (Common Name, cn) in the subject names of the digital certificates are usually the same.

[0101] If digital certificate B i , i = 1, ..., m, and the integrated digital certificate A except DSetB1, ..., DSetB m The information other than the certificate is different, only the issuer name, signature algorithm, certificate signature, and subject public key information are different, and these differences are known in advance. The different issuer names and signature algorithm information are known in advance and fixed (for a digital certificate signed by a CA system, this is usually the case). These known and fixed differences can be encoded in the code of the application or digital certificate application programming interface or digital certificate management interface or digital certificate reconstruction system. i Contains only digital certificate B i The certificate signature (signature value) and subject public key information.

[0102] Application implementation scenario 3,

[0103] The difference between this application implementation scenario and application implementation scenario 1 is that digital certificates B1, ..., digital certificates B m In the case where m≥1, there is a digital certificate in which the user principal name does not contain the user's real name information, and the user's common name (CommonName, cn) is a pseudonym.

[0104] When a pseudonymous digital certificate is needed but not available, the application program or the digital certificate application programming interface called by the application program (by itself or by calling the digital certificate management interface or the digital certificate reconstruction system) automatically reconstructs and recovers the pseudonymous digital certificate from the integrated digital certificate A;

[0105] When the user private key corresponding to the pseudonymous digital certificate is needed but cannot be used directly, the application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component, separates the user private key corresponding to the pseudonymous digital certificate from the integrated key object (but does not delete it from the original key object), constructs the user key pair or private key key object corresponding to the pseudonymous digital certificate, and enables the private key corresponding to the user pseudonymous digital certificate to perform cryptographic operations (such as data decryption and digital signature).

[0106] In a specific implementation, the pseudonymous digital certificate reconstructed and recovered from the integrated digital certificate A and the user key pair or private key (stored in the constructed key object) corresponding to the pseudonymous digital certificate separated from the integrated key object can be stored in a permanent storage medium for long-term use, or destroyed after use and used only temporarily.

[0107] In this implementation scenario, except for the subject name of the pseudonymous digital certificate, the subject names of other digital certificates are usually the same, at least the common name (Common Name, cn) in the subject name of the digital certificate is usually the same.

[0108] Application Implementation Scenario 4

[0109] The difference between this application implementation scenario and application implementation scenario 2 is that digital certificates B1, ..., digital certificates B m In the case where m≥2, there is a digital certificate in which the user principal name does not contain the user's real name information, and the user's common name (CommonName, cn) is a pseudonym.

[0110] When a pseudonymous digital certificate is needed but not available, the application program or the digital certificate application programming interface called by the application program (by itself or by calling the digital certificate management interface or the digital certificate reconstruction system) automatically reconstructs and recovers the pseudonymous digital certificate from the integrated digital certificate A;

[0111] When the user private key corresponding to the pseudonymous digital certificate is needed but cannot be used directly, the application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component, separates the user private key corresponding to the pseudonymous digital certificate from the integrated key object (but does not delete it from the original key object), constructs the user key pair or private key key object, and enables the private key corresponding to the user pseudonymous digital certificate to perform cryptographic operations (such as data decryption and digital signature).

[0112] In a specific implementation, the pseudonymous digital certificate reconstructed and recovered from the integrated digital certificate A and the user key pair or private key (stored in the constructed key object) corresponding to the pseudonymous digital certificate separated from the integrated key object can be stored in a permanent storage medium for long-term use, or destroyed after use and used only temporarily.

[0113] In this implementation scenario, except for the subject name of the pseudonymous digital certificate, the subject names of other (non-pseudonymous) digital certificates are usually the same, at least the common name (cn) in the subject name of the digital certificate is usually the same.

[0114] Application Implementation Scenario 5

[0115] The difference between this application implementation scenario and application implementation scenario 1 is that digital certificates B1, ..., digital certificates Bm In the example, m≥1, one of the digital certificates is used for the transition of the public key algorithm, and one of the digital certificates has a user key that is the key of a new public key algorithm that is resistant to quantum attacks.

[0116] When a digital certificate of a new public key algorithm resistant to quantum attacks is needed but not available, the application or the digital certificate application programming interface called by the application (by itself or by calling the digital certificate management interface or the digital certificate reconstruction system) automatically reconstructs and recovers the digital certificate of the new public key algorithm resistant to quantum attacks from the integrated digital certificate A;

[0117] When the user private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks is needed but cannot be used directly, the application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component to separate the user private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks from the integrated key object (but not delete it from the original key object), and constructs a user key pair or private key pair key object corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks, so that the user's private key of the new public key algorithm that is resistant to quantum attacks can perform cryptographic operations (such as data decryption and digital signature).

[0118] A special implementation scenario of this application implementation scenario is that m=1, that is, there is only a digital certificate B1, and the digital certificate B1 is a digital certificate for a new public key algorithm that is resistant to quantum attacks in transition.

[0119] In a specific implementation, if the transition period is reached, after the digital certificate of the new public key algorithm is reconstructed and restored from the integrated digital certificate A, the integrated digital certificate A can be discarded (of course, it may not be discarded).

[0120] In this implementation scenario, the subject names of different digital certificates are usually the same, at least the common name (cn) in the subject name of the digital certificates is usually the same. In this embodiment, the signature algorithm used for digitally signing the digital certificate of the new public key algorithm that resists quantum attacks must also be the new public key algorithm that resists quantum attacks. Therefore, at this time, the issuer name and signature algorithm are different from the issuer name and signature algorithm of other digital certificates (but can be known in advance and the data is fixed).

[0121] Application Implementation Scenario 6

[0122] The difference between this application implementation scenario and application implementation scenario 2 is that digital certificates B1, ..., digital certificates B m In the example, m≥2, one of the digital certificates is used for the transition of the public key algorithm, and one of the digital certificates has a user key that is the key of a new public key algorithm that is resistant to quantum attacks.

[0123] When a digital certificate of a new public key algorithm resistant to quantum attacks is needed but not available, the application or the digital certificate application programming interface called by the application (by itself or by calling the digital certificate management interface or the digital certificate reconstruction system) automatically reconstructs and recovers the digital certificate of the new public key algorithm resistant to quantum attacks from the integrated digital certificate A;

[0124] When the user private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks is needed but cannot be used directly, the application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component to separate the user private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks from the integrated key object (but not delete it from the original key object), and constructs a key object of the user key pair or private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks, so that the user's private key of the new public key algorithm that is resistant to quantum attacks can perform cryptographic operations (such as data decryption and digital signature).

[0125] In a specific implementation, after reconstructing and recovering the digital certificate of the new public key algorithm resistant to quantum attacks from the integrated digital certificate A, the integrated digital certificate A can be discarded (of course, it may not be discarded).

[0126] In this implementation scenario, the subject names of different digital certificates are usually the same, at least the common name (cn) in the subject name of the digital certificates is usually the same. In this embodiment, the signature algorithm used for the digital signature of the digital certificate using the new public key algorithm that resists quantum attacks must also be the new public key algorithm that resists quantum attacks. Therefore, the issuer name and signature algorithm are different from the issuer name and signature algorithm of other digital certificates.

[0127] Application Implementation Scenario 7

[0128] The difference between this application implementation scenario and application implementation scenario 1 is that the integrated digital certificate A is used for the transition of the public key algorithm, the user key of the integrated digital certificate A is the key of the new public key algorithm that is resistant to quantum attacks, digital certificates B1, ..., digital certificates B m , m≥1, the key is the key of the non-quantum-resistant public key algorithm (old public key cryptographic algorithm) still used in the transition period, such as SM2, RSA, ECDSA keys, etc.

[0129] For the application of digital certificates that support the new public key algorithm that is resistant to quantum attacks, the application program or the digital certificate application programming interface called by the application program automatically uses the integrated digital certificate A and the corresponding user keys including the public key and the private key;

[0130] For applications that do not support digital certificates of new public key algorithms that are resistant to quantum attacks and only support digital certificates of old public key algorithms, the application or the digital certificate application programming interface called by the application (by itself or by calling the digital certificate management interface or digital certificate reconstruction system) uses the difference information in the integrated digital certificate A to reconstruct and recover the corresponding digital certificate of the old public key algorithm from the integrated digital certificate A, and when the private key of the digital certificate of the old public key algorithm is needed, the key management interface of the user cryptographic device or cryptographic component is called to separate the user key pair or private key of the digital certificate of the old public key algorithm from the integrated key object (but not delete it from the original key object), construct the key object of the user key pair or private key of the digital certificate of the old public key algorithm, and use the private key corresponding to the digital certificate of the old public key algorithm to perform cryptographic operations (such as data decryption and digital signature).

[0131] In this implementation scenario, the subject names of different digital certificates are usually the same, at least the common name (cn) in the subject name of the digital certificates is usually the same. In this embodiment, the signature algorithm used for the digital signature of the integrated digital certificate A using the new public key algorithm that resists quantum attacks must also be the new public key algorithm that resists quantum attacks. Therefore, at this time, the issuer name and signature algorithm of the integrated digital certificate A are different from the issuer names and signature algorithms of other digital certificates.

[0132] Application Implementation Scenario 8

[0133] The difference between this application implementation scenario and application implementation scenario 7 is that, except for the certificate signature, certificate serial number, digital certificates B1, ..., digital certificates B m , m≥2, the information of a digital certificate is the same as the information of the unsigned digital certificate A, digital certificate B1, ..., digital certificate B m , the keys of other digital certificates in m≥2 are the keys of the non-quantum-resistant public key algorithms (old public key cryptographic algorithms) still used during the transition period, such as SM2, RSA, ECDSA, etc.

[0134] For the application of digital certificates that support new public key algorithms that are resistant to quantum attacks, the application program or the digital certificate application programming interface called by the application program automatically uses the integrated digital certificate A and the user key including the public key and the private key;

[0135] For applications that do not support digital certificates of new public key algorithms that are resistant to quantum attacks and only support digital certificates of old public key algorithms, the application or the digital certificate application programming interface called by the application (by itself or by calling the digital certificate management interface or digital certificate reconstruction system) uses the difference information in the integrated digital certificate A to reconstruct and recover the corresponding digital certificate of the old public key algorithm from the integrated digital certificate A, and when the private key of the digital certificate of the old public key algorithm is needed, the key management interface of the user cryptographic device or cryptographic component is called to separate the user key pair or private key of the digital certificate of the old public key algorithm from the integrated key object (but not delete it from the original key object), construct the key object of the user key pair or private key of the digital certificate of the old public key algorithm, and use the private key corresponding to the digital certificate of the old public key algorithm to perform cryptographic operations (such as data decryption and digital signature).

[0136] After the transition period, the application or the digital certificate application programming interface called by the application reconstructs and recovers the digital certificate of the new public key algorithm that is resistant to quantum attacks from the integrated digital certificate A. The application or the digital certificate application programming interface called by the application calls the key management interface of the user cryptographic device or cryptographic component, separates the user private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks from the integrated key object, constructs the key object of the user key pair or private key corresponding to the digital certificate of the new public key algorithm that is resistant to quantum attacks, and enables the private key corresponding to the digital certificate of the user's new public key algorithm to perform cryptographic operations (such as data decryption and digital signature). Thereafter, the integrated digital certificate A and the integrated key object will no longer be used, and only the digital certificate of the new public key algorithm that is resistant to quantum attacks reconstructed and recovered from the integrated digital certificate A and the key object corresponding to its user key pair or private key will be used.

[0137] When the transition period is over, the digital certificate and key pair or private key of the new public key algorithm that is resistant to quantum attacks are reconstructed and restored and the key pair or private key is saved in the key object, and the integrated digital certificate A and the integrated key object are discarded (of course, they can also be not discarded).

[0138] In this implementation scenario, the subject names of different digital certificates are usually the same, at least the common name (cn) in the subject name of the digital certificates is usually the same. In this embodiment, the signature algorithm used for the digital signature of the digital certificate using the new public key algorithm that resists quantum attacks must also be the new public key algorithm that resists quantum attacks. Therefore, the issuer name and signature algorithm of the digital certificate A using the new public key algorithm that resists quantum attacks are different from the issuer names and signature algorithms of other digital certificates.

[0139] The above application implementation scenarios 5 and 6 are used for the pre-transition period (digital certificates using the old public key algorithm are dominant) of digital certificates that use the new public key algorithm that is resistant to quantum attacks, and application implementation scenarios 7 and 8 are used for the post-transition period (digital certificates using the new public key algorithm that is resistant to quantum attacks are dominant).

[0140] A user or application may have multiple integrated digital certificates A, each of which contains digital certificates B1, ..., digital certificates B m (For different integrated digital certificates, m may not be the same), and an integrated digital certificate A contains digital certificates B1, ..., digital certificates B m It is not something that has been reconstructed or restored in advance, but needs to be reconstructed or restored during use. Even if it is reconstructed or restored, it may be used temporarily. Similarly, digital certificates B1, ..., digital certificates B m The key pair or private key object is not pre-constructed and available, but needs to be constructed during use. Even if it is constructed, it may be used temporarily. This raises a question: during the use of digital certificates, how does the program know which of the multiple integrated digital certificates A contains digital certificates B1, ..., digital certificates B m Is there a digital certificate required by the program?

[0141] The main uses of digital certificates are data encryption, decryption, digital signatures and signature verification. By analyzing the use of digital certificates, it can be found that digital certificate users (users, programs) are divided into active users and passive users. Among them, the party that uses the private key corresponding to the digital certificate to digitally sign in the digital signature application (signing party, digital certificate owner and program) is the active user of the digital certificate, and the party that verifies the signature (signature verification party, digital certificate relying party and program) is the passive user of the digital certificate, which needs to use the digital certificate corresponding to the signature private key to verify the validity of the digital signature. In data encryption applications, the party that uses the public key on the digital certificate to encrypt data (encrypting party, digital certificate relying party and program) is the active user of the digital certificate, and the party that uses the private key corresponding to the digital certificate to decrypt the encrypted data (data decryption party, digital certificate owner and program) is the passive user of the digital certificate. The problems faced by active and passive users of digital certificates are different.

[0142] In digital signature applications, the active user of the digital certificate (signatory) can select the integrated digital certificate A to be used and the digital certificates B1, ..., digital certificates B2, ..., and B3 contained therein. m A digital certificate in the program, or an integrated digital certificate A to be used automatically according to rules and settings, and the digital certificates B1, ..., digital certificates B contained therein mA digital certificate in the signature; it is usually no problem for the passive user of the digital signature (signature verifier) ​​to obtain the corresponding digital certificate for signature verification. This is because the data in the current digital signature application is usually Cryptographic MessageSyntax (i.e. CMS format, i.e., commonly known as PKCS#7 format) data, and the signed data (SignedData) usually contains the digital certificate corresponding to the signature private key (i.e., the signer's digital certificate). The program of the signature verifier (passive user of the digital certificate) (such as application, digital certificate application programming interface, digital certificate management interface, etc.) can obtain the digital certificate corresponding to the signature private key from the signed data for signature verification; however, CMS allows the digital certificate corresponding to the signature private key not to be placed in the signed data, and only the issuer name (issuer) and certificate serial number of the digital certificate are placed in the signed data. At this time, if the digital certificate corresponding to the signature private key is digital certificate B1, ..., digital certificate B m Although the signature verifier has the signer's integrated digital certificate A, if the corresponding digital certificate is not reconstructed and restored in advance, the signature verifier's program will not be able to retrieve the digital certificate unless it traverses all integrated digital certificates A and the digital certificates B1, ..., digital certificates B1, ..., and B1 contained in it. m , otherwise the corresponding signer data certificate for signature verification cannot be found.

[0143] In data encryption applications, the active user of the digital certificate (encryption party) can select the integrated digital certificate A to be used and the digital certificates B1, ..., digital certificates B contained therein. m A digital certificate in the program, or an integrated digital certificate A to be used automatically according to rules and settings, and the digital certificates B1, ..., digital certificates B contained therein m However, unlike digital signatures, encrypted data (usually in CMS format) usually does not contain an encrypted digital certificate, but only the issuer name and certificate serial number of the encrypted digital certificate. If the encrypted digital certificate is digital certificate B1, ..., digital certificate B mIf one of the following is found, and the data decryption party (i.e., the owner of the encrypted digital certificate, the owner of the decryption private key, or the passive user of the digital certificate) has not reconstructed or restored the corresponding encrypted digital certificate (and the key pair for constructing the digital certificate or the key object for the private key) in advance, then the data decryption party's program (such as an application, a digital certificate application programming interface, a digital certificate management interface, etc.) cannot find the decryption party's digital certificate (and the key pair for the digital certificate or the key object for the private key) unless it is traversed; in addition, even if there is an encrypted digital certificate in the encrypted data, but the data decryption party (i.e., the owner of the encrypted digital certificate) has not reconstructed or restored the corresponding encrypted digital certificate and the key pair for constructing the digital certificate or the key object for the private key) in advance, then the data decryption party's program cannot find the corresponding integrated digital certificate A and the corresponding integrated key object unless it is traversed, and thus cannot use the private key in the key object corresponding to the digital certificate to decrypt the data.

[0144] In view of the above problems, the following is a solution that can be used in specific implementation. This solution can find the corresponding integrated digital certificate A without traversing all integrated digital certificates A, which includes digital certificates B1, ..., digital certificates B m All required digital certificates:

[0145] (1) Integrate digital certificate A with digital certificate B1, ..., digital certificate B m The issuer names in the certificate are different, but the certificate serial numbers are the same; a program (such as an application, a digital certificate application programming interface, a digital certificate management interface, etc.) that needs to find a digital certificate, a key pair of a digital certificate, or a key object of a private key by the issuer name and certificate serial number first uses the issuer name and certificate serial number to find the required digital certificate. If found, proceed with the subsequent operations; if not found, find the corresponding integrated digital certificate A according to the certificate serial number (different integrated digital certificates A have different serial numbers), and then further find the digital certificates B1, ..., digital certificate B contained in the found integrated digital certificate A. m Find the digital certificate with the corresponding issuer name and certificate serial number (of course there may not be one), and if necessary, construct the found digital certificate B i A key pair or a key object of a private key, i = 1, ..., or m;

[0146] (2) Integrate digital certificate A with digital certificate B1, ..., digital certificate B mOnly part of the information in the issuer name is different (for example, only a certain OU field is different), and the position of the different information is known in advance, but the certificate serial number is the same; a program (such as an application, a digital certificate application programming interface, a digital certificate management interface, etc.) that needs to obtain a digital certificate, a key pair of a digital certificate, or a key object of a private key through the issuer name and the certificate serial number first uses the issuer name and the certificate serial number to search for the digital certificate. If it is found, then proceed with the subsequent operation; if not found, then proceed with the subsequent operation based on the integration of digital certificate A and digital certificate B1, ..., digital certificate B m The corresponding integrated digital certificate A is found by using the same part of the issuer name in the integrated digital certificate A and the certificate serial number (different integrated digital certificates A have different serial numbers), and then the digital certificates B1, ..., digital certificates B contained in the found integrated digital certificate A are found. m Find the digital certificate with the corresponding issuer name and certificate serial number (of course there may not be one), and if necessary, construct the found digital certificate B i A key pair or a key object of a private key, i = 1, …, or m.

[0147] In the implementation of the present invention, if the user digital certificate (including integrated digital certificate A and digital certificate B1, ..., digital certificate B m )'s private key or private key secret is divided and stored in the user's cryptographic device or cryptographic component (integrated digital certificate A and digital certificate B1, ..., digital certificate B m The key pair or private key of the key object and the cryptographic device on the server (integrated digital certificate A and digital certificate B1, ..., digital certificate B m In the key object of the key pair or private key, when generating the certificate issuance request, the user's password device or password component and the server's password device participate in the generation of the digital certificate key pair and the certificate issuance request. i When the key pair or private key object is 1≤i≤m, the user and the server respectively target the (integrated digital certificate A and digital certificate B) in the user's cryptographic device or cryptographic component. i The key pair or private key of the key object and the cryptographic device on the server (integrated digital certificate A and digital certificate B i The operation processing on the user side is completed by the application or digital certificate application programming interface (by calling the key management interface of the cryptographic device or cryptographic component), and the operation processing on the server side is completed by the key management program on the server side (by calling the key management interface of the cryptographic device).

[0148] In the implementation of the present invention, if the user digital certificate (including integrated digital certificate A and digital certificate B1, ..., digital certificate B m )'s private key or private key secret is stored in the server's cryptographic device in a key escrow manner (integrated digital certificate A and digital certificate B1, ..., digital certificate B m In the key object of the key pair or private key, when generating the certificate issuance request, the cryptographic device of the server participates in the generation of the digital certificate key pair and the certificate issuance request, and when constructing the digital certificate B i When the key pair or private key object is 1≤i≤m, the application or digital certificate application programming interface calls the key management program on the server side to target the (integrated digital certificate A and digital certificate B) of the cryptographic device on the server side. i The key pair or private key in the key object performs operation processing on the key object construction (the key management program on the server side completes the corresponding operation processing by calling the key management interface of the cryptographic device).

[0149] Based on the present invention, a corresponding integrated digital certificate generation and use system can be implemented, the system includes a digital certificate issuing system (CA system), a cryptographic device or a cryptographic component, and a digital certificate application programming interface, wherein the digital certificate issuing system generates the aforementioned integrated digital certificate A for the user according to the aforementioned integrated digital certificate A generation method, and the cryptographic device or the cryptographic component stores the integrated digital certificate A and the digital certificate B in the aforementioned manner. i The corresponding user key pair or user private key, as well as the function of using the public key and / or the user private key for cryptographic operations, the digital certificate application programming interface reconstructs and restores the digital certificate B from the user integrated digital certificate A in the aforementioned manner. i , and constructing a digital certificate B in the user's cryptographic device or cryptographic component i The corresponding user key pair or private key key object uses the digital certificate private key in the key object, 1≤i≤m; the cryptographic device or cryptographic component provides a key management interface for the management of the keys within the cryptographic device or cryptographic component, and provides a cryptographic interface for performing cryptographic operations using the cryptographic device or cryptographic component.

[0150] In a specific implementation, the cryptographic device or cryptographic component of the present invention can be a device that combines hardware and software, such as a USB Key, a cryptographic card, a cryptographic device, or a pure software cryptographic component (an independently running program or a dynamically loaded program module, such as a dynamic library or a class library).

[0151] In a specific implementation, the digital certificate issuance system of the present invention can be implemented as a software system and ultimately run in a hardware computing device, or implemented as a hardware and software combined system in which the digital certificate issuance system software runs in a hardware computing device.

[0152] Other specific technical implementations not described are well known and self-evident to technicians in the relevant fields.

Claims

1. A method for generating an integrated digital certificate, characterized in that: When the digital certificate issuing system issues a digital certificate for a user, it first generates a digital certificate A that is not signed by the issuer but has other information filled in, then generates a digital certificate B1 that is signed by the issuer, and so on. m , m≥1; unsigned digital certificate A and signed digital certificate B1,…, digital certificate B m The user public keys do not have to be different; Digital certificate B1, ..., digital certificate B m The different information relative to the unsigned digital certificate A constitutes the difference information sets DSetB1, ..., DSetB m ; Unsigned digital certificate A has, digital certificate B1, ..., digital certificate B m There are also messages with different contents, unsigned digital certificate A has digital certificates B1, ..., digital certificate B m No information, and the unsigned digital certificate A does not have digital certificates B1, ..., digital certificates B m Some information, in DSetB1, ..., DSetB m are marked as difference information; each signed digital certificate B1, ..., digital certificate B m The certificate signature belongs to the difference information with the unsigned digital certificate A; The digital certificate issuance system will DSetB1, ..., DSetB m Add to the unsigned digital certificate A, then generate the encoded integrated digital certificate A to be signed, and then use the signature private key of the issuer in the unsigned digital certificate A to digitally sign the integrated digital certificate A to be signed, and obtain the user's integrated digital certificate A; Add to the unsigned digital certificate A DSetB1, ..., DSetB m The data is uncompressed data or compressed data. If it is compressed data, the data is compressed before adding; On the user side, the key pair of digital certificate A and digital certificates B1, ..., digital certificate B m The key pair is stored as an integrated key object in the user's cryptographic device or cryptographic component, or the private key of the integrated digital certificate A and the digital certificate B1, ..., digital certificate B m The private key is stored as an integrated key object in the user's cryptographic device or cryptographic component; The integrated key object is a key object that is no different from a key object storing a single key pair or private key from the perspective of the key usage program, but the key object actually stores the key pair or private key of the integrated digital certificate A, as well as digital certificates B1, ..., digital certificates B m A key pair or private key; Except for the key management interface, other programs use the keys in the integrated key object, including public keys and / or private keys, using the user key corresponding to the integrated digital certificate A; The above digital certificates include digital certificates for individual users, organizations, and devices; The digital certificates generated above after being signed by the issuer's private key are all X509 digital certificates.

2. The method for generating an integrated digital certificate according to claim 1, wherein: DSetB1, ..., DSetB m Add to the unsigned digital certificate A, that is, DSetB1, ..., DSetB m The method included in the integrated digital certificate A, include: DSetB1, ..., DSetB m Place it in a custom extension field in the digital certificate, or add DSetB1, ..., DSetB m After being encoded, it is placed in the subject alias of the digital certificate; For DSetB1, ..., DSetB m The encoding consists of converting DSetB1, ..., DSetB m The data in is encoded into a data type that complies with the subject alias requirements, and is encoded into a data format that complies with the subject alias requirements; If DSetB1, ..., DSetB m After being encoded, it is placed in the subject alias of the digital certificate, then DSetB1, ..., DSetB m The data is encoded as pseudo data in the subject alias, where the pseudo data refers to data having a prescribed data format but not having a corresponding real meaning.

3. The method for generating an integrated digital certificate according to claim 1, wherein: If the issued integrated digital certificate A and digital certificate B1, ..., digital certificate B m The user key pair is generated by the user end. When the user applies for a digital certificate, the digital certificate application client program of the user end calls the cryptographic device or cryptographic component to generate the digital certificate A, digital certificate B1, ..., digital certificate B1 requested to be issued. m The key pair is used to generate a certificate issuance request. The certificate issuance request is signed by the user private key corresponding to the user public key in the digital certificate A requested for issuance. The signed data in the certificate issuance request includes the user public key of the unsigned digital certificate A, the digital certificate B i The user's public key and digital certificate B i The user's private key corresponding to the user's public key is the digital certificate B i The digital signature of the user’s public key, i=1,…,m.

4. The method for generating an integrated digital certificate according to any one of claims 1 to 3, characterized in that: For the above integrated digital certificate A, digital certificate B i , 1≤i≤m, and the usage of the certificate key includes: The application or digital certificate API directly uses the integrated digital certificate A and the corresponding key, or the application or digital certificate API reconstructs and restores the required digital certificate B from the integrated digital certificate A when needed. i and the corresponding key, 1≤i≤m, and then use the digital certificate B i and the corresponding key, or the application or digital certificate API only uses the digital certificate B that needs to be used that is reconstructed and restored from the integrated digital certificate A i and the corresponding key, i = 1, ..., or m, without using the integrated digital certificate A, or the application or digital certificate application programming interface uses the digital certificate B reconstructed and restored from the integrated digital certificate A when needed i and the corresponding key, i = 1, ..., or m, replace the integrated digital certificate A, and then use the digital certificate B i , after which the integrated digital certificate A will no longer be used; Integrate digital certificate A and digital certificate B i The corresponding keys include the user's public key on the digital certificate and the user's private key corresponding to the user's public key; The application or digital certificate API selects a digital certificate B from the integrated digital certificate A. i , 1≤i≤m, the method includes: according to the application type or application needs or program code encoding or program setting / configuration, in the digital certificate B1, ..., digital certificate B m Select or choose a digital certificate to use.

5. The method for generating an integrated digital certificate according to claim 4, characterized in that: When an application or digital certificate API needs to use digital certificate B i 、Digital Certificate B i The public key on the cryptographic operation, where 1≤i≤m, and there is no separate digital certificate B i When available, the application or digital certificate application programming interface or the program or system called by them uses the integrated digital certificate A to remove DSetB1, ..., DSetB m Other information and difference information set DSetB i , reconstruct and restore digital certificate B i , then the application or digital certificate API uses digital certificate B i 、Digital Certificate B i Perform cryptographic operations with the public key on the The program or system called by the application program or digital certificate application programming interface includes a digital certificate management interface or a digital certificate reconstruction system; the digital certificate reconstruction system is to provide a digital certificate A from the integrated digital certificate reconstruction, recovery of digital certificate B i The system served, 1≤i≤m; If the difference information set DSetB in the integrated digital certificate A i If the data is compressed, use DSetB i Reconstruct and restore digital certificate B i Before that, decompress the compressed DSetB obtained from the integrated digital certificate A. i Data, restore DSetB i , i=1,…m.

6. The method for generating an integrated digital certificate according to claim 5, wherein: When an application or digital certificate API needs to use digital certificate B i The corresponding user private key performs cryptographic operations, where 1≤i≤m, and there is no separate digital certificate B i When the corresponding user private key is available, the application or digital certificate application programming interface uses the digital certificate B in the integrated key object for storing the key pair or private key corresponding to the integrated digital certificate A in the cryptographic device or cryptographic component. i The corresponding key pair or private key is constructed in the cryptographic device or cryptographic component for the digital certificate B i The key object of the key pair or the key object for the digital certificate B i The private key object of the digital certificate B is then used by the application or the digital certificate application programming interface to call the cryptographic device or cryptographic component. i The cryptographic operation is performed on the user's private key in the key object of the corresponding key pair or the key object of the corresponding private key.

7. The method for generating an integrated digital certificate according to claim 6, wherein: The application or digital certificate application programming interface completes the generation of the key pair of the digital certificate and the construction of the key object of the key pair or private key by calling the key management interface of the cryptographic device or cryptographic component; the application or digital certificate application programming interface uses the private key in the key object of the key pair or private key stored in the cryptographic device or cryptographic component to perform cryptographic operations by calling the cryptographic interface.

8. The method for generating an integrated digital certificate according to claim 7, wherein: If the private key or private key secret of the user's digital certificate is stored in the key object of the user's cryptographic device or cryptographic component and the key object of the server's cryptographic device through secret sharing, then when generating a certificate issuance request, the user's cryptographic device or cryptographic component and the server's cryptographic device participate in the generation of the digital certificate key pair and the certificate issuance request. i When it is a key pair or a key object of a private key, 1≤i≤m, the user end and the server end perform key object construction operations on the private key share or secret share in the key object in the user's cryptographic device or cryptographic component and the key object in the cryptographic device of the server end, respectively, wherein the operation processing on the user end is completed by the application or the digital certificate application programming interface, and the operation processing on the server end is completed by the key management program of the server end; the private key secret refers to confidential data which is not a private key itself but can be used to recover or crack the private key.

9. The method for generating an integrated digital certificate according to claim 7, wherein: If the private key or private key secret of the user's digital certificate is stored in the key object of the server's cryptographic device in a key escrow manner, then when generating a certificate issuance request, the server's cryptographic device participates in the generation of the digital certificate key pair and the certificate issuance request. i When a key pair or a private key is a key object, 1≤i≤m, the application or the digital certificate application programming interface calls the key management program on the server side to perform key object construction operations on the key pair or private key in the key object in the cryptographic device on the server side.

10. An integrated digital certificate generation and use system based on the integrated digital certificate generation method according to claim 7, characterized in that: The system includes a digital certificate issuing system, a cryptographic device or a cryptographic component, and a digital certificate application programming interface, wherein the digital certificate issuing system generates the above-mentioned integrated digital certificate A for the user according to the above-mentioned integrated digital certificate A generation method, and the cryptographic device or the cryptographic component stores the integrated digital certificate A and digital certificates B1, ..., digital certificates B m The corresponding user key pair or user private key, as well as the function of using the public key and / or the user private key for cryptographic operations, the digital certificate application programming interface reconstructs and restores the digital certificate B from the user integrated digital certificate A i , and constructing a digital certificate B in the user's cryptographic device or cryptographic component i The corresponding user key pair or private key key object, 1≤i≤m, uses the private key of the digital certificate in the key object; the cryptographic device or cryptographic component has a key management interface for managing the keys within the cryptographic device or cryptographic component, and a cryptographic interface for performing cryptographic operations using the cryptographic device or cryptographic component.

Citation Information

Patent Citations

  • System and method for encrypting and authenticating RSSP-I (Railway Signal Security Protocol-I)

    CN113242235A

  • Communication method for an actuator

    WO2019038429A1