Collaborative decryption method, data encryption method, device, equipment, medium and product
By using a method of learning by lattice errors and collaboratively generating public key fragments with the server, the problem of simultaneously achieving resistance to quantum computing, system computational efficiency, and key mechanism uniformity in existing technologies is solved. This results in an efficient and secure collaborative decryption scheme that ensures data confidentiality and system reliability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-29
- Publication Date
- 2026-04-07
AI Technical Summary
Existing collaborative encryption and decryption schemes struggle to balance resistance to quantum computing threats, system computational efficiency, and key mechanism uniformity, resulting in high encryption complexity, increased ciphertext data volume, and difficulty in guaranteeing security.
The algorithm employs a modular learning with errors (MLWE) problem in collaboration with the server to generate public key fragments for both the client and server. Collaborative decryption is performed through fragmented key management, and a digest binding mechanism is used to reduce communication overhead and defend against chosen ciphertext attacks.
It achieves highly reliable encryption and decryption under quantum computing attack resistance, avoids single point of leakage risk, ensures the confidentiality of user data and the reliability of system operation, and reduces communication bandwidth overhead.
Smart Images

Figure CN121814404A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of information security technology, and in particular to a collaborative decryption method, data encryption method, apparatus, device, medium and product. Background Technology
[0002] Currently, various collaborative encryption and decryption schemes exist to enhance edge data security and address quantum computing threats. However, while enhancing security, these schemes also have several limitations: One scheme splits plaintext data before encryption to generate multiple ciphertext components, which are then collaboratively encrypted by different clients using different encryption algorithms, ultimately encapsulating a mixed ciphertext. However, this process requires multiple parties and involves data splitting, resulting in high encryption complexity, increased ciphertext data volume, and low practicality. Another scheme designs collaborative signatures and decryptions based on the elliptic curve discrete logarithm problem. While this enables key collaboration and interactive verification between the client and server, its security relies on classical number theory assumptions and cannot resist quantum computing attacks. Additionally, some schemes attempt to combine quantum-resistant signature algorithm key generation methods with lattice-based decryption algorithms to achieve two-party collaborative decryption. However, since the key mechanisms of digital signatures and encryption algorithms are usually not interoperable, the actual security of this method is vulnerable, making it difficult to guarantee system consistency and reliability.
[0003] Existing technologies struggle to simultaneously achieve quantum-resistant security, system computational efficiency, and a unified key mechanism. Therefore, there is an urgent need for an encryption / decryption method that can effectively resist quantum computing threats while also enabling low-overhead, highly reliable client-server collaborative operation. Summary of the Invention
[0004] This application provides a collaborative decryption method, data encryption method, apparatus, device, medium, and product to address the shortcomings of existing technologies in achieving quantum-resistant security, system computational efficiency, and unified key mechanisms, thereby realizing an effective, low-overhead, and highly reliable encryption and decryption method that effectively resists quantum computing threats.
[0005] This application provides a collaborative decryption method applied to a client, comprising the following steps: Based on the MLWE problem of learning by modal error, the client and the server work together to generate the first public key fragment of the client. The receiver sends ciphertext after encrypting plaintext data using a public key; wherein the public key is generated based on the first public key fragment and the second public key fragment of the server; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; The second part of the ciphertext is parsed, and a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext is sent to the server; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. Receive the intermediate result sent by the server; the intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; Based on the intermediate result and the first private key fragment of the client, the ciphertext is decrypted to obtain the plaintext data.
[0006] According to the collaborative decryption method provided in this application, the step of collaboratively operating with the server based on the MLWE problem of modular error learning to generate the first public key fragment of the client includes: Based on a preset first error distribution, the first private key fragment and the first error polynomial vector of the client are sampled and generated; Generate a first random number seed and send the first random number seed to the server; Receive the second random number seed sent by the server; Based on the first random number seed and the second random number seed, a common polynomial matrix is determined collaboratively. Based on the algebraic structure of the MLWE problem, the first public key fragment is generated by using the first private key fragment, the first error polynomial vector, and the common polynomial matrix through addition and matrix multiplication operations.
[0007] According to a collaborative decryption method provided in this application, the ciphertext is decrypted based on the intermediate result and the first private key fragment of the client to obtain the plaintext data, including: Based on the first private key fragment, the second part of the ciphertext, the intermediate result, and the third part of the ciphertext, the third random number seed used in the encryption process is recovered. The ciphertext is decrypted using the recovered third random number seed and the first part of the ciphertext to obtain the plaintext data; The first part of the ciphertext is obtained by XORing the plaintext data with a random number generated by expanding the third random number seed; the third part of the ciphertext is obtained by compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed; the secret polynomial vector and the second error polynomial vector are generated by sampling based on the fourth random number seed, a preset first error distribution, and a preset second error distribution.
[0008] According to the collaborative decryption method provided in this application, the step of decrypting the ciphertext using the recovered third random number seed and the first part of the ciphertext to obtain the plaintext data includes: Based on the recovered third random number seed and the first part of the ciphertext, the second part of the ciphertext and the third part of the ciphertext are recalculated; If the second part of the ciphertext is the same as the recalculated second part of the ciphertext, and the third part of the ciphertext is the same as the recalculated third part of the ciphertext, then the first part of the ciphertext is decrypted based on the random number generated by expanding the recovered third random number seed, and the plaintext data is obtained.
[0009] According to a collaborative decryption method provided in this application, the step of recalculating the second and third parts of the ciphertext based on the recovered third random number seed and the first part of the ciphertext includes: Based on the recovered third random number seed and the first part of the ciphertext, the fourth random number seed required to generate the second part of the ciphertext and the third part of the ciphertext is recovered; Based on the recovered fourth random number seed, the first error distribution, and the second error distribution, the secret polynomial vector and the second error polynomial vector required to generate the second part of the ciphertext and the third part of the ciphertext are recovered. Based on the recovered secret polynomial vector and the recovered second error polynomial vector, the second and third parts of the ciphertext are recalculated.
[0010] This application also provides a collaborative decryption method, applied on a server side, comprising the following steps: Based on the MLWE problem, the client and server work together to generate the second public key fragment of the server. Receive the first public key fragment sent by the client, and generate a public key based on the first public key fragment and the second public key fragment; The server receives a collaborative decryption request sent by the client; wherein the collaborative decryption request carries a digest of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. Based on the second private key fragment of the server and the digest information, the second part of the ciphertext is decrypted to obtain an intermediate result; The intermediate result is sent to the client so that the client can decrypt the ciphertext using its first private key fragment.
[0011] According to the collaborative decryption method provided in this application, the step of decrypting the second part of the ciphertext based on the second private key fragment of the server and the digest information to obtain an intermediate result includes: Based on the second private key fragment and the digest information, the third error polynomial vector of the server is generated by sampling; Based on the second private key fragment, the third error polynomial vector, and the second part of the ciphertext, a modular operation is performed, and the operation result is compressed to generate the intermediate result.
[0012] According to the collaborative decryption method provided in this application, the step of generating a public key based on the first public key fragment and the second public key fragment includes: The first public key fragment and the second public key fragment are added together to obtain the public key vector; The public key is generated by combining the public key vector with the random number seed used to generate the public polynomial matrix.
[0013] This application also provides a data encryption method applied to a data sender, comprising the following steps: The first part of the ciphertext is obtained by performing an XOR operation between the plaintext data and the random number generated by expanding the third random number seed; The second part of the ciphertext is generated based on the secret polynomial vector, the second error polynomial vector, and the public polynomial matrix generated based on public key sampling; wherein, the secret polynomial vector and the second error polynomial vector are generated based on a fourth random number seed, a preset first error distribution, and a preset second error distribution sampling. The calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed are compressed to generate the third part of the ciphertext. Ciphertext is generated based on the first part of the ciphertext, the second part of the ciphertext, and the third part of the ciphertext, and the ciphertext is sent to the client.
[0014] This application also provides a collaborative decryption device, including the following modules: The first public key shard generation module is used to collaborate with the server based on the MLWE problem of modular error learning to generate the first public key shard of the client. The ciphertext receiving module is used to receive ciphertext sent by the data sender after encrypting plaintext data with a public key; wherein, the public key is generated based on the first public key fragment and the second public key fragment of the server; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; The collaborative decryption request sending module is used to parse the second part of the ciphertext and send a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext to the server; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. An intermediate result receiving module is used to receive intermediate results sent by the server; the intermediate results are obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; The first decryption module is used to decrypt the ciphertext based on the intermediate result and the first private key fragment of the client to obtain the plaintext data.
[0015] This application also provides a collaborative decryption device, including the following modules: The second public key shard generation module is used to perform collaborative operations with the client based on the MLWE problem to generate the second public key shard of the server. A public key generation module is used to receive a first public key fragment sent by the client, and generate a public key based on the first public key fragment and the second public key fragment; A collaborative decryption request receiving module is used to receive a collaborative decryption request sent by the client; wherein, the collaborative decryption request carries a digest of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption; The second decryption module is used to decrypt the second part of the ciphertext based on the second private key fragment of the server and the digest information to obtain an intermediate result; An intermediate result sending module is used to send the intermediate result to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment.
[0016] This application also provides a data encryption device, including the following modules: The first ciphertext generation module is used to perform an XOR operation between the plaintext data and a random number generated by expanding the third random number seed to obtain the first ciphertext. The second ciphertext generation module is used to generate the second ciphertext based on the secret polynomial vector, the second error polynomial vector, and the public polynomial matrix generated based on public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated based on the fourth random number seed, the preset first error distribution, and the preset second error distribution sampling. The third ciphertext generation module is used to compress the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate the third ciphertext. The ciphertext generation module is used to generate ciphertext based on the first part of the ciphertext, the second part of the ciphertext, and the third part of the ciphertext, and send the ciphertext to the client.
[0017] This application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement any of the cooperative decryption methods described above.
[0018] This application also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the cooperative decryption method as described above.
[0019] This application also provides a computer program product, including a computer program that, when executed by a processor, implements any of the collaborative decryption methods described above.
[0020] The collaborative decryption method, data encryption method, apparatus, device, medium, and product provided in this application generate a first public key fragment for the client by cooperating with the server based on the MLWE problem of modular error learning; receiving ciphertext sent by the data sender after encrypting plaintext data using the public key; wherein the public key is generated based on the first public key fragment and the server's second public key fragment; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; parsing the second part of the ciphertext, sending a digest information of the ciphertext and a collaborative decryption request for the second part of the ciphertext to the server; the second part of the ciphertext is the ciphertext component used for collaborative decryption by the server; receiving an intermediate result sent by the server; the intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; and decrypting the ciphertext based on the intermediate result and the client's first private key fragment to obtain plaintext data. This application employs a collaborative mechanism based on the MLWE problem. While ensuring security against quantum computing attacks, it avoids the residing of the complete private key on a single node and eliminates the risk of single-point leakage through fragmented key management on both the client and server sides. During collaborative decryption, the client only sends the ciphertext component and digest information to trigger collaboration, which reduces communication bandwidth overhead and effectively defends against chosen-ciphertext attacks using the digest binding mechanism. Furthermore, the server can only complete part of the decryption calculation based on its fragmented private key and cannot see the original plaintext. Thus, while achieving collaborative functionality, it also ensures the confidentiality of user data and the reliability of system operation. Attached Figure Description
[0021] To more clearly illustrate the technical solutions in this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0022] Figure 1 This is one of the flowcharts of the collaborative decryption method provided in this application.
[0023] Figure 2 This is the second flowchart of the collaborative decryption method provided in this application.
[0024] Figure 3 This is a flowchart illustrating the data encryption method provided in this application.
[0025] Figure 4 This is a schematic diagram of the process by which the client and server collaboratively generate keys, as provided in this application.
[0026] Figure 5 This is a schematic diagram illustrating the process by which the data sender performs public key encryption, as provided in this application.
[0027] Figure 6 This is a schematic diagram of the client-server collaborative decryption process provided in this application.
[0028] Figure 7 This is one of the structural schematic diagrams of the collaborative decryption device provided in this application.
[0029] Figure 8 This is the second schematic diagram of the collaborative decryption device provided in this application.
[0030] Figure 9 This is a schematic diagram of the data encryption device provided in this application.
[0031] Figure 10 This is a schematic diagram of the structure of the electronic device provided in this application. Detailed Implementation
[0032] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0033] Currently, cryptography is increasingly widely used in the security protection of devices such as mobile phones, computers, tablets, and servers. For example, encryption technology is widely used to protect the security of data transmission. The security of cryptography stems from the confidentiality of the key. According to cryptographic security standards, keys typically need to be stored in hardware media. However, many client-side devices do not have hardware key carriers. To ensure the security of data transmission on the client side, a collaborative decryption method is needed. This involves storing a fragment of the private key on the server-side hardware, and decrypting the data through collaboration between the client and the server. This prevents the encrypted data from being cracked even if the client's key is leaked. Even if the client has a hardware carrier, the collaborative decryption scheme can eliminate the risk of single-point key leakage and enhance security measures.
[0034] This application is designed based on the FIPS 203 standard for public-key encryption / key encapsulation using lattice structures. FIPS 203 employs a lattice key encapsulation mechanism determined by the Crystals-Kyber algorithm. The public-private key pair in this application is collaboratively computed by the client and server. The public key is publicly disclosed, while the two private key fragments are stored separately by the client and server. The data sender encrypts data using the public key and sends the ciphertext to the client. After verifying identities, the client and server collaboratively decrypt the ciphertext. All data exchanged between the client and server does not reveal any information about the private key fragments of either party, ensuring data confidentiality even if only one party's private key is leaked. Because the two-party collaborative decryption method in this application is based on the lattice error learning problem, it possesses quantum resistance, similar to the FIPS 203 standard. Furthermore, to minimize the communication overhead between the client and server, this application compresses the transmitted information as much as possible while ensuring the security of the scheme, improving the efficiency of the method in practical applications. Because the gladd decryption scheme inherently possesses the unique property of decryption errors, this application ensures that the scheme is sufficiently secure and has a sufficiently low probability of decryption failure by designing special parameters.
[0035] To better understand the collaborative decryption method and data encryption method proposed in this application, the mathematical symbols, spaces, and functions involved in this application are first defined as follows: (1) Definition of mathematical space: The cryptographic operations of this application are mainly performed on the following mathematical space: : indicates modulo an integer ring; : Represents a modular polynomial The coefficient belongs to polynomial This is the basic algebraic structure for constructing lattices; Indicates inclusion elements dimensional vector; Indicates inclusion elements 3D matrix; : Represents a modular polynomial polynomials with integer coefficients ; Indicates inclusion elements dimensional vector; Indicates inclusion elements 3D matrix.
[0036] (2) Definition of probability distribution: :express Medium polynomial The coefficients follow the parameter. The central binomial distribution, i.e., the polynomial Each coefficient is independently derived from the parameter. Sampling is performed in the central binomial distribution. This represents sampling or assignment. This distribution is the core of ensuring the quantum security of the scheme, used to generate the small-norm private key and error term to ensure the intractability of the modular misdirection learning problem.
[0037] (3) Compression and decompression functions: To ensure the efficiency of the scheme in actual communication, this application adopts the following compression and decompression functions to reduce communication bandwidth: : indicates that Mapping to a set The integer in the middle, that is elements in Compress to Bit; of which This indicates the rounding operation. Indicates compression parameters and ; : indicates that Map back The integer in the compressed file Bit data decompressed back .
[0038] The following is combined with Figures 1-10 This application describes the collaborative decryption method, data encryption method, apparatus, device, medium, and product.
[0039] Figure 1 This is one of the flowcharts illustrating the collaborative decryption method provided in this application, such as... Figure 1As shown, this method is applied to the client and includes the following: Step 101: Based on the MLWE problem of learning by lattice error, the client and the server work together to generate the first public key fragment.
[0040] It should be understood that the Module Learning With Errors (MLWE) problem is based on a computational difficulty assumption in lattice cryptography, used to construct post-quantum secure key encapsulation mechanisms or public-key encryption schemes to ensure the confidentiality of network communications in a quantum computing environment.
[0041] The first public key shard is a public key component constructed by the client using collaboratively generated public parameters and locally generated secret parameters through the MLWE core computation formula. Its role is to synthesize the complete public key together with the server's second public key shard and provide the mathematical basis for collaborative decryption between the two parties.
[0042] The client and server interact cryptographically, each generating a public key shard (including a first public key shard and a second public key shard). These two public key shards are generated based on a lattice error learning problem and rely on public parameters obtained from the server. For example, the client receives a public seed from the server, or a confirmation message from the server regarding the public seed negotiated by both parties. The client then expands the public seed using a preset expansion function or pseudo-random function to construct a public polynomial matrix defined on a polynomial ring. Based on this public polynomial matrix, and combined with the locally generated private key shard and error vector, the first public key shard is calculated and generated. The server generates the second public key shard in the same manner.
[0043] Step 102: Receive the ciphertext sent by the data sender after encrypting the plaintext data with the public key.
[0044] It should be understood that the public key is generated based on a first public key fragment and a second public key fragment held by the server. In one embodiment, the server receives the first public key fragment from the client, performs modular addition on the first public key fragment and the second public key fragment held locally to obtain a public key vector; the public key vector is then combined with the random number seed used to generate the public polynomial matrix to generate the complete public key. For example, refer to... Figure 4 The client will calculate its own first public key fragment. The data is sent to the server, which then combines it with the client's first public key to create a fragment. and the second public key fragment held locally Calculate a portion of the public key ,Will As a complete public key, it is publicly disclosed, in which... To generate a common polynomial matrix The random number seed used.
[0045] Plaintext data refers to messages to be encrypted, that is, target information that needs to be transmitted securely. It can include text strings, image data, audio streams, application code, or binary files of any format.
[0046] In one embodiment, reference Figure 5 The data sender can generate ciphertext based on the following methods: 1) The data sender generates a 256-bit third random number seed. For example, through generate That is, from all possible 256-bit binary strings, a string is randomly and uniformly selected and assigned to it. Specifically, the data sender uses a random number generator to generate a 256-bit binary random sequence as a third random number seed. .
[0047] 2) The data sender uses a hash function. , the third random number seed Expanded to plaintext data bit length Same random number , among which, random number It is a key stream. For example, through generate Among them, hash function The SHAKE-256 algorithm can be used, where the data sender uses a 256-bit third random number seed. Input the SHAKE-256 function, which determines the length of the plaintext data. Read the output of the corresponding length to obtain a pseudo-random bit sequence of the same length as the plaintext data, i.e., a random number. .
[0048] 3) The data sender uses random numbers and plaintext data Generate the first part of the ciphertext ,For example, ,in, The XOR operation masks the plaintext bit sequence with a pseudo-random key stream. Due to the reflexivity of the XOR operation, this operation ensures data confidentiality while allowing a legitimate receiver to reconstruct the same random number. Then, the plaintext data is restored without loss by performing an XOR operation again.
[0049] 4) The data sender will use the third random number seed. And the first part of the ciphertext After concatenation, it is processed by a hash function. The 256-bit fourth random number seed required to generate the second and third parts of the ciphertext. For example, through generate , the third random number seed With the first part of the ciphertext The data is cascaded, and a fourth random number seed is derived by processing the cascaded data using a preset hash function. Among them, the fourth random number seed Used to provide a deterministic source of randomness for generating subsequent ciphertext components.
[0050] 5) The data sender uses the first part of the public key. Random sampling common polynomial matrix , Among them, the common polynomial matrix The coefficients of the polynomial in the middle are all Obtained by uniform sampling.
[0051] 6) The data sender uses a fourth random number seed. According to the preset first error distribution (parameter is...) The central binomial distribution) and the preset second error distribution (parameter is ) and the preset second error distribution (parameter is (using the central binomial distribution), to generate the secret polynomial vector needed to compute the second and third parts of the ciphertext. The second error polynomial vector, wherein the second error polynomial vector includes the error polynomial vector. sum of error polynomial vectors Secret polynomial vector It is a dimension and a common polynomial matrix A matching vector contains elements whose coefficients are polynomials following a specific low-probability distribution (such as a central binomial distribution). For example, Using the fourth random number seed By using a pre-defined deterministic sampling algorithm, secret polynomial vectors are generated on the polynomial ring. and error vector set The sampling algorithm is based on the central binomial distribution to ensure that the generated vector coefficients are short integers, thus meeting the safety requirements of the lattice-based learning problem.
[0052] 7) The data sender uses a common polynomial matrix. Secret polynomial vectors sum of error polynomial vectors Calculate the second part of the ciphertext ,For example, Using the transpose of the common polynomial matrix With secret polynomial vector Perform matrix-vector multiplication and combine the result with the error polynomial vector. Add them together to generate the intermediate ciphertext vector, which is the second part of the ciphertext. The coefficients of the second part of the ciphertext retain full precision over the modal domain.
[0053] 8) The data sender uses the second part of the public key. Secret polynomial vectors sum of error polynomial vectors Calculate the third part of the ciphertext ,For example, Using the second part of the public key With secret polynomial vector Performing the dot product operation yields an approximate shared secret polynomial. ; Approximate shared secret polynomial Error polynomial and the encoded third random number seed Perform polynomial addition to generate the target ciphertext polynomial; based on the third part of the ciphertext... compression parameters The coefficients of the target ciphertext polynomial are compressed and serialized to obtain the third part of the ciphertext. .
[0054] 9) The data sender combines the three parts of the ciphertext into a complete ciphertext. Then it is sent to the client.
[0055] The client receives the ciphertext sent by the data sender after encrypting the plaintext data with the public key.
[0056] Step 103: Parse the second part of the ciphertext and send a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext to the server.
[0057] The second part of the ciphertext is the ciphertext component used for collaborative decryption by the server.
[0058] The digest information of ciphertext refers to a data fingerprint of fixed bit length obtained by processing the complete ciphertext data using a preset one-way hash function or compression mapping algorithm. This digest information is used to verify the integrity of the ciphertext data and serves as a context input parameter for subsequently generating a shared session key. In one embodiment, the digest information is a fixed-length bit string obtained by hashing (or compressing) the complete ciphertext. For example, a 256-bit digest value generated by performing a SHA3-256 hash operation on the complete bit sequence of the ciphertext.
[0059] A collaborative decryption request is a service call instruction or data transmission message initiated by a client to a server. The collaborative decryption request carries a ciphertext component (i.e., the second ciphertext) for the server to perform private key operations, as well as a digest information for binding the security context. The collaborative decryption request triggers the server to perform partial decryption or linear transformation operations on the second ciphertext using a fragment of its second private key.
[0060] The complete ciphertext is parsed to extract the second part of the ciphertext used for server-side collaborative computation; the complete ciphertext is compressed using a preset hash function to generate a digest of the ciphertext; a collaborative decryption request is sent to the server, containing the second part of the ciphertext and its digest. For example, when the client receives the ciphertext... Then, the ciphertext Split into three parts of ciphertext The client uses a hash function. ciphertext Compressed into a 256-bit digest. , such as through generate The client will send the second part of the encrypted text. and the digest information of the entire ciphertext Send it to the server to request collaborative decryption.
[0061] Step 104: Receive the intermediate results sent by the server.
[0062] The intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and digest information.
[0063] It should be understood that the intermediate result after processing part of the encrypted information can be regarded as an instance of the lattice error learning problem, indistinguishable from uniform random polynomial computation, ensuring zero leakage of the server's private key. By compressing the intermediate result, while ensuring a sufficiently low probability of decryption failure, the transmission bandwidth between the server and the client is reduced, thereby improving the actual operating efficiency of the solution.
[0064] The server generates a third error polynomial vector based on the second private key fragment and digest information. It then performs modular operations on the second private key fragment, the third error polynomial vector, and the second part of the ciphertext, and compresses the operation results to generate intermediate results.
[0065] In one embodiment, after the server verifies the client's identity, it uses the digest information of the entire ciphertext. and its own second private key fragment Calculate the third error polynomial vector For example, through generate ,in, This indicates that the summary information will be displayed. Sharding with the second private key The concatenation / cascading process involves the server concatenating the received ciphertext digest with the locally stored second private key fragment. A preset sampling function is then used to process the concatenated data, generating a mask error vector that follows a preset distribution (such as a central binomial distribution), i.e., a third error polynomial vector. The server uses the second part of the encrypted message. Second private key fragment and the third error polynomial vector Calculate the intermediate results of decryption .For example Specifically, the inner product (or linear transformation) operation is performed on the transposed second private key fragment and the second part of the ciphertext to obtain the initial decryption component; the third error polynomial vector is then... The components are superimposed onto the initial decryption component, and modulo-digital compression is performed on the superimposed result to generate an intermediate decryption result. The server then uses this intermediate decryption result. Send to the client.
[0066] It should be understood that the server needs to verify the legitimacy of the client sending the collaborative decryption request to ensure controllable access to the collaborative decryption service, prevent unauthorized use and abuse of service resources, and provide auditability for decryption operations. For example, authentication can be achieved through one of the following methods: verifying the validity of the digital certificate attached to the client; verifying the client-initiated challenge-response based identity verification; or verifying the session token or access key shared with the client.
[0067] The client receives intermediate results sent by the server.
[0068] Step 105: Based on the intermediate result and the first private key fragment of the client, the ciphertext is decrypted to obtain the plaintext data.
[0069] The client recovers the random parameters used in the encryption process based on the intermediate results, the first private key fragment, and at least one other component in the ciphertext. It then uses the recovered random parameters to perform a symmetric decryption operation on the ciphertext to restore the plaintext data.
[0070] The collaborative decryption method provided in this application embodiment generates a first public key fragment for the client by cooperating with the server based on the MLWE problem of modular error learning; receives ciphertext sent by the data sender after encrypting plaintext data using the public key; wherein the public key is generated based on the first public key fragment and the server's second public key fragment; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; parses the second part of the ciphertext in the ciphertext and sends a digest information of the ciphertext and a collaborative decryption request for the second part of the ciphertext to the server; the second part of the ciphertext is the ciphertext component used for collaborative decryption by the server; receives an intermediate result sent by the server; the intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; and decrypts the ciphertext based on the intermediate result and the client's first private key fragment to obtain the plaintext data. This application employs a collaborative mechanism based on the MLWE problem. While ensuring security against quantum computing attacks, it avoids the residing of the complete private key on a single node and eliminates the risk of single-point leakage through fragmented key management on both the client and server sides. During collaborative decryption, the client only sends the ciphertext component and digest information to trigger collaboration, which reduces communication bandwidth overhead and effectively defends against chosen-ciphertext attacks using the digest binding mechanism. Furthermore, the server can only complete part of the decryption calculation based on its fragmented private key and cannot see the original plaintext. Thus, while achieving collaborative functionality, it also ensures the confidentiality of user data and the reliability of system operation.
[0071] Based on the above embodiments, the step of cooperating with the server on the MLWE problem based on lattice error learning to generate the first public key shard of the client includes: Based on a preset first error distribution, the first private key fragment and the first error polynomial vector of the client are sampled and generated; Generate a first random number seed and send the first random number seed to the server; Receive the second random number seed sent by the server; Based on the first random number seed and the second random number seed, a common polynomial matrix is determined collaboratively. Based on the algebraic structure of the MLWE problem, the first public key fragment is generated by using the first private key fragment, the first error polynomial vector, and the common polynomial matrix through addition and matrix multiplication operations.
[0072] It should be understood that the first error distribution is a small error distribution, which is a probability distribution. For example, the first error distribution has parameters... Central binomial distribution ,in, It is a small positive integer used as a parameter of the distribution to control the magnitude and variance of the error.
[0073] Using a preset error distribution sampler, the client's first private key fragment and first error polynomial vector are generated by sampling on the polynomial ring. A first random number seed is generated and sent to the server, while a second random number seed is received from the server. Based on the combination of the first and second random number seeds, a common polynomial matrix is generated through pseudo-random expansion. According to the linear relationship of the modular error learning problem, the common polynomial matrix and the first private key fragment are multiplied by matrix to obtain a linear transformation result. The linear transformation result is then added to the first error polynomial vector by modular addition to generate the first public key fragment.
[0074] In one embodiment, reference Figure 4 The main steps for the client and server to collaboratively generate public key shards based on the MLWE problem include: 1) The client uses the following parameters: The central binomial distribution is used to sample and generate the first private key fragment. and the first error polynomial vector For example, through generate ,pass generate The server also determines the parameters accordingly. The central binomial distribution is used to sample and generate a second private key fragment. sum of error polynomial vectors For example, through generate ,pass generate The first private key fragment Second private key sharding All are private key polynomial vectors.
[0075] 2) The client and server each generate their own 256-bit first random number seed. Second random number seed For example, through generate ,pass generate Then they send each other their own generated random number seeds, and calculate the XOR of the two random number seeds. and each through Random sampling common polynomial matrix Among them, the common polynomial matrix The coefficients of the polynomial in the middle are all Obtained through uniform sampling. It should be understood that the common polynomial matrix is calculated by generating it separately on the client and server sides. The required random numbers can avoid the unilateral generation of a seemingly random polynomial matrix with a special trapdoor structure. This poses a potential threat to the security of the solution.
[0076] 3) The client uses its own first private key fragment. and the first error polynomial vector Calculate its own first public key fragment ,like + The server also uses its own second private key for fragmentation. sum of error polynomial vectors Calculate its own second public key fragment ,like + .
[0077] This application embodiment uses a client and server to collaboratively generate a random number seed to jointly determine a common polynomial matrix, ensuring the fairness and unmanipulation of the generated common parameters and preventing any party from implanting a backdoor in the parameter selection process. At the same time, the client independently samples and generates private key fragments and error vectors locally, and only publicly discloses the public key fragments calculated based on the MLWE algebraic structure. This ensures the absolute privacy and security of the client's private key fragments while achieving distributed key negotiation, effectively eliminating the single point of trust risk in key generation.
[0078] Based on the above embodiments, the step of decrypting the ciphertext based on the intermediate result and the first private key fragment of the client to obtain the plaintext data includes: Based on the first private key fragment, the second part of the ciphertext, the intermediate result, and the third part of the ciphertext, the third random number seed used in the encryption process is recovered. The ciphertext is decrypted using the recovered third random number seed and the first part of the ciphertext to obtain the plaintext data.
[0079] It should be understood that the first part of the ciphertext is obtained by XORing the plaintext data with a random number generated by expanding the third random number seed; the third part of the ciphertext is obtained by compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed; the secret polynomial vector and the second error polynomial vector are generated by sampling based on the fourth random number seed, the preset first error distribution, and the preset second error distribution.
[0080] The client first performs modulo-digital decompression on the received server-decrypted fragment (i.e., intermediate result) and the locally stored third ciphertext. This operation maps the data in the compressed domain back to the numerical space of the polynomial ring to align the computational magnitude. Then, based on the first private key fragment, the second ciphertext, the decompressed intermediate result, and the decompressed third ciphertext, the client recovers the third random number seed used in the encryption process. For example, the client uses the decompressed... and , one's own first private key fragment Second part of the ciphertext Third random number seed for recovering encrypted messages ,in, The client utilizes the recovered third random number seed. The key stream is reconstructed using a preset pseudo-random expansion function. The key stream is then XORed with the first part of the ciphertext to reverse-engineer the original plaintext data.
[0081] This application's embodiments achieve client-side collaborative decryption without exposing the complete private key and plaintext data through private key fragmentation aggregation and decompression alignment technology, thus balancing the security of distributed key management with the operational correctness of post-quantum cryptography algorithms.
[0082] In one embodiment, the ciphertext is decrypted using the recovered third random number seed and the first part of the ciphertext to obtain plaintext data. This includes: recalculating the second and third parts of the ciphertext based on the recovered third random number seed and the first part of the ciphertext; if the second part of the ciphertext is the same as the recalculated second part of the ciphertext, and the third part of the ciphertext is the same as the recalculated third part of the ciphertext, then the first part of the ciphertext is decrypted based on the random number generated by expanding the recovered third random number seed to obtain plaintext data.
[0083] For example, the client is based on the recovered third random number seed. and the first part of the received ciphertext. The encryption process is re-encapsulated to generate the reconstructed second and third ciphertext parts. These reconstructed ciphertext parts are then compared bit-by-bit with the original second and third ciphertext parts in the received ciphertext. Only when the comparison results match is the ciphertext deemed valid, and it is then expanded using the recovered third random number seed. The generated keystream is used to decrypt the first part of the ciphertext to output plaintext data; otherwise, decryption is deemed to have failed.
[0084] This application's embodiments introduce a consistency verification mechanism based on re-encryption, ensuring that valid plaintext is only output when the ciphertext has not been tampered with and the original seed has been correctly decrypted. This verification-before-output mechanism eliminates the error oracle, effectively resisting proactive ciphertext selection attacks and improving the system's robustness in open network environments.
[0085] In one embodiment, recalculating the second and third ciphertexts based on the recovered third random number seed and the first ciphertext includes: recovering the fourth random number seed required to generate the second and third ciphertexts based on the recovered third random number seed and the first ciphertext; recovering the secret polynomial vector and the second error polynomial vector required to generate the second and third ciphertexts based on the recovered fourth random number seed, the first error distribution, and the second error distribution; and recalculating the second and third ciphertexts based on the recovered secret polynomial vector and the recovered second error polynomial vector.
[0086] For example, the recovered third random number seed is concatenated with the first part of the ciphertext using a hash operation to recover the fourth random number seed. Using the recovered fourth random number seed as an entropy source, and combining it with a preset first error distribution and a second error distribution, the secret polynomial vector and the second error polynomial vector from the encryption process are regenerated through pseudo-random expansion. Using the public polynomial matrix, the receiver's public key, and the regenerated secret polynomial vector and the second error polynomial vector, linear transformations and addition operations are performed respectively to obtain the second and third parts of the ciphertext used for comparison.
[0087] This application's embodiments achieve efficient local verification by leveraging the deterministic characteristics of pseudo-random functions without increasing additional interaction overhead. Compared to traditional digital signature verification, the reconstruction verification method based on hash and pseudo-random generators has low computational complexity and does not rely on additional signature key management, making it suitable for resource-constrained IoT devices or high-concurrency servers.
[0088] In one embodiment, the client needs to utilize a fragment containing the server's second private key. Intermediate results of information Combined with its own first private key fragment Collaborative computing to recover and decrypt ciphertext Required random number seed This allows for the completion of the full decryption operation. The client cannot complete decryption independently and requires the complementarity of private key fragments from both parties.
[0089] refer to Figure 6 The client and server use their respective private keys to shard. and Collaborative completion of encrypted text The complete decryption process is as follows: 1) The client receives the intermediate result of the decryption calculation from the server. Afterwards, Perform decompression operation .
[0090] 2) The client will send the third part of the ciphertext. Perform decompression operation .
[0091] 3) The client uses the decompressed... and , one's own first private key fragment Second part of the ciphertext random number seed for recovering encrypted messages .
[0092] 4) The client uses the recovered random number seed And the first part of the ciphertext Re-processed using the hash function The 256-bit random number seed required to generate the second and third parts of the ciphertext. .
[0093] 5) The client uses the first part of the public key. Random sampling common polynomial matrix ,in, The coefficients of the polynomial in the middle are all Obtained by uniform sampling.
[0094] 6) The client uses the recovered random number seed According to the parameters and parameters are The central binomial distribution regenerates the secret polynomial vector needed to compute the second and third parts of the ciphertext. sum of error polynomial vectors , ,Right now .
[0095] 7) The client utilizes a common polynomial matrix. The secret polynomial vector of recovery 'and error polynomial vector Recalculate the second part of the ciphertext .
[0096] 8) The client uses the second part of the public key. Secret polynomial vectors sum of error polynomial vectors Calculate the third part of the ciphertext .
[0097] 9) The client checks the second part of the re-encrypted ciphertext. and the third part of the ciphertext Are they respectively compared with the original second part of the ciphertext? and the third part of the ciphertext If they are the same, otherwise an error will be reported and the decryption process will be exited.
[0098] 10) The client will restore the random number seed. Expanded into the first part of the ciphertext to be decrypted bit length Same random number .
[0099] 11) The client passes the first part of the ciphertext. and random numbers Complete decryption ', and will This will be the final plaintext data output.
[0100] Figure 2 This is the second flowchart of the collaborative decryption method provided in this application, as shown below. Figure 2 As shown, this method is applied to the server side and includes the following: Step 201: Based on the MLWE problem, perform collaborative operations with the client to generate the second public key fragment of the server.
[0101] The server determines the parameters as follows: The central binomial distribution is used to sample and generate a second private key fragment. sum of error polynomial vectors For example, through generate ,pass generate .
[0102] The client and server each generate their own 256-bit first random number seed. Second random number seed For example, through generate ,pass generate Then they send each other their own generated random number seeds, and calculate the XOR of the two random number seeds. and each through Random sampling common polynomial matrix Among them, the common polynomial matrix The coefficients of the polynomial in the middle are all Obtained by uniform sampling.
[0103] The server uses its own second private key to shard the data. sum of error polynomial vectors Calculate its own second public key fragment ,like + .
[0104] Step 202: Receive the first public key fragment sent by the client, and generate a public key based on the first public key fragment and the second public key fragment.
[0105] In one embodiment, the first public key fragment and the second public key fragment are added together to obtain a public key vector; the public key vector is then combined with the random number seed used to generate the common polynomial matrix to generate the public key. For example, the server receives the first public key fragment from the client, performs modular addition on the first public key fragment and the second public key fragment held locally to obtain a public key vector; the public key vector is then combined with the random number seed used to generate the common polynomial matrix to generate the complete public key.
[0106] In one embodiment, reference Figure 4 The client will calculate its own first public key fragment. The data is sent to the server, which then combines it with the client's first public key to create a fragment. and the second public key fragment held locally Calculate a portion of the public key ,Will As a complete public key, it is publicly disclosed, in which... To generate a common polynomial matrix The random number seed used.
[0107] Step 203: Receive the collaborative decryption request sent by the client.
[0108] It should be understood that the collaborative decryption request carries a digest of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting the plaintext data based on the public key; the second part of the ciphertext is the ciphertext component used by the server for collaborative decryption.
[0109] The client parses the complete ciphertext, extracting the second part of the ciphertext for server-side collaborative computation; it then compresses the complete ciphertext using a preset hash function to generate a digest of the ciphertext; finally, it sends a collaborative decryption request to the server, which includes the second part of the ciphertext and its digest. For example, upon receiving the ciphertext... Then, the ciphertext Split into three parts of ciphertext The client uses a hash function. ciphertext Compressed into a 256-bit digest. , such as through generate The client will send the second part of the encrypted text. and the digest information of the entire ciphertext Send it to the server to request collaborative decryption.
[0110] The server receives collaborative decryption requests sent by the client.
[0111] Step 204: Based on the second private key fragment of the server and the digest information, the second part of the ciphertext is decrypted to obtain an intermediate result.
[0112] In one embodiment, a third error polynomial vector is generated for the server based on the second private key fragment and digest information; a modular operation is performed based on the second private key fragment, the third error polynomial vector, and the second part of the ciphertext, and the operation result is compressed to generate an intermediate result.
[0113] For example, after the server verifies the client's identity, it uses the digest information of the entire encrypted message. and its own second private key fragment Calculate the third error polynomial vector For example, through generate ,in, This indicates that the summary information will be displayed. Sharding with the second private key The concatenation / concatenation process involves the server concatenating the received ciphertext digest with a locally stored fragment of the second private key. A preset sampling function is then used to process the concatenated data, generating a mask error vector (i.e., the third error polynomial vector) that follows a preset distribution (such as a central binomial distribution). The server uses the second part of the encrypted message. Second private key fragment and the third error polynomial vector Calculate the intermediate results of decryption .For example Specifically, the inner product (or linear transformation) operation is performed on the transposed second private key fragment and the second part of the ciphertext to obtain the initial decryption component; the third error polynomial vector is then... The components are superimposed onto the initial decryption component, and modulo-digital compression is performed on the superimposed result to generate an intermediate decryption result. The server then uses this intermediate decryption result. Send to the client.
[0114] Step 205: The intermediate result is sent to the client so that the client can decrypt the ciphertext using its first private key fragment.
[0115] The server sends the intermediate results to the client. The client then uses the intermediate results and its first private key to fragment the ciphertext and decrypt it to obtain the plaintext data.
[0116] The collaborative decryption method provided in this application embodiment generates a second public key fragment for the server by cooperating with the client based on the MLWE problem; receives a first public key fragment sent by the client, and generates a public key based on the first and second public key fragments; receives a collaborative decryption request sent by the client; wherein the collaborative decryption request carries digest information of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used for collaborative decryption by the server; based on the server's second private key fragment and digest information, the second part of the ciphertext is decrypted to obtain an intermediate result; the intermediate result is sent to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment. This application utilizes a collaborative computing architecture based on the MLWE problem to provide resistance to quantum computing attacks. By independently managing the private keys of the server and client, it eliminates the risk of single-point leakage of the complete private key. The server performs auxiliary decryption based only on the ciphertext digest and a portion of the ciphertext components. This not only utilizes the digest information to achieve integrity binding and anti-tampering verification of the ciphertext, but also ensures that the server completes collaborative support without seeing the plaintext data and without being able to decrypt it independently. This achieves a dual improvement in data privacy protection and system security.
[0117] Figure 3 This is a flowchart illustrating the data encryption method provided in this application, such as... Figure 3 As shown, this method is applied to the data sender and includes the following: Step 301: Perform an XOR operation between the plaintext data and the random number generated by expanding the third random number seed to obtain the first part of the ciphertext; Step 302: Generate the second part of the ciphertext based on the secret polynomial vector, the second error polynomial vector, and the public polynomial matrix generated based on public key sampling; Step 303: Compress the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate the third part of the ciphertext; Step 304: Generate ciphertext based on the first part of the ciphertext, the second part of the ciphertext, and the third part of the ciphertext, and send the ciphertext to the client.
[0118] It should be understood that the secret polynomial vector and the second error polynomial vector are generated based on sampling from the fourth random number seed, the preset first error distribution, and the preset second error distribution.
[0119] In one embodiment, reference Figure 5 The data sender can generate ciphertext based on the following methods: 1) The data sender generates a 256-bit third random number seed. For example, through generate That is, from all possible 256-bit binary strings, a string is randomly and uniformly selected and assigned to it. Specifically, the data sender uses a random number generator to generate a 256-bit binary random sequence as a third random number seed. .
[0120] 2) The data sender uses a hash function. , the third random number seed Expanded to plaintext data bit length Same random number , among which, random number It is a key stream. For example, through generate Among them, hash function The SHAKE-256 algorithm can be used, where the data sender uses a 256-bit third random number seed. Input the SHAKE-256 function, which determines the length of the plaintext data. Read the output of the corresponding length to obtain a pseudo-random bit sequence of the same length as the plaintext data, i.e., a random number. .
[0121] 3) The data sender uses random numbers and plaintext data Generate the first part of the ciphertext ,For example, ,in, The XOR operation masks the plaintext bit sequence with a pseudo-random key stream. Due to the reflexivity of the XOR operation, this operation ensures data confidentiality while allowing a legitimate receiver to reconstruct the same random number. Then, the plaintext data is restored without loss by performing an XOR operation again.
[0122] 4) The data sender will use the third random number seed. And the first part of the ciphertext After concatenation, it is processed by a hash function. The 256-bit fourth random number seed required to generate the second and third parts of the ciphertext. For example, through generate , the third random number seed With the first part of the ciphertext The data is cascaded, and a fourth random number seed is derived by processing the cascaded data using a preset hash function. Among them, the fourth random number seed Used to provide a deterministic source of randomness for generating subsequent ciphertext components.
[0123] 5) The data sender uses the first part of the public key. Random sampling common polynomial matrix , Among them, the common polynomial matrix The coefficients of the polynomial in the middle are all Obtained by uniform sampling.
[0124] 6) The data sender uses a fourth random number seed. According to the preset first error distribution (parameter is...) The central binomial distribution) and the preset second error distribution (parameter is ) and the preset second error distribution (parameter is (using the central binomial distribution), to generate the secret polynomial vector needed to compute the second and third parts of the ciphertext. The second error polynomial vector, wherein the second error polynomial vector includes the error polynomial vector. sum of error polynomial vectors Secret polynomial vector It is a dimension and a common polynomial matrix A matching vector contains elements whose coefficients are polynomials following a specific low-probability distribution (such as a central binomial distribution). For example, Using the fourth random number seed By using a pre-defined deterministic sampling algorithm, secret polynomial vectors are generated on the polynomial ring. and error vector set The sampling algorithm is based on the central binomial distribution to ensure that the generated vector coefficients are short integers, thus meeting the safety requirements of the lattice-based learning problem.
[0125] 7) The data sender uses a common polynomial matrix. Secret polynomial vectors sum of error polynomial vectors Calculate the second part of the ciphertext ,For example, Using the transpose of the common polynomial matrix With secret polynomial vector Perform matrix-vector multiplication and combine the result with the error polynomial vector. Add them together to generate the intermediate ciphertext vector, which is the second part of the ciphertext. The coefficients of the second part of the ciphertext retain full precision over the modal domain.
[0126] 8) The data sender uses the second part of the public key. Secret polynomial vectors sum of error polynomial vectors Calculate the third part of the ciphertext ,For example, Using the second part of the public key With secret polynomial vector Performing the dot product operation yields an approximate shared secret polynomial. ; Approximate shared secret polynomial Error polynomial and the encoded third random number seed Perform polynomial addition to generate the target ciphertext polynomial; based on the third part of the ciphertext... compression parameters The coefficients of the target ciphertext polynomial are compressed and serialized to obtain the third part of the ciphertext. .
[0127] 9) The data sender combines the three parts of the ciphertext into a complete ciphertext. Then it is sent to the client.
[0128] The data encryption method provided in this application involves: XORing plaintext data with a random number generated by expanding a third random number seed to obtain a first ciphertext; generating a second ciphertext based on a secret polynomial vector, a second error polynomial vector, and a common polynomial matrix generated by public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated by sampling a fourth random number seed, a preset first error distribution, and a preset second error distribution; compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate a third ciphertext; generating ciphertext based on the first, second, and third ciphertexts, and sending the ciphertext to the client. This application employs a hybrid encryption architecture based on the MLWE problem, using a keystream generated by expanding a random number seed to perform an XOR operation on plaintext data, achieving efficient encryption of large data volumes; simultaneously, encapsulating the key seed using the algebraic structure of MLWE and compressing the third ciphertext, while ensuring the scheme's resistance to quantum computing attacks, reduces the size of the ciphertext data and communication bandwidth overhead, thus achieving an effective balance between high security, low transmission latency, and high computational efficiency.
[0129] To further explain the collaborative decryption method and data encryption method proposed in this application, please refer to the following embodiments.
[0130] This application specifically proposes a quantum-resistant two-party collaborative decryption method based on modular lattices. The security of this decryption method is based on the modular lattice error learning problem, possessing the ability to resist quantum computer attacks. Compared to cryptographic schemes based on general lattice problems, this decryption scheme has the advantages of smaller parameters and higher performance; compared to cryptographic schemes based on ring problems, this decryption scheme has the advantage of more flexible parameters while ensuring performance. Furthermore, to adapt to the security requirements of different scenarios, the scheme has parameter sets with different security levels, and ensures that the probability of decryption failure is sufficiently small at each security level.
[0131] This application provides a secure and feasible method for collaborative decryption between the client and server. Neither party can obtain the other's private key fragment during the decryption process, effectively preventing the risk of an attacker decrypting the ciphertext after obtaining either party's key. The collaborative decryption method requires only one round of interaction and compresses the interaction information, reducing the bandwidth required for transmission. It is suitable for applications with high performance and latency requirements.
[0132] The quantum-resistant two-party collaborative decryption method based on modular lattices in this application comprises the following steps: Step 1: The client and server generate their respective private key fragments and then collaboratively calculate their respective public key fragments. Step 2: The client sends fragments of its public key to the server. The server calculates the complete public key and then publishes it. Step 3: The data sender uses the public key to encrypt and send the data; Step 4: After receiving the ciphertext, the client processes it and sends a portion of the ciphertext information to the server, requesting collaborative decryption. Step 5: After the server confirms the client's identity, it processes the received partial ciphertext information using its own private key fragment, and then sends the result to the client. Step 6: After receiving the result from the server, the client uses its own private key fragment to complete the decryption of the ciphertext.
[0133] The method in this application requires the client and server to jointly decrypt the encrypted information based on their respective stored private key fragments. Furthermore, the result sent by the server to the client hides the server's private key information, and its security depends on the MLWE problem.
[0134] In one embodiment, the security and performance of the modular lattice-based quantum-resistant two-party collaborative decryption method proposed in this application vary significantly under different parameter sets; performance often decreases as security increases. To meet the different security and performance requirements of various application scenarios, this application proposes three implementation parameter sets: a lightweight implementation parameter set, a medium-security implementation parameter set, and a high-security implementation parameter set. The lightweight implementation parameter set is suitable for lightweight client devices such as super SIM cards and IoT chips; the medium-security implementation parameter set is suitable for resource-rich client devices such as common smartphones, computers, and tablets; and the high-security implementation parameter set is suitable for resource-rich client devices in scenarios with high security requirements, such as finance and military applications.
[0135] The method implemented in this application uses constant polynomial degrees. This improves the reusability of the solution across different application scenarios. Parameters The modulus in the method is determined, affecting the security of the scheme and the probability of decryption failure. Parameter Determining the dimensions of matrices and vectors in the method is an important means of achieving a finer-grained balance between security and performance indicators, affecting the security of the scheme and the probability of decryption failure. and These are parameters used in the method when sampling a binomial distribution, affecting the security of the scheme and the probability of decryption failure. Parameters These are parameters used to compress the ciphertext and intermediate decryption results in the method. A larger parameter value results in a smaller compression margin, which in turn affects the decryption failure probability. The detailed descriptions of the parameter sets for the three implementations of the method are shown in the table below. All three parameter sets ensure a sufficiently low decryption failure probability at different security levels.
[0136] The encryption process of the two-party collaborative decryption method in this application does not involve multi-party collaborative encryption, thus offering better practicality. Furthermore, since it does not involve multiple cryptographic algorithm types, the method is simpler and more direct, and the scheme exhibits higher performance. The two-party collaborative decryption method in this application is designed based on the MLWE (Multimodal Latent Weapon Problem), possessing resistance to quantum computing attacks and providing a secure and reliable solution for data encryption and decryption in the quantum computing era. In this application, the collaborative key generation process, encryption process, and collaborative decryption process are all designed based on encryption and decryption keys, resulting in better security. Moreover, the carefully designed parameters of the scheme ensure the actual security level of the solution.
[0137] The collaborative decryption apparatus provided in this application is described below. The collaborative decryption apparatus described below and the collaborative decryption method described above can be referred to in correspondence.
[0138] refer to Figure 7 The collaborative decryption device provided in this application includes: The first public key shard generation module 701 is used to perform collaborative operations with the server based on the MLWE problem of modular error learning to generate the first public key shard of the client. The ciphertext receiving module 702 is used to receive ciphertext sent by the data sender after encrypting plaintext data with a public key; wherein, the public key is generated based on the first public key fragment and the second public key fragment of the server; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; The collaborative decryption request sending module 703 is used to parse the second part of the ciphertext in the ciphertext and send a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext to the server; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. Intermediate result receiving module 704 is used to receive intermediate results sent by the server; the intermediate results are obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; The first decryption module 705 is used to decrypt the ciphertext based on the intermediate result and the first private key fragment of the client to obtain the plaintext data.
[0139] The collaborative decryption device provided in this application adopts a collaborative mechanism based on the MLWE problem. While ensuring security against quantum computing attacks, it avoids the residing of the complete private key on a single node and eliminates the risk of single-point leakage through fragmented key management on both the client and server sides. During the collaborative decryption process, the client only sends the ciphertext component and digest information to trigger collaboration, which reduces communication bandwidth overhead and effectively defends against chosen ciphertext attacks using the digest binding mechanism. In addition, the server can only complete part of the decryption calculation based on its private key fragments and cannot see the original plaintext. Thus, while realizing the collaborative function, it ensures the confidentiality of user data and the reliability of system operation.
[0140] refer to Figure 8 The collaborative decryption device provided in this application includes: The second public key fragment generation module 801 is used to perform collaborative operations with the client based on the MLWE question to generate the second public key fragment of the server. The public key generation module 802 is used to receive the first public key fragment sent by the client and generate a public key based on the first public key fragment and the second public key fragment; The collaborative decryption request receiving module 803 is used to receive a collaborative decryption request sent by the client; wherein, the collaborative decryption request carries digest information of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption; The second decryption module 804 is used to decrypt the second part of the ciphertext based on the second private key fragment of the server and the digest information to obtain an intermediate result; The intermediate result sending module 805 is used to send the intermediate result to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment.
[0141] The collaborative decryption device provided in this application, by utilizing the collaborative computing architecture of the MLWE problem, not only provides resistance to quantum computing attacks, but also eliminates the risk of single-point leakage of the complete private key through independent management of private key fragments on the server and client sides. The server performs auxiliary decryption only based on the ciphertext digest and a portion of the ciphertext components. This not only utilizes the digest information to achieve integrity binding and anti-tampering verification of the ciphertext, but also ensures that the server completes collaborative support under the premise that the plaintext data is not visible and cannot be decrypted independently, thereby achieving a dual improvement in data privacy protection and system security.
[0142] refer to Figure 9 The data encryption device provided in this application includes: The first ciphertext generation module 901 is used to perform an XOR operation between plaintext data and a random number generated by expanding the third random number seed to obtain the first ciphertext. The second ciphertext generation module 902 is used to generate the second ciphertext based on the secret polynomial vector, the second error polynomial vector, and the public polynomial matrix generated based on public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated based on the fourth random number seed, the preset first error distribution, and the preset second error distribution sampling. The third ciphertext generation module 903 is used to compress the calculation results of the public key, the secret polynomial vector, the second error polynomial vector and the third random number seed to generate the third ciphertext. The ciphertext generation module 904 is used to generate ciphertext based on the first part of the ciphertext, the second part of the ciphertext, and the third part of the ciphertext, and send the ciphertext to the client.
[0143] The data encryption device provided in this application adopts a hybrid encryption architecture based on the MLWE problem. By using a key stream generated by expanding a random number seed to perform an XOR operation on the plaintext data, it achieves efficient encryption of large data volumes. At the same time, it uses the algebraic structure of MLWE to encapsulate the key seed and performs a compression operation on the third part of the ciphertext. While ensuring that the scheme has the security against quantum computing attacks, it reduces the size of the ciphertext data and the communication bandwidth overhead, thereby achieving an effective balance between high security, low transmission latency and high computational efficiency.
[0144] Figure 10 An example is a schematic diagram of the physical structure of an electronic device, such as... Figure 10 As shown, the electronic device may include: a processor 1010, a communications interface 1020, a memory 1030, and a communications bus 1040, wherein the processor 1010, the communications interface 1020, and the memory 1030 communicate with each other through the communications bus 1040. The processor 1010 can call logical instructions in the memory 1030 to execute a collaborative decryption method, which includes: performing collaborative operations with the server based on the MLWE problem (Model-Based Error Learning) to generate a first public key fragment of the client; receiving ciphertext sent by the data sender after encrypting plaintext data using the public key; wherein the public key is generated based on the first public key fragment and a second public key fragment of the server; the second public key fragment is generated by the server and the client based on the MLWE problem collaborative operation; parsing a second part of the ciphertext and sending a collaborative decryption request carrying digest information of the ciphertext and the second part of the ciphertext to the server; the second part of the ciphertext is a ciphertext component used for collaborative decryption by the server; receiving an intermediate result sent by the server; the intermediate result is obtained by decrypting the second part of the ciphertext based on the second private key fragment of the server and the digest information; and decrypting the ciphertext based on the intermediate result and the first private key fragment of the client to obtain the plaintext data.
[0145] Alternatively, the method includes: cooperating with the client based on the MLWE problem to generate a second public key fragment of the server; receiving a first public key fragment sent by the client, and generating a public key based on the first public key fragment and the second public key fragment; receiving a collaborative decryption request sent by the client; wherein the collaborative decryption request carries digest information of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used for collaborative decryption by the server; decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information to obtain an intermediate result; and sending the intermediate result to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment.
[0146] Alternatively, the method includes: performing an XOR operation on plaintext data and a random number generated by expanding a third random number seed to obtain a first ciphertext; generating a second ciphertext based on a secret polynomial vector, a second error polynomial vector, and a common polynomial matrix generated based on public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated based on a fourth random number seed, a preset first error distribution, and a preset second error distribution sampling; compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate a third ciphertext; generating ciphertext based on the first ciphertext, the second ciphertext, and the third ciphertext, and sending the ciphertext to the client.
[0147] Furthermore, the logical instructions in the aforementioned memory 1030 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, 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 this application. 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.
[0148] On the other hand, this application 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 can execute the collaborative decryption method provided by the above methods. The method includes: performing collaborative operation with the server based on the MLWE problem of modular error learning to generate a first public key fragment of the client; receiving ciphertext sent by the data sender after encrypting plaintext data using the public key; wherein the public key is generated based on the first public key fragment and the second public key fragment of the server; the second public key... The fragment is generated by the server and the client through collaborative operation based on the MLWE problem; the second part of the ciphertext is parsed, and a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext is sent to the server; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption; the intermediate result sent by the server is received; the intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; based on the intermediate result and the client's first private key fragment, the ciphertext is decrypted to obtain the plaintext data.
[0149] Alternatively, the method includes: cooperating with the client based on the MLWE problem to generate a second public key fragment of the server; receiving a first public key fragment sent by the client, and generating a public key based on the first public key fragment and the second public key fragment; receiving a collaborative decryption request sent by the client; wherein the collaborative decryption request carries digest information of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used for collaborative decryption by the server; decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information to obtain an intermediate result; and sending the intermediate result to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment.
[0150] Alternatively, the method includes: performing an XOR operation on plaintext data and a random number generated by expanding a third random number seed to obtain a first ciphertext; generating a second ciphertext based on a secret polynomial vector, a second error polynomial vector, and a common polynomial matrix generated based on public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated based on a fourth random number seed, a preset first error distribution, and a preset second error distribution sampling; compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate a third ciphertext; generating ciphertext based on the first ciphertext, the second ciphertext, and the third ciphertext, and sending the ciphertext to the client.
[0151] Furthermore, this application also provides a non-transitory computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements the collaborative decryption method provided by the above methods. This method includes: cooperating with a server based on a lattice error learning (MLWE) problem to generate a first public key fragment of the client; receiving ciphertext sent by a data sender after encrypting plaintext data using a public key; wherein the public key is generated based on the first public key fragment and a second public key fragment of the server; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; parsing a second part of the ciphertext and sending a digest of the ciphertext and a collaborative decryption request for the second part of the ciphertext to the server; the second part of the ciphertext is a ciphertext component used for collaborative decryption by the server; receiving an intermediate result sent by the server; the intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; and decrypting the ciphertext based on the intermediate result and the client's first private key fragment to obtain the plaintext data.
[0152] Alternatively, the method includes: cooperating with the client based on the MLWE problem to generate a second public key fragment of the server; receiving a first public key fragment sent by the client, and generating a public key based on the first public key fragment and the second public key fragment; receiving a collaborative decryption request sent by the client; wherein the collaborative decryption request carries digest information of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used for collaborative decryption by the server; decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information to obtain an intermediate result; and sending the intermediate result to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment.
[0153] Alternatively, the method includes: performing an XOR operation on plaintext data and a random number generated by expanding a third random number seed to obtain a first ciphertext; generating a second ciphertext based on a secret polynomial vector, a second error polynomial vector, and a common polynomial matrix generated based on public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated based on a fourth random number seed, a preset first error distribution, and a preset second error distribution sampling; compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate a third ciphertext; generating ciphertext based on the first ciphertext, the second ciphertext, and the third ciphertext, and sending the ciphertext to the client.
[0154] 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.
[0155] 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.
[0156] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application 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. Such 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 this application.
Claims
1. A collaborative decryption method, characterized in that, Applied to the client side, including: Based on the MLWE problem of learning by modal error, the client and the server work together to generate the first public key fragment of the client. The receiver sends ciphertext after encrypting plaintext data using a public key; wherein the public key is generated based on the first public key fragment and the second public key fragment of the server; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; The second part of the ciphertext is parsed, and a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext is sent to the server; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. Receive the intermediate result sent by the server; the intermediate result is obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; Based on the intermediate result and the first private key fragment of the client, the ciphertext is decrypted to obtain the plaintext data.
2. The collaborative decryption method according to claim 1, characterized in that, The MLWE problem based on modular error learning is used in collaboration with the server to generate the first public key shard for the client, including: Based on a preset first error distribution, the first private key fragment and the first error polynomial vector of the client are sampled and generated; Generate a first random number seed and send the first random number seed to the server; Receive the second random number seed sent by the server; Based on the first random number seed and the second random number seed, a common polynomial matrix is determined collaboratively. Based on the algebraic structure of the MLWE problem, the first public key fragment is generated by using the first private key fragment, the first error polynomial vector, and the common polynomial matrix through addition and matrix multiplication operations.
3. The collaborative decryption method according to claim 1, characterized in that, The ciphertext is decrypted based on the intermediate result and the client's first private key fragment to obtain the plaintext data, including: Based on the first private key fragment, the second part of the ciphertext, the intermediate result, and the third part of the ciphertext, the third random number seed used in the encryption process is recovered. The ciphertext is decrypted using the recovered third random number seed and the first part of the ciphertext to obtain the plaintext data; The first part of the ciphertext is obtained by XORing the plaintext data with a random number generated by expanding the third random number seed; the third part of the ciphertext is obtained by compressing the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed; the secret polynomial vector and the second error polynomial vector are generated by sampling based on the fourth random number seed, a preset first error distribution, and a preset second error distribution.
4. The collaborative decryption method according to claim 3, characterized in that, The step of decrypting the ciphertext using the recovered third random number seed and the first part of the ciphertext to obtain the plaintext data includes: Based on the recovered third random number seed and the first part of the ciphertext, the second part of the ciphertext and the third part of the ciphertext are recalculated; If the second part of the ciphertext is the same as the recalculated second part of the ciphertext, and the third part of the ciphertext is the same as the recalculated third part of the ciphertext, then the first part of the ciphertext is decrypted based on the random number generated by expanding the recovered third random number seed, and the plaintext data is obtained.
5. The collaborative decryption method according to claim 4, characterized in that, The process of recalculating the second and third parts of the ciphertext based on the recovered third random number seed and the first part of the ciphertext includes: Based on the recovered third random number seed and the first part of the ciphertext, the fourth random number seed required to generate the second part of the ciphertext and the third part of the ciphertext is recovered; Based on the recovered fourth random number seed, the first error distribution, and the second error distribution, the secret polynomial vector and the second error polynomial vector required to generate the second part of the ciphertext and the third part of the ciphertext are recovered. Based on the recovered secret polynomial vector and the recovered second error polynomial vector, the second and third parts of the ciphertext are recalculated.
6. A collaborative decryption method, characterized in that, Applied to the server side, including: Based on the MLWE problem, the client and server work together to generate the second public key fragment of the server. Receive the first public key fragment sent by the client, and generate a public key based on the first public key fragment and the second public key fragment; The server receives a collaborative decryption request sent by the client; wherein the collaborative decryption request carries a digest of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. Based on the second private key fragment of the server and the digest information, the second part of the ciphertext is decrypted to obtain an intermediate result; The intermediate result is sent to the client so that the client can decrypt the ciphertext using its first private key fragment.
7. The collaborative decryption method according to claim 6, characterized in that, The intermediate result obtained by decrypting the second part of the ciphertext based on the second private key fragment of the server and the digest information includes: Based on the second private key fragment and the digest information, the third error polynomial vector of the server is generated by sampling; Based on the second private key fragment, the third error polynomial vector, and the second part of the ciphertext, a modular operation is performed, and the operation result is compressed to generate the intermediate result.
8. The collaborative decryption method according to claim 6, characterized in that, The step of generating a public key based on the first public key fragment and the second public key fragment includes: The first public key fragment and the second public key fragment are added together to obtain the public key vector; The public key is generated by combining the public key vector with the random number seed used to generate the public polynomial matrix.
9. A data encryption method, characterized in that, Applied to the data sender, including: The first part of the ciphertext is obtained by performing an XOR operation between the plaintext data and the random number generated by expanding the third random number seed; The second part of the ciphertext is generated based on the secret polynomial vector, the second error polynomial vector, and the public polynomial matrix generated based on public key sampling; wherein, the secret polynomial vector and the second error polynomial vector are generated based on a fourth random number seed, a preset first error distribution, and a preset second error distribution sampling. The calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed are compressed to generate the third part of the ciphertext. Ciphertext is generated based on the first part of the ciphertext, the second part of the ciphertext, and the third part of the ciphertext, and the ciphertext is sent to the client.
10. A collaborative decryption device, characterized in that, Applied to the client side, including: The first public key shard generation module is used to collaborate with the server based on the MLWE problem of modular error learning to generate the first public key shard of the client. The ciphertext receiving module is used to receive ciphertext sent by the data sender after encrypting plaintext data with a public key; wherein, the public key is generated based on the first public key fragment and the second public key fragment of the server; the second public key fragment is generated by the server and the client through collaborative operation based on the MLWE problem; The collaborative decryption request sending module is used to parse the second part of the ciphertext and send a collaborative decryption request carrying the digest information of the ciphertext and the second part of the ciphertext to the server; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption. An intermediate result receiving module is used to receive intermediate results sent by the server; the intermediate results are obtained by decrypting the second part of the ciphertext based on the server's second private key fragment and the digest information; The first decryption module is used to decrypt the ciphertext based on the intermediate result and the first private key fragment of the client to obtain the plaintext data.
11. A collaborative decryption device, characterized in that, Applied to the server side, including: The second public key shard generation module is used to perform collaborative operations with the client based on the MLWE problem to generate the second public key shard of the server. The public key generation module is used to receive the first public key fragment sent by the client, and generate a public key based on the first public key fragment and the second public key fragment; A collaborative decryption request receiving module is used to receive a collaborative decryption request sent by the client; wherein, the collaborative decryption request carries a digest of the ciphertext and a second part of the ciphertext; the ciphertext is obtained by encrypting plaintext data based on the public key; the second part of the ciphertext is a ciphertext component used by the server for collaborative decryption; The second decryption module is used to decrypt the second part of the ciphertext based on the second private key fragment of the server and the digest information to obtain an intermediate result; An intermediate result sending module is used to send the intermediate result to the client so that the client can decrypt the ciphertext in conjunction with its first private key fragment.
12. A data encryption device, characterized in that, Applied to the data sender, including: The first ciphertext generation module is used to perform an XOR operation between the plaintext data and a random number generated by expanding the third random number seed to obtain the first ciphertext. The second ciphertext generation module is used to generate the second ciphertext based on the secret polynomial vector, the second error polynomial vector, and the public polynomial matrix generated based on public key sampling; wherein the secret polynomial vector and the second error polynomial vector are generated based on the fourth random number seed, the preset first error distribution, and the preset second error distribution sampling. The third ciphertext generation module is used to compress the calculation results of the public key, the secret polynomial vector, the second error polynomial vector, and the third random number seed to generate the third ciphertext. The ciphertext generation module is used to generate ciphertext based on the first part of the ciphertext, the second part of the ciphertext, and the third part of the ciphertext, and send the ciphertext to the client.
13. An electronic device comprising a memory, a processor, and a computer program stored in the memory and running on the processor, characterized in that, When the processor executes the computer program, it implements the collaborative decryption method as described in any one of claims 1 to 8, and when the processor executes the computer program, it implements the data encryption method as described in claim 9, and / or, the processor is used to implement the functions of the collaborative decryption device or data encryption device as described in any one of claims 10 to 12.
14. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the collaborative decryption method as described in any one of claims 1 to 8, and when the computer program is executed by the processor, it implements the data encryption method as described in claim 9, and / or the processor is used to implement the functions of the collaborative decryption device or data encryption device as described in any one of claims 10 to 12.
15. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the collaborative decryption method as described in any one of claims 1 to 8, and when the computer program is executed by the processor, it implements the data encryption method as described in claim 9, and / or the processor is used to implement the functions of the collaborative decryption device or data encryption device as described in any one of claims 10 to 12.