CPK key generation method, device, entity and key center

Through multi-period and multi-round operations combined with hash transformation and matrix variable generation, the problem of degradation of key security in the CPK system in the quantum computing environment is solved, and the key complexity and security is improved, which is suitable for modern network environments .

CN113572594BActive Publication Date: 2024-12-27JIN SHANG BO CHUANG BEIJING SCI & TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110844650.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-07-26
Publication Date
2024-12-27
Estimated Expiration
2041-07-26

AI Technical Summary

Technical Problem

The CPK system is difficult to prevent quantum exhaustive attacks when facing quantum computing, resulting in a decrease in key security.

Method used

The key is generated through multi-period and multi-round operations, and the preset private key matrix order and number of operation rounds determine the period and byte number of keys. Combining hash transformation and matrix variables to generate complex private and public keys. Improve the complexity and security of the key.

Benefits of technology

While saving system resources, it significantly improves the complexity and security of keys, effectively prevents quantum exhaustive attacks, and is suitable for key management in modern network environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113572594B_ABST
    Figure CN113572594B_ABST
Patent Text Reader

Abstract

The embodiment of the present invention provides a CPK key generation method, device, entity and key center, belonging to the field of information security technology. The method is applied to the key center, and the method includes: receiving a key application message of an entity, wherein the key application message includes the entity identification; determining the operation cycle of the key using the order of a preset private key matrix, and obtaining the required number of bytes according to the operation cycle and the preset number of operation rounds; performing a hash transformation on the entity identification using a hash key to obtain the operation bytes corresponding to the transformed required number of bytes; obtaining the private key corresponding to the entity identification according to the preset private key matrix, the operation bytes and the preset parameter generation rules, and sending the private key to the entity. The embodiment of the present invention is applicable to the digital signature and verification process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of information security technology, and in particular to a CPK key generation method, device, entity and key center. Background Art

[0002] CPK (Combined Public Key) is the world's first identity-based public key system with digital signature and key encryption functions. CPK is concise, has a large number of combinations, and has a very fast calculation speed. However, in the face of the gradually developing and mature quantum computing, it will inevitably face the possibility of preventing quantum exhaustive enumeration. Summary of the invention

[0003] The purpose of the embodiments of the present invention is to provide a CPK key generation method, device, entity and key center, which solves the problem that the CPK system in the prior art cannot avoid quantum exhaustion. The embodiments of the present invention obtain the key through multiple cycles and multiple rounds of operations, which saves system resources while improving the complexity and security of the private key.

[0004] In order to achieve the above-mentioned purpose, an embodiment of the present invention provides a CPK key generation method, which is applied to a key center, and the method includes: receiving a key application message from an entity, wherein the key application message includes the entity identifier; determining the key operation period by using the order of a preset private key matrix, and obtaining the required number of bytes according to the operation period and a preset number of operation rounds; performing a hash transformation on the entity identifier by using a hash key to obtain operation bytes corresponding to the transformed required number of bytes; obtaining a private key corresponding to the entity identifier according to the preset private key matrix, the operation bytes and a preset parameter generation rule, and sending the private key to the entity.

[0005] Furthermore, the method of determining the operation period of the key by using the order of the preset private key matrix, and obtaining the required number of bytes based on the operation period and the preset number of operation rounds includes: obtaining the operation period of the key according to T=h / 4, wherein T is the operation period and h is the order of the preset private key matrix; obtaining the required number of bytes according to k=6*T*w, wherein k is the required number of bytes and w is the preset number of operation rounds.

[0006] Further, the method of performing a hash transformation on the entity identifier using the hash key to obtain the operation bytes corresponding to the required number of bytes after the transformation includes: Hkey (Alice)=v0,v1,v2,…,v k , and obtain the operation bytes v0, v1, v2, ..., v corresponding to the required number of bytes after transformation k, where Hash is a hash function, Alice is the entity identifier, Hkey is the hash key, and k is the required number of bytes; publish the hash key.

[0007] Furthermore, the private key corresponding to the entity identifier is obtained according to the preset private key matrix, the operation bytes and the preset parameter generation rule, including: forming a group of byte parameters with every three bytes in the operation bytes; indicating two row coordinates of the preset private key matrix respectively after the upper halves of the first two bytes in each group of byte parameters are subjected to a modulo h operation, and indicating two column coordinates of the preset private key matrix respectively after the lower halves corresponding to the first two bytes are subjected to a modulo h operation, wherein h is the order of the preset private key matrix; determining two matrix variables from the preset private key matrix according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters; determining the third byte in each group of byte parameters as a hierarchical parameter; and obtaining the private key corresponding to the entity identifier according to the matrix variables and the hierarchical parameters.

[0008] Further, obtaining the private key corresponding to the entity identifier according to the matrix variable and the hierarchical parameter includes:

[0009] according to The private key corresponding to the entity identifier is obtained, wherein alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, and k is the required number of bytes.

[0010] Further, obtaining the private key corresponding to the entity identifier according to the matrix variables and the hierarchical parameters includes: defining the current year private key and the current year public key, and publishing the current year public key; Get the private key corresponding to the entity identifier, where alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, and year is the current year private key.

[0011] Correspondingly, an embodiment of the present invention also provides a CPK key generation method, which is applied to an entity, and the method includes: when it is monitored that the public key corresponding to the entity identifier of another entity needs to be called, using the order of a preset public key matrix to determine the key operation cycle, and according to the operation cycle and the preset number of operation rounds, obtaining the required number of bytes; using a hash key to perform a hash transformation on the entity identifier of the other entity to obtain the operation bytes corresponding to the transformed required number of bytes; according to the preset public key matrix, the operation bytes and the preset parameter generation rule, obtaining the public key corresponding to the entity identifier of the other entity.

[0012] Furthermore, the method also includes: obtaining a hash key published by a key center and a preset public key matrix.

[0013] Furthermore, the method of determining the operation period of the key using the order of the preset public key matrix, and obtaining the required number of bytes based on the operation period and the preset number of operation rounds includes: obtaining the operation period of the key according to T=h / 4, wherein T is the operation period and h is the order of the preset public key matrix; obtaining the required number of bytes according to k=6*T*w, wherein k is the required number of bytes and w is the preset number of operation rounds.

