A public key encryption and decryption method based on rank distance

CN122513097APending Publication Date: 2026-08-04INSTITUTE OF INFORMATION ENGINEERING CHINESE ACADEMY OF SCIENCES
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610323311.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-03-17
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

但在现有的部分基于秩距离码的公钥方案中,在面对最新的代数攻击和组合攻击时,为了维持预期的安全强度,往往需要对公钥等参数尺寸进行显著增加,这限制了其在受限环境中的应用

Benefits of technology

[0016] The rank-distance-based public-key encryption and decryption method provided by this invention utilizes mixed block noise with partial intersection of support sets to generate the public key. During encryption, the ciphertext is calculated by combining the block noise vector, the public key, and the generator matrix of the augmented Gabidulin auxiliary code. Decryption is performed using the decoding algorithm of the augmented Gabidulin auxiliary code. The mixed block noise mechanism allows partial intersection of the support sets of the respective block noises, which not only effectively reduces the total rank weight generated during decryption, making error correction easier, but also greatly expands the range of system parameters. Because it can tolerate greater parameter flexibility and leverages the efficient decoding capability of the augmented Gabidulin auxiliary code, it can significantly reduce the size of the public key and ciphertext while maintaining a similar security strength, ultimately improving the storage and transmission efficiency of the rank-distance-based cryptosystem.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122513097A_ABST
    Figure CN122513097A_ABST
Patent Text Reader

Abstract

This invention provides a public-key encryption and decryption method based on rank distance, relating to the field of information security technology. The invention utilizes hybrid block noise with partially intersecting support sets to generate the public key. During encryption, the ciphertext is calculated by combining the block noise vector, the public key, and the generator matrix of the Augmented Gabidulin auxiliary code. Decryption is performed using the decoding algorithm of the Augmented Gabidulin auxiliary code. The hybrid block noise mechanism allows partial intersection of the support sets of the respective block noises, effectively reducing the total rank weight generated during decryption, making error correction easier, and greatly expanding the range of system parameters. Due to its ability to tolerate greater parameter flexibility and the efficient decoding capability of the Augmented Gabidulin auxiliary code, the size of the public key and ciphertext can be significantly reduced while maintaining similar security strength, ultimately improving the storage and transmission efficiency of the rank-distance-based cryptosystem.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of information security technology, and in particular to a public key encryption and decryption method based on rank distance. Background Technology

[0002] Current mainstream public-key cryptography schemes are mainly based on the large integer factorization problem and the discrete logarithm problem. The rapid development of quantum computers poses a serious threat to modern cryptography. Since the actual difficulty of decoding under rank distance codes increases rapidly with the size of the parameters, constructed public-key cryptography schemes have smaller parameter sizes than those under Hamming distance codes, making them very attractive in post-quantum cryptography. However, in some existing public-key schemes based on rank distance codes, maintaining the expected security strength against the latest algebraic and combinatorial attacks often requires a significant increase in the size of parameters such as the public key, which limits their application in constrained environments.

[0003] Current solutions primarily involve altering the underlying assumptions of existing schemes, such as employing more complex or multiple difficult problems to enhance security. However, this often leads to a dramatic increase in the size of the public key and ciphertext, significantly reducing encryption and decryption efficiency. On the other hand, some schemes attempt to introduce more complex random errors or multiple noise masking structures to resist algebraic attacks, but this also increases computational overhead and raises the error rate during encryption and decryption.

[0004] While existing technologies that introduce complex random errors or multiple noise masking structures have improved security to some extent, they still cannot effectively reduce the public key size while maintaining security. Therefore, how to reduce the public key size has become an urgent problem to be solved in this field. Summary of the Invention

[0005] This invention provides a public key encryption and decryption method based on rank distance to solve the technical problem of how to reduce the size of public keys.

[0006] This invention provides a public-key encryption / decryption method based on rank distance, applied to a first terminal, comprising: Obtain the first and second random seeds for uniform random sampling; The second random seed is used to generate mixed block noise, and the first random seed and the mixed block noise are used to generate a public key and a private key; the mixed block noise includes multiple block noises that partially intersect the support set. Publish the public key to the second terminal; The system receives ciphertext generated by the second terminal based on the public key, and processes the ciphertext using the private key and an augmented Bitulin auxiliary code decoding algorithm to restore the plaintext message.

