Key bit number multiplication method for shared key generation
Patent Information
- Application Number
- CN202311288564.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-08
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2043-10-08
AI Technical Summary
[0009] The positive effects of this invention are: this method can utilize pseudo-random numbers to assist in mapping a single key bit to multiple key bits, thereby achieving a multiplication of the number of key bits. This method is not limited to any specific technology used to implement the first part of the method; it can use quantum key distribution methods or other methods. Therefore, this method has good versatility. Since the random seeds of the (0,1) uniformly distributed pseudo-random number sequence generators of both terminal A and terminal B are set to binary integers represented by bits stored in the first N elements of list LISTA or list LISTB, and the binary bit sequences stored in lists LISTA and LISTB are the same, the pseudo-random number sequences generated by the (0,1) uniformly distributed pseudo-random number sequence generators of terminal A and terminal B are the same. Furthermore, the bits stored in the first N elements of list LISTA or list LISTB are key bits, whose specific values are random and unknown to third parties, which ensures the randomness and confidentiality of the multiplication operation.
Smart Images

Figure CN117097473B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a method for multiplying the number of key bits in shared key generation, belonging to the field of information security technology. Background Technology
[0002] A Chinese invention patent application with application number 202210000251.4 discloses a method for extracting a shared key for an atmospheric optical channel based on random block vector quantization. This invention patent application provides a method that enables two end units in an atmospheric optical channel to extract a shared key bit sequence from the random fading of the channel. Quantum key distribution, which has received widespread attention in recent years, also enables communicating parties separated by a certain spatial distance to obtain a shared key. In the field of radio communication, researchers are also studying how to extract a shared key from the inherent random characteristics of the channel. For example, a paper in *IEEE Transactions on Mobile Computing*, Vol. 9, No. 1, pp. 17-30, 2010, describes a method for extracting a shared key from radio channel characteristic measurements. The purpose of the above methods is to enable communicating parties separated by a certain spatial distance to possess a shared key. The number of key bits that can be generated for both communicating parties per unit time is called the key generation rate. Practical applications pay close attention to the key generation rate, hoping to maximize it. Researchers at home and abroad have proposed different methods to improve the key generation rate from various perspectives. This invention provides a method to improve the key generation rate, which can achieve a doubling of the number of key bits. Summary of the Invention
[0003] The purpose of this invention is to provide a method for doubling the number of key bits in shared key generation. This method utilizes a (0,1) uniformly distributed pseudo-random number sequence generator in the terminal computer to generate pseudo-random numbers, thereby assisting in mapping a single key bit into multiple key bits, thus achieving a doubling of the key bit count. The technical solution of this method is implemented as follows: 1) The first part of this method is to generate a shared key bit sequence for terminal A and terminal B. The specific operations are as follows: Terminal A and Terminal B, which need to communicate with each other, are separated by a certain distance and both contain computer systems. Terminal A and Terminal B generate a shared key bit sequence. During this process, error estimation, key negotiation, and error checking techniques from quantum key distribution post-processing are used to ensure that the shared key bit sequence of Terminal A is consistent with that of Terminal B. The shared key bit sequence of Terminal A is stored in list LISTA in the memory of Terminal A's computer, and the shared key bit sequence of Terminal B is stored in list LISTB in the memory of Terminal B's computer.
[0004] 2) The second part of this method performs a doubling operation on the number of bits in the shared key bit sequence of end device A and end device B. The specific steps are as follows: Step 201: Set the Gray code bit depth n, and construct the mapping table Map; the mapping table Map contains 2... n A list of elements; such as Figure 1 As shown, each element of the mapping table (Map) stores an n-bit Gray code binary sequence. The i-th element of the mapping table (Map) stores the n-bit Gray code binary sequence corresponding to the decimal number i, where i = 0, 1, …, 2. n -1.
[0005] Step 202: In terminal A, treat the N bits stored in the 0th to N-1th elements of list LISTA as an N-bit binary integer SD, and set the random seed of the (0,1) uniformly distributed pseudo-random number sequence generator to the binary integer SD; create a list LISTA1 in the memory of terminal A, and use the elements of list LISTA1 to store random bits, and make list LISTA1 empty.
[0006] Step 203: For i = N, N+1, N+2, …, M-1, where M represents the number of elements in the list LISTA, i.e., M is the number of bits in the shared key bit sequence generated in the first part of this method. Perform the following operations in sequence: Step 203-1: Generate a pseudo-random number R using a (0,1) uniformly distributed pseudo-random number sequence generator; let k represent the set of integers {0, 1, …, 2}. n-1 For an element of {-1}, calculate the condition k / 2. n-1 ≤R<(k+1) / 2 n-1 The value of k is KDI; Step 203-2: If the i-th element of list LISTA is equal to 0, then add each bit of the n-bit Gray code binary sequence stored in the r0-th element of map to the end of list LISTA1 in sequence; otherwise, add each bit of the n-bit Gray code binary sequence stored in the r1-th element of map to the end of list LISTA1 in sequence, where r0 = 2×KDI and r1 = 2×KDI+1. Step 204: In terminal B, treat the N bits stored in the 0th to N-1th elements of list LISTB as an N-bit binary integer SD, and set the random seed of the (0,1) uniformly distributed pseudo-random number sequence generator to the binary integer SD; create a list LISTB1 in the memory of terminal B, and use the elements of list LISTB1 to store random bits, and make list LISTB1 empty.
[0007] Step 205: For i = N, N+1, N+2, …, M-1, where M represents the number of elements in the list LISTB, i.e., M is the number of bits in the shared key bit sequence generated in the first part of this method. Perform the following operations in sequence: Step 205-1: Generate a pseudo-random number R using a (0,1) uniformly distributed pseudo-random number sequence generator; let k represent the set of integers {0, 1, …, 2}. n-1 For an element of {-1}, calculate the condition k / 2. n-1 ≤R<(k+1) / 2 n-1 The value of k is KDI; Step 205-2: If the i-th element of list LISTB is equal to 0, then add each bit of the n-bit Gray code binary sequence stored in the r0-th element of map to the end of list LISTB1 in sequence; otherwise, add each bit of the n-bit Gray code binary sequence stored in the r1-th element of map to the end of list LISTB1 in sequence, where r0 = 2×KDI and r1 = 2×KDI+1.
[0008] In this method, the elements of the lists LISTA, LISTB, and Map are numbered starting from 0. After completing the second part of the operation, the binary sequences stored in lists LISTA1 and LISTB1 are the shared key bit sequences after the number of bits has been multiplied. The (0,1) uniformly distributed pseudo-random number sequence generators on end A and end B are implemented using the same mathematical model. M and N are both positive integers, and M > N.
[0009] The positive effects of this invention are: this method can utilize pseudo-random numbers to assist in mapping a single key bit to multiple key bits, thereby achieving a multiplication of the number of key bits. This method is not limited to any specific technology used to implement the first part of the method; it can use quantum key distribution methods or other methods. Therefore, this method has good versatility. Since the random seeds of the (0,1) uniformly distributed pseudo-random number sequence generators of both terminal A and terminal B are set to binary integers represented by bits stored in the first N elements of list LISTA or list LISTB, and the binary bit sequences stored in lists LISTA and LISTB are the same, the pseudo-random number sequences generated by the (0,1) uniformly distributed pseudo-random number sequence generators of terminal A and terminal B are the same. Furthermore, the bits stored in the first N elements of list LISTA or list LISTB are key bits, whose specific values are random and unknown to third parties, which ensures the randomness and confidentiality of the multiplication operation. Attached Figure Description
[0010] Figure 1 This is a schematic diagram of a three-dimensional Gray code mapping table (Map). Detailed Implementation
[0011] To make the features and advantages of this method clearer, the method is further described below with reference to specific embodiments. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. In this embodiment, terminal A and terminal B are located on the rooftops of two high-rise buildings, respectively. Both the computer of terminal A and the computer of terminal B are connected to the Internet. The computers of terminal A and terminal B can communicate with each other through the Internet to perform error estimation, key negotiation, and error verification operations on the original shared key via the Internet channel.
[0012] The technical solution of this method is implemented as follows: 1) The first part of this method is to generate a shared key bit sequence for terminal A and terminal B. The specific operations are as follows: Terminal A and Terminal B, which need to communicate with each other, are separated by a certain distance and both contain computer systems. Terminal A and Terminal B generate a shared key bit sequence. During this process, error estimation, key negotiation, and error checking techniques from quantum key distribution post-processing are used to ensure that the shared key bit sequence of Terminal A is consistent with that of Terminal B. The shared key bit sequence of Terminal A is stored in list LISTA in the memory of Terminal A's computer, and the shared key bit sequence of Terminal B is stored in list LISTB in the memory of Terminal B's computer.
[0013] 2) The second part of this method performs a doubling operation on the number of bits in the shared key bit sequence of end device A and end device B. The specific steps are as follows: Step 201: Set the Gray code bit depth n, and construct the mapping table Map; the mapping table Map contains 2... n A list of elements; such as Figure 1 As shown, each element of the mapping table (Map) stores an n-bit Gray code binary sequence. The i-th element of the mapping table (Map) stores the n-bit Gray code binary sequence corresponding to the decimal number i, where i = 0, 1, …, 2. n -1.
[0014] Step 202: In terminal A, treat the N bits stored in the 0th to N-1th elements of list LISTA as an N-bit binary integer SD, and set the random seed of the (0,1) uniformly distributed pseudo-random number sequence generator to the binary integer SD; create a list LISTA1 in the memory of terminal A, and use the elements of list LISTA1 to store random bits, and make list LISTA1 empty.
[0015] Step 203: For i = N, N+1, N+2, …, M-1, where M represents the number of elements in the list LISTA, i.e., M is the number of bits in the shared key bit sequence generated in the first part of this method. Perform the following operations in sequence: Step 203-1: Generate a pseudo-random number R using a (0,1) uniformly distributed pseudo-random number sequence generator; let k represent the set of integers {0, 1, …, 2}. n-1 For an element of {-1}, calculate the condition k / 2. n-1 ≤R<(k+1) / 2 n-1 The value of k is KDI; Step 203-2: If the i-th element of list LISTA is equal to 0, then add each bit of the n-bit Gray code binary sequence stored in the r0-th element of map to the end of list LISTA1 in sequence; otherwise, add each bit of the n-bit Gray code binary sequence stored in the r1-th element of map to the end of list LISTA1 in sequence, where r0 = 2×KDI and r1 = 2×KDI+1. Step 204: In terminal B, treat the N bits stored in the 0th to N-1th elements of list LISTB as an N-bit binary integer SD, and set the random seed of the (0,1) uniformly distributed pseudo-random number sequence generator to the binary integer SD; create a list LISTB1 in the memory of terminal B, and use the elements of list LISTB1 to store random bits, and make list LISTB1 empty.
[0016] Step 205: For i = N, N+1, N+2, …, M-1, where M represents the number of elements in the list LISTB, i.e., M is the number of bits in the shared key bit sequence generated in the first part of this method. Perform the following operations in sequence: Step 205-1: Generate a pseudo-random number R using a (0,1) uniformly distributed pseudo-random number sequence generator; let k represent the set of integers {0, 1, …, 2}. n-1 For an element of {-1}, calculate the condition k / 2. n-1 ≤R<(k+1) / 2 n-1The value of k is KDI; Step 205-2: If the i-th element of list LISTB is equal to 0, then add each bit of the n-bit Gray code binary sequence stored in the r0-th element of map to the end of list LISTB1 in sequence; otherwise, add each bit of the n-bit Gray code binary sequence stored in the r1-th element of map to the end of list LISTB1 in sequence, where r0 = 2×KDI and r1 = 2×KDI+1.
[0017] In this method, the elements of the lists LISTA, LISTB, and Map are numbered starting from 0. After completing the second part of the operation, the binary sequences stored in lists LISTA1 and LISTB1 are the shared key bit sequences after the number of bits has been multiplied. The (0,1) uniformly distributed pseudo-random number sequence generators on end A and end B are implemented using the same mathematical model. M and N are both positive integers, and M > N.
[0018] This embodiment uses the method of Chinese invention patent application No. 202210000251.4 to implement the first part of the method, that is, the memory list LISTA of the computer of terminal A and the memory list LISTB of the computer of terminal B can store the same shared key bit sequence.
[0019] In this embodiment, N=16, n=3, and M=20016; lists LISTA1 and LISTB1 ultimately store 60,000 key bits. When M is much larger than N, the number of bits after doubling n×(MN) will be close to n times the number of bits M before doubling. Those skilled in the art should understand that a (0,1) uniformly distributed pseudo-random number sequence generator can generate a pseudo-random number sequence uniformly distributed within the open interval (0,1). As long as the same random seed is used to set the (0,1) uniformly distributed pseudo-random number sequence generator on both end devices A and B, end devices A and B can obtain the same pseudo-random number sequence. Those skilled in the art should understand that a list is a concept in computer programming; it is a set composed of a series of elements arranged in a sequential order, and is a container for storing data. Those skilled in the art should understand that the first part of this method can also be implemented using quantum key distribution methods or methods for extracting shared keys from radio channel characteristic measurements. Figure 1The diagram shows a three-bit Gray code mapping table (Map). Gray codes guarantee that any two adjacent codes differ by only one bit. Note that lists LISTA and LISTB store the key; only terminals A and B know the specific content of the key, and other third parties are unaware of it. Since the random seed of the (0,1) uniformly distributed pseudorandom number sequence generator comes from a portion of the key's bits, other third parties are also unaware of the pseudorandom number sequence generated by the (0,1) uniformly distributed pseudorandom number sequence generator.
Claims
1. A method for doubling the number of key bits in shared key generation, characterized in that: The technical solution of this method is implemented as follows: 1) The first part of this method is to generate a shared key bit sequence for terminal A and terminal B. The specific operations are as follows: Terminal A and Terminal B, which need to communicate with each other, are separated by a certain distance and both contain computer systems. Terminal A and Terminal B generate a shared key bit sequence. In this process, error estimation, key negotiation, and error checking techniques in quantum key distribution post-processing are used to ensure that the shared key bit sequence of Terminal A and Terminal B are consistent. Store the shared key bit sequence of terminal A in list LISTA of the memory of terminal A's computer, and store the shared key bit sequence of terminal B in list LISTB of the memory of terminal B's computer. 2) The second part of this method performs a doubling operation on the number of bits in the shared key bit sequence of end device A and end device B. The specific steps are as follows: Step 201: Set the Gray code bit depth n, and construct the mapping table Map; the mapping table Map contains 2... n A list of elements; Each element of the mapping table `Map` stores an n-bit Gray code binary sequence. The i-th element of `Map` stores the n-bit Gray code binary sequence corresponding to the decimal number `i`, where `i = 0, 1, …, 2`. n -1; Step 202: In terminal A, treat the N bits stored in the 0th to N-1th elements of list LISTA as an N-bit binary integer SD, and set the random seed of the (0,1) uniformly distributed pseudo-random number sequence generator to the binary integer SD; create a list LISTA1 in the memory of terminal A, and use the elements of list LISTA1 to store random bits, and make list LISTA1 empty; Step 203: For i = N, N+1, N+2, …, M-1, where M represents the number of elements in the list LISTA, i.e., M is the number of bits in the shared key bit sequence generated in the first part of this method. Perform the following operations in sequence: Step 203-1: Generate a pseudo-random number R using a (0,1) uniformly distributed pseudo-random number sequence generator; let k represent the set of integers {0, 1, …, 2}. n-1 Given an element from {-1}, calculate the condition k / 2. n-1 ≤R<(k+1) / 2 n-1 The value of k is KDI; Step 203-2: If the i-th element of the list LISTA is equal to 0, then add each bit of the n-bit Gray code binary sequence stored in the r0-th element of the map to the end of the list LISTA1 in sequence; otherwise, add each bit of the n-bit Gray code binary sequence stored in the r1-th element of the map to the end of the list LISTA1 in sequence, where r0 = 2 × KDI and r1 = 2 × KDI + 1. Step 204: In terminal B, treat the N bits stored in the 0th to N-1th elements of list LISTB as an N-bit binary integer SD, and set the random seed of the (0,1) uniformly distributed pseudo-random number sequence generator to the binary integer SD; create a list LISTB1 in the memory of terminal B, and use the elements of list LISTB1 to store random bits, and make list LISTB1 empty; Step 205: For i = N, N+1, N+2, …, M-1, where M represents the number of elements in the list LISTB, i.e., M is the number of bits in the shared key bit sequence generated in the first part of this method. Perform the following operations in sequence: Step 205-1: Generate a pseudo-random number R using a (0,1) uniformly distributed pseudo-random number sequence generator; let k represent the set of integers {0, 1, …, 2}. n-1 Given an element from {-1}, calculate the condition k / 2. n-1 ≤R<(k+1) / 2 n-1 The value of k is KDI; Step 205-2: If the i-th element of list LISTB is equal to 0, then add each bit of the n-bit Gray code binary sequence stored in the r0-th element of map to the end of list LISTB1 in sequence; otherwise, add each bit of the n-bit Gray code binary sequence stored in the r1-th element of map to the end of list LISTB1 in sequence, where r0 = 2 × KDI and r1 = 2 × KDI + 1. In this method, the elements of the list LISTA, list LISTB, and map are numbered starting from 0; after the second part of this method is executed, the binary sequences stored in list LISTA1 and list LISTB1 are the shared key bit sequences after the number of bits is multiplied; the (0,1) uniform distribution pseudo-random number sequence generator of terminal A and the (0,1) uniform distribution pseudo-random number sequence generator of terminal B are implemented using the same mathematical model; M and N are both positive integers, and M>N.
Citation Information
Patent Citations
Atmospheric optical channel shared key extraction method based on random packet vector quantization
CN114285569A
Polar code coding and decoding method for m-ary orthogonal spread spectrum signal
CN108494526A
Personal safety verification system and similarity search method for data encrypted for confidentiality
WO2015151155A1