[0014] Further, the method of performing a hash transformation on the entity identifier of the other entity using the hash key to obtain the operation bytes corresponding to the transformed required number of bytes includes: Hkey (Bob)=u0,u1,u2,…,u k , and obtain the operation bytes u0,u1,u2,…,u corresponding to the required number of bytes after transformation k , wherein Hash is a hash function, Bob is the entity identifier of the other entity, Hkey is the hash key, and k is the required number of bytes.

[0015] Furthermore, the method of obtaining the public key corresponding to the entity identifier of the other entity according to the preset public key matrix, the operation bytes and the preset parameter generation rule includes: forming a group of byte parameters with every three bytes in the operation bytes; using the upper halves of the first two bytes in each group of byte parameters to indicate two row coordinates of the preset public key matrix after a modulo h operation, and using the lower halves corresponding to the first two bytes to indicate two column coordinates of the preset public key matrix after a modulo h operation, wherein h is the order of the preset public key matrix; determining two matrix variables from the preset public key matrix according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters; determining the third byte in each group of byte parameters as a hierarchical parameter; and obtaining the public key corresponding to the entity identifier of the other entity according to the matrix variables and the hierarchical parameters.

[0016] Further, obtaining the public key corresponding to the entity identifier of the other entity according to the matrix variable and the hierarchical parameter includes: Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, and k is the required number of bytes.

[0017] Further, the obtaining of the public key corresponding to the entity identifier of the other entity according to the matrix variables and the hierarchical parameters includes: obtaining the current annual public key published by the key center; Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, k is the required number of bytes, and YEAR is the current year public key.

[0018] Correspondingly, an embodiment of the present invention also provides a CPK key generation device, which is applied to a key center, and the device includes: a receiving module, used to receive a key application message from an entity, wherein the key application message includes the entity identifier; a first processing module, used to determine the key operation cycle using the order of a preset private key matrix, and obtain the required number of bytes based on the operation cycle and a preset number of operation rounds; a second processing module, used to perform a hash transformation on the entity identifier using a hash key, and obtain the operation bytes corresponding to the transformed required number of bytes; a third processing module, used to obtain the private key corresponding to the entity identifier based on the preset private key matrix, the operation bytes and preset parameter generation rules; and a sending module, used to send the private key to the entity.

[0019] Furthermore, the first processing module is specifically used to: obtain the operation cycle of the key according to T=h / 4, wherein T is the operation cycle and h is the order of the preset private key matrix; obtain the required number of bytes according to k=6*T*w, wherein k is the required number of bytes and w is the preset number of operation rounds.

[0020] Furthermore, the second processing module is specifically used to: Hkey (Alice)=v0,v1,v2,…,v k , and obtain the operation bytes v0, v1, v2, ..., v corresponding to the required number of bytes after transformation k , where Hash is a hash function, Alice is the entity identifier, Hkey is the hash key, and k is the required number of bytes; publish the hash key.

[0021] Furthermore, the third processing module is specifically used to: construct a group of byte parameters from every three bytes in the operation bytes; use the upper halves of the first two bytes in each group of byte parameters to indicate two row coordinates of the preset private key matrix after a modulo h operation, and use the lower halves corresponding to the first two bytes to indicate two column coordinates of the preset private key matrix after a modulo h operation, wherein h is the order of the preset private key matrix; determine two matrix variables from the preset private key matrix according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters; determine the third byte in each group of byte parameters as a hierarchical parameter; and obtain the private key corresponding to the entity identifier according to the matrix variables and the hierarchical parameters.

[0022] Furthermore, the third processing module is also used to: The private key corresponding to the entity identifier is obtained, wherein alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, and k is the required number of bytes.

[0023] Furthermore, the third processing module is also used to: define the current year private key and the current year public key, and publish the current year public key; Get the private key corresponding to the entity identifier, where alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, and year is the current year private key.

[0024] Correspondingly, an embodiment of the present invention also provides a CPK key generation device, which is applied to an entity, and the device includes: a first processing module, which is used to determine the key operation cycle using the order of a preset public key matrix when it is detected that the public key corresponding to the entity identifier of another entity needs to be called, and obtain the required number of bytes based on the operation cycle and the preset number of operation rounds; a second processing module, which is used to perform a hash transformation on the entity identifier of the other entity using a hash key to obtain the operation bytes corresponding to the required number of bytes after the transformation; and a third processing module, which is used to obtain the public key corresponding to the entity identifier of the other entity based on the preset public key matrix, the operation bytes and the preset parameter generation rule.

[0025] Furthermore, the device also includes: an acquisition module, used to acquire a hash key published by a key center and a preset public key matrix.

[0026] Furthermore, the first processing module is specifically used to: obtain the operation period of the key according to T=h / 4, wherein T is the operation period and h is the order of the preset public key matrix; obtain the required number of bytes according to k=6*T*w, wherein k is the required number of bytes and w is the preset number of operation rounds.

[0027] Furthermore, the second processing module is specifically used to: Hkey (Bob)=u0,u1,u2,…,u k , and obtain the operation bytes u0,u1,u2,…,u corresponding to the required number of bytes after transformation k , wherein Hash is a hash function, Bob is the entity identifier of the other entity, Hkey is the hash key, and k is the required number of bytes.

[0028] Furthermore, the third processing module is specifically used to: construct a group of byte parameters from every three bytes in the operation bytes; use the upper halves of the first two bytes in each group of byte parameters to indicate two row coordinates of the preset public key matrix after a modulo h operation, and use the lower halves corresponding to the first two bytes to indicate two column coordinates of the preset public key matrix after a modulo h operation, wherein h is the order of the preset public key matrix; determine two matrix variables from the preset public key matrix according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters; determine the third byte in each group of byte parameters as a hierarchical parameter; and obtain the public key corresponding to the entity identifier of the other entity according to the matrix variables and the hierarchical parameters.

[0029] Furthermore, the third processing module is also used to: Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, and k is the required number of bytes.

[0030] Furthermore, the acquisition module is further used to: acquire the current annual public key published by the key center; the third processing module is further used to: Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, k is the required number of bytes, and YEAR is the current year public key.

