Key management method, system, device and storage medium

By converting large-size post-quantum public keys into small-size accompanying public key index credentials in the key management center, the storage and communication bottlenecks of post-quantum cryptography algorithms on resource-constrained devices are solved, improving their practicality and scalability in industrial internet and IoT applications.

CN122204301APending Publication Date: 2026-06-12PENG CHENG LAB
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610273156.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-03-06
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

Existing post-quantum cryptography algorithms suffer from large key sizes, leading to storage and communication performance bottlenecks in resource-constrained devices and limiting their practicality and scalability in scenarios such as the Industrial Internet and the Internet of Things.

Method used

By introducing a collaborative generation mechanism for accompanying public keys based on device identity and centralized keys, large-size post-quantum public keys are transformed into small-size accompanying public key index credentials, which are stored in the public key file of the key management center. The user end only saves the identity and accompanying public key, reducing the local storage burden.

Benefits of technology

It significantly reduces the storage overhead of terminal devices and the transmission overhead during communication, improves the practicality and scalability of post-quantum cryptography in resource-constrained scenarios, and solves the performance bottleneck problem caused by excessive key size.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122204301A_ABST
    Figure CN122204301A_ABST
Patent Text Reader

Abstract

The application discloses a key management method, system, device and storage medium, relates to the field of post-quantum cryptography, and is applied to a key management center, and comprises the following steps: receiving a request of a user end; generating a companion public key bound with an identity identifier of the user end based on a first random number and a second random number in the request; generating a key pair of the user end in cooperation with the user end according to the identity identifier and the companion public key; writing a post-quantum public key in the key pair into a public key file for management; and the public key file is public query information for identity authentication of the user end. Through the centralized cooperation generation key mechanism of the companion public key based on the identity identifier, the storage of the post-quantum public key is converted into a lightweight identity and companion public key certificate, and the storage and transmission of the complete public key are transferred to the key management center, so that the storage and communication overhead of the resource-limited device is significantly reduced, and the practicability and scalability of the post-quantum cryptography in the industrial internet and other scenes are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of post-quantum cryptography, and more particularly to a key management method, system, device, and storage medium. Background Technology

[0002] With the continuous development of quantum computing technology, traditional public-key cryptosystems, such as asymmetric encryption algorithms RSA (Rivest-Shamir-Adleman) and ECC (Elliptic Curve Cryptography), face the potential threat of being broken by quantum algorithms. Post-quantum cryptography (PQC), capable of resisting quantum computer attacks, has emerged as a result. Among them, the multivariate lattice-based digital signature algorithm ML-DSA has attracted widespread attention due to its perceived potential resistance to quantum attacks.

[0003] However, in practical deployments, especially in environments like the Industrial Internet and the Internet of Things (IoT) with numerous embedded devices and sensor nodes and other resource-constrained terminals, devices face the challenge of storing, distributing, and managing massive amounts of keys. Existing post-quantum cryptography algorithms, such as ML-DSA, inherently have large key sizes. This massive amount of key data significantly increases the storage overhead of terminal devices and consumes more bandwidth in network transmission, leading to increased communication costs. This constitutes a performance bottleneck for devices with limited storage space and bandwidth, limiting the practicality and scalability of post-quantum cryptography algorithms in resource-constrained scenarios.

[0004] The above content is only used to help understand the technical solution of this application and does not represent an admission that the above content is prior art. Summary of the Invention

[0005] The main objective of this application is to provide a key management method, system, device, and storage medium, aiming to solve the technical problem that existing post-quantum cryptography, due to its large key size, poses a performance bottleneck to devices with limited storage and bandwidth, thus restricting its practicality and scalability in resource-constrained scenarios.

[0006] To achieve the above objectives, this application proposes a key management method applied in a key management center, the key management method comprising: Receive a request from a user, the request containing the user's identity identifier and a first random number generated by the user; Based on the first random number and the second random number, generate an accompanying public key that is bound to the identity identifier; Based on the identity identifier and the accompanying public key, a key pair for the user terminal is generated in collaboration with the user terminal; the key pair includes the user terminal's post-quantum public key and post-quantum private key; The post-quantum public key is written into a public key file for management; the public key file is public query information used for user authentication.

[0007] In one embodiment, the step of cooperating with the user terminal to generate the key pair for the user terminal based on the identity identifier and the accompanying public key includes: Based on the identity identifier and the accompanying public key, retrieve the random seed for the user terminal from the pre-generated random seed matrix; The random seed and the accompanying public key are sent to the user terminal; the user terminal generates a key pair based on the accompanying public key and the random seed.

[0008] In one embodiment, the step of retrieving the random seed of the user terminal from a pre-generated random seed matrix based on the identity identifier and the accompanying public key includes: Generate a hash value based on the identity identifier and the accompanying public key; The hash value is divided into multiple consecutive segments. For each column of the pre-generated random seed matrix, the corresponding segment is modulo the row of the random seed matrix to obtain the row coordinate. Based on the row coordinates, a random element at the corresponding position is retrieved from the random seed matrix, and the random elements are accumulated to obtain the random seed for the user terminal.