[0007] According to the public-key encryption and decryption method based on rank distance provided by the present invention, the step of generating mixed block noise using the second random seed includes: The second random seed is used to perform hash calculations to generate multiple initial sub-vectors; Extract the set of vectors that partially intersect the support sets from the plurality of initial sub-vectors; The vectors in the vector set whose support set dimension is equal to the first preset rank weight are used as the mixed block noise.

[0008] According to the present invention, a public-key encryption and decryption method based on rank distance is provided, wherein generating a public key and a private key using a first random seed and the mixed block noise includes: Using the first random seed and a hash function to generate a verification matrix of random codes, the first random seed is used as the first public key component; Extract the first private key component and the second private key component from the mixed block noise; Multiply the first private key component by the verification matrix and add it to the second private key component to obtain the second public key component; The first random seed that generates the first public key component and the second public key component are combined to form the public key, and the first private key component is used as the private key.

[0009] According to the present invention, a public-key encryption and decryption method based on rank distance is provided, wherein the ciphertext is processed using the private key and an augmented Bitulin auxiliary code decoding algorithm to recover the plaintext message, comprising: The first ciphertext component in the ciphertext is multiplied using the private key to obtain the processing result; The processing result is used to subtract the second ciphertext component in the ciphertext to obtain a noisy codeword. The noisy codeword is reverse-folded and unfolded to obtain a one-dimensional long vector; The one-dimensional long vector is then corrected and decoded using the augmented plus-bitulin auxiliary code decoding algorithm to recover the plaintext message.

[0010] According to the public-key encryption and decryption method based on rank distance provided by the present invention, the step of using the augmented Bitulin auxiliary code decoding algorithm to perform error correction decoding on the one-dimensional long vector to restore the plaintext message includes: Determine the preset rank-weight error correction upper limit corresponding to the augmented Gabitulin auxiliary code; When the total rank weight generated by the mixed block noise in the noisy codeword is less than or equal to the preset rank weight error correction upper limit, the error support set in the one-dimensional long vector is calculated by solving the decoding algorithm of the augmented Bitulin auxiliary code. The error vector is calculated based on the error support set, and the plaintext message is recovered based on the error vector and the one-dimensional long vector.

[0011] This invention also provides a public-key encryption / decryption method based on rank distance, applied to a second terminal, comprising: Obtain the plaintext to be encrypted and the public key published by the first terminal; Generate block noise vectors that partially intersect the support sets; The plaintext to be encrypted is encrypted using the generator matrix of the augmented Gabitulin auxiliary code, the public key, and the block noise vector to obtain the ciphertext; The encrypted text is sent to the first terminal.

[0012] According to the public-key encryption and decryption method based on rank distance provided by the present invention, the step of generating a partially intersecting block noise vector of the support set includes: Obtain the random seed required for encryption, and use the random seed to control hash sampling to generate an initial noise vector; Extract the vector segments from the initial noise vector that intersect each support set and whose dimension is equal to the second preset rank weight to obtain the block noise vector.

[0013] According to the present invention, a public-key encryption and decryption method based on rank distance is provided, wherein the plaintext to be encrypted is encrypted by using the generator matrix of the augmented Gabitulin auxiliary code, the public key, and the block noise vector to obtain ciphertext, including: The verification matrix of the random code is regenerated using the hash function and the first random seed in the public key; The block noise vector is divided into a first noise component, a second noise component, and a third noise component; The first ciphertext component is generated using the verification matrix, the first noise component, and the second noise component. Using the second public key component, the second noise component, the third noise component, and the generator matrix of the auxiliary code in the public key, the plaintext to be encrypted is linearly combined and folded to obtain the second ciphertext component. The ciphertext is obtained by combining the first ciphertext component and the second ciphertext component.

[0014] According to the public-key encryption and decryption method based on rank distance provided by the present invention, the step of generating a first ciphertext component using the parity check matrix, the first noise component, and the second noise component includes: The first ciphertext component is obtained by multiplying the verification matrix by the transpose of the second noise component and then adding the transpose of the first noise component.

