A data processing method, product, device and computer readable storage medium

CN120068158BActive Publication Date: 2026-09-18INSPUR (BEIJING) ELECTRONICS INFORMATION IND CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510546604.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-28
Publication Date
2026-09-18
Estimated Expiration
2045-04-28

AI Technical Summary

Technical Problem

[0004]本发明提供了一种数据处理方法、产品、设备及计算机可读存储介质,以至少解决相关技术中通信开销高且存在安全风险的问题

Benefits of technology

[0012] Through this invention, since multiple servers in the query system divide the encrypted state data reconstructed in each iteration into blocks, and perform inner product operations on each data block with the query vector share of the secret sharing state, the scalar multiplication operation of secret sharing is replaced with the multiplication operation of secret sharing, which solves the problem of high communication overhead and security risks caused by the multiplication operation of secret sharing. This achieves the technical effect of reducing the frequency of communication between servers and reducing the computation and communication overhead of the client.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120068158B_ABST
    Figure CN120068158B_ABST
Patent Text Reader

Abstract

The application discloses a data processing method, product, equipment and computer readable storage medium, relates to the technical field of privacy calculation, and each round of iteration reconstructed ciphertext state data of a plurality of service ends in a query system is blocked, and each data block is respectively subjected to inner product operation with a secret sharing state query vector share, so that the secret sharing multiplication operation is replaced by the secret sharing number multiplication operation, the problem that high communication overhead and security risks are caused by the secret sharing multiplication operation is solved, and the technical effects of reducing the communication frequency between service ends and reducing the calculation and communication overhead of a client are achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of data processing technology, and in particular to a data processing method, product, device, and computer-readable storage medium. Background Technology

[0002] Private Information Retrieval (PIR) technology uses cryptographic protocols (such as homomorphic encryption and secret sharing) to allow users to retrieve target information from remote databases without revealing their query intent, thus resolving the issues of user privacy leakage and data ownership conflicts in traditional query models. However, in multi-server private information retrieval scenarios based on secret sharing, administrators typically need to interact frequently and rely on auxiliary data generated by trusted third parties to perform the multiplication operations of secret sharing, resulting in high communication overhead and security risks.

[0003] Therefore, how to provide a solution to the above-mentioned technical problems is a problem that needs to be solved by those skilled in the art. Summary of the Invention

[0004] This invention provides a data processing method, product, device, and computer-readable storage medium to at least address the problems of high communication overhead and security risks in related technologies.

[0005] This invention provides a data processing method applicable to any server in a query system, wherein multiple servers each store a secret share of numerical data of target information, and the data processing method for any server includes:

[0006] Obtain the query information sent by the client, the query information including the query vector secret share of each round in the multi-round iteration;

[0007] The ciphertext state data of the current iteration is divided into at least one data block. Each of the at least one data block is then multiplied by the secret share of the query vector of the current iteration to generate multiple encrypted intermediate data, which are then sent to the other servers. The ciphertext state data of the next iteration is reconstructed based on the multiple encrypted intermediate data generated by each server. This step is repeated until the iteration termination condition is met. The ciphertext state data of the first iteration is obtained based on the secret sharing share of each server.

[0008] The encrypted state data when the iteration termination condition is met is returned to the client so that the client can decrypt and reconstruct the numerical data of the target information.

[0009] The present invention also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the above-described data processing method.

[0010] The present invention also provides an electronic device, comprising: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of the above-described data processing method.

[0011] The present invention also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of the above-described data processing method.

[0012] Through this invention, since multiple servers in the query system divide the encrypted state data reconstructed in each iteration into blocks, and perform inner product operations on each data block with the query vector share of the secret sharing state, the scalar multiplication operation of secret sharing is replaced with the multiplication operation of secret sharing, which solves the problem of high communication overhead and security risks caused by the multiplication operation of secret sharing. This achieves the technical effect of reducing the frequency of communication between servers and reducing the computation and communication overhead of the client. Attached Figure Description

[0013] To more clearly illustrate the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0014] Figure 1 This is a schematic diagram of the structure of a query system provided in an embodiment of the present invention;

[0015] Figure 2 A flowchart of a data processing method provided in an embodiment of the present invention;

[0016] Figure 3 This is a schematic diagram of the underlying principle of block calculation and main wheel reduction provided in an embodiment of the present invention;

[0017] Figure 4 This is a schematic diagram of the structure of a data processing system provided in an embodiment of the present invention;

[0018] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present invention;

[0019] Figure 6 This is a schematic diagram of the structure of a computer-readable storage medium provided in an embodiment of the present invention. Detailed Implementation

[0020] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of the present invention.