[0031] Correspondingly, an embodiment of the present invention further provides a key center, which includes the CPK key generation device applied to the key center.

[0032] Correspondingly, an embodiment of the present invention further provides an entity, which includes the CPK key generation device applied to the entity.

[0033] Through the above technical scheme, the order of the preset key matrix is ​​used to determine the key operation cycle, and the key corresponding to the entity identifier is obtained according to the operation cycle and the preset number of operation rounds. The key obtained through multi-cycle and multi-round operations saves computing resources compared to the existing technology, while improving the complexity and security of the key.

[0034] Other features and advantages of the embodiments of the present invention will be described in detail in the subsequent detailed description. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] The accompanying drawings are used to provide a further understanding of the embodiments of the present invention and constitute a part of the specification. Together with the following specific implementations, they are used to explain the embodiments of the present invention, but do not constitute a limitation on the embodiments of the present invention. In the accompanying drawings:

[0036] Figure 1 It is a flow chart of a CPK key generation method provided by an embodiment of the present invention;

[0037] Figure 2 It is a flowchart of another CPK key generation method provided by an embodiment of the present invention;

[0038] Figure 3 It is a structural schematic diagram of a CPK key generation device provided by an embodiment of the present invention;

[0039] Figure 4 It is a structural schematic diagram of another CPK key generation device provided by an embodiment of the present invention;

[0040] Figure 5 It is a structural diagram of another CPK key generation device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0041] The specific implementation of the embodiment of the present invention is described in detail below in conjunction with the accompanying drawings. It should be understood that the specific implementation described here is only used to illustrate and explain the embodiment of the present invention, and is not used to limit the embodiment of the present invention.

[0042] Figure 1 FIG. 1 is a flow chart of a CPK key generation method provided by an embodiment of the present invention. Figure 1 As shown, the method is applied to a key center, and the method comprises the following steps:

[0043] Step 101, receiving a key application message from an entity, wherein the key application message includes an entity identifier;

[0044] Step 102, determining the operation period of the key using the order of the preset private key matrix, and obtaining the required number of bytes according to the operation period and the preset number of operation rounds;

[0045] Step 103, performing a hash transformation on the entity identifier using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation;

[0046] Step 104: Obtain a private key corresponding to the entity identifier according to the preset private key matrix, the operation bytes and preset parameter generation rules, and send the private key to the entity.

[0047] The embodiment of the present invention is based on the elliptic curve E:y 2=x 3 +ax+b(p), where the curve parameters T=(a,b,G,p,n), where G is the base point and n is the order of the base point G. The key center predefines the hash key, the preset private key matrix, the preset public key matrix, the current year private key and the current year public key. The hash key is represented by Hkey, the preset private key matrix and the preset public key matrix are represented by r i,j and R i,j Indicated by . Where r is a random integer less than n, R is r*G, and G is the elliptic curve generator (base point). In addition, the hash key, the preset public key matrix, and the current annual public key are published by the key center and kept by each entity, while the preset private key matrix and the current annual private key are kept by the key center. The entity can be a terminal, a sensor, a phone number, an account number, etc.

[0048] Among them, in the embodiment of the present invention, the private key is determined by the operation cycle and the preset number of operation rounds. Different operation cycles can be obtained for preset private key matrices of different orders. Specifically, according to T=h / 4, the operation cycle of the key is obtained, where T is the operation cycle and h is the order of the preset private key matrix. For example, when the size of the preset private key matrix is ​​4×4, that is, the order is 4, then one round of operation consists of 1 cycle, when the size of the preset private key matrix is ​​8×8, that is, the order is 8, one round of operation consists of 2 cycles, and when the size of the preset private key matrix is ​​16×16, that is, the order is 16, then one round of operation consists of 4 cycles.

[0049] The operation cycle (the order of the preset private key matrix) and the preset number of operation rounds are determined by the actual network application environment and can be set by the user. Once the operation cycle and the preset number of operation rounds within the network are set, the key center for communication within the network calculates the private key according to the set operation cycle and the preset number of operation rounds.

[0050] For the number of bytes required for the subsequent calculation of the operation bytes required for the private key, the required number of bytes can be obtained according to k=6*T*w, where k is the required number of bytes and w is the preset number of operation rounds. For example, when the private key is specified to be composed of one round and two cycles, the required number of bytes is k=6*2*1=12, that is, the required number of bytes is 12; when the private key is specified to be composed of two rounds and two cycles, the required number of bytes is k=6*2*2=24, that is, the required number of bytes is 24.

[0051] Taking the example of entity Alice applying for a private key, in step 103, according to Hash Hkey (Alice)=v0,v1,v2,…,v k , and obtain the operation bytes v0, v1, v2, ..., v corresponding to the required number of bytes after transformation k, where Hash is a hash function, Alice is the entity identifier, and k is the required number of bytes. Each byte is 8 bits long. That is, when the entity identifier is hashed using the hash key, since the required number of bytes has been determined, only the required number of operation bytes needs to be generated, thereby reducing the amount of data operations.

[0052] Then, in step 104, every three bytes in the operation bytes are used to form a group of byte parameters, and the upper halves of the first two bytes in each group of byte parameters are respectively used to indicate two row coordinates of the preset private key matrix after a modulo h operation, and the lower halves corresponding to the first two bytes are respectively used to indicate two column coordinates of the preset private key matrix after a modulo h operation, where h is the order of the preset private key matrix. Then, according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters, two matrix variables are determined from the preset private key matrix, and the third byte in each group of byte parameters is determined as a hierarchical parameter.