[0009] In one embodiment, the random seed matrix includes a public random seed matrix and a private random seed matrix, and the random seed includes a public random seed and a private random seed; after the step of sending the random seed and the accompanying public key to the user terminal, the method further includes: The user terminal adds the private random seed to a pre-generated first private seed to obtain a second private seed, and calculates a key component based on the second private seed; the key component includes a public key component; Receive the public key component sent by the user terminal; The post-quantum public key for the user terminal is generated using the public key component and the public random seed encoding. The user terminal generates the post-quantum public key based on the public key component and the public random seed encoding, and generates the post-quantum private key based on the post-quantum public key and the public key component encoding.

[0010] In one embodiment, before the step of sending the random seed and the accompanying public key to the user terminal, the method further includes: Randomly generate the first private seed; The first private seed is superimposed with the private random seed.

[0011] In one embodiment, the step of writing the post-quantum public key into a public key file for management includes: Generate the user index for the user terminal based on the post-quantum public key; Based on the user index, the post-quantum public key is written into a public key file for management.

[0012] In one embodiment, after the step of writing the post-quantum public key into a public key file for management, the method further includes: Receive a verification request from the verifier; the verification request contains the target identity identifier of the target user terminal being verified, and the target accompanying public key bound to the target identity identifier; Based on the target identity identifier and the target accompanying public key, retrieve the first public seed corresponding to the target user terminal from the pre-generated public random seed matrix; Retrieve the target public key of the target user from the public key file based on the target identity identifier; Decode the second public seed of the target user terminal from the target public key; If the first public seed and the second public seed are the same, in response to the verification request, the target public key is sent to the verifier so that the verifier can authenticate the target user based on the target public key.

[0013] Furthermore, to achieve the above objectives, this application also proposes a key management system, which includes a key management center and a user terminal. The key management center is equipped with a key management device, which includes: A receiving module is used to receive a request from a user terminal, the request containing the user terminal's identity identifier and a first random number generated by the user terminal; The first generation module is used to generate an accompanying public key bound to the identity identifier based on the first random number and the second random number. A collaborative generation module is used to collaborate with the user terminal to generate a key pair for the user terminal based on the identity identifier and the accompanying public key; the key pair includes the user terminal's post-quantum public key and post-quantum private key; The storage management module is used to write the post-quantum public key into a public key file for management; the public key file is public query information used for user authentication.

[0014] In addition, to achieve the above objectives, this application also proposes a key management device, the device comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the key management method as described above.

[0015] In addition, to achieve the above objectives, this application also proposes a storage medium, which is a computer-readable storage medium, on which a computer program is stored, and which, when executed by a processor, implements the steps of the key management method described above.

[0016] In addition, to achieve the above objectives, this application also provides a computer program product, which includes a computer program that, when executed by a processor, implements the steps of the key management method described above.

[0017] One or more technical solutions proposed in this application have at least the following technical effects: By introducing a companion public key based on device identity and a centralized key collaboration generation management mechanism, the large-size complete post-quantum public key, independently generated and stored by the user, is transformed into a lightweight index credential composed of an identity identifier and a small-size companion public key. This credential is then written into a file for management and serves as public query information for user authentication. The burden of storing and transmitting massive amounts of large-size public keys is shifted from individual resource-constrained terminal devices to a key management center and a shareable public file. This significantly reduces the local storage overhead and communication transmission overhead of each terminal device, effectively solving the storage and transmission performance bottleneck caused by excessively large key sizes in large-scale, resource-constrained scenarios such as the Industrial Internet of Things. This enhances the practicality and scalability of post-quantum cryptography in large-scale, resource-constrained scenarios. Attached Figure Description

[0018] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

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

[0020] Figure 1 This is a flowchart illustrating an embodiment of the key management method of this application. Figure 2This is a schematic diagram of the key generation process provided in an embodiment of the key management method of this application; Figure 3 A simplified flowchart illustrating the key management method provided in this application embodiment; Figure 4 This is a schematic diagram of the module structure of the key management device according to an embodiment of this application; Figure 5 This is a schematic diagram of the device structure of the hardware operating environment involved in the key management method in the embodiments of this application.

[0021] The purpose, features, and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation

[0022] It should be understood that the specific embodiments described herein are merely illustrative of the technical solutions of this application and are not intended to limit this application.

[0023] To better understand the technical solution of this application, a detailed description will be provided below in conjunction with the accompanying drawings and specific implementation methods.

[0024] The main solution of this application is as follows: In response to the problem of large key size in post-quantum cryptography such as ML-DSA algorithm, for resource-constrained devices, such as embedded systems or IoT devices in the Industrial Internet, large key size can become a performance bottleneck for key management. For example, the key size of ML-DSA algorithm is much larger than that of traditional encryption algorithms, which will increase the storage and transmission costs of the device. In order to solve the performance bottleneck problem caused by the large key size of post-quantum cryptography related algorithms, an identity-based key management method for post-quantum cryptography is proposed.

[0025] In this embodiment, for ease of description, the following description will focus on the key management device as the implementing entity.

[0026] While existing post-quantum digital signature schemes, such as the ML-DSA algorithm, possess the potential to resist quantum computing attacks, they also face a series of problems due to their large key sizes. Post-quantum digital signature schemes like ML-DSA typically require large keys, leading to significant storage and transmission costs for key management, which can create performance bottlenecks for resource-constrained devices. Furthermore, in large-scale distributed systems, the large key size of post-quantum cryptography algorithms may put pressure on storage and communication resources, affecting system scalability. Simultaneously, larger keys place higher demands on existing communication protocols and infrastructure (such as IoT devices), posing deployment difficulties.