[0015] According to a public-key encryption and decryption method based on rank distance provided by the present invention, the method utilizes a second public key component, a second noise component, a third noise component, and a generator matrix of the auxiliary code in the public key to perform linear combination and folding mapping processing on the plaintext to be encrypted to obtain a second ciphertext component, including: The plaintext to be encrypted is encoded using the generator matrix of the auxiliary code, and the encoded vector is folded and mapped to generate folded codeword components. The second public key component is multiplied by the transpose of the second noise component, and then summed with the third noise component and the folded codeword component to obtain the second ciphertext component.

[0016] The rank-distance-based public-key encryption and decryption method provided by this invention utilizes mixed block noise with partial intersection of support sets to generate the public key. During encryption, the ciphertext is calculated by combining the block noise vector, the public key, and the generator matrix of the augmented Gabidulin auxiliary code. Decryption is performed using the decoding algorithm of the augmented Gabidulin auxiliary code. The mixed block noise mechanism allows partial intersection of the support sets of the respective block noises, which not only effectively reduces the total rank weight generated during decryption, making error correction easier, but also greatly expands the range of system parameters. Because it can tolerate greater parameter flexibility and leverages the efficient decoding capability of the augmented Gabidulin auxiliary code, it can significantly reduce the size of the public key and ciphertext while maintaining a similar security strength, ultimately improving the storage and transmission efficiency of the rank-distance-based cryptosystem. Attached Figure Description

[0017] To more clearly illustrate the technical solutions in this invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0018] Figure 1 This is a flowchart illustrating the rank-distance-based public-key encryption and decryption method for a first terminal provided by the present invention.

[0019] Figure 2 This is a flowchart illustrating the rank-distance-based public-key encryption and decryption method for a second terminal provided by the present invention.

[0020] Figure 3 This is a flowchart of the public key encryption scheme provided by the present invention.

[0021] Figure 4 This is a flowchart of the key encapsulation scheme provided by the present invention.

[0022] Figure 5This is a design framework diagram of the public-key cryptography scheme provided by the present invention.

[0023] Figure 6 This is a module structure diagram of the key encapsulation scheme provided by the present invention. Detailed Implementation

[0024] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this invention. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.

[0025] First, some conceptual technical terms involved in this invention will be explained. Public-key encryption (PKE) is a type of public-key cryptography used for data encryption. Key encapsulation mechanism (KEM) is a type of public-key cryptography used for key distribution. Indistinguishability under Chosen-Plaintext Attack (IND-CPA) is a security property of public-key encryption schemes, where an adversary in the model only has the ability to passively listen to the channel content. Indistinguishability under Chosen-Ciphertext Attack (IND-CCA) is a stronger security property of public-key encryption schemes, where an adversary in the model has the ability to actively tamper with the channel content. The Fujisaki-Okamoto conversion is a general technique for enhancing an IND-CPA-secure public-key encryption scheme to an IND-CCA-secure public-key encryption scheme.

[0026] To describe the specific implementation of the algorithm, we first define the necessary symbolic representation: Let the size of the fundamental finite field be q = 2. It is a finite field containing q elements. for of Secondary expansion It is a finite field Previous Irreducible polynomials of degree one It is by The generated ideal, the remaining class ring .make It is a finite set, defined This indicates that elements are selected uniformly and randomly from the set. (Define symbol) This refers to the SHAKE256 hash function. Indicates when As input, the function's output is in the set Uniformly distributed on top. Define the folding map. n1 is a dimension parameter related to the block structure, which will be extended to the domain. Long vector on Convert to T is the matrix transpose operation, and its inverse mapping is represented as: .

[0027] Define a hash function Define the public key entropy extraction function. Define the key expansion function .

[0028] The following is combined with Figures 1 to 6 This invention describes a public-key encryption / decryption method based on rank distance.