[0021] It should be noted that, in the description of this invention, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., used in this invention are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0022] To enable those skilled in the art to better understand the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0023] To facilitate understanding of the data processing method provided in this embodiment, the applicable query system for this data processing method will be described first. (Refer to...) Figure 1As shown in the figure, the query system in this embodiment includes t servers, denoted as server 1, ..., server t. The system also includes a data provider and a client. The data provider stores encrypted data on different servers. The client sends encrypted query information to the servers, and the servers return encrypted target information to the clients. The data provider is the owner or management unit of the sensitive data (i.e., the data to be protected in this embodiment; sensitive data is data that is not expected to be disclosed). Due to limited storage or computing resources, it entrusts the sensitive data to multiple third-party cloud platforms (i.e., servers). To facilitate subsequent numerical operations on the data, the data provider needs to perform numerical processing on the sensitive data (such as text data). Specifically, the data provider first uses source coding technology to encode the sensitive data into a digital sequence, then divides the digital sequence into equal-length segments and performs numerical conversion on each segment. Furthermore, to prevent the leakage of sensitive data, the data provider performs some form of cryptographic processing on the sensitive data before uploading the numerical data to the servers, such as using homomorphic encryption or secret sharing techniques, ultimately obtaining the secret sharing share of the numerical data in this embodiment. The server acts as a hosting platform for sensitive data, possessing substantial storage, computing, and bandwidth resources. It is responsible for responding to client queries. No single server possesses the raw, numerical data; instead, it processes the data using cryptographic techniques. Upon receiving a query request, it collaborates with other servers to perform a series of calculations based on predefined rules and returns the results to the client. The client, as the user of the sensitive data, possesses limited computing and bandwidth resources. It generates a series of data based on the target information's index or keywords and sends a query request to the server. While obtaining the target information, the client is required not to disclose the query criteria (the target information's index or keywords). Of course, the roles of the participants in this query system can overlap; for example, a data provider can simultaneously act as a server.

[0024] An embodiment of the present invention provides a data processing method. This data processing method can be implemented using each of the servers mentioned above, as described below. Figure 2 The data processing method is described in detail, taking into account its execution flow.

[0025] The data processing method provided in this embodiment includes:

[0026] S101: Obtain the query information sent by the client. The query information includes the query vector secret share for each round of multiple iterations.

[0027] In this embodiment, the client sets the query vector length and generates query information based on the index of the target information and the database size, and sends it to each server so that each server can perform subsequent calculations based on the query information it receives, that is, the secret share of the query vector in each round of multiple iterations it receives.

[0028] It can be understood that the query vector is split into multiple independent parts using a secret sharing technique, with each part being a secret share of the query vector. Each server holds only one share. For example, the query vector is split into multiple shares using a secret sharing technique. The data is distributed to t servers. It's understandable that a single share doesn't reveal any information about the original query vector; multiple servers need to collaborate and merge their respective shares to reconstruct the original query vector.

[0029] S102: Divide the ciphertext state data of the current iteration into at least one data block, perform an inner product operation on each data block with the secret share of the query vector of the current iteration, generate multiple encrypted intermediate data, and send them to other servers. Reconstruct the ciphertext state data of the next iteration based on the multiple encrypted intermediate data generated by each server. Repeat this step until the iteration termination condition is met. The ciphertext state data of the first iteration is obtained based on the secret sharing share of each server.

[0030] S103: Return the ciphertext state data when the iteration termination condition is met to the client so that the client can decrypt and reconstruct the numerical data of the target information.

[0031] Understandably, to avoid sensitive data leakage, before uploading sensitive data to the server, the data provider performs numerical processing on the sensitive data to obtain numerical data. This numerical data is then split into multiple independent parts using secret sharing technology, each part being a secret sharing share. These multiple secret sharing shares are sent one-to-one to multiple servers. In this embodiment, for the first iteration, each server performs homomorphic encryption on its locally stored secret sharing shares to obtain initial encrypted data. It then sends its calculated initial encrypted data to other servers. Each server reconstructs the ciphertext state data used in the first iteration based on its locally calculated initial encrypted data and the initial encrypted data sent by other servers. In this embodiment, the ciphertext state data specifically refers to the numerical data of the ciphertext state.

[0032] For each server, during each iteration, the ciphertext state data corresponding to that iteration is divided into multiple data blocks. Each data block is then multiplied by its own secret share of the query vector for the current iteration (the addition and multiplication involved are homomorphic addition and homomorphic scalar multiplication operations in the homomorphic encryption algorithm), generating multiple encrypted intermediate data. These encrypted intermediate data are sent to other servers so that each server can reconstruct the ciphertext state data for the next iteration based on its own generated encrypted intermediate data and the encrypted intermediate data sent by other servers. This iterative process is repeated until the iteration termination condition is met. It can be understood that the amount of ciphertext state data decreases after each iteration. For example, assume the amount of ciphertext state data... Block length The first round is divided into 4 blocks, the second round into 2 blocks, and finally into 1 block. In this embodiment, the query vector and data are encrypted throughout the process, and the server cannot know the user's intent or the original content. The target data is gradually focused on through the inner product of the blocks, reducing redundant calculations. Secret sharing prevents single points of failure, and the loss of a portion does not affect data recovery.

[0033] In this embodiment, the iteration termination conditions include, but are not limited to, stopping when the encrypted state data is reduced to a single block, or reaching the maximum number of iterations. The server returns the encrypted state data that meets the iteration termination conditions to the client, which then decrypts it to obtain the target information.

[0034] Assume there are three servers: server S1, server S2, and server S3. For server S1, the other servers are server S2 and server S3. For server S2, the other servers are server S1 and server S3. For server S3, the other servers are server S2 and server S1.

[0035] As can be seen, in this embodiment, the multiple servers in the query system divide the encrypted state data reconstructed in each iteration into blocks, and perform inner product operations on each data block with the query vector share of the secret sharing state. The scalar multiplication operation of the secret sharing is used to replace the multiplication operation of the secret sharing, eliminating the dependence on trusted third parties, reducing the frequency of communication between servers, and reducing the number of data blocks after each iteration, thereby reducing the processing load of subsequent rounds. The client only needs to send a small amount of query information to obtain the target information, which significantly reduces the client's computing and communication overhead. In addition, the entire process of encrypted operation ensures the privacy of query content, intermediate data and results.