[0027] This application provides a solution for devices with limited resources. It only requires storing the identity identifier and a small-sized accompanying public key, without storing the large-sized post-quantum public key. The public key is stored on the server of the key management center. This transforms the traditional mode, in which the user independently generates and holds the complete large-sized key pair, into a lightweight management mode of "central assistance, on-demand generation, and identity binding". This effectively solves the key management problem of post-quantum cryptography algorithms in embedded systems or IoT devices.

[0028] It should be noted that the executing entity in this embodiment is a key management center. This key management center can be a central server, or a computing service device with data processing, network communication, and program execution functions, such as a tablet computer, personal computer, or mobile phone, or an electronic device or key management device capable of performing the aforementioned functions. The following description uses a key management device as the key management center to illustrate this embodiment and the subsequent embodiments.

[0029] Based on this, the embodiments of this application provide a key management method, which is applied to a key management center and is suitable for the deployment and application of post-quantum cryptography algorithms, especially in resource-constrained environments such as industrial internet devices.

[0030] Specifically, refer to Figure 1 , Figure 1 This is a flowchart illustrating the first embodiment of the key management method of this application.

[0031] In this embodiment, the key management method includes steps S10 to S40: Step S10: Receive a request from the user terminal, the request containing the user terminal's identity identifier and a first random number generated by the user terminal; Step S20: Based on the first random number and the second random number, generate an accompanying public key bound to the identity identifier; Step S30: Based on the identity identifier and the accompanying public key, cooperate with the user terminal to generate the user terminal's key pair; the key pair includes the user terminal's post-quantum public key and post-quantum private key; Step S40: Write the post-quantum public key into a public key file for management; the public key file is public query information used for user authentication.

[0032] It should be noted that the key management center is a centralized and trusted server or service, while the user or user terminal refers to any device or entity in the Industrial Internet of Things (IIoT) that requires post-quantum cryptography services, such as sensors, actuators, and gateway devices.

[0033] The key management center runs on the Hardware Security Module (HSM) and is used to store the shared information required for post-quantum digital signatures.

[0034] The key management center's management of keys mainly includes key generation and storage. During the key generation phase, it first receives a request from the user terminal. The request contains the user terminal's identity identifier and a first random number randomly generated by the user terminal. The identity identifier is a unique identifier for the user terminal, which may include, but is not limited to, a device identifier or device serial number. In some embodiments, the user terminal's identity identifier may also be a unique number assigned to the device or entity.

[0035] Based on a first randomly generated random number and a second randomly generated random number, a public key is generated that is bound to the user's identity identifier.

[0036] The first random number is a pseudo-random value generated by the user's client based on their identity identifier using a predefined, deterministic one-way function, such as a hash function or a key-based hash message authentication code. This first random number ensures that the first random number generated for the same identity identifier is identical each time, while also possessing randomness to an external observer.

[0037] Furthermore, the accompanying public key aims to create a public, lightweight credential for the user. The second random number is a secret value or random number generated or held locally by the key management center; it can be a long-term key or a session random number, without specific limitations. The accompanying public key is a digital credential much smaller than the complete quantum public key, and its generation process ensures that no third party can deduce the first or second random number from it. The accompanying public key is bound to the user's identity and serves as a crucial index for the subsequent generation and verification of the complete public key.

[0038] Based on the user's identity and the generated accompanying public key, a key pair for the user is generated in collaboration with the user. This key pair includes the user's post-quantum public key and post-quantum private key.

[0039] In one feasible implementation, the collaborative process of generating key pairs typically involves multiple rounds of interaction to ensure that the final key pair (such as an ML-DSA key pair) is both bound to the user's identity and generated jointly by the user and the key management center, preventing any single party from having complete private key control.

[0040] Specifically, the key management center uses its system-level public and secret parameters, combined with the received identity identifier and the generated accompanying public key, to calculate a partial private key component or public key seed, and securely sends it to the user terminal. The user terminal then combines this seed with its own other secret component and the received partial component to synthesize a complete post-quantum key pair.

[0041] Finally, during the key storage phase, the post-quantum public key from the generated key pair is written into a public key file for management. This public key file is used for public query information for user authentication, while the post-quantum private key is held and stored by the user itself.

[0042] The post-quantum public key is a complete cryptographic public key conforming to a standard format (such as the ML-DSA public key format). The public key file is a centralized, publicly accessible file. After generating the complete post-quantum public key, the key management center associates it with the user's identity identifier and writes it into this file. This transforms the large-size post-quantum public key, originally held and stored by the user, into a lightweight identity identifier and accompanying public key. The storage of the large-size public key is transferred from the user to the key management center, reducing the storage burden on the user.

[0043] It should be noted that the public key file not only stores the static post-quantum public key, but also the shared information required for any verifier to dynamically reconstruct the post-quantum public key in order to authenticate the verified party.

[0044] In this embodiment, by introducing a companion public key based on device identity and a centralized key collaboration generation management mechanism, the large-size complete post-quantum public key independently generated and stored by the user terminal is transformed into a lightweight index credential composed of an identity identifier and a small-size companion public key, and written into a file for management, serving as public query information for user terminal authentication. The burden of storing and transmitting massive amounts of large-size public keys is transferred from various resource-constrained terminal devices to the key management center and a shareable public file, thereby significantly reducing the local storage overhead and transmission overhead of each terminal device. This effectively solves the storage and transmission performance bottleneck problem caused by excessively large key sizes in large-scale, resource-constrained scenarios such as the Industrial Internet of Things, and improves the practicality and scalability of post-quantum cryptography in large-scale, resource-constrained scenarios.