[0029] Figure 1 This is a flowchart illustrating the rank-distance-based public-key encryption and decryption method applied to a first terminal provided by the present invention, as shown below. Figure 1 As shown, steps S11, S12, S13 and S14 are included but are not limited to. Figure 2 This is a flowchart illustrating the rank-distance-based public-key encryption and decryption method for a second terminal provided by the present invention, as shown below. Figure 2 As shown, steps S21, S22, S23 and S24 are included but are not limited to.

[0030] Step S11: Obtain the first and second random seeds of uniform random sampling.

[0031] Through security parameters (such as security parameters) ,by Input) to obtain the first and second random seeds for uniform random sampling. For example That is, from a set of bit strings of length 320 Elements are randomly selected uniformly from the data and used as the first random seed. Second random seed Step S11 can provide a cryptographically secure random source for the subsequent generation of a check matrix with a specific algebraic structure and mixed block noise.

[0032] Step S12: Generate mixed block noise using the second random seed, and generate a public key and a private key using the first random seed and the mixed block noise; the mixed block noise contains multiple block noises that partially intersect the support set.

[0033] A second random seed can be used Generate mixed block noise, the mixed block noise It has the property that the support sets partially intersect, that is... , The support set over the base domain. Mixed block noise. Taken from - The noise set has mixed and intersecting support sets for each component. A first random seed can be used. and mixed block noise Generate public key and private key Step S12 can construct a public and private key based on a variant of the Ideal Rank Syndrome Decoding (IRSD) problem, reducing the public key size through a special multi-block noise distribution.

[0034] In one embodiment, step S12, generating mixed block noise using a second random seed, may further include: A hash calculation is performed using a second random seed to generate multiple initial sub-vectors; Extract the set of vectors that partially intersect the support sets from multiple initial sub-vectors; Vectors in the vector set whose support set dimension is equal to the first preset rank weight are used as mixed block noise.

[0035] A second random seed can be used Using the hash function shake256 Sampling generates mixed block noise b is a positive integer, usually 1 or 2. When b=1, the overall scheme framework is similar to RQC (Rank Quasi-Cyclic); when b=2, it is similar to the Piglet scheme framework. The mixed block noise is taken from the 2b-noise set. Defined as Furthermore, the support sets corresponding to each component intersect in a mixed manner. This is the first preset rank weight parameter.

[0036] This allows for the construction of a private key noise distribution that meets specific rank weight requirements.

[0037] In one embodiment, step S12, generating a public key and a private key using a first random seed and mixed block noise, may further include: Using the first random seed and a hash function to generate a check matrix of random codes, the first random seed is used as the first public key component; Extract the first and second private key components from the mixed block noise; Multiply the first private key component by the verification matrix and add it to the second private key component to obtain the second public key component; The first random seed that generates the first public key component is combined with the second public key component to form the public key, and the first private key component is used as the private key.

[0038] The first random seed can be used Through hash function Generate a check matrix for random codes , the first random seed As the first public key component, it can be obtained from mixed block noise. Extract the first private key component Second private key component Calculate the second public key component. Set public key private key This public key constitutes a key with unique multi-block noise. -IRSD instance, its structure is as follows I is the identity matrix, where , Under the IRSD assumption of the decision version, this sample is computationally indistinguishable from a uniform distribution, i.e. It can be considered as randomly generated.

[0039] Combining steps S11 and S12 yields the key generation algorithm shown in Table 1.

[0040] Table 1

[0041] Step S13: Publish the public key to the second terminal.

[0042] The first terminal can publish the generated public key pk to the second terminal via a channel.

[0043] Step S21: Obtain the plaintext to be encrypted and the public key published by the first terminal.

[0044] The second terminal can obtain the plaintext to be encrypted through the channel. ( ) and the public key issued by the first terminal .

[0045] Step S22: Generate the block noise vectors that partially intersect the support sets.

[0046] The second terminal can generate block noise vectors that partially intersect the support sets. The block noise vector is taken from - The noise set, and the support sets of each component are also mixed and intersecting. Step S22 can introduce security-dependent random noise into the ciphertext and reduce the noise rank weight during decryption by utilizing the intersecting property of the support sets.

[0047] In one embodiment, step S22 may further include: Obtain the random seed required for encryption, and use the random seed to control hash sampling to generate an initial noise vector; Extract the vector segments from the initial noise vector that intersect each support set and whose dimension is equal to the second preset rank weight to obtain the block noise vector.