[0036] In one exemplary embodiment, the process of dividing the ciphertext state data of the current iteration into at least one data block includes:

[0037] Determine the length of the query vector;

[0038] Divide the encrypted state data of the current iteration into at least one data block according to the query vector length, with the length of the data block being equal to the query vector length.

[0039] In this embodiment, the query vector length l is first determined. The server divides the ciphertext state data into blocks of l each, to obtain at least one data block. This is to facilitate the subsequent inner product operation with the secret share of the query vector.

[0040] In an exemplary embodiment, the process of dividing the ciphertext state data of the current iteration into at least one data block according to the query vector length includes:

[0041] Divide the ciphertext state data of the current iteration into at least one data block according to the query vector length;

[0042] Determine whether at least one data block contains a target data block whose length is less than the query vector length;

[0043] If so, add the preset supplementary value to the target data block so that the length of the supplemented target data block is equal to the length of the query vector.

[0044] In this embodiment, the target data block may be the tail data block after any round of iteration partitioning. It is determined whether the length of the tail data block is less than the length of the query vector. The preset supplement value can be 0. The server can expand the actual block length to l by padding with 0 so that it can perform inner product operation with the query vector secret share it holds.

[0045] In an exemplary embodiment, the process of performing an inner product operation on at least one data block with the secret share of the query vector in the current iteration to generate multiple encrypted intermediate data blocks and then sending them to other servers includes:

[0046] For each data block, perform an inner product calculation with the secret share of the query vector in the current iteration to obtain the inner product calculation result;

[0047] Multiple encrypted intermediate data are obtained by performing a first encryption calculation on the results of multiple inner product calculations using a preset public key. It can be understood that the first encryption calculation can be approximate encryption or semi-encryption, etc.

[0048] The process of using a preset public key to perform a first encryption calculation on multiple inner product calculation results to obtain multiple encrypted intermediate data includes: for each inner product calculation result, determining the current random element, and using the preset public key and the current random element to perform a first encryption calculation on the inner product calculation result to obtain intermediate encrypted data.

[0049] In an exemplary embodiment, the process of reconstructing the ciphertext state data for the next iteration based on multiple encrypted intermediate data generated by each server includes: performing homomorphic addition on the multiple encrypted intermediate data generated by each server to obtain the ciphertext state data for the next iteration; the process of obtaining the ciphertext state data for the first iteration based on the secret sharing share of each server includes: performing a second encryption calculation on the secret sharing share of each server using a preset public key to generate multiple initial encrypted data; and performing homomorphic addition on the multiple initial encrypted data generated by each server to obtain the ciphertext state data for the first iteration. Specifically, the second encryption calculation can be a complete homomorphic encryption operation.

[0050] Specifically, in iterations other than the first iteration, homomorphic addition is performed on multiple encrypted intermediate data generated by each server to obtain the ciphertext state data for the next iteration. In the first iteration, a second encryption calculation is performed on the secret sharing share of each server using a preset public key to generate multiple initial encrypted data. Specifically, homomorphic addition is performed on multiple initial encrypted data generated by each server to obtain the ciphertext state data for the first iteration.

[0051] In one exemplary embodiment, the server receives query information from the client, completes a series of operations in an interactive and collaborative manner according to predefined calculation rules, and finally feeds back the calculation results to the client.

[0052] Specifically, the server first calculates the sequence. ,in, , , , This indicates the number of data points in the 0th iteration. This indicates the number of data points in the first iteration. This indicates the number of data points in the last iteration. This represents the total number of data points before iteration. This represents the number of data points in the i-th iteration. This indicates rounding down to the nearest integer element, and l represents the length of the query vector.

[0053] for The uth server Select random element The shares held are encrypted using the Paillier encryption algorithm. , Among them, symbols Indicates ring The set consisting of all elements coprime to n. For example, the u-th server... calculate: .

[0054] in, Indicates the u-th server Under the control of the public key PK, the share held by oneself The result data after performing Paillier homomorphic encryption. To ensure the correctness of the final result, take... In the ring The smallest positive integer in the equivalence class is used for calculation.

[0055] Collaborative computing among various servers This refers to the numerical data that reconstructs the ciphertext state (i.e., the ciphertext state data in this embodiment). Specifically, for The uth server to the shareholding of oneself The result of homomorphic encryption operation Sending to other servers and receiving messages from other servers (i.e., the w-th server) Regarding the shareholding of itself The result of homomorphic encryption of shares Where w takes the value of ,and Then, for server Perform the following calculation locally. .

[0056] Among them, symbols This represents the homomorphic addition operation in the Paillier encryption algorithm, symbol [symbol missing]. Indicates ring Addition operations on top, This indicates that under the control of the public key pk, for the 0th iteration... The result of performing Paillier homomorphic encryption on the data. Indicates the first server Under the control of the public key PK, the third [key] held by itself Share of data The result data after performing Paillier homomorphic encryption. Indicates the second server Under the control of the public key PK, the third [key] held by itself Share of data The result data after performing Paillier homomorphic encryption. This represents the t-th server. Under the control of the public key PK, the third [key] held by itself Share of data The result data after performing Paillier homomorphic encryption.