[0045] In one feasible implementation, step S30 may include steps S31-S32: Step S31: Retrieve the random seed of the user terminal from the pre-generated random seed matrix based on the identity identifier and the accompanying public key; Step S32: The random seed and the accompanying public key are sent to the user terminal; the user terminal generates a key pair based on the accompanying public key and the random seed.

[0046] Based on the user's identity and the generated accompanying public key, a random seed for the user is retrieved from a pre-generated random seed matrix. The retrieved random seed and the generated accompanying public key are then sent to the user, who generates a key pair using the accompanying public key and the random seed.

[0047] The pre-generated random seed matrix is ​​a structured data set created and maintained by the key management center during the initialization phase. This random seed matrix is ​​a data structure that can be efficiently retrieved through indexing, such as a two-dimensional array or a key-value database. Each element in the random seed matrix is ​​a cryptographically secure random number, also known as the random seed.

[0048] The method for retrieving the random seed matrix is ​​a public, deterministic algorithm that ensures that the same random seed can always be retrieved given the same identity identifier and accompanying public key. This is a prerequisite for any subsequent verifier to reproduce the user's public key and authenticate the user.

[0049] The key management center does not directly generate or hold the user's final private key. Instead, it retrieves a random seed from a pre-set random seed matrix that is associated with the user's identity and distributes it to the user. The user then uses this random seed, combined with their own information, to independently generate the final key pair. This collaborative key pair generation method achieves a secure separation of key generation responsibilities, ensuring that the user retains ultimate control over the private key.

[0050] In one embodiment, reference is made to Figure 2 The key pair generation process is as follows: The user client sends a request to the key management center, carrying the user client's identity identifier and a first random number, which is generated based on the user client's identity identifier. The key management center receives the user client's request and, based on the first and second random numbers, generates a companion public key bound to the user client's identity identifier. Then, based on the user client's identity identifier and companion public key, the key management center retrieves the user client's random seed from a pre-generated random seed matrix and sends the retrieved random seed and the generated companion public key to the user client. The user client receives the random seed and companion public key from the key management center and generates a post-quantum key pair based on these.

[0051] Furthermore, the user client sends the post-quantum public key from the generated key pair to the key management center. The key management center receives the post-quantum public key and writes it into the public key file for management.

[0052] As an example, the first random number is specifically generated by the user terminal according to the following steps: The user client generates a private algorithm-specific random number according to the post-quantum signature algorithm used in the digital signature scheme. Taking the ML-DSA algorithm as a post-quantum signature algorithm as an example, this paper generates private ML-DSA random numbers. And randomly generate private random numbers Calculate the sum of the two to obtain the first random number. ,Right now .

[0053] As an example, based on the first random number and the second random number, an accompanying public key bound to the user's identity is generated. The specific method for generating the accompanying public key is as follows: The second random number is a public algorithm random number held by the key management center. Calculate the first random number sent by the user. With the second random number The sum, as the accompanying public key on the user's end. That is, the accompanying public key on the user's end. .

[0054] In one feasible implementation, step S31 may further include steps S311 to S313: Step S311: Generate a hash value based on the identity identifier and the accompanying public key; Step S312: Divide the hash value into multiple consecutive segments. For each column of the pre-generated random seed matrix, take the corresponding segment modulo the row of the random seed matrix to obtain the row coordinates. Step S313: Based on the row coordinates, retrieve the random element at the corresponding position from the random seed matrix, and sum the random elements to obtain the random seed of the user terminal.

[0055] First, based on the user's identity and accompanying public key, a corresponding hash value is generated using methods such as hash message authentication code with key. The hash value is then divided into multiple consecutive segments. For each column of the pre-generated random seed matrix, the corresponding segment is modulo the row of the random seed matrix to obtain the corresponding row coordinate.

[0056] Furthermore, based on the calculated row coordinates, the corresponding random element is retrieved from the random seed matrix, and the retrieved random elements are summed to obtain the random seed for the user.

[0057] As one example, based on the user's identity identifier Together with the accompanying public key, generate a 256-bit hash value HMAC, that is: hmac = SHAKE256 - HMAC_{ }( The hash value is divided into h consecutive segments: hmac[i] (i=0,1,...,h-1). The number of consecutive segments is determined by the dimension of the random seed matrix, specifically by the number of columns in the random seed matrix. It is necessary to ensure that the number of consecutive segments after equal division is the same as the number of columns in the random seed matrix.

[0058] For each column in the random seed matrix: col={0,1,2,...,h-1}, take the corresponding segment modulo the row of the random seed matrix to obtain the row coordinate: row=hmac[col] mod m. Based on the row coordinate, retrieve the random element at the corresponding position from the random seed matrix, that is, retrieve the random element in the row-th row and column-th column of the random seed matrix: The retrieved random elements are summed to obtain the random seed for the user.

[0059] In one feasible implementation, the random seed matrix includes a public random seed matrix and a private random seed matrix, and the retrieved random seed includes both the private and public random seeds. Based on this, before step S32, steps S301~S302: Step S301: Randomly generate the first private seed; Step S302: Overlay the first private seed with the private random seed.