[0053] For example, it is specified that the private key is composed of one round and one cycle, that is, the number of bytes required is k=6*1*1=6, that is, the obtained operation bytes are v0, v1, v2, v3, v4, v5, v0, v1, v2 constitute the first group of byte parameters, and v3, v4, v5 constitute the second group of byte parameters. The upper half of the first two bytes in the first group of byte parameters are respectively indicated by the two row coordinates of the preset private key matrix after the modulo h operation. Since each byte is 8 bits, the upper half of v0 and v1 are both 4 bits, that is, the upper half of v0 and v1 are respectively operated by modulo 4, and the values ​​obtained after the modulo 4 operation indicate the two row coordinates of the preset private key matrix, and then the lower half of v0 and v1 are operated by modulo 4, and the values ​​obtained after the modulo 4 operation indicate the column coordinates of the preset private key matrix. Therefore, after the modulo operation of the upper half and the lower half of v0, the two values ​​obtained are used as the row coordinates and the column coordinates, respectively, so as to obtain the first matrix variable indicated in the preset private key matrix. Similarly, after the modulo operation of the upper half and the lower half of v1, the two values ​​obtained are used as the row coordinates and the column coordinates, respectively, so as to obtain the second matrix variable indicated in the preset private key matrix. In addition, the third byte v2 in the first set of byte parameters is determined as a hierarchical parameter.

[0054] Similarly, the third matrix variable and the fourth matrix variable indicated in the preset private key matrix are obtained through v3 and v4 in the second set of byte parameters, and the third byte v5 in the second set of byte parameters is determined as the hierarchical parameter. Therefore, in the example of one round and one cycle, four matrix variables and two hierarchical parameters are obtained. In other words, one cycle includes four matrix variables and two hierarchical parameters determined in two sets of byte parameters.

[0055] Then, the private key corresponding to the entity identifier can be obtained according to the matrix variables and the hierarchical parameters. The private key corresponding to the entity identifier is obtained, wherein alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, and k is the required number of bytes.

[0056] When the private key composition includes the current year's private key, Get the private key corresponding to the entity identifier, where alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, and year is the current year private key.

[0057] Taking the above cycle as an example, four matrix variables can be obtained through v0, v1, v3, and v4, namely and The hierarchical parameters are v2 and v5. Therefore, in the example of one round and one cycle, the private key corresponding to the entity identifier is When the private key structure includes the current year private key, the private key corresponding to the entity identifier is obtained as follows:

[0058] If the private key is specified to be composed of one round and two cycles, the number of bytes required is k = 6*2*1 = 12, and the calculation bytes of the required number of bytes after transformation are v0, v1, v2, ..., v 11 , the private key corresponding to the entity identifier obtained includes two periodic private keys, namely:

[0059] alice=(alice[1]+alice[2])mod n

[0060]

[0061]

[0062] When the private key composition is specified to include the current year private key, the private key corresponding to the entity identifier is obtained as alice=(alice[1]+alice[2]+year)mod n.

[0063] If the private key is specified to be composed of two rounds and two cycles, the number of bytes required is k = 6*2*2 = 24, and the required number of bytes after transformation is obtained as v0, v1, v2, ..., v 23, the private key corresponding to the entity identifier obtained is equivalent to including four periodic private keys, namely:

[0064] alice=(alice[1]+alice[2]+alice[3]+alice[4])mod n

[0065]

[0066]

[0067]

[0068]

[0069] When the private key composition is specified to include the current year's private key, the private key corresponding to the entity identifier is alice=(alice[1]+alice[2]+alice[3]+alice[4]+year)modn.

[0070] Afterwards, the key center may send the obtained private key corresponding to the entity identification to the entity.

[0071] Through the embodiment of the present invention, for the private key generated in one round and one cycle, it is composed of the sum of two matrix variables multiplied by a hierarchical parameter to form a block, and the sum of the other two matrix variables multiplied by another hierarchical parameter to form another block. Therefore, in the private key of one round and one cycle, it is composed of two blocks, and each block is composed of matrix variables and hierarchical parameters. Then a private key is a combination of the matrix equation composed of the matrix variables and the coefficient equation composed of the hierarchical parameters. Therefore, the coefficient equation plays a certain protective role on the matrix equation, and the hierarchical parameters between blocks protect each other and cannot be eliminated. When the hierarchical parameters of the first block are adjusted, the hierarchical parameters of the second block will also change accordingly, thereby forming a relationship between independent variables and dependent variables that can never be solved. In addition, in the embodiment of the present invention, the combination of matrix variables in the prior art is used as a way to generate private keys, and the combination of unit variables is changed to generate private keys, so that the private key is flexible and changeable, and according to the needs of the industrial Internet, it can be in the form of multiple rounds and multiple cycles, saving storage resources while increasing the complexity of the private key.

[0072] As shown in Table 1 below, it lists the relationship between multiple rounds of operations and changes in various matrix sizes:

[0073] Table 1

[0074] hxh W=1 W=2 W=3 4x4 Not recommended <![CDATA[(4.294.967.296) 2 =1.8x10 19 ]]> <![CDATA[(4.294.967.296) 3 =7.9x10 28 ]]> 8x8 <![CDATA[(64x64x256) 4 =1.2x10 24 ]]> <![CDATA[(1.2x10 24 ) 2 =1.4x10 48 ]]> <![CDATA[(1.2x10 24 ) 3 =1.7x10 72 ]]> 16x16 <![CDATA[(256x256x256) 8 =6.2x10 57 ]]> <![CDATA[(6.2x10 57 ) 2 =10 114 ]]>

[0075] It can be seen that when the private key is composed of multiple rounds and cycles, the limited resources are "infinitely" expanded. One cycle of the 8×8 matrix is ​​equivalent to the 32×32 change in the original CPK key generation: 32 32 =1.4×10 48 It can be seen that the operation speed is doubled, but the matrix is ​​reduced by 16 times. According to Shannon's theory (multiple repetitions of simple operations increase the complexity exponentially), multiple rounds of operations based on the multi-block segmentation of the private key greatly increase the complexity. The CPK with multi-block segmentation and multi-round operations has raised the original CPK's simple combination operation to a new level, greatly saving system resources while greatly increasing the amount of change and complexity. It can meet the needs of global open network authentication, and can also meet the needs of closed local network authentication. Customers can flexibly choose the matrix size and number of operation rounds according to different needs. Among them, since the amount of change of the 4×4 matrix in one round of operation cycle is too small, it is not recommended for use in practical applications.

[0076] Accordingly, Figure 2 FIG. 1 is a flow chart of a CPK key generation method provided by an embodiment of the present invention. Figure 2 As shown, the method is applied to an entity, which may be a terminal, a sensor, a phone number, an account number, etc. The method comprises the following steps:

[0077] Step 201, when it is detected that the public key corresponding to the entity identifier of another entity needs to be called, the operation cycle of the key is determined by using the order of the preset public key matrix, and the required number of bytes is obtained according to the operation cycle and the preset number of operation rounds;

[0078] Step 202, performing a hash transformation on the entity identifier of the other entity using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation;

[0079] Step 203: Obtain a public key corresponding to the entity identifier of the other entity according to the preset public key matrix, the operation bytes and preset parameter generation rules.

[0080] Among them, since the key center publishes the hash key, the combined public key matrix and the current annual public key, when the entity receives a digital signature data packet from another entity, it can use the above information and the public key corresponding to the entity identifier of the other entity to verify its digital signature.

[0081] In an embodiment of the present invention, the private key is determined by the operation cycle and the preset number of operation rounds, and the corresponding public key is also determined by the operation cycle and the preset number of operation rounds. Different operation cycles can be obtained for preset public key matrices of different orders. Specifically, the operation cycle of the key is obtained according to T=h / 4, where T is the operation cycle and h is the order of the preset public key matrix. For example, when the size of the preset public key matrix is ​​4×4, that is, the order is 4, then one round of operation consists of 1 cycle, when the size of the preset public key matrix is ​​8×8, that is, the order is 8, one round of operation consists of 2 cycles, and when the size of the preset public key matrix is ​​16×16, that is, the order is 16, then one round of operation consists of 4 cycles. The operation cycle (the order of the preset public key matrix) and the preset number of operation rounds are determined by the actual network application environment and can be set by the user. Once the operation cycle and the preset number of operation rounds in the network are set, the entities communicating in the network calculate the public key according to the set operation cycle and the preset number of operation rounds. In other words, entities and key centers in the same network will use a unified operation cycle and a preset number of operation rounds to ensure that the private keys and public keys generated correspond to each other.

[0082] Then, in step 201, the required number of bytes can be obtained according to k=6*T*w, where k is the required number of bytes and w is the preset number of operation rounds. For example, when the public key is specified to be composed of one round and two cycles, the required number of bytes is k=6*2*1=12, that is, the required number of bytes is 12; when the public key is specified to be composed of two rounds and two cycles, the required number of bytes is k=6*2*2=24, that is, the required number of bytes is 24.

[0083] Taking the public key of another entity Bob as an example, in step 202, according to Hash Hkey (Bob)=u0,u1,u2,…,u k , and obtain the operation bytes u0,u1,u2,…,u corresponding to the required number of bytes after transformation k , where Hash is a hash function, Bob is the entity identifier of the other entity, Hkey is the hash key, and k is the required number of bytes. Each byte is 8 bits long. That is to say, when the entity identifier is hashed using the hash key, since the required number of bytes has been determined, it is sufficient to generate the required number of operation bytes, thereby reducing the amount of data operations.

[0084] Then, in step 203, every three bytes in the operation bytes constitute a group of byte parameters, the upper half of the first two bytes in each group of byte parameters are respectively indicated by two row coordinates of the preset public key matrix after the modulo h operation, and the lower half corresponding to the first two bytes are respectively indicated by two column coordinates of the preset public key matrix after the modulo h operation, where h is the order of the preset public key matrix. Then, according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters, two matrix variables are determined from the preset public key matrix, and the third byte in each group of byte parameters is determined as a hierarchical parameter.

[0085] For example, taking the example that the public key is constituted by one round and one cycle, that is, the number of bytes required is k=6*1*1=6, that is, the obtained operation bytes are u0, u1, u2, u3, u4, u5, u0, u1, u2 constitute the first group of byte parameters, and u3, u4, u5 constitute the second group of byte parameters. The upper half of the first two bytes in the first group of byte parameters are respectively indicated by the two row coordinates of the preset public key matrix after the modulo h operation. Since each byte is 8 bits, the upper half of u0 and u1 are both 4 bits, that is, the upper half of u0 and u1 are respectively operated by modulo 4, and the values ​​obtained after the modulo 4 operation indicate the two row coordinates of the preset public key matrix, and then the lower half of u0 and u1 are operated by modulo 4, and the values ​​obtained after the modulo 4 operation indicate the column coordinates of the preset public key matrix. Therefore, after the modulo operation of the upper half and the lower half of u0, the two values ​​obtained are used as the row coordinates and the column coordinates, respectively, so as to obtain the first matrix variable indicated in the preset public key matrix. Similarly, after the modulo operation of the upper half and the lower half of u1, the two values ​​obtained are used as the row coordinates and the column coordinates, respectively, so as to obtain the second matrix variable indicated in the preset public key matrix. In addition, the third byte u2 in the first set of byte parameters is determined as a hierarchical parameter.

[0086] Similarly, through u3 and u4 in the second set of byte parameters, the third matrix variable and the fourth matrix variable indicated in the preset public key matrix are obtained, and the third byte u5 in the second set of byte parameters is determined as the hierarchical parameter. Therefore, in the example of one round and one cycle, four matrix variables and two hierarchical parameters are obtained.

[0087] Then, the public key corresponding to the entity identification of the other entity may be obtained according to the matrix variables and the hierarchical parameters.

[0088] Specifically, according to Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, and k is the required number of bytes.

[0089] When the public key composition is specified to include the current year's public key, Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, k is the required number of bytes, and YEAR is the current year public key.

[0090] Taking the above cycle as an example, four matrix variables can be obtained through u0, u1, u3, and u4, namely and The hierarchical parameters are u2 and u5. Therefore, in the example of one round and one cycle, the public key corresponding to the entity identifier is When the public key structure includes the current year's public key, the public key corresponding to the entity identifier obtained is

[0091] If the public key is specified to be composed of one round and two cycles, the number of bytes required is k = 6*2*1 = 12, and the operation bytes of the required number of bytes after transformation are u0, u1, u2, ..., u 11 , the public key corresponding to the entity identifier obtained includes two periodic public keys, namely:

[0092] BOB=BOB[1]+BOB[2]

[0093]

[0094]