[0057] The server collaboratively computes the target information using block-based computation and round-by-round reduction. Specifically, in each iteration, the server first divides the ciphertext state's numerical data into blocks of l elements each, and performs an inner product operation on each block with the query vector share of the current iteration (the addition and multiplication involved are homomorphic addition and homomorphic scalar multiplication operations from the homomorphic encryption algorithm). Then, the inner product result is homomorphically encrypted again, and the corresponding numerical data is reconstructed collaboratively once more. Formally, for Each server executes the following steps in a loop; the following example uses the u-th server. The calculation process in the i-th iteration will be used as an example for illustration. The uth server Perform the following calculation locally:

[0058] ;

[0059] ;

[0060] ;

[0061] in, This represents the homomorphic scalar multiplication operation in the Paillier encryption algorithm, for , , .in, In the i-th iteration, the first... One data point, In the (i-1)th iteration One data point, This represents the 0th component of the query vector in the (i-1)th iteration. In the (i-1)th iteration One data point, This represents the first component of the query vector in the (i-1)th iteration. In the (i-1)th iteration One data point, This represents the last component of the query vector in the (i-1)th iteration. This represents the last data in the i-th iteration. In the (i-1)th iteration One data point, In the (i-1)th iteration One data point, In the (i-1)th iteration One data point, This represents the query vector in the (i-1)th iteration. Each component.

[0062] for The uth server Randomly select random element Perform the following calculation locally:

[0063] ;

[0064] in, It is the i-th iteration. The u-th share of the data Based on a certain random element (denoted as...) The Paillier homomorphic ciphertext obtained through the second encryption calculation is used to... Perform the first encryption calculation, that is, calculate ,get Based on random element The Paillier homomorphic ciphertext is encrypted a second time. Therefore, it is still denoted as... , The symbol mod represents the modulo operation, such as... This represents the remainder when a is divided by b.

[0065] Collaborative computing among servers .for The uth server Will Send to other servers (such as the wth server) , and ), and receive from other servers share The uth server Calculated locally:

[0066] .

[0067] in, This indicates that under the control of the public key pk, the i-th iteration... The result of performing Paillier homomorphic encryption on the data. Under the control of the public key pk, the i-th iteration... The u-th share of the data The result data after performing Paillier homomorphic encryption.

[0068] After completing the above iterative operations, the number of data values ​​in the ciphertext state is: .for The uth server Local computation ;

[0069] in, , Indicates the first The u-th share of the 0th data in the round of iteration. Indicates the first The 0th data point in the round of iteration, Indicates the first The u-th share of the 0th component of the query vector in the round of iteration. Indicates the first The first data in the round of iteration, Indicates the first The u-th share of the first component of the query vector in the round of iteration. Indicates the first In the first iteration One data point, Indicates the first The query vector in the round of iteration The u-th share of each component. It is understandable that the encrypted state data, which is sent to the client when the iteration termination condition is finally met, is sent as final data. This represents the secret share based on Paillier homomorphic addition. Indicates ring The secret share of addition.

[0070] In one exemplary embodiment, the preset public key is the public key in a key pair generated by the client using a homomorphic encryption algorithm from two prime numbers determined by the client based on the length information of the digital sequence segment corresponding to the numerical data of the target information.

[0071] In this embodiment, it is assumed that the index of the target information queried by the client in the database is... The query vector length is set to l. The client secretly selects two large prime numbers based on the segment length of the data source's number sequence, constructs a key pair using a homomorphic encryption key generation algorithm, and then sends the public key to each server, while secretly storing the private key locally. Based on information such as the target information index and database size, the client generates query information using an additive secret sharing method and sends it to each server.

[0072] Specifically, the client generates a key pair (pk, sk) for the Paillier homomorphic encryption algorithm, sends the public key pk to each server, and secretly stores the private key sk locally. For example, the client randomly selects two distinct large prime numbers p and q (p and q are both at least 512 bits long), such that... ,and ,in express The greatest common divisor of . Calculate. ,in express The least common multiple of . Select There exists an integer a such that ,For example Among them, symbols Indicates ring Zhongyu A set consisting of all coprime elements. (Setting function) ,calculate The public key is denoted as... The private key is recorded as Where g represents the first public key and n represents the second public key. This represents the first private key. This represents the second private key.

[0073] In one exemplary embodiment, the data processing method further includes:

[0074] The client determines the query vector length, the index for the target information, and the database size.

[0075] Query information is generated based on the query vector length, the index of the target information, and the database size.

[0076] The process of generating query information based on the query vector length, the index of the target information, and the database size includes:

[0077] The absolute index sequence of the target information in each iteration is calculated based on the query vector length, the index of the target information, and the database size.

[0078] Calculate the relative index sequence based on the absolute index sequence and the query vector length;

[0079] Construct a query vector sequence using a relative index sequence; the query vector sequence includes the query vectors from each iteration.

[0080] For each iteration of the query vector, the query vector is randomly split to obtain multiple query vector secret shares, and these multiple query vector secret shares are sent to multiple servers respectively.

[0081] Specifically, the client calculates the absolute index sequence. ,in: , , , , This indicates the iteration round number, similar to i, except that they differ in their range of values.

[0082] Indicates to Round up, i.e., greater than or equal to. The smallest integer, Indicates to Round down, i.e., less than or equal to The largest integer. In this embodiment, the absolute index refers to the absolute position of the target information in the current iteration data sequence when the server performs iterative calculations round by round.

[0083] Client calculates relative index sequence ,in:

[0084] .