[0060] A first private seed is randomly generated. The first private seed is superimposed on the retrieved private random seed. The private random seed with the first private seed superimposed, along with the accompanying public key of the user terminal, is sent to the user terminal.

[0061] In one feasible implementation, steps S33-S34 may be included after step S32: Step S33: The user terminal adds the private random seed to the pre-generated first private seed to obtain the second private seed, and calculates the key component based on the second private seed; the key component includes a public key component; and receives the public key component sent by the user terminal. Step S34: Generate the post-quantum public key for the user terminal using the public key component and the public random seed encoding; the user terminal generates the post-quantum public key according to the public key component and the public random seed encoding, and generates the post-quantum private key according to the post-quantum public key and the public key component encoding.

[0062] The client adds the private random seed to the pre-generated first private seed to obtain the second private seed. Based on the second private random seed, a key component is calculated, which contains a public key component. The client then sends the public key component to the key management center.

[0063] The key management center receives the public key component sent by the user. On one hand, the key management center uses the public key component and a public random seed to generate a post-quantum public key. On the other hand, the user generates a post-quantum public key based on the public key component and the public random seed, and generates a post-quantum private key based on the post-quantum public key and the public key component encoding, thus obtaining the user's key pair.

[0064] In one embodiment, refer to Figure 3 The key management process illustrated involves the following steps: During the initialization phase, the key management center uses a pseudo-random number generator to generate private random seeds of a specific dimension. These private random seeds are stored sequentially in the security and configuration areas of the cryptographic device, forming a private random seed matrix. Then, in essentially the same manner, a public random seed matrix is ​​generated. Both the private and public random seed matrices are output to the public key file for storage and management.

[0065] Furthermore, during the initialization phase, the user terminal generates random numbers using a proprietary algorithm. First private random number Second private random number Then, the sum of the private algorithm random number and the first private random number is calculated to obtain the first random number. ,Right now .

[0066] The user sends an identity identifier and a first random number to the key management center by sending a request to the key management center.

[0067] The key management center receives a request from the user and generates an accompanying public key bound to the user's identity identifier based on a first random number and a second random number. Specifically, it calculates the sum of the first and second random numbers and associates them with the user's identity identifier to obtain the accompanying public key bound to the user's identity identifier. The second random number is a public algorithm random number held by the key management center. .

[0068] At the same time, the key management center randomly generates a first private seed through initialization. This is used for subsequent collaboration with the user to generate the user's key pair.

[0069] Furthermore, based on the user's identity identifier and accompanying public key, a private random seed is retrieved from the private random seed matrix. Retrieve a public random seed from a public random seed matrix .

[0070] Among them, for public random seeds The retrieval process involves generating a 256-bit hash value based on the user's identity and accompanying public key using methods such as hash functions or key-based hash message authentication codes. This 256-bit hash value is then divided into h consecutive segments. For each column of a pre-generated public random seed matrix, the corresponding segment is modulo the row of the public random seed matrix to obtain the row coordinates. Random elements at the corresponding row and column positions of the public random seed matrix are then extracted according to these row coordinates, and these random elements are summed to obtain the user's public random seed.

[0071] Accordingly, the private random seed matrix is ​​processed in the same way as the public random seed matrix. A search is performed to obtain the user's private random seed.

[0072] In some embodiments, the key management center's retrieval of the private random seed matrix and the public random seed matrix can be performed in parallel or sequentially, without any specific limitation.

[0073] Based on the retrieved private and public random seeds, the first private seed generated during the initialization phase will be used. With the retrieved private random seed The results are superimposed to obtain a new private random seed. The new private random seed, the retrieved public random seed, and the accompanying public key are then sent to the user terminal.

[0074] The client receives the accompanying public key, private random seed, and public random seed from the key management center, and calculates and generates a key component. The specific calculation process for this key component is as follows: Calculate the public key matrix using the expansion function and a public random seed: ; Calculate the private key polynomial vector using the expansion function and a private random seed: ; Calculate the public key vector based on the public key matrix and the private key polynomial vector: ; The key components are obtained by rounding the public key vector using a decomposition function: ; in, For extension functions, This is a rounding function; the generated key component contains the public key component. The user client then sends the public key component to the key management center.

[0075] The key management center receives the public key component sent by the user client, and generates the user client's post-quantum public key based on the public key component and the retrieved public random seed. .

[0076] The post-quantum public key is generated as follows: ; ;in, This is the encoding function.

[0077] Simultaneously, the user terminal encodes and generates a post-quantum public key based on the public key component and the public random seed issued by the key management center. Furthermore, it encodes and generates a post-quantum private key based on the post-quantum public key and the public key component. The user terminal and the key management center calculate the post-quantum public key in the same way, which will not be elaborated further.

[0078] The client-side encoding and generation of the post-quantum private key is as follows: The 64-bit hash value of the quantum public key is calculated using a hash function: ; Based on the hash value of the post-quantum public key and the intermediate parameters in the key component calculation process, the post-quantum private key is encoded and generated: .

[0079] During the generation of the user's private key, the user's public key is calculated, indexed, and written to the public key file for efficient retrieval. The process of calculating the user's public key based on the user's identity, accompanying public key, and public key file can be performed not only by the user itself but also by any user in the system, depending on actual needs. The generated public and private keys are paired to form a post-quantum key pair. By selecting the coordinates between the user's identity and its accompanying public key in the binding generation matrix, the substitution attack problem related to public key declaration can be solved.