[0095] When the public key composition is specified to include the current year's public key, the public key corresponding to the entity identifier is obtained as BOB=BOB[1]+BOB[2]+YEAR.

[0096] If the public key is specified to be composed of two rounds and two cycles, the number of bytes required is k = 6*2*2 = 24, and the calculation bytes of the required number of bytes after transformation are u0, u1, u2, ..., u 23 , the public key corresponding to the entity identifier obtained is equivalent to including four periodic public keys, namely:

[0097] BOB=BOB[1]+BOB[2]+BOB[3]+BOB[4]

[0098]

[0099]

[0100]

[0101]

[0102] When the public key composition is specified to include the current year's public key, the public key corresponding to the entity identifier is obtained as BOB=BOB[1]+BOB[2]+BOB[3]+BOB[4]+YEAR.

[0103] Afterwards, the entity may verify the digital signature in the digital signature data packet using the public key corresponding to the entity identification of the other entity.

[0104] In addition, it should be noted that the private key in the embodiment of the present invention is represented by lowercase italics, and the public key is represented by uppercase italics.

[0105] Through the above embodiment, when an entity wants to perform a digital signature, it can apply for a private key from the key center, for example, by sending a key application message, and including the entity identifier in the key application message, thereby obtaining a private key obtained through multi-cycle and multi-round operations, thereby improving the complexity and security of the private key. In addition, when an entity needs to use the public key of another entity for verification, the public key obtained through multi-cycle and multi-round operations can be used.

[0106] In the embodiment of the present invention, the setting of the key matrix (i.e., the setting of the operation cycle) and the preset number of operation rounds can be set according to the network environment of the actual application. For example, for a sensor network within a small range, the size of the key matrix is ​​set to 4×4, and the preset number of operation rounds is one round. If it is an industrial Internet within a larger range, the size of the key matrix can be set to 8×8 or 16×16, and the preset number of operation rounds is one round, two rounds, three rounds, etc., which can be set according to user needs and usage environment.

[0107] Figure 3 Schematic diagram of the structure of a CPK key generation device provided by an embodiment of the present invention. Figure 3 As shown, the device is applied to a key center, and the device 30 includes: a receiving module 31, used to receive a key application message of an entity, wherein the key application message includes the entity identifier; a first processing module 32, used to determine the key operation cycle by using the order of a preset private key matrix, and obtain the required number of bytes according to the operation cycle and the preset number of operation rounds; a second processing module 33, used to perform a hash transformation on the entity identifier by using a hash key, and obtain the operation bytes corresponding to the transformed required number of bytes; a third processing module 34, used to obtain the private key corresponding to the entity identifier according to the preset private key matrix, the operation bytes and the preset parameter generation rule; a sending module 35, used to send the private key to the entity.

[0108] Furthermore, the first processing module is specifically used to: obtain the operation cycle of the key according to T=h / 4, wherein T is the operation cycle and h is the order of the preset private key matrix; obtain the required number of bytes according to k=6*T*w, wherein k is the required number of bytes and w is the preset number of operation rounds.

[0109] Furthermore, the second processing module is specifically used to: Hkey (Alice)=v0,v1,v2,…,v k , and obtain the operation bytes v0, v1, v2, ..., v corresponding to the required number of bytes after transformation k , where Hash is a hash function, Alice is the entity identifier, Hkey is the hash key, and k is the required number of bytes; publish the hash key.

[0110] Furthermore, the third processing module is specifically used to: construct a group of byte parameters from every three bytes in the operation bytes; use the upper halves of the first two bytes in each group of byte parameters to indicate two row coordinates of the preset private key matrix after a modulo h operation, and use the lower halves corresponding to the first two bytes to indicate two column coordinates of the preset private key matrix after a modulo h operation, wherein h is the order of the preset private key matrix; determine two matrix variables from the preset private key matrix according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters; determine the third byte in each group of byte parameters as a hierarchical parameter; and obtain the private key corresponding to the entity identifier according to the matrix variables and the hierarchical parameters.

[0111] Furthermore, the third processing module is also used to: The private key corresponding to the entity identifier is obtained, wherein alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, and k is the required number of bytes.

[0112] Furthermore, the third processing module is also used to: define the current year private key and the current year public key, and publish the current year public key; Get the private key corresponding to the entity identifier, where alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, and year is the current year private key.

[0113] For the operation process and beneficial effects of this device, please refer to the implementation process and beneficial effects of the CPK key generation method applied to the key center mentioned above.

[0114] Accordingly, Figure 4 Schematic diagram of the structure of a CPK key generation device provided by an embodiment of the present invention. Figure 4 As shown, the device is applied to an entity, and the device 40 includes: a first processing module 41, which is used to determine the operation period of the key using the order of a preset public key matrix when it is detected that the public key corresponding to the entity identifier of another entity needs to be called, and obtain the required number of bytes according to the operation period and the preset number of operation rounds; a second processing module 42, which is used to perform a hash transformation on the entity identifier of the other entity using a hash key to obtain the operation bytes corresponding to the transformed required number of bytes; a third processing module 43, which is used to obtain the public key corresponding to the entity identifier of the other entity according to the preset public key matrix, the operation bytes and the preset parameter generation rule.

[0115] Furthermore, if Figure 5 As shown, the device further includes: an acquisition module 51, which is used to acquire a hash key published by a key center and a preset public key matrix.

[0116] Furthermore, the first processing module is specifically used to: obtain the operation period of the key according to T=h / 4, wherein T is the operation period and h is the order of the preset public key matrix; obtain the required number of bytes according to k=6*T*w, wherein k is the required number of bytes and w is the preset number of operation rounds.

[0117] Furthermore, the second processing module is specifically used to: Hkey (Bob)=u0,u1,u2,…,u k , and obtain the operation bytes u0,u1,u2,…,u corresponding to the required number of bytes after transformation k , wherein Hash is a hash function, Bob is the entity identifier of the other entity, Hkey is the hash key, and k is the required number of bytes.