[0085] The symbol mod represents modulo operation. In this embodiment, the relative index refers to the relative position of the target information in the current data sequence block during the current iteration when the server performs iterative calculations.

[0086] Client constructs query vector sequence , making The Each component The first component is 1, and the remaining components are 0. Among them, Indicates the server is in the first... The query vector used in the round of iterative calculation, refer to... Figure 3 As shown. The client generates a sequence of query vectors. In the ring Sharing the secrets of addition ,in, , , , Indicates the first The query vector used in the round of iterative computation One portion, Indicates the first The query vector used in the round of iterative computation The first share of a component. Indicates the first The query vector used in the round of iterative computation The second share of the component, Indicates the first The query vector used in the round of iterative computation The t-th share of the component. The client will... The query vector used in the round of iterative computation The uth share of a component Secretly sent to the u-th server .

[0087] Understanding this, the client distributes secret shares of the query vector sequence to different servers, preventing any single server from obtaining the complete query vector information. This effectively prevents servers from deducing sensitive client information, such as query intent and data patterns, from the query vector, thus enhancing client privacy. In distributed computing, the query vector sequence exists as secret shares across servers, avoiding the transmission and storage of data in plaintext across multiple nodes. Even if a server is compromised, attackers cannot directly obtain complete data, reducing the risk of data leakage. Servers only need to exchange necessary intermediate results or summary information, without transmitting complete data, reducing internal system communication.

[0088] In one exemplary embodiment, the data processing method further includes:

[0089] Encode the numerical data of the target information into a numerical sequence;

[0090] The numerical sequence is divided into segments of equal length and converted into numerical data segment by segment. Each segment of the converted numerical data is then secretly shared to obtain multiple secret sharing shares. The number of secret sharing shares is equal to the number of servers.

[0091] Distribute multiple secret sharing shares to multiple servers.

[0092] In this embodiment, it is assumed that the data provider has a total of [number]. There are t non-colluding servers for the sensitive data (i.e., the data to be protected in this embodiment). Non-collusion, in distributed systems or cryptographic protocols, presupposes that each server (server node) will not share its sensitive information to ensure system security and privacy. The data provider uses source coding technology to... Data is encoded into The system first generates a numerical sequence, then divides the sequence into equal-length segments and converts each segment into a numerical value. The data provider then secretly adds the converted data and shares the shares to each server via a secret channel, thus completing the distributed storage of sensitive data.

[0093] Specifically, the data provider uses source coding technology to process the data it holds. Encode the sensitive data to obtain row number sequence For example, Huffman coding can be used to encode sensitive data into a uniquely readable bit sequence, and the character encoding set can be made public. Huffman coding is a technique that encodes data based on the frequency of character occurrence; that is, the higher the frequency of a character, the shorter the corresponding bit string, thereby achieving information compression. A character encoding set refers to the correspondence between all characters in the sensitive data and their encoding results, such as... ,in The encoding result for the uppercase letter A is 01.

[0094] The data is selected from a sufficiently large positive integer m (e.g., m ≥ 1024). For a sequence of numbers... The data is processed by padding the end with digits (e.g., 0s or 1s when using Huffman coding) to ensure all digit sequences are of equal length and divisible by m. Then, it is processed using consecutive m-digit segments as basic units. Divide into segments. For For each bit segment of a sequence of numbers, the data party transforms it into elements on a specific ring to obtain a data matrix. For example, suppose a bit segment is... Then the corresponding ring The elements above are In this way, the data provider obtains the ring. The number of rows is The data matrix M. Ring Indicates by element The algebraic structure formed by addition and multiplication operations. Among them, Indicates all with mold The set of all congruent elements is called the modulus. An equivalence class of [a class]. [Ring] The addition operation on is defined as Multiplication is defined as .

[0095] For each column element of the data matrix M, let it be denoted as , This indicates the 0th element of the current column. This represents the first element of the current column. This represents the last element of the current column. The data provider secretly shares these elements across t servers by performing addition. For example, for... Data party for the first Randomly select t elements from the column , making Then Secretly sent to the u-th server It can be understood that the solution of the present invention processes one column of the data matrix M in each loop, and each column has... Each element.

[0096] It is understandable that the numerical data of the target information is divided into multiple secret shares, each stored on a different server. Even if one server is compromised, the attacker cannot obtain the complete sensitive data. Since the servers do not share their sensitive information, even if multiple servers are attacked, data security is still guaranteed as long as not all servers are simultaneously compromised and collaboratively leak data. Multiple servers can simultaneously calculate and process their respective data shares, thus achieving parallel computing and improving data processing efficiency and speed. During data processing, servers only need to exchange necessary intermediate results or summary information, without transmitting complete data. This reduces internal communication overhead and improves overall data processing efficiency. In large-scale distributed systems, the reduction in communication overhead further enhances system performance.

[0097] In one exemplary embodiment, the process of reconstructing the numerical data of the target information after decryption by the client includes:

[0098] The client reconstructs homomorphically encrypted numerical data based on the ciphertext state data returned by each server;

[0099] The private key in the key pair is used to decrypt the homomorphic ciphertext of the homomorphically encrypted numerical data to obtain the numerical data of the target information. The numerical data of the target information is then converted into a digital sequence.

[0100] Convert a sequence of numbers into numerical data representing the target information.