[0080] Understandably, after the key management center generates the post-quantum public key for the user, it appends it to the public key file. Management is carried out in this process. Based on this, step S40 may include steps S41-S42: Step S41: Generate the user index for the user terminal based on the post-quantum public key; Step S42: Based on the user index, write the post-quantum public key into a public key file for management.

[0081] A user index is generated for the user terminal based on the post-quantum public key. Based on this user index, the post-quantum public key is written into the public key file for management. This user index can be allocated to the user terminal by the key management center and is used for efficient retrieval of the post-quantum public key on the user terminal.

[0082] In one embodiment, after the key management center writes the user's post-quantum public key into a public key file, it compresses the public key file and stores it on a high-performance, publicly accessible publishing server. Depending on the actual application scenario, it can also provide an online query service for the user's public key, thereby avoiding the need to download the public key file.

[0083] After the user's post-quantum public key is written into the public key file for management, the post-quantum public key of each user in the public key file is used by the verifier to authenticate the user. Based on this, after step S40, steps S41 to S45 may also be included: Step S41: Receive a verification request from the verification party; the verification request contains the target identity identifier of the target user terminal being verified, and the target accompanying public key bound to the target identity identifier; Step S42: Based on the target identity identifier and the target accompanying public key, retrieve the first public seed corresponding to the target user terminal from the pre-generated public random seed matrix; Step S43: Retrieve the target public key of the target user terminal from the public key file based on the target identity identifier; Step S44: Decode the second public seed of the target user terminal from the target public key; Step S45: If the first public seed and the second public seed are the same, in response to the verification request, the target public key is sent to the verifier so that the verifier can authenticate the target user based on the target public key.

[0084] Receive the verification request from the verifier. The verification request contains the target identity identifier of the target user terminal being verified, and the target accompanying public key bound to the target identity identifier.

[0085] Based on the target identity identifier and the accompanying public key, the first public seed corresponding to the target user terminal is retrieved from the pre-generated public random seed matrix. The target public key of the target user terminal is retrieved from the public key file based on the target identity identifier. The second public seed of the target user terminal is decoded from the target public key. If the first and second public seeds match, in response to the verification request from the verifier, the target public key is issued to the verifier, enabling the verifier to authenticate the target user terminal based on the target public key.

[0086] In this embodiment, key management includes key generation, storage, and verification. During the key generation phase, the user client collaborates with the key management center. The key management center runs on a hardware security module, ensuring that only the user client can access its complete private key. The key management center cannot access the user client's complete private key, but it holds the user client's public key, which can be used for user authentication. This decentralized private key generation process overcomes the limitations of relying solely on the key management center to generate private keys, while also ensuring that the generated keys meet data signature requirements.

[0087] Understandably, by mapping the user's identity identifier to a random seed matrix of the key, and using the accompanying public key as proof, a binding between the user's identity and its public key is established, simplifying the management of a large number of user or device public keys. The key pairs generated in this embodiment are structurally and standardly equivalent to existing post-quantum digital signature schemes. Unlike existing key management mechanisms, this embodiment directly uses the identity identifier as the public key credential, while existing schemes rely on certificates for key management. Since the generated key pairs are equivalent, interoperability and compatibility can be ensured during encryption operations. Furthermore, by directly mapping the identity to the public key, the complex certificate chain management and verification process in traditional public key infrastructures is simplified or even avoided, reducing deployment complexity.

[0088] For key management, the user only needs to store an identity identifier and a small accompanying public key, which greatly reduces the storage required for key management. When the user needs to authenticate the peer's public key in the business system, it can obtain the public key from the public key file based on the peer's identity identifier and accompanying public key. Unlike certificate management, it does not need to store a large number of peer's public keys, which reduces the storage and communication overhead of the device and facilitates the deployment and application of digital signature schemes in resource-constrained environments.

[0089] The lightweight storage model described above significantly reduces the storage resource requirements of terminal devices, making them easier to integrate into resource-constrained IoT / Industrial Internet devices. Simultaneously, because the public key can be dynamically calculated from publicly available information on demand, the storage and communication overhead of a single device does not increase linearly when adding a massive number of devices, thus improving the system's scalability.

[0090] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the key management method of this application. Any simple modifications based on this technical concept are within the protection scope of this application.

[0091] This application also provides a key management system for post-quantum cryptography, comprising a key management center and a user terminal. The key management center is equipped with a key management device. Please refer to [reference needed]. Figure 4The key management device includes: The receiving module 10 is used to receive a request from the user terminal, the request containing the user terminal's identity identifier and a first random number generated by the user terminal; The first generation module 20 is used to generate an accompanying public key bound to the identity identifier based on the first random number and the second random number. The collaborative generation module 30 is used to collaborate with the user terminal to generate a key pair for the user terminal based on the identity identifier and the accompanying public key; the key pair includes the user terminal's post-quantum public key and post-quantum private key; The storage management module 40 is used to write the post-quantum public key into a public key file for management; the public key file is public query information used for user authentication.

[0092] As one embodiment, the collaborative generation module 30 is further configured to: Based on the identity identifier and the accompanying public key, retrieve the random seed for the user terminal from the pre-generated random seed matrix; The random seed and the accompanying public key are sent to the user terminal; the user terminal generates a key pair based on the accompanying public key and the random seed.