[0048] You can get random ,use Generate block noise vector The block noise vector is 2b+1-noise of the same size, taken from the (2b+1)-noise set. It is defined as satisfying the mixing and intersection of the support sets of each component and satisfying the second preset rank weight parameter ( , , A set of vectors. .in, Block noise vector The internal sub-vector elements, dim, represent the dimension (rank weight) of the support set. For different metrics, the block noise vector... The supporting average parts intersect.

[0049] This allows for the introduction of a secure error mask for encryption.

[0050] Step S23: Use the generator matrix of the augmented Gabitulin auxiliary code, the public key, and the block noise vector to perform encryption calculations on the plaintext to be encrypted, and obtain the ciphertext.

[0051] Augmented Gabidulin auxiliary code (represented as...) The generating matrix of ) is , Here, pk is the code length parameter of the auxiliary code, and k is the dimension parameter of the plaintext space. It can be combined with the public key pk and the block noise vector. The ciphertext C is obtained by performing calculations on the plaintext m to be encrypted. Step S23 can hide the plaintext in a variant instance based on the Ideal Rank Support Learning (IRSL) problem.

[0052] In one embodiment, step S23 may further include: The check matrix of the random code is regenerated using the hash function and the first random seed in the public key; The block noise vector is divided into a first noise component, a second noise component, and a third noise component; The first ciphertext component is generated using the parity check matrix, the first noise component, and the second noise component. Using the second public key component, the second noise component, the third noise component, and the generator matrix of the auxiliary code in the public key, the plaintext to be encrypted is linearly combined and folded to obtain the second ciphertext component. The ciphertext is obtained by combining the first ciphertext component and the second ciphertext component.

[0053] The parity-check matrix of the random code can be recalculated. The block noise vector is divided into the first noise component. Second noise component and the third noise component Generate the first ciphertext component. Second ciphertext component Finally, ciphertext Public key and ciphertext This constitutes another type of noise with unique multi-block noise. -IRSL instance, structure as follows: .

[0054] Therefore, assuming the version is determined -IRSD issues and judgment versions The IRSL problem is difficult, and the cryptographic algorithm of this invention has been proven to satisfy IND-CPA security.

[0055] In one embodiment, generating the first ciphertext component using the parity check matrix, the first noise component, and the second noise component may further include: Multiply the parity-check matrix by the transpose of the second noise component and add the transpose of the first noise component to obtain the first ciphertext component.

[0056] Specifically, it can be calculated This step clarifies the algebraic construction of the first ciphertext component.

[0057] In one embodiment, the second ciphertext component is obtained by using the second public key component, the second noise component, the third noise component, and the generator matrix of the auxiliary code in the public key to perform linear combination and folding mapping on the plaintext to be encrypted. This may further include: The plaintext to be encrypted is encoded using the generator matrix of the auxiliary code, and the encoded vector is folded and mapped to generate folded codeword components. The second public key component is multiplied by the transpose of the second noise component, and then summed with the third noise component and the folded codeword component to obtain the second ciphertext component.

[0058] Specifically, it can be calculated , This is for folding codeword components. This step utilizes the mapping Fold to... The encoded vector in R is converted into a vector in R, thus completing the embedding of the encrypted message.

[0059] Combining steps S21, S22, and S23 yields the encryption algorithm shown in Table 2.

[0060] Table 2

[0061] Step S24: Send the encrypted message to the first terminal.

[0062] The second terminal can send the calculated ciphertext C to the first terminal.

[0063] Step S14: Receive the ciphertext generated by the second terminal based on the public key, and process the ciphertext using the private key and the decoding algorithm of the augmented Bitulin auxiliary code to restore the plaintext message.

[0064] The first terminal can receive the ciphertext C and use the private key sk and the decoding algorithm of the augmented Gabitulin auxiliary code (denoted as sk). Restore the plaintext message .