[0101] In this embodiment, the client receives the result data (i.e., the encrypted state data when the iteration termination condition is met) from each server, recovers the intermediate result of the homomorphically encrypted numerical data of the target information through a secret reconstruction algorithm, and then obtains the intermediate result of the numerical data through homomorphic decryption. Modulo operation is performed on the intermediate result of the numerical data to obtain the numerical data itself. Multiple iterations are then used to obtain the numerical data of all bit segments of the target information. All the numerical data is arranged in a predetermined order and converted into a bit sequence. Finally, the complete target information is recovered based on the character encoding set.

[0102] Specifically, client-side computing ,in, This represents the encrypted status data returned by the first server. This indicates the encrypted status data returned by the second server. This represents the encrypted status data returned by the t-th server. This represents the result of performing homomorphic addition operations using the Paillier encryption algorithm on t ciphertext state data returned by the server. Perform Paillier homomorphic decryption, i.e., calculate To obtain intermediate results of numerical data Then, calculate. To obtain numerical data , This indicates that the private key sk is controlled by... Perform Paillier homomorphic decryption operation.

[0103] Based on the query information and key pair, the server and client perform the aforementioned series of steps on each column element of the data matrix M to obtain the complete numerical data of the target information bit sequence. The client arranges all the numerical data in a predetermined order, converts it into a bit sequence, and then performs an inverse transformation according to the character encoding set to recover the complete target information.

[0104] In summary, this embodiment proposes a method of block computation and round-by-round reduction to extract target information from the database in order to reduce client communication overhead. Specifically, the client calculates the relative index of the target information in each round based on the target information index and the database size, and constructs the query vector for each round accordingly. To hide the target information index, the client distributes the query vector to each server in an additive secret manner. Each server divides the ciphertext state numerical data sequence according to the query vector length and performs an inner product operation with the query vector of the current round, thereby reducing the database size while retaining the relevant data of the target information. The above steps are repeated until the database size is reduced to 1, ultimately achieving the extraction of the relevant data of the target information. To reduce server communication overhead, homomorphic encryption technology is proposed to encrypt the numerical data in the secret sharing state, and then reconstruct the ciphertext state numerical data accordingly, and perform an inner product operation with the query vector in the secret sharing state, thereby replacing the secret sharing multiplication operation with the secret sharing scalar multiplication operation, reducing the number of interactions between servers, reducing communication overhead, and maintaining the privacy of the numerical data. To support covert queries of various data types, a multi-type data numerical conversion scheme based on source coding is proposed. Specifically, the data provider represents sensitive data as a numerical sequence based on source coding technology, divides the numerical sequence into equal-length segments, and converts each segment into elements on a specific ring, thus achieving the numerical conversion of sensitive data.

[0105] The beneficial effects are as follows: by applying homomorphic encryption algorithms, the algorithm execution process no longer relies on trusted third parties, reducing security risks and effectively reducing server-side communication overhead; by extracting target information from the database through block computation and round-by-round reduction, the client only needs to send a small amount of query information to obtain the target information, significantly reducing the client's computation and communication overhead; under the assumption that all servers do not collude, the server cannot obtain the client's target information index through query information, protecting the client's privacy; the client cannot obtain other sensitive data from the data provider other than the target information based on the server's feedback results, protecting the data provider's privacy.

[0106] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0107] Reference Figure 4 Embodiments of the present invention also provide a data processing system, comprising:

[0108] The acquisition module 11 is used to acquire the query information sent by the client. The query information includes the query vector secret share of each round in multiple iterations.

[0109] Processing module 12 is used to divide the ciphertext state data of the current iteration into at least one data block, perform an inner product operation on each data block with the secret share of the query vector of the current iteration to generate multiple encrypted intermediate data, and send them to other servers. Based on the multiple encrypted intermediate data generated by each server, the ciphertext state data of the next iteration is reconstructed. This step is repeated until the iteration termination condition is met. The ciphertext state data of the first iteration is obtained based on the secret sharing share of each server.

[0110] Feedback module 13 is used to return the ciphertext state data when the iteration termination condition is met to the client so that the client can decrypt and reconstruct the numerical data of the target information.

[0111] In one exemplary embodiment, the process of dividing the ciphertext state data of the current iteration into at least one data block includes:

[0112] Determine the length of the query vector;

[0113] Divide the encrypted state data of the current iteration into at least one data block according to the query vector length, with the length of the data block being equal to the query vector length.

[0114] In an exemplary embodiment, the process of dividing the ciphertext state data of the current iteration into at least one data block according to the query vector length includes:

[0115] Divide the ciphertext state data of the current iteration into at least one data block according to the query vector length;

[0116] Determine whether at least one data block contains a target data block whose length is less than the query vector length;

[0117] If so, add the preset supplementary value to the target data block so that the length of the supplemented target data block is equal to the length of the query vector.

[0118] In an exemplary embodiment, the process of performing an inner product operation on at least one data block with the secret share of the query vector in the current iteration to generate multiple encrypted intermediate data blocks and then sending them to other servers includes:

[0119] For each data block, perform an inner product calculation with the secret share of the query vector in the current iteration to obtain the inner product calculation result;

[0120] Multiple encrypted intermediate data are obtained by performing a first encryption calculation on the results of multiple inner product calculations using a preset public key.

[0121] In an exemplary embodiment, the process of performing a first encryption calculation on multiple inner product calculation results using a preset public key to obtain multiple encrypted intermediate data includes:

[0122] For each inner product calculation result, determine the current random element, and use the preset public key and the current random element to perform the first encryption calculation on the inner product calculation result to obtain intermediate encrypted data.