[0093] As one embodiment, the collaborative generation module 30 is further configured to: Generate a hash value based on the identity identifier and the accompanying public key; The hash value is divided into multiple consecutive segments. For each column of the pre-generated random seed matrix, the corresponding segment is modulo the row of the random seed matrix to obtain the row coordinate. Based on the row coordinates, a random element at the corresponding position is retrieved from the random seed matrix, and the random elements are accumulated to obtain the random seed for the user terminal.

[0094] As one embodiment, the random seed matrix includes a public random seed matrix and a private random seed matrix, and the random seed includes a public random seed and a private random seed; the collaborative generation module 30 is further configured to: The user terminal adds the private random seed to a pre-generated first private seed to obtain a second private seed, and calculates a key component based on the second private seed; the key component includes a public key component; Receive the public key component sent by the user terminal; The post-quantum public key for the user terminal is generated using the public key component and the public random seed encoding. The user terminal generates the post-quantum public key based on the public key component and the public random seed encoding, and generates the post-quantum private key based on the post-quantum public key and the public key component encoding.

[0095] As one embodiment, the collaborative generation module 30 is further configured to: Randomly generate the first private seed; The first private seed is superimposed with the private random seed.

[0096] As one embodiment, the storage management module 40 is further configured to: Generate the user index for the user terminal based on the post-quantum public key; Based on the user index, the post-quantum public key is written into a public key file for management.

[0097] As one embodiment, the key management device further includes a verification module, used for: Receive a verification request from the verifier; the verification request contains the target identity identifier of the target user terminal being verified, and the target accompanying public key bound to the target identity identifier; Based on the target identity identifier and the target accompanying public key, retrieve the first public seed corresponding to the target user terminal from the pre-generated public random seed matrix; Retrieve the target public key of the target user from the public key file based on the target identity identifier; Decode the second public seed of the target user terminal from the target public key; If the first public seed and the second public seed are the same, in response to the verification request, the target public key is sent to the verifier so that the verifier can authenticate the target user based on the target public key.

[0098] The key management device provided in this application, employing the key management method described in the above embodiments, can solve the technical problem that existing post-quantum cryptography, due to its large key size, poses a performance bottleneck to devices with limited storage and bandwidth, thus restricting its practicality and scalability in resource-constrained scenarios. Compared with the prior art, the beneficial effects of the key management device provided in this application are the same as those of the key management method provided in the above embodiments, and other technical features in the key management device are the same as those disclosed in the methods of the above embodiments, and will not be repeated here.

[0099] This application provides a key management device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, which are executed by the at least one processor to enable the at least one processor to perform the key management method in Embodiment 1 above.

[0100] The following is for reference. Figure 5 The diagram illustrates a structural schematic of a key management device suitable for implementing embodiments of this application. The key management device in these embodiments may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Description), PMPs (Portable Media Players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 5 The key management device shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.

[0101] like Figure 5 As shown, the key management device may include a processing unit 1001 (e.g., a central processing unit, a graphics processing unit, etc.) that can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1002 or a program loaded from a storage device 1003 into a random access memory (RAM) 1004. The RAM 1004 also stores various programs and data required for the operation of the key management device. The processing unit 1001, ROM 1002, and RAM 1004 are interconnected via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to the I / O interface 1006: input devices 1007 including, for example, a touchscreen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output devices 1008 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 1003 including, for example, magnetic tape, hard disk, etc.; and communication devices 1009. Communication device 1009 allows the key management device to communicate wirelessly or wiredly with other devices to exchange data. While the figure shows key management devices with various systems, it should be understood that implementation or possession of all the systems shown is not required. More or fewer systems may be implemented alternatively.

[0102] Specifically, according to the embodiments disclosed in this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments disclosed in this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device, or installed from storage device 1003, or installed from ROM 1002. When the computer program is executed by processing device 1001, it performs the functions defined in the methods of the embodiments disclosed in this application.

[0103] The key management device provided in this application, employing the key management method described in the above embodiments, can solve the technical problem that existing post-quantum cryptography, due to its large key size, poses a performance bottleneck to devices with limited storage and bandwidth, thus restricting its practicality and scalability in resource-constrained scenarios. Compared with the prior art, the beneficial effects of the key management device provided in this application are the same as those of the key management method provided in the above embodiments, and other technical features of this key management device are the same as those disclosed in the method of the previous embodiment, and will not be repeated here.

[0104] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments or examples.

[0105] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

[0106] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., a computer program) stored thereon, which are used to execute the key management method in the above embodiments.

[0107] The computer-readable storage medium provided in this application may be, for example, a USB flash drive, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.

[0108] The aforementioned computer-readable storage medium may be included in the key management device; or it may exist independently and not assembled into the key management device.

[0109] The aforementioned computer-readable storage medium carries one or more programs, which, when executed by the key management device, cause the key management device to: Receive a request from a user, the request containing the user's identity identifier and a first random number generated by the user; Based on the first random number and the second random number, generate an accompanying public key that is bound to the identity identifier; Based on the identity identifier and the accompanying public key, a key pair for the user terminal is generated in collaboration with the user terminal; the key pair includes the user terminal's post-quantum public key and post-quantum private key; The post-quantum public key is written into a public key file for management; the public key file is public query information used for user authentication.

[0110] Computer program code for performing the operations of this application can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a Local Area Network (LAN) or a Wide Area Network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0111] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0112] The modules described in the embodiments of this application can be implemented in software or hardware. The names of the modules do not necessarily limit the functionality of the unit itself.