[0065] In one embodiment, step S14, which involves processing the ciphertext using a decoding algorithm based on the private key and the augmented Gabitulin auxiliary code to recover the plaintext message, may further include: The private key can be used to multiply the first ciphertext component in the ciphertext to obtain the result. ; Utilize the processing results The second ciphertext component in the ciphertext Subtraction is performed to obtain noisy codewords. For noisy codewords Perform reverse folding and unfolding process This yields a one-dimensional long vector; the decoding algorithm using the augmented Gabitulin auxiliary code is then applied. Error correction decoding is performed on a one-dimensional long vector to recover the plaintext message. ,Right now The noisy codewords satisfy .

[0066] The decryption algorithm for step S14 is shown in Table 3.

[0067] Table 3

[0068] This allows for the preparation of noisy data for error correction decoding through algebraic cancellation and inverse mapping.

[0069] Ultimately, we can obtain the following: Figure 3 The flowchart shown is a public key encryption / decryption scheme. Participant A is the first terminal, and participant B is the second terminal.

[0070] The cryptographic algorithm of this invention employs a special block noise distribution, and the selected noise satisfies the following conditions: public key part noise. and encryption noise While maintaining a similar level of security, decryption noise can be reduced. The rank weight is used to reduce the size of the public key for a given decoding failure rate. However, the block structure with multi-block noise used in this invention introduces a slight complexity loss for solving the IRSD problem through OJ attacks and MM attacks. The noise parameter in the cryptographic algorithm of this invention... , , , and The selection of parameters balances the impact on decryption failure rate and attack complexity, allowing for a reduction in parameter size while maintaining the expected security strength.

[0071] In one embodiment, the decoding algorithm of augmented Bitulin auxiliary codes is used to perform error correction decoding on a one-dimensional long vector to recover the plaintext message, which may further include: Determine the preset rank-weight error correction upper limit corresponding to the augmented Gabitulin auxiliary code; When the total rank weight generated by the mixed block noise in the noisy codeword is less than or equal to the preset rank weight error correction upper limit, the error support set in the one-dimensional long vector is calculated by solving the decoding algorithm of the augmented Bitulin auxiliary code. The error vector is calculated based on the error support set, and the plaintext message is recovered based on the error vector and the one-dimensional long vector.

[0072] The correctness of the cryptographic algorithm of this invention depends on the auxiliary code used. The decoding capability, to be precise, requires decoding from noisy codewords. The plaintext message was correctly recovered. ,in Auxiliary codes can correct at least rank errors, among which .

[0073] This invention selects three parameter sets for the IND-CPA secure public-key encryption scheme, achieving security strengths of 128, 192, and 256 bits respectively under the classical computational model. Due to the private key portion of the cryptographic algorithm... Taken from - Noise set, the support sets of each component are mixed and intersecting, and the encrypted part Taken from - The support sets of each component of the noise set are also mixed and intersecting, therefore the rank weight of the decrypted noise satisfies: .if only The decoding algorithm Able to decode correctly ,and then .

[0074] When decryption noise The rank weight satisfies When the total rank weight generated by the decryption noise is less than or equal to the preset rank weight error correction upper limit, the auxiliary code can guarantee that the decoding failure rate meets the specified condition. By solving multiple check equations, the error support set and error vector can be calculated, and the plaintext message can be accurately recovered.

[0075] This allows for the use of rigorous error-correcting decoding algorithms to ensure the correctness of the decryption of the cryptographic scheme.

[0076] In summary, the rank-distance-based public-key encryption and decryption method of this invention utilizes the acquired first and second random seeds to generate specific multi-block noise (hybrid block noise) containing partial intersections of the support sets. Subsequently, during encryption, the ciphertext is calculated by combining the features of this block noise, the public key, and the Augmented Gabidulin code and its corresponding folding mapping mechanism. During decryption, the powerful decoding algorithm of the auxiliary code corrects errors in the inversely folded one-dimensional long vector. This special hybrid block noise mechanism allows partial intersections of the support sets of the respective block noises, effectively reducing the total rank weight generated during decryption, making error correction easier, and greatly expanding the range of system parameters. Furthermore, due to its ability to tolerate greater parameter flexibility and the efficient decoding capability of the Augmented Gabidulin code, this scheme can significantly reduce the size of the public key and ciphertext while maintaining similar security strength, ultimately improving the storage and transmission efficiency of the rank-distance-based cryptosystem.