[0123] In one exemplary embodiment, the process of reconstructing the ciphertext state data for the next iteration based on multiple encrypted intermediate data generated by each server includes:

[0124] Homomorphic addition is performed on multiple encrypted intermediate data generated by each server to obtain the ciphertext state data for the next iteration;

[0125] The process of obtaining the ciphertext state data for the first round of iteration based on the secret sharing shares of each server includes:

[0126] Multiple initial encrypted data are generated by performing a second encryption calculation on the secret sharing shares of each server using a preset public key;

[0127] Homomorphic addition is performed on multiple initial encrypted data generated by each server to obtain the ciphertext state data for the first round of iteration.

[0128] In one exemplary embodiment, the preset public key is the public key in a key pair generated by the client using a homomorphic encryption algorithm from two prime numbers determined by the client based on the length information of the digital sequence segment corresponding to the numerical data of the target information.

[0129] In one exemplary embodiment, the process of reconstructing the numerical data of the target information after decryption by the client includes:

[0130] The client reconstructs homomorphically encrypted numerical data based on the ciphertext state data returned by each server;

[0131] The private key in the key pair is used to decrypt the homomorphic ciphertext of the homomorphically encrypted numerical data to obtain the numerical data of the target information. The numerical data of the target information is then converted into a digital sequence.

[0132] Convert a sequence of numbers into numerical data representing the target information.

[0133] In one exemplary embodiment, the iteration termination condition includes reaching a preset number of iterations and / or reducing the number of data blocks of ciphertext state data to a preset number.

[0134] In one exemplary embodiment, the data processing system is further configured to:

[0135] Encode the numerical data of the target information into a numerical sequence;

[0136] The numerical sequence is divided into segments of equal length and converted into numerical data segment by segment. Each segment of the converted numerical data is then secretly shared to obtain multiple secret sharing shares. The number of secret sharing shares is equal to the number of servers.

[0137] Distribute multiple secret sharing shares to multiple servers.

[0138] In one exemplary embodiment, the data processing system is further configured to:

[0139] The client determines the query vector length, the index for the target information, and the database size.

[0140] Query information is generated based on the query vector length, the index of the target information, and the database size.

[0141] In one exemplary embodiment, the process of generating query information based on the query vector length, the index of the target information, and the database size includes:

[0142] The absolute index sequence of the target information in each iteration is calculated based on the query vector length, the index of the target information, and the database size.

[0143] Calculate the relative index sequence based on the absolute index sequence and the query vector length;

[0144] Construct a query vector sequence using a relative index sequence; the query vector sequence includes the query vectors from each iteration.

[0145] For each iteration of the query vector, the query vector is randomly split to obtain multiple query vector secret shares, and these multiple query vector secret shares are sent to multiple servers respectively.

[0146] The description of the features of the data processing system in this embodiment can be found in the relevant description of the data processing method in the embodiment, and will not be repeated here.

[0147] Please refer to Figure 5 Embodiments of the present invention also provide an electronic device, comprising:

[0148] Memory 21 is used to store computer programs;

[0149] Processor 22 is used to implement the steps of any of the data processing methods described above when executing a computer program.

[0150] The electronic device also includes:

[0151] Input interface 23, connected to processor 22 via communication bus 26, is used to acquire externally imported computer programs, parameters, and instructions, and save them to memory 21 under the control of processor 22. This input interface can be connected to an input device to receive parameters or instructions manually entered by the user. This input device can be a touch layer covering the display screen, or buttons, a trackball, or a touchpad mounted on the terminal casing.

[0152] Display unit 24 is connected to processor 22 via communication bus 26 and is used to display data sent by processor 22. This display unit can be a liquid crystal display screen or an electronic ink display screen, etc.

[0153] Network port 25 is connected to processor 22 via communication bus 26 and is used for communication with external terminal devices. The communication technology used for this connection can be wired or wireless communication technology, such as mobile high-definition link technology, universal serial bus, high-definition multimedia interface, wireless fidelity technology, Bluetooth communication technology, Bluetooth low power communication technology, and communication technology based on IEEE 802.11s.

[0154] Please refer to Figure 6 The embodiments of the present invention also provide a computer-readable storage medium 30, on which a computer program 31 is stored, and when the computer program 31 is executed by a processor, it implements the steps of any of the data processing methods described above.

[0155] In one exemplary embodiment, the computer-readable storage medium 30 may include, but is not limited to, various media capable of storing computer programs 31, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0156] Embodiments of the present invention also provide a computer program product, including a computer program / instructions that, when executed by a processor, implement the steps of any of the data processing methods described above.

[0157] Embodiments of the present invention also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described data processing method embodiments.

[0158] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.

[0159] The foregoing has provided a detailed description of the data processing method, product, electronic device, and computer-readable storage medium provided by the present invention. Specific examples have been used to illustrate the principles and implementation methods of the present invention. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and core ideas of the present invention. It should be noted that those skilled in the art can make various improvements and modifications to the present invention without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of the present invention.

Claims