[0113] The readable storage medium provided in this application is a computer-readable storage medium that stores computer-readable program instructions (i.e., a computer program) for executing the above-described key management method. This addresses the technical problem that existing post-quantum cryptography, due to its large key size, poses a performance bottleneck to devices with limited storage and bandwidth, thus restricting its practicality and scalability in resource-constrained scenarios. Compared to the prior art, the beneficial effects of the computer-readable storage medium provided in this application are the same as those of the key management method provided in the above embodiments, and will not be repeated here.

[0114] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the key management method described above.

[0115] The computer program product provided in this application can solve the technical problem that existing post-quantum cryptography, due to its large key size, poses a performance bottleneck for devices with limited storage and bandwidth, thus restricting its practicality and scalability in resource-constrained scenarios. Compared with the prior art, the beneficial effects of the computer program product provided in this application are the same as those of the key management method provided in the above embodiments, and will not be repeated here.

[0116] The above description is only a part of the embodiments of this application and does not limit the patent scope of this application. All equivalent structural transformations made under the technical concept of this application and using the contents of the specification and drawings of this application, or direct / indirect applications in other related technical fields, are included in the patent protection scope of this application.

Claims

1. A key management method, characterized in that, The key management method, applied in a key management center, includes: Receive a request from a user, the request containing the user's identity identifier and a first random number generated by the user; Based on the first random number and the second random number, generate an accompanying public key that is bound to the identity identifier; Based on the identity identifier and the accompanying public key, a key pair for the user terminal is generated in collaboration with the user terminal; the key pair includes the user terminal's post-quantum public key and post-quantum private key; The post-quantum public key is written into a public key file for management; the public key file is public query information used for user authentication.

2. The key management method as described in claim 1, characterized in that, The step of generating a key pair for the user terminal in cooperation with the user terminal based on the identity identifier and the accompanying public key includes: Based on the identity identifier and the accompanying public key, retrieve the random seed for the user terminal from the pre-generated random seed matrix; The random seed and the accompanying public key are sent to the user terminal; the user terminal generates a key pair based on the accompanying public key and the random seed.

3. The key management method as described in claim 2, characterized in that, The step of retrieving the random seed for the user terminal from a pre-generated random seed matrix based on the identity identifier and the accompanying public key includes: Generate a hash value based on the identity identifier and the accompanying public key; The hash value is divided into multiple consecutive segments. For each column of the pre-generated random seed matrix, the corresponding segment is modulo the row of the random seed matrix to obtain the row coordinate. Based on the row coordinates, a random element at the corresponding position is retrieved from the random seed matrix, and the random elements are accumulated to obtain the random seed for the user terminal.

4. The key management method as described in claim 2, characterized in that, The random seed matrix includes a public random seed matrix and a private random seed matrix, and the random seed includes a public random seed and a private random seed; after the step of sending the random seed and the accompanying public key to the user terminal, the method further includes: The user terminal adds the private random seed to a pre-generated first private seed to obtain a second private seed, and calculates a key component based on the second private seed; the key component includes a public key component; Receive the public key component sent by the user terminal; The post-quantum public key for the user terminal is generated using the public key component and the public random seed encoding. The user terminal generates the post-quantum public key based on the public key component and the public random seed encoding, and generates the post-quantum private key based on the post-quantum public key and the public key component encoding.

5. The key management method as described in claim 4, characterized in that, Before the step of sending the random seed and the accompanying public key to the user terminal, the method further includes: Randomly generate the first private seed; The first private seed is superimposed with the private random seed.

6. The key management method as described in claim 1, characterized in that, The step of writing the post-quantum public key into a public key file for management includes: Generate the user index for the user terminal based on the post-quantum public key; Based on the user index, the post-quantum public key is written into a public key file for management.

7. The key management method according to any one of claims 1 to 6, characterized in that, After the step of writing the post-quantum public key into a public key file for management, the method further includes: Receive a verification request from the verifier; the verification request contains the target identity identifier of the target user terminal being verified, and the target accompanying public key bound to the target identity identifier; Based on the target identity identifier and the target accompanying public key, retrieve the first public seed corresponding to the target user terminal from the pre-generated public random seed matrix; Retrieve the target public key of the target user from the public key file based on the target identity identifier; Decode the second public seed of the target user terminal from the target public key; If the first public seed and the second public seed are the same, in response to the verification request, the target public key is sent to the verifier so that the verifier can authenticate the target user based on the target public key.

8. A key management system for post-quantum cryptography, characterized in that, The key management system includes a key management center and a user terminal, and the key management center is equipped with a key management device. The key management device includes: A receiving module is used to receive a request from a user terminal, the request containing the user terminal's identity identifier and a first random number generated by the user terminal; The first generation module is used to generate an accompanying public key bound to the identity identifier based on the first random number and the second random number. A collaborative generation module is used to collaborate with the user terminal to generate a key pair for the user terminal based on the identity identifier and the accompanying public key; the key pair includes the user terminal's post-quantum public key and post-quantum private key; The storage management module is used to write the post-quantum public key into a public key file for management; the public key file is public query information used for user authentication.

9. A key management device, characterized in that, The device includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the key management method as described in any one of claims 1 to 7.

10. A storage medium, characterized in that, The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, it implements the steps of the key management method as described in any one of claims 1 to 7.