[0077] Based on the IND-CPA secure public-key encryption scheme, the decryption failure rate is guaranteed to be less than or equal to... Through Fujisaki-Okamoto conversion, this invention also provides an IND-CCA secure key encapsulation scheme, such as... Figure 4 As shown, it includes: The key generation algorithm involves participant A generating a public and private key using security parameters and then publishing the public key. The encapsulation algorithm involves participant B using the obtained public key and randomly selected noise to generate a session key and ciphertext, and then sending the ciphertext to participant A. The decapsulation algorithm allows participant A to decrypt the received ciphertext and obtain the session key.

[0078] The key generation algorithm steps are shown in Table 4.

[0079] Table 4

[0080] The steps for encapsulating the algorithm are shown in Table 5.

[0081] Table 5

[0082] The steps of the decapsulation algorithm are shown in Table 6.

[0083] Table 6

[0084] like Figure 5 As shown, the present invention can be summarized as follows: based on the IRSD problem and a variant of the IRSL problem with special multi-block noise, an IND-CPA secure public key encryption scheme is designed; using the Fujisaki-Okamoto transformation, the IND-CPA secure public key encryption scheme is enhanced into an IND-CCA secure key encapsulation scheme under the Random oracle model (ROM).

[0085] This invention provides a secure IND-CPA public-key encryption scheme based on a quasi-cyclic structure under rank distance. Its underlying difficult problem is a more general variant of the Ideal Rank Checksum Decoding (IRSD) problem and the Ideal Rank Support Learning (IRSL) problem. This variant employs a novel and special hybrid block noise selection mechanism, expanding the range of parameter selection and reducing the public key size. It also uses an augmented BDUTULING auxiliary code multi-checksum technique, which effectively supports the hybrid block noise structure, further reducing the public key size. This invention provides the impact of this special noise method in this variant on the complexity of known algebraic and combinatorial attacks. The proposed public-key encryption scheme provides three parameter sets, achieving security strengths of 128, 192, and 256 bits respectively. Figure 6 As shown, compared to the RQC scheme used in the second round of quantum solicitation after entering NIST, it has a smaller parameter size while maintaining a sufficiently low decoding failure rate. This invention also utilizes the Fujisaki-Okamoto conversion method to enhance the security of the IND-CPA key encapsulation scheme to IND-CCA security.

[0086] The present invention also provides an electronic device, which may include: a processor, a communications interface, a memory, and a communication bus, wherein the processor, the communications interface, and the memory communicate with each other through the communication bus. The processor can invoke logical instructions in the memory to execute a public-key encryption / decryption method based on rank distance.

[0087] Furthermore, the logical instructions in the aforementioned memory can be implemented as software functional units and sold or used as independent products, and can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0088] On the other hand, the present invention also provides a computer program product, which includes a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer is able to execute the public key encryption and decryption methods based on rank distance provided by the above methods.

[0089] In another aspect, the present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, is implemented to perform the rank-distance-based public key encryption and decryption methods provided by the above methods.

[0090] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.

[0091] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.

[0092] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A rank distance based public key encryption and decryption method applied to a first terminal, characterized in that, include: Obtain the first and second random seeds for uniform random sampling; The second random seed is used to generate mixed block noise, and the first random seed and the mixed block noise are used to generate a public key and a private key; the mixed block noise includes multiple block noises that partially intersect the support set. Publish the public key to the second terminal; The system receives ciphertext generated by the second terminal based on the public key, and processes the ciphertext using the private key and an augmented Bitulin auxiliary code decoding algorithm to restore the plaintext message.

2. The rank distance based public key encryption and decryption method according to claim 1, characterized in that, The generation of mixed block noise using the second random seed includes: The second random seed is used to perform hash calculations to generate multiple initial sub-vectors; Extract the set of vectors that partially intersect the support sets from the plurality of initial sub-vectors; The vectors in the vector set whose support set dimension is equal to the first preset rank weight are used as the mixed block noise.