1. A data processing method, characterized in that, A secret sharing share of numerical data of target information is stored on each of the multiple servers used in the query system. The data processing method for any server includes: Obtain the query information sent by the client, the query information including the query vector secret share of each round in the multi-round iteration; The ciphertext state data of the current iteration is divided into multiple data blocks. Each of these data blocks is then multiplied by the secret share of the query vector in the current iteration to generate multiple encrypted intermediate data, which are then sent to the other servers. The ciphertext state data for the next iteration is reconstructed based on the encrypted intermediate data generated by each server. This process is repeated until the iteration termination condition is met. The ciphertext state data for the first iteration is obtained based on the secret sharing shares of each server. The inner product operation includes homomorphic addition and homomorphic scalar multiplication in homomorphic encryption algorithms. After each iteration, the amount of ciphertext state data decreases. The encrypted state data when the iteration termination condition is met is returned to the client so that the client can decrypt and reconstruct the numerical data of the target information. The process of dividing the ciphertext state data of the current iteration into multiple data blocks includes: Determine the length of the query vector; The encrypted state data of the current iteration is divided into multiple data blocks according to the length of the query vector, and the length of the data block is equal to the length of the query vector; The process of reconstructing the ciphertext state data for the next iteration based on multiple encrypted intermediate data generated by each of the aforementioned servers includes: Homomorphic addition is performed on the multiple encrypted intermediate data generated by each of the servers to obtain the ciphertext state data for the next iteration; The process of obtaining the ciphertext state data for the first round of iteration based on the secret sharing shares of each of the aforementioned servers includes: Multiple initial encrypted data are generated by performing a second encryption calculation on the secret sharing share of each of the aforementioned servers using a preset public key; Homomorphic addition is performed on the multiple initial encrypted data generated by each of the servers to obtain the ciphertext state data of the first round of iteration; In this process, after each iteration, the amount of ciphertext state data in the next iteration is determined according to... It is confirmed that, among them, , This indicates the number of data points in the 0th iteration. This indicates the number of data points in the first iteration. This indicates the number of data points in the last iteration. This represents the total number of data points before iteration. This represents the number of data points in the i-th iteration. This indicates rounding down to the nearest integer element, and l represents the length of the query vector.

2. The data processing method according to claim 1, characterized in that, The process of dividing the ciphertext state data of the current iteration into multiple data blocks according to the length of the query vector includes: The encrypted state data of the current iteration is divided into multiple data blocks according to the length of the query vector; Determine whether there exists a target data block among the multiple data blocks whose length is less than the length of the query vector; If so, a preset supplementary value is added to the target data block so that the length of the supplemented target data block is equal to the length of the query vector.

3. The data processing method according to claim 1, characterized in that, The process of performing inner product operations on multiple data blocks with the secret share of the query vector in the current iteration to generate multiple encrypted intermediate data and then sending them to the other servers includes: For each data block, the inner product of the data block and the secret share of the query vector in the current iteration is calculated to obtain the inner product result; Multiple encrypted intermediate data are obtained by performing a first encryption calculation on the multiple inner product calculation results using a preset public key.

4. The data processing method according to claim 3, characterized in that, The process of obtaining multiple encrypted intermediate data by performing a first encryption calculation on multiple inner product calculation results using a preset public key includes: For each inner product calculation result, a current random element is determined, and the inner product calculation result is used to perform a first encryption calculation using a preset public key and the current random element to obtain intermediate encrypted data.

5. The data processing method according to claim 3, characterized in that, The preset public key is the public key in a key pair generated by the client using a homomorphic encryption algorithm from two prime numbers determined by the client based on the length information of the digital sequence fragment corresponding to the numerical data of the target information.

6. The data processing method according to claim 5, characterized in that, The process of reconstructing numerical data of the target information after client decryption includes: The client reconstructs homomorphically encrypted numerical data based on the ciphertext state data returned by each of the servers; The homomorphic ciphertext of the homomorphically encrypted numerical data is decrypted using the private key in the key pair to obtain the numerical data of the target information, and the numerical data of the target information is converted into a digital sequence.

7. The data processing method according to claim 1, characterized in that, The iteration termination conditions include the number of iterations reaching a preset number and / or the number of data blocks of the ciphertext state data being reduced to a preset number.

8. The data processing method according to claim 1, characterized in that, The data processing method further includes: Encode the data to be protected into a digital sequence; The digital sequence is divided into segments of equal length, and each segment is converted into numerical data. Each converted numerical data is then secretly shared to obtain multiple secret sharing shares. The number of secret sharing shares is equal to the number of servers. The multiple secret sharing shares are distributed to the multiple servers.

9. The data processing method according to any one of claims 1-8, characterized in that, The data processing method further includes: The client determines the query vector length, the index of the target information, and the database size. The query information is generated based on the query vector length, the index of the target information, and the database size.

10. The data processing method according to claim 9, characterized in that, The process of generating the query information based on the query vector length, the index of the target information, and the database size includes: Calculate the absolute index sequence of the target information in each iteration based on the query vector length, the index of the target information, and the database size; Calculate the relative index sequence based on the absolute index sequence and the query vector length; A query vector sequence is constructed using the relative index sequence; the query vector sequence includes query vectors from each iteration. For each iteration of the query vector, the query vector is randomly split to obtain multiple query vector secret shares, and the multiple query vector secret shares are sent to the multiple servers respectively.

11. A computer program product, characterized in that, Includes a computer program / instructions that, when executed by a processor, implement the steps of the data processing method according to any one of claims 1 to 10.

12. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the data processing method as described in any one of claims 1-10.

13. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the data processing method as described in any one of claims 1-10.

Citation Information

Patent Citations

  • Decryption method, related device and storage medium

    CN115589281A

  • Privacy information retrieval method, system and equipment and storage medium

    CN119760780A