[0118] Furthermore, the third processing module is specifically used to: construct a group of byte parameters from every three bytes in the operation bytes; use the upper halves of the first two bytes in each group of byte parameters to indicate two row coordinates of the preset public key matrix after a modulo h operation, and use the lower halves corresponding to the first two bytes to indicate two column coordinates of the preset public key matrix after a modulo h operation, wherein h is the order of the preset public key matrix; determine two matrix variables from the preset public key matrix according to the two groups of row coordinates and column coordinates indicated in each group of byte parameters; determine the third byte in each group of byte parameters as a hierarchical parameter; and obtain the public key corresponding to the entity identifier of the other entity according to the matrix variables and the hierarchical parameters.

[0119] Furthermore, the third processing module is also used to: Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, and k is the required number of bytes.

[0120] Furthermore, the acquisition module is further used to: acquire the current annual public key published by the key center; the third processing module is further used to: Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, k is the required number of bytes, and YEAR is the current year public key.

[0121] For the operation process and beneficial effects of this device, please refer to the implementation process and beneficial effects of the CPK key generation method applied to the entity mentioned above.

[0122] Correspondingly, an embodiment of the present invention further provides a key center, which includes the CPK key generation device applied to the key center.

[0123] Correspondingly, an embodiment of the present invention further provides an entity, which includes the CPK key generation device applied to the entity.

[0124] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.

[0125] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1A device that provides the functions specified in a block or multiple blocks.

[0126] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0127] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0128] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0129] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0130] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.

[0131] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.

[0132] The above are only embodiments of the present application and are not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included within the scope of the claims of the present application.

Claims

1. A CPK key generation method, characterized in that: The method is applied to a key center, and the method comprises: Receiving a key application message from an entity, wherein the key application message includes an entity identifier; Determine the operation period of the key by using the order of the preset private key matrix, and obtain the required number of bytes according to the operation period and the preset number of operation rounds; Performing a hash transformation on the entity identifier using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation; Obtaining a private key corresponding to the entity identifier according to the preset private key matrix, the operation bytes, and a preset parameter generation rule, and sending the private key to the entity, including: Every three bytes in the operation bytes constitute a set of byte parameters; The upper half of the first two bytes in each group of byte parameters respectively indicate two row coordinates of the preset private key matrix after a modulo h operation, and the lower half corresponding to the first two bytes respectively indicate two column coordinates of the preset private key matrix after a modulo h operation, where h is the order of the preset private key matrix; Determine two matrix variables from the preset private key matrix according to the two sets of row coordinates and column coordinates indicated in each set of byte parameters; The third byte in each set of byte parameters is determined as a hierarchical parameter; A private key corresponding to the entity identifier is obtained according to the matrix variables and the hierarchical parameters.

2. The CPK key generation method according to claim 1, characterized in that: The step of determining the operation cycle of the key by using the order of the preset private key matrix, and obtaining the required number of bytes according to the operation cycle and the preset number of operation rounds includes: According to T=h / 4, the operation period of the key is obtained, wherein T is the operation period and h is the order of the preset private key matrix; According to k=6*T*w, the required number of bytes is obtained, wherein k is the required number of bytes, and w is the preset number of operation rounds.

3. The CPK key generation method according to claim 1, characterized in that: The method of performing a hash transformation on the entity identifier by using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation comprises: According to Hash Hkey (Alice)=v0,v1,v2,…,v k , and obtain the operation bytes v0, v1, v2, ..., v corresponding to the required number of bytes after transformation k , where Hash is a hash function, Alice is the entity identifier, Hkey is the hash key, and k is the required number of bytes; The hash key is published.

4. The CPK key generation method according to claim 1, characterized in that: The obtaining, according to the matrix variable and the hierarchical parameter, a private key corresponding to the entity identifier comprises: according to The private key corresponding to the entity identifier is obtained, wherein alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, and n is the order of the elliptic curve generator.

5. The CPK key generation method according to claim 1, characterized in that: The obtaining, according to the matrix variable and the hierarchical parameter, a private key corresponding to the entity identifier comprises: Define a current year private key and a current year public key, and publish the current year public key; according to Get the private key corresponding to the entity identifier, where alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, year is the current year private key, and n is the order of the elliptic curve generator.

6. A CPK key generation method, characterized in that: The method is applied to an entity, and the method comprises: When it is detected that the public key corresponding to the entity identifier of another entity needs to be called, the operation cycle of the key is determined by using the order of the preset public key matrix, and the required number of bytes is obtained according to the operation cycle and the preset number of operation rounds; Performing a hash transformation on the entity identifier of the other entity using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation; Obtaining a public key corresponding to the entity identifier of the other entity according to the preset public key matrix, the operation bytes, and the preset parameter generation rule, including: Every three bytes in the operation bytes constitute a set of byte parameters; The upper half of the first two bytes in each group of byte parameters respectively indicate two row coordinates of the preset public key matrix after a modulo h operation, and the lower half corresponding to the first two bytes respectively indicate two column coordinates of the preset public key matrix after a modulo h operation, where h is the order of the preset public key matrix; Determine two matrix variables from the preset public key matrix according to the two sets of row coordinates and column coordinates indicated in each set of byte parameters; The third byte in each set of byte parameters is determined as a hierarchical parameter; A public key corresponding to the entity identifier of the other entity is obtained according to the matrix variables and the hierarchical parameters.

7. The CPK key generation method according to claim 6, characterized in that: The method further comprises: Get the hash key and preset public key matrix published by the key center.

8. The CPK key generation method according to claim 6, characterized in that: The step of determining the operation period of the key by using the order of the preset public key matrix, and obtaining the required number of bytes according to the operation period and the preset number of operation rounds includes: According to T=h / 4, the operation period of the key is obtained, wherein T is the operation period and h is the order of the preset public key matrix; According to k=6*T*w, the required number of bytes is obtained, wherein k is the required number of bytes, and w is the preset number of operation rounds.

9. The CPK key generation method according to claim 6, characterized in that: The step of performing a hash transformation on the entity identifier of the other entity by using a hash key to obtain operation bytes corresponding to the transformed required number of bytes includes: According to Hash Hkey (Bob)=u0,u1,u2,…,u k , and obtain the operation bytes u0,u1,u2,…,u corresponding to the required number of bytes after transformation k , wherein Hash is a hash function, Bob is the entity identifier of the other entity, Hkey is the hash key, and k is the required number of bytes.