3. The rank distance based public key encryption and decryption method according to claim 1, wherein, The step of generating public and private keys using the first random seed and the mixed block noise includes: Using the first random seed and a hash function to generate a verification matrix of random codes, the first random seed is used as the first public key component; Extract the first private key component and the second private key component from the mixed block noise; Multiply the first private key component by the verification matrix and add it to the second private key component to obtain the second public key component; The first random seed that generates the first public key component and the second public key component are combined to form the public key, and the first private key component is used as the private key.

4. The public key encryption and decryption method based on rank distance according to claim 1, characterized in that, The decoding algorithm using the private key and the augmented Bidullin auxiliary code to process the ciphertext and recover the plaintext message includes: The first ciphertext component in the ciphertext is multiplied using the private key to obtain the processing result; The processing result is used to subtract the second ciphertext component in the ciphertext to obtain a noisy codeword. The noisy codeword is reverse-folded and unfolded to obtain a one-dimensional long vector; The one-dimensional long vector is then corrected and decoded using the augmented plus-bitulin auxiliary code decoding algorithm to recover the plaintext message.

5. The public key encryption and decryption method based on rank distance according to claim 4, characterized in that, The decoding algorithm using the augmented Bidullin auxiliary code to perform error correction decoding on the one-dimensional long vector to recover the plaintext message includes: Determine the preset rank-weight error correction upper limit corresponding to the augmented Gabitulin auxiliary code; When the total rank weight generated by the mixed block noise in the noisy codeword is less than or equal to the preset rank weight error correction upper limit, the error support set in the one-dimensional long vector is calculated by solving the decoding algorithm of the augmented Bitulin auxiliary code. The error vector is calculated based on the error support set, and the plaintext message is recovered based on the error vector and the one-dimensional long vector.

6. A public-key encryption / decryption method based on rank distance, applied to a second terminal, characterized in that, include: Obtain the plaintext to be encrypted and the public key published by the first terminal; Generate block noise vectors that partially intersect the support sets; The plaintext to be encrypted is encrypted using the generator matrix of the augmented Gabitulin auxiliary code, the public key, and the block noise vector to obtain the ciphertext; The encrypted text is sent to the first terminal.

7. The public-key encryption and decryption method based on rank distance according to claim 6, characterized in that, The generation of partially intersecting block noise vectors for the support sets includes: Obtain the random seed required for encryption, and use the random seed to control hash sampling to generate an initial noise vector; Extract the vector segments from the initial noise vector that intersect each support set and whose dimension is equal to the second preset rank weight to obtain the block noise vector.

8. The public key encryption and decryption method based on rank distance according to claim 6, characterized in that, The encryption calculation is performed on the plaintext to be encrypted using the generator matrix of the augmented Gabitulin auxiliary code, the public key, and the block noise vector to obtain the ciphertext, including: The verification matrix of the random code is regenerated using the hash function and the first random seed in the public key; The block noise vector is divided into a first noise component, a second noise component, and a third noise component; The first ciphertext component is generated using the verification matrix, the first noise component, and the second noise component. Using the second public key component, the second noise component, the third noise component, and the generator matrix of the auxiliary code in the public key, the plaintext to be encrypted is linearly combined and folded to obtain the second ciphertext component. The ciphertext is obtained by combining the first ciphertext component and the second ciphertext component.

9. The public key encryption and decryption method based on rank distance according to claim 8, characterized in that, The step of generating the first ciphertext component using the parity check matrix, the first noise component, and the second noise component includes: The first ciphertext component is obtained by multiplying the verification matrix by the transpose of the second noise component and then adding the transpose of the first noise component.

10. The public-key encryption and decryption method based on rank distance according to claim 8, characterized in that, The second ciphertext component is obtained by using the second public key component, the second noise component, the third noise component, and the generator matrix of the auxiliary code in the public key to perform linear combination and folding mapping on the plaintext to be encrypted, including: The plaintext to be encrypted is encoded using the generator matrix of the auxiliary code, and the encoded vector is folded and mapped to generate folded codeword components. The second public key component is multiplied by the transpose of the second noise component, and then summed with the third noise component and the folded codeword component to obtain the second ciphertext component.