10. The CPK key generation method according to claim 6, characterized in that: The obtaining, according to the matrix variable and the hierarchical parameter, a public key corresponding to the entity identifier of the other entity comprises: according to Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, and l is the required number of bytes.

11. The CPK key generation method according to claim 6, characterized in that: The obtaining, according to the matrix variable and the hierarchical parameter, a public key corresponding to the entity identifier of the other entity comprises: Get the current annual public key published by the key center; according to Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, k is the required number of bytes, and YEAR is the current year public key.

12. A CPK key generation device, characterized in that: The device is applied to a key center, and comprises: A receiving module, used for receiving a key application message from an entity, wherein the key application message includes an entity identifier; A first processing module, used to determine the operation period of the key by using the order of the preset private key matrix, and obtain the required number of bytes according to the operation period and the preset number of operation rounds; A second processing module is used to perform a hash transformation on the entity identifier using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation; The third processing module is used to obtain the private key corresponding to the entity identifier according to the preset private key matrix, the operation bytes and the preset parameter generation rule, The third processing module is specifically used for: Every three bytes in the operation bytes constitute a set of byte parameters; The upper half of the first two bytes in each group of byte parameters respectively indicate two row coordinates of the preset private key matrix after a modulo h operation, and the lower half corresponding to the first two bytes respectively indicate two column coordinates of the preset private key matrix after a modulo h operation, where h is the order of the preset private key matrix; Determine two matrix variables from the preset private key matrix according to the two sets of row coordinates and column coordinates indicated in each set of byte parameters; The third byte in each set of byte parameters is determined as a hierarchical parameter; Obtaining a private key corresponding to the entity identifier according to the matrix variables and the hierarchical parameters; A sending module is used to send the private key to the entity.

13. The CPK key generation device according to claim 12, characterized in that: The first processing module is specifically used for: According to T=h / 4, the operation period of the key is obtained, wherein T is the operation period and h is the order of the preset private key matrix; According to k=6*T*w, the required number of bytes is obtained, wherein k is the required number of bytes, and w is the preset number of operation rounds.

14. The CPK key generation device according to claim 12, characterized in that: The second processing module is specifically used for: According to Hash Hkey (Alice)=v0,v1,v2,…,v k , and obtain the operation bytes v0, v1, v2, ..., v corresponding to the required number of bytes after transformation k , where Hash is a hash function, Alice is the entity identifier, Hkey is the hash key, and k is the required number of bytes; The hash key is published.

15. The CPK key generation device according to claim 12, characterized in that: The third processing module is also used for: according to Obtain the private key corresponding to the entity identifier, wherein aiice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, and n is the order of the elliptic curve generator.

16. The CPK key generation device according to claim 12, characterized in that: The third processing module is also used for: Define a current year private key and a current year public key, and publish the current year public key; according to Get the private key corresponding to the entity identifier, where alice is the private key corresponding to the entity identifier, r is the preset private key matrix, v is the operation byte, k is the required number of bytes, year is the current year private key, and n is the order of the elliptic curve generator.

17. A CPK key generation device, characterized in that: The device is applied to an entity, and the device comprises: A first processing module is used to determine the operation cycle of the key by using the order of the preset public key matrix when it is detected that the public key corresponding to the entity identifier of another entity needs to be called, and obtain the required number of bytes according to the operation cycle and the preset number of operation rounds; A second processing module is used to perform a hash transformation on the entity identifier of the other entity using a hash key to obtain operation bytes corresponding to the required number of bytes after the transformation; A third processing module is used to obtain a public key corresponding to the entity identifier of the other entity according to the preset public key matrix, the operation bytes and the preset parameter generation rule, The third processing module is specifically used for: Every three bytes in the operation bytes constitute a set of byte parameters; The upper half of the first two bytes in each group of byte parameters respectively indicate two row coordinates of the preset public key matrix after a modulo h operation, and the lower half corresponding to the first two bytes respectively indicate two column coordinates of the preset public key matrix after a modulo h operation, where h is the order of the preset public key matrix; Determine two matrix variables from the preset public key matrix according to the two sets of row coordinates and column coordinates indicated in each set of byte parameters; The third byte in each set of byte parameters is determined as a hierarchical parameter; A public key corresponding to the entity identifier of the other entity is obtained according to the matrix variables and the hierarchical parameters.

18. The CPK key generation device according to claim 17, characterized in that: The device also includes: The acquisition module is used to obtain the hash key published by the key center and the preset public key matrix.

19. The CPK key generation device according to claim 17, characterized in that: The first processing module is specifically used for: According to T=h / 4, the operation period of the key is obtained, wherein T is the operation period and h is the order of the preset public key matrix; According to k=6*T*w, the required number of bytes is obtained, wherein k is the required number of bytes, and w is the preset number of operation rounds.

20. The CPK key generation device according to claim 17, characterized in that: The second processing module is specifically used for: According to Hash Hkey (Bob)=u0,u1,u2,…,u k , and obtain the operation bytes u0,u1,u2,…,u corresponding to the required number of bytes after transformation k , wherein Hash is a hash function, Bob is the entity identifier of the other entity, Hkey is the hash key, and k is the required number of bytes.

21. The CPK key generation device according to claim 17, characterized in that: The third processing module is also used for: according to Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, and k is the required number of bytes.

22. The CPK key generation device according to claim 18, characterized in that: The acquisition module is also used to: acquire the current annual public key published by the key center; The third processing module is also used for: Obtain a public key corresponding to the entity identifier of the other entity, wherein BOB is the public key corresponding to the entity identifier of the other entity, R is the preset public key matrix, u is the operation byte, k is the required number of bytes, and YEAR is the current year public key.

23. A key center, characterized in that: The key center includes a CPK key generation device according to any one of claims 12-16.

24. An entity, characterized in that The entity comprises a CPK key generating device according to any one of claims 17-22.

Citation Information

Patent Citations

  • Moment-based CPK private key generation method and device, entity and private key center

    CN110830237A

  • Digital signature method, signature information verification method, related device and electronic equipment

    CN112560091A

  • Cryptographic processing apparatus and cryptographic processing method, and computer program

    US20050111659A1