Batch anonymous query method, system and device for multiple data sources

By utilizing the ring-OLE protocol and polynomial operations in the multi-party computation system, the problem of low efficiency in single-query operations in existing anonymous queries is solved, enabling batch anonymous queries across multiple data sources, improving query efficiency while ensuring privacy and result accuracy.

CN117407423BActive Publication Date: 2026-05-08INSIGHT TECHNOLOGY (XIONGAN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INSIGHT TECHNOLOGY (XIONGAN) CO LTD
Filing Date
2023-10-13
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

Existing stealth query solutions can only retrieve one piece of data per client query, resulting in low query efficiency. Furthermore, they cannot perform batch queries in multi-server scenarios, leading to poor query efficiency.

Method used

A multi-party computation system is adopted, which performs polynomial operations through the ring-OLE protocol between the client and the server. It leverages the programmability to achieve batch anonymous queries. The client synchronizes the original polynomial and the polynomial quotient ring to the server, calculates the polynomial, and performs decomposition and interpolation to ensure the privacy and correctness of the query results.

Benefits of technology

This technology enables clients to obtain multiple query results in a single query in multi-data source scenarios, improving query efficiency while ensuring privacy and result accuracy during the query process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117407423B_ABST
    Figure CN117407423B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a batch anonymous query method, system and device for multiple data sources, which comprises the following steps: a client synchronizes an original polynomial and a polynomial quotient ring of the original polynomial to each of k servers; an n-order polynomial is calculated according to n query key values to obtain a first polynomial; each of the k servers calculates k second polynomials and k interpolation polynomials according to respective key value databases; the client and each client perform operations to obtain a first calculation result and k second calculation results; the client decomposes the first calculation result according to a preset constraint relationship to obtain a first decomposition result; the k servers determine k third calculation results; the client determines a fourth calculation result according to the k third calculation results and the original polynomial, and obtains a query result by traversing the n query key values. The embodiment of the application can improve the data query efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of privacy computing technology or computer technology, specifically to a method, system, and apparatus for batch anonymous querying of multiple data sources. Background Technology

[0002] In practical applications, Private Information Retrieval (PIR) technology allows users to query information in a server-side database without revealing their actual query. In traditional private information retrieval, users send a query request to a single data source and receive a response. However, as data becomes more distributed, many scenarios require retrieving information from multiple data sources.

[0003] Anonymous query technology for multiple data sources refers to the ability for users to broadcast query requests to all data sources while maintaining privacy. Batch anonymous query technology allows users to retrieve multiple query results in a single query, improving query efficiency. Therefore, batch anonymous query technology for multiple data sources significantly improves query efficiency while ensuring privacy, and is widely used in fields such as finance and healthcare. Currently, existing anonymous query solutions only allow clients to retrieve one data point per query, resulting in low query efficiency. Therefore, the problem of how to implement batch anonymous queries to improve query efficiency urgently needs to be solved. Summary of the Invention

[0004] This application provides a method, system, and apparatus for batch anonymous querying of multiple data sources, which can realize batch anonymous querying to improve query efficiency.

[0005] In a first aspect, embodiments of this application provide a batch anonymous query method for multiple data sources, applied to a multi-party computing system. The multi-party computing system includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data pair; n and k are both positive integers. The method includes:

[0006] The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers; the nth-order polynomial is calculated based on the n query key values ​​to obtain the first polynomial.

[0007] Each of the k servers calculates an nth-order polynomial based on its own key-value database to obtain k second polynomials, and then calculates the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0008] The client performs calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. The first calculation result and each of the k second calculation results satisfy a preset constraint relationship.

[0009] The client decomposes the first calculation result according to the preset constraint relationship to obtain a first decomposition result; the first decomposition result is broadcast to each of the k servers.

[0010] Each of the k servers decomposes the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results;

[0011] By determining the nth-order polynomial of each of the k servers based on the polynomial quotient ring and the k interpolation polynomials, k third polynomials are obtained.

[0012] Each of the k servers performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results;

[0013] The client determines the fourth calculation result based on the k third calculation results and the original polynomial; and iterates through the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0014] Secondly, embodiments of this application provide a multi-party computation system, comprising: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data value; n and k are both positive integers.

[0015] The client is used to synchronize the original polynomial and the polynomial quotient ring of the original polynomial to each of the k servers; and to calculate the nth-order polynomial based on the n query key values ​​to obtain the first polynomial.

[0016] Each of the k servers is used to calculate an nth-order polynomial based on its own key-value database to obtain k second polynomials, and to calculate the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0017] The client is configured to perform calculations with each of the k servers based on the ring-OLE protocol, obtaining a first calculation result and k second calculation results for the client, with each of the k servers corresponding to one second calculation result. A preset constraint relationship is satisfied between the first calculation result and each of the k second calculation results. The first calculation result is then decomposed according to the preset constraint relationship to obtain a first decomposition result. Finally, the first decomposition result is broadcast to each of the k servers.

[0018] Each of the k servers is used to decompose the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results; determine the nth order polynomial of each server according to the polynomial quotient ring and the k interpolation polynomials to obtain k third polynomials; and perform calculations according to their respective second decomposition results, third polynomials, second polynomials and first decomposition results to obtain k third calculation results.

[0019] The client is configured to determine a fourth calculation result based on the k third calculation results and the original polynomial; and to traverse the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0020] Thirdly, embodiments of this application provide an electronic device, including a processor, a memory, a communication interface, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the processor, and the programs include instructions for performing the steps in the first aspect of embodiments of this application.

[0021] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program for electronic data interchange, wherein the computer program causes a computer to perform some or all of the steps described in the first aspect of embodiments of this application.

[0022] Fifthly, embodiments of this application provide a computer program product, wherein the computer program product includes a non-transitory computer-readable storage medium storing a computer program operable to cause a computer to perform some or all of the steps described in the first aspect of embodiments of this application. The computer program product may be a software installation package.

[0023] Implementing the embodiments of this application has the following beneficial effects:

[0024] As can be seen, the batch anonymous query method, system, and apparatus for multiple data sources described in the embodiments of this application are applied to a multi-party computing system. The multi-party computing system includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data. n and k are both positive integers. The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers. The nth-order polynomial is calculated based on the n query keys to obtain the first polynomial. Each of the k servers then calculates the first polynomial based on the n query keys. The system calculates an nth-order polynomial from its own key-value database, obtaining k second polynomials. It then calculates the corresponding interpolation polynomials for each of the k second polynomials, obtaining k interpolation polynomials. These interpolation polynomials are then processed by a client using the ring-OLE protocol with each of the k servers, resulting in a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. A preset constraint relationship exists between the first calculation result and each of the k second calculation results. The client decomposes the first calculation result according to this preset constraint relationship, obtaining a first decomposition result. This first decomposition result is then broadcast to each of the k servers. Each server in the k-server architecture decomposes the corresponding second calculation result according to preset constraints, obtaining k second decomposition results. Each of the k servers then determines its nth-order polynomial based on the polynomial quotient ring and k interpolation polynomials, obtaining k third polynomials. Each of the k servers then performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result, obtaining k third calculation results. The client then determines the fourth calculation result based on the k third calculation results and the original polynomial. Based on the fourth calculation result, the client iterates through n query key values ​​to obtain the target query result. Therefore, by combining the keys of each party... The encoding is a null polynomial. When the client queries, it only needs to calculate whether the polynomial result is 0 to determine whether the query key exists in the server's database. At the same time, batch query operations can be realized. The server's key-value pairs are interpolated into a polynomial. The client can obtain the value corresponding to the query key by calculating the result of the interpolation polynomial, which ensures the correctness of the result. Moreover, by utilizing the programmable nature of the ring-OLE protocol, the client can obtain the return values ​​of different servers with a single broadcast, realizing multi-data source queries. During the entire calculation process, none of the servers know the client's query key, which ensures privacy. In this way, batch anonymous queries can be realized to improve query efficiency. Attached Figure Description

[0025] To more clearly illustrate the technical solutions in the embodiments of 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 only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0026] Figure 1 This is a schematic diagram of the architecture of a multi-party computation system for implementing a batch anonymous query method for multiple data sources, provided in an embodiment of this application.

[0027] Figure 2 This is a flowchart illustrating a batch anonymous query method for multiple data sources provided in an embodiment of this application;

[0028] Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0029] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. All other embodiments obtained by those skilled in the art without creative effort in the embodiments of the present application are within the scope of protection of the present application.

[0030] The terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.

[0031] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0032] The client described in this application embodiment can be an electronic device, which may include smartphones (such as Android phones, iOS phones, Windows Phones, etc.), tablet computers, PDAs, dashcams, servers, laptops, mobile internet devices (MIDs), or wearable devices (such as smartwatches, Bluetooth headsets), etc. The above are just examples and not exhaustive, including but not limited to the above-mentioned electronic devices. The electronic device may also be a cloud server, or the electronic device may also be a computer cluster.

[0033] In this embodiment of the application, the server may include a server.

[0034] In this embodiment, a sample can be understood as each row of data in the original data. A sample includes an ID, a feature, and a label. The identification (ID) is a unique identifier for each row of data; each row is different, such as an ID card number, mobile phone number, or an auto-incrementing sequence number. The label is the modeling target, a specific outcome the sample aims to predict, such as a borrower (ID being an ID card number) defaulting (label), while another borrower did not default (label). The sample includes both ID and label; the label is a description of the ID and also the target of a modeling exercise. In this embodiment, broadly speaking, ID can be understood as a keyword, and keywords include the identification.

[0035] The ring-OLE features in this embodiment are as follows:

[0036] The ring-OLE protocol, based on a programmable pseudo-random correlation generator (PCG), guarantees that the receiver's output is unique across multiple sender instances during the seed distribution phase, while the senders receive different outputs. In the following scheme, client A acts as the receiver, and servers B and C act as senders.

[0037] In this embodiment, the key value can refer to a unique identifier of the data to be queried. For example, the server has a mapping between users' ID card numbers and mobile phone numbers, meaning each key-value pair consists of an ID card number and a mobile phone number. In this case, the key value is the ID card number, and the data is the mobile phone number. The client can obtain the mobile phone number by querying the ID card number.

[0038] In this embodiment of the application, in specific applications, during the client query process, anonymous query can ensure that the client's specific query request cannot be known by the server, and the client cannot know any other data of the server besides the query result, while ensuring the correctness of the result.

[0039] The anonymity query schemes in related technologies are mainly based on homomorphic encryption, and their implementation process is as follows:

[0040] 1. The client uses a homomorphic encryption algorithm to encrypt the query key-value pair before sending it to the server.

[0041] 2. The server uses the homomorphic property to subtract each key in the database from the ciphertext, multiplies it by a random number, and then sends it to the client.

[0042] 3. After receiving the query, the client decrypts it to obtain the corresponding position of the query value in the database, constructs a query vector (i.e., the query position is 1 and the rest are 0), encrypts the query vector using a homomorphic public key, and sends it to the server.

[0043] 4. The server uses the homomorphic property to multiply the vector ciphertext with the corresponding value, and adds all the results to obtain the ciphertext result, which is then sent to the client.

[0044] 5. The client decrypts the query to obtain the results.

[0045] In other words, the anonymity query schemes in related technologies mainly have two problems:

[0046] 1. The client can only retrieve one piece of data per query, resulting in low query efficiency.

[0047] 2. The client cannot interact with multiple servers simultaneously and obtain query results in a single query, resulting in poor efficiency in scenarios involving multiple server queries.

[0048] To address the shortcomings of related technologies, this application provides a batch anonymous query method for multiple data sources, applied to a multi-party computing system. The multi-party computing system includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data value. n and k are both positive integers. The method includes:

[0049] The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers; the nth-order polynomial is calculated based on the n query key values ​​to obtain the first polynomial.

[0050] Each of the k servers calculates an nth-order polynomial based on its own key-value database to obtain k second polynomials, and then calculates the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0051] The client performs calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. The first calculation result and each of the k second calculation results satisfy a preset constraint relationship.

[0052] The client decomposes the first calculation result according to the preset constraint relationship to obtain a first decomposition result; the first decomposition result is broadcast to each of the k servers.

[0053] Each of the k servers decomposes the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results;

[0054] By determining the nth-order polynomial of each of the k servers based on the polynomial quotient ring and the k interpolation polynomials, k third polynomials are obtained.

[0055] Each of the k servers performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results;

[0056] The client determines the fourth calculation result based on the k third calculation results and the original polynomial; and iterates through the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0057] In this embodiment, the keys of each party are encoded as null polynomials. When the client queries, it only needs to calculate whether the result of the polynomial is 0 to determine whether the query key exists in the server's database. At the same time, batch query operations can be realized. The key-value pairs of the server are interpolated into polynomials. The client can obtain the value corresponding to the query key by calculating the result of the interpolation polynomial, which ensures the correctness of the result. Moreover, by utilizing the programmable nature of the programmable ring-OLE protocol, the client can obtain the return values ​​of different servers with a single broadcast, realizing multi-data source query. During the entire calculation process, none of the servers know the client's query key, which ensures privacy. In this way, batch anonymous queries can be realized to improve query efficiency.

[0058] The embodiments of this application will be described in detail below.

[0059] Please see Figure 1 , Figure 1This is a schematic diagram of the architecture of a multi-party computation system for implementing a batch anonymous query method for multiple data sources, provided in an embodiment of this application. As shown in the figure, the multi-party computation system includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data. n and k are both positive integers.

[0060] The client is used to synchronize the original polynomial and the polynomial quotient ring of the original polynomial to each of the k servers; and to calculate the nth-order polynomial based on the n query key values ​​to obtain the first polynomial.

[0061] Each of the k servers is used to calculate an nth-order polynomial based on its own key-value database to obtain k second polynomials, and to calculate the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0062] The client is configured to perform calculations with each of the k servers based on the ring-OLE protocol, obtaining a first calculation result and k second calculation results for the client, with each of the k servers corresponding to one second calculation result. A preset constraint relationship is satisfied between the first calculation result and each of the k second calculation results. The first calculation result is then decomposed according to the preset constraint relationship to obtain a first decomposition result. Finally, the first decomposition result is broadcast to each of the k servers.

[0063] Each of the k servers is used to decompose the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results; determine the nth order polynomial of each server according to the polynomial quotient ring and the k interpolation polynomials to obtain k third polynomials; and perform calculations according to their respective second decomposition results, third polynomials, second polynomials and first decomposition results to obtain k third calculation results.

[0064] The client is configured to determine a fourth calculation result based on the k third calculation results and the original polynomial; and to traverse the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0065] Optionally, the step of performing calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client includes:

[0066] Based on the programmability of the PCG in the ring-OLE protocol, it performs calculations with each of the k servers and each client to obtain the first calculation result and k second calculation results of the client.

[0067] The first calculation result includes a first reference polynomial and a second reference polynomial; each of the k second calculation results corresponds to a third reference polynomial and a fourth reference polynomial, respectively;

[0068] The second reference polynomial = the first reference polynomial * the target third reference polynomial and the target fourth reference polynomial, wherein the target third reference polynomial and the target fourth reference polynomial are polynomials of any one of the k second calculation results.

[0069] Optionally, when k is 2, the k servers include a first server and a second server; the client's output satisfies the following relationship:

[0070] s A =a'·e B +r B =a'·e C +r C

[0071] Where a' represents the first reference polynomial; s A Represents the second reference polynomial; e B r B The third and fourth reference polynomials represent the second calculation result of the first server; e C r C The third and fourth reference polynomials represent the second calculation result of the second server; s A This is a calculated value.

[0072] Optionally, the step of decomposing the first calculation result according to the preset constraint relationship to obtain the first decomposition result includes:

[0073] The first reference polynomial is decomposed according to the following formula, as follows:

[0074] a'=a'0+a'1·x n

[0075] t A =p A -a'0

[0076] Among them, a'0, t A 、a'1、x n a' represents the first decomposition result; p represents the first reference polynomial;A Let represent the first polynomial.

[0077] Optionally, the step of decomposing the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results includes:

[0078] The second calculation result is decomposed according to the following formula, as follows:

[0079]

[0080]

[0081] in, x n This represents the second decomposition result from the first server. x n This represents the second decomposition result from the second server.

[0082] Optionally, the k third polynomials include: (d B ,g B ) and (d C ,g C ), where (d B ,g B ) is the third polynomial of the first server, (d C ,g C ) represents the third polynomial of the second server;

[0083] The process involves performing calculations based on the respective second decomposition results, third polynomials, the second polynomial, and the first decomposition results to obtain k third calculation results, including:

[0084] The k third calculation results are determined according to the following formula, as follows:

[0085]

[0086]

[0087]

[0088]

[0089] Where, p B p represents the second polynomial of the first server; C F(x) represents the second polynomial of the second server; F(x) represents the original polynomial. This represents the third calculation result from the first server. This represents the third calculation result from the second server.

[0090] Optionally, determining the fourth calculation result based on the k third calculation results and the original polynomial includes:

[0091]

[0092] Among them, U B V B This indicates the fourth calculation result.

[0093] Please see Figure 2 , Figure 2 This is a flowchart illustrating a batch anonymous query method for multiple data sources provided in an embodiment of this application; applicable to, for example... Figure 1 The multi-party computation system shown includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data. n and k are both positive integers. The method may include the following steps:

[0094] 201. The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers; the client calculates the nth-order polynomial based on the n query key values ​​to obtain the first polynomial.

[0095] In this embodiment, the multi-party computation system includes a client and k servers, where k is a positive integer, for example, k is an integer greater than 1. The client may include n query keys, where n is a positive integer. Each of the k servers includes a key-value database, each key-value database includes multiple key-value pairs, and each key-value pair includes a key and a data item.

[0096] For example, in this embodiment of the application, taking client A, server B, and server C as examples, client A holds n query key values ​​{a1, a2, ..., a...} n}, a1, a2, ..., a n These represent key and value, respectively. There are two servers holding a key-value database {(key, value)}. Server B is defined as {(b1, v...}. b1 ),(b2,v b2 ),…,(b n ,v bn )}, b1, b2, ..., b n Represents key-value pairs, (b1, v b1 ) represents a key-value pair, v b1 v b2 ..., v bn These represent the data respectively. The server-side C is {(c1, v...}c1 ),(c2,v c2 ),…,(c n ,v cn For example, if we take} as an example, then similarly, we will not go into details here.

[0097] Among them, server B is also called the first server, and server C is also called the second server.

[0098] In the specific implementation, the client can synchronize the original polynomial and its polynomial quotient ring to each of the k servers. The first polynomial is obtained by calculating the nth-order polynomial based on the n query key values. Here, taking client A as an example, F(x) represents the original polynomial. Representing a polynomial quotient cycle, client A will use the polynomial quotient cycle. The polynomial F(x) is synchronized with all servers. Client A calculates the nth-order polynomial. Where, p A This represents the first polynomial.

[0099] in, In this expression, x represents the independent variable of the polynomial. Let represent a polynomial with coefficients modulo p (modulo p means that if a coefficient is a, then the result of the coefficient in this polynomial is a mod p).

[0100] In this embodiment, the key values ​​of each party are encoded as null polynomials and masked with some random numbers. If the client queries a key value that exists, the result of the polynomial is 0. This property is used to determine whether the key that the client wants to query is in the server. At the same time, this method allows the client to encode the query key values ​​into null polynomials in batches to achieve batch queries.

[0101] 202. Each of the k servers calculates an nth-order polynomial based on its own key-value database to obtain k second polynomials, and calculates the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0102] In this embodiment of the application, each of the k servers can calculate an nth-order polynomial based on its own key-value database to obtain k second polynomials, and calculate the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0103] For example, taking server B and server C as examples, the polynomials are calculated for server B and server C respectively: p B p represents the second polynomial of server B; C This represents the second polynomial in server C.

[0104] Furthermore, servers B and C can respectively calculate the interpolation polynomial G. B G C Among them, G B Satisfy G B (b i ) = v bi G C Satisfy G C (c i ) = v ci .

[0105] In this embodiment, by interpolating the key-value pairs on the server as a polynomial, the client can obtain the value corresponding to the query key by calculating the result of the interpolation polynomial, thus ensuring the correctness of the result.

[0106] 203. The client performs calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. The first calculation result and each of the k second calculation results satisfy a preset constraint relationship.

[0107] In this embodiment of the application, the preset constraint relationship can be set in advance or be the system default.

[0108] In practical implementation, the client can perform calculations with each of the k servers based on the ring-OLE protocol, obtaining a first calculation result and k second calculation results for the client, and one second calculation result corresponding to each of the k servers. A preset constraint relationship is satisfied between the first calculation result and each of the k second calculation results. That is, by utilizing the programmable nature of the ring-OLE protocol, the client can obtain return values ​​from different servers using a single broadcast, realizing multi-data source querying.

[0109] Optionally, step 203 above, in which the client performs calculations with each of the k servers based on the ring-OLE protocol to obtain the client's first calculation result and k second calculation results, may include the following steps:

[0110] The client performs calculations with each of the k servers based on the programmability of the PCG in the ring-OLE protocol to obtain a first calculation result and k second calculation results. The first calculation result includes a first reference polynomial and a second reference polynomial. Each of the k second calculation results corresponds to a third reference polynomial and a fourth reference polynomial. The second reference polynomial = the first reference polynomial * the target third reference polynomial and the target fourth reference polynomial, where the target third reference polynomial and the target fourth reference polynomial are polynomials of any of the k second calculation results.

[0111] In this embodiment, the first calculation result may include a first reference polynomial and a second reference polynomial. Each of the k second calculation results corresponds to a third reference polynomial and a fourth reference polynomial, respectively. Based on the programmability of the PCG in the ring-OLE protocol, the client performs calculations with each of the k servers to obtain the client's first calculation result and the k second calculation results.

[0112] Wherein, the second reference polynomial = the first reference polynomial * the target third reference polynomial and the target fourth reference polynomial, and the target third reference polynomial and the target fourth reference polynomial are polynomials of any of the k second calculation results.

[0113] Optionally, when k is 2, the k servers include a first server and a second server; the client's output satisfies the following relationship:

[0114] s A =a'·e B +r B =a'·e C +r C

[0115] Where a' represents the first reference polynomial; s A Represents the second reference polynomial; e B r B The third and fourth reference polynomials represent the second calculation result of the first server; e C r C The third and fourth reference polynomials represent the second calculation result of the second server; s A This is a calculated value.

[0116] To illustrate, taking the aforementioned server B and server C as examples, server B and server C respectively calculate the interpolation polynomial G. B G C Among them, GB Satisfy G B (b i ) = v bi G C Satisfy G C (c i ) = v ci Client A communicates with servers B and C via the Ring-OLE protocol. Based on the programmability of the PCG in this protocol, it can be guaranteed that the client receives the same output across all protocols, namely the 2n-order polynomials a' and s. A After the protocol is passed between server B and server C, a 2n-order polynomial (e^(n-1)) is obtained respectively. B ,r B ) and (e C ,r C The output of client A satisfies s. A =a'·e B +r B =a'·e C +r C .

[0117] 204. The client decomposes the first calculation result according to the preset constraint relationship to obtain a first decomposition result; the first decomposition result is broadcast to each of the k servers.

[0118] In this embodiment, the preset constraint relationship can be pre-set or defaulted to by the system. In specific implementation, the client can decompose the first calculation result according to the preset constraint relationship to obtain the first decomposition result, and then broadcast the first decomposition result to each of the k servers.

[0119] Optionally, step 204 above, which decomposes the first calculation result according to the preset constraint relationship to obtain the first decomposition result, may include the following steps:

[0120] The first reference polynomial is decomposed according to the following formula, as follows:

[0121] a'=a'0+a'1·x n

[0122] t A =p A -a'0

[0123] Among them, a'0, t A 、a'1、x n a' represents the first decomposition result; p represents the first reference polynomial; A Let represent the first polynomial.

[0124] The predefined constraint relationship can be understood as the specific formula for decomposing the first reference polynomial. Taking client A as an example, client A can decompose a' into a' = a'0 + a'1·x. n And calculate t A =p A -a'0 broadcasts it to all servers.

[0125] 205. Each of the k servers decomposes the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results.

[0126] In this embodiment of the application, each of the k servers can decompose the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results.

[0127] Optionally, in step 205 above, each of the k servers decomposes the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results, including:

[0128] The second calculation result is decomposed according to the following formula, as follows:

[0129]

[0130]

[0131] in, x n This represents the second decomposition result from the first server. x n This represents the second decomposition result from the second server.

[0132] In a specific implementation, taking server B and server C as an example, server B will e B Decomposed into Similarly, server C will e C Decomposed into

[0133] 206. By determining the nth-order polynomial of each of the k servers based on the polynomial quotient ring and the k interpolation polynomials, k third polynomials are obtained.

[0134] In this embodiment, each of the k servers can determine its nth-order polynomial based on the polynomial quotient ring and the k interpolation polynomials, thus obtaining k third polynomials. A polynomial can be selected from the polynomial quotient ring, and an interpolation polynomial can be selected from the k interpolation polynomials.

[0135] In a specific implementation, taking server B and server C as examples, server B and server C are respectively in the ring Select a random nth-order polynomial (d B ,g B ) and (d C ,g C ).

[0136] 207. Each of the k servers performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results.

[0137] In this embodiment of the application, each of the k servers can perform calculations based on its own second decomposition result, third polynomial, second polynomial, original polynomial and first decomposition result to obtain k third calculation results.

[0138] In this embodiment of the application, no server can know the client's query key during the entire calculation process, thus ensuring privacy.

[0139] Optionally, the k third polynomials include: (d B ,g B ) and (d C ,g C ), where (d B ,g B ) is the third polynomial of the first server, (d C ,g C ) represents the third polynomial of the second server;

[0140] Step 207 above, in which each of the k servers performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results, can be implemented as follows:

[0141] The k third calculation results are determined according to the following formula, as follows:

[0142]

[0143]

[0144]

[0145]

[0146] Where, p B p represents the second polynomial of the first server; CF(x) represents the second polynomial of the second server; F(x) represents the original polynomial. This represents the third calculation result from the first server. This represents the third calculation result from the second server.

[0147] Among them, (d) B ,g B ) represents two random n-order polynomials, mainly used for randomization to mask information.

[0148] In practical applications, in this embodiment of the application, server B calculates the polynomial. Then server C can compute the polynomial. Furthermore, server B can calculate Furthermore, server C can calculate Server B will Send to client A, server C will Send to client A.

[0149] 208. The client determines the fourth calculation result based on the k third calculation results and the original polynomial; the client then iterates through the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0150] In practice, the client can determine the fourth calculation result based on the k third calculation results and the original polynomial, and then iterate through the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0151] In this embodiment, the client queries the key-value pairs, and each server embeds the key-value database information into its own generated polynomial. The client and the server jointly calculate a query polynomial, ensuring that the client can retrieve multiple data from multiple servers at once while protecting privacy. The client executes the query and obtains the query results.

[0152] In this embodiment of the application, for the scenario of a single client querying multiple servers, the problem that traditional anonymous query schemes cannot perform batch queries and cannot query multiple servers simultaneously is solved, while ensuring the security and privacy of the scheme and improving the overall query efficiency.

[0153] Optionally, step 208 above, in which the client determines the fourth calculation result based on the k third calculation results and the original polynomial, can be implemented in the following manner:

[0154]

[0155] Among them, U B V B This indicates the fourth calculation result.

[0156] In this embodiment of the application, taking the client as an example, client A calculates:

[0157]

[0158] Then, you can iterate through your query key-value set {a1, a2, ..., a n If there exists a i Satisfy U B (a i If ) = 0, then V B (a i The result is a. i The query results in server B's database are obtained in the same way in server C.

[0159] Furthermore, in the embodiments of this application, the correctness of the solution is explained as follows:

[0160]

[0161]

[0162] Then the query key value a of client A i Satisfy p A (a i If ) = 0, and the key is in the database of server B, then p is satisfied. B (a i ) = 0, therefore U B (a i )=0,V B (a i ) = G B (a i The result is shown below. The same applies to server-side C.

[0163] In this embodiment, the keys of each party are encoded as null polynomials and masked with random numbers. If the key value queried by the client exists, the result of the polynomial is 0. This property is used to determine whether the key queried by the client exists on the server. At the same time, this method allows the client to encode the key values ​​to null polynomials in batches to achieve batch queries. The key-value pairs of each server are encoded as interpolation polynomials and masked in a similar way. If the result of the null polynomial is 0, the result of the interpolation polynomial is the value corresponding to the key. Furthermore, an implementation based on ring-oblivious linear evaluation (ring-OLE) is used, namely, a programmable PCG implementation, which allows a single client to execute the ring-OLE protocol with multiple servers while ensuring a unique result. This property ensures that subsequent clients can send parameters in a broadcast manner and receive server return values ​​to achieve multi-data source queries.

[0164] For example, in this embodiment of the application, the participants include those holding n query key values ​​{a1, a2, ..., a...} n Client A and multiple servers holding a key-value database {(key,value)}, with two servers B {(b1,v... b1 ),(b2,v b2 ),…,(b n ,v bn )}、C{(c1,v c1 ),(c2,v c2 ),…,(c n ,v cn For example, the specific steps for querying are as follows:

[0165] S1, Client A will use the polynomial business cycle The polynomial F(x) is synchronized to all servers.

[0166] S2, Client A calculates the nth-order polynomial.

[0167] S3 servers B and C respectively calculate the polynomial

[0168] S4, Servers B and C respectively calculate the interpolation polynomial G B G C Among them, G B Satisfy G B (b i ) = v bi G C Satisfy G C (c i ) = v ci .

[0169] S5. Client A establishes Ring-OLE protocols with servers B and C respectively. Based on the programmability of the PCG in this protocol, it can be guaranteed that the client receives the same output in all protocols, namely the 2n-order polynomials a' and s. A After the protocol is passed between server B and server C, a 2n-order polynomial (e^(n-1)) is obtained respectively. B ,r B ) and (e C ,r C The output of client A satisfies s. A =a'·e B +r B =a'·e C +r C .

[0170] S6. Client A decomposes a' into a' = a'0 + a'1·x n And calculate t A =p A -a'0 broadcasts it to all servers.

[0171] S7, Server B will e B Decomposed into Similarly, server C will e C Decomposed into

[0172] S8, server B, and C are respectively in the ring Select a random nth order polynomial (d B ,g B ) and (d C ,g C ).

[0173] S9, Server B calculates polynomials Server-side C computation of polynomials

[0174] S10, Server-side B calculation Server-side C computation

[0175] S11, Server B will Send to client A, server C will Send to client A

[0176] S12, Client A calculates It iterates through its own set of query keys {a1, a2, ..., a...} n If there exists a i Satisfy U B (a i If ) = 0, then V B (ai The result is a. i The query results in server B's database are obtained in the same way in server C.

[0177] To illustrate further, consider three data source servers: China Mobile, China Telecom, and China Unicom, each with its own key-value database (key-value pairs could be: user ID number - monthly spending). A client, an auditing unit, needs to query the total spending of multiple individuals for the current month, without revealing the specific users to the server. In this case, the batch anonymous query method for multiple data sources described in this embodiment is necessary, enabling a single query to retrieve information for multiple users across all servers.

[0178] As can be seen, the batch anonymous query method for multiple data sources described in this application embodiment is applied to a multi-party computing system. The multi-party computing system includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data. n and k are both positive integers. The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers. The nth-order polynomial is calculated based on the n query keys to obtain the first polynomial. Each of the k servers then calculates the first polynomial based on its respective key. The database calculates an nth-order polynomial, obtaining k second polynomials, and then calculates the corresponding interpolation polynomials, obtaining k interpolation polynomials. These interpolation polynomials are then processed by a client using the ring-OLE protocol with each of the k servers, resulting in a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. A preset constraint relationship exists between the first calculation result and each of the k second calculation results. The client decomposes the first calculation result according to this preset constraint relationship, obtaining a first decomposition result. This first decomposition result is then broadcast to each of the k servers. Each server in the client decomposes the corresponding second calculation result according to preset constraints, obtaining k second decomposition results. Each of the k servers then determines its nth-order polynomial based on the polynomial quotient ring and k interpolation polynomials, obtaining k third polynomials. Each of the k servers then performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result, obtaining k third calculation results. The client then determines the fourth calculation result based on the k third calculation results and the original polynomial. Based on the fourth calculation result, the client iterates through n query key values ​​to obtain the target query result. Therefore, by encoding the keys of each party... The code is a null polynomial. When the client queries, it only needs to calculate whether the polynomial result is 0 to determine whether the query key exists in the server's database. At the same time, batch query operations can be realized. The server's key-value pairs are interpolated into a polynomial. The client can obtain the value corresponding to the query key by calculating the result of the interpolation polynomial, which ensures the correctness of the result. Moreover, by utilizing the programmable nature of the ring-OLE protocol, the client can obtain the return values ​​of different servers with a single broadcast, realizing multi-data source query. During the entire calculation process, none of the servers know the client's query key, which ensures privacy. In this way, batch anonymous queries can be realized to improve query efficiency.

[0179] Consistent with the above embodiments, please refer to Figure 3 , Figure 3This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. As shown in the figure, the electronic device includes a processor, a memory, a communication interface, and one or more programs. The one or more programs are stored in the memory and configured to be executed by the processor. In this embodiment, the electronic device is applied to a multi-party computing system, which includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data. n and k are both positive integers. The program includes instructions for performing the following steps:

[0180] The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers; the nth-order polynomial is calculated based on the n query key values ​​to obtain the first polynomial.

[0181] Each of the k servers calculates an nth-order polynomial based on its own key-value database to obtain k second polynomials, and then calculates the corresponding interpolation polynomials to obtain k interpolation polynomials.

[0182] The client performs calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. The first calculation result and each of the k second calculation results satisfy a preset constraint relationship.

[0183] The client decomposes the first calculation result according to the preset constraint relationship to obtain a first decomposition result; the first decomposition result is broadcast to each of the k servers.

[0184] Each of the k servers decomposes the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results;

[0185] By determining the nth-order polynomial of each of the k servers based on the polynomial quotient ring and the k interpolation polynomials, k third polynomials are obtained.

[0186] Each of the k servers performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results;

[0187] The client determines the fourth calculation result based on the k third calculation results and the original polynomial; and iterates through the n query key values ​​based on the fourth calculation result to obtain the target query result.

[0188] Optionally, in obtaining a first calculation result and k second calculation results from the client by performing calculations with each of the k servers based on the ring-OLE protocol, the above procedure includes instructions for performing the following steps:

[0189] The client performs calculations with each of the k servers based on the programmability of the PCG in the ring-OLE protocol to obtain the client's first calculation result and k second calculation results;

[0190] The first calculation result includes a first reference polynomial and a second reference polynomial; each of the k second calculation results corresponds to a third reference polynomial and a fourth reference polynomial, respectively;

[0191] The second reference polynomial = the first reference polynomial * the target third reference polynomial and the target fourth reference polynomial, wherein the target third reference polynomial and the target fourth reference polynomial are polynomials of any one of the k second calculation results.

[0192] Optionally, when k is 2, the k servers include a first server and a second server; the client's output satisfies the following relationship:

[0193] s A =a'•e B +r B =a'·e C +r C

[0194] Where a' represents the first reference polynomial; s A Represents the second reference polynomial; e B r B The third and fourth reference polynomials represent the second calculation result of the first server; e C r C The third and fourth reference polynomials represent the second calculation result of the second server; s A This is a calculated value.

[0195] Optionally, in the step of decomposing the first calculation result according to the preset constraint relationship to obtain the first decomposition result, the above program includes instructions for performing the following steps:

[0196] The first reference polynomial is decomposed according to the following formula, as follows:

[0197] a'=a'0+a'1·x n

[0198] t A =p A -a'0

[0199] Among them, a'0, t A 、a'1、x n a' represents the first decomposition result; p represents the first reference polynomial; A Let represent the first polynomial.

[0200] Optionally, in the step of decomposing the corresponding second calculation result according to the preset constraint relationship through each of the k servers to obtain k second decomposition results, the above program includes instructions for performing the following steps:

[0201] The second calculation result is decomposed according to the following formula, as follows:

[0202]

[0203]

[0204] in, x n This represents the second decomposition result from the first server. x n This represents the second decomposition result from the second server.

[0205] Optionally, the k third polynomials include: (d B ,g B ) and (d C ,g C ), where (d B ,g B ) is the third polynomial of the first server, (d C ,g C ) represents the third polynomial of the second server;

[0206] In obtaining k third calculation results by performing calculations on each of the k servers based on their respective second decomposition result, third polynomial, second polynomial, and first decomposition result, the above program includes instructions for performing the following steps:

[0207] The k third calculation results are determined according to the following formula, as follows:

[0208]

[0209]

[0210]

[0211]

[0212] Where, p B p represents the second polynomial of the first server; C F(x) represents the second polynomial of the second server; F(x) represents the original polynomial. This represents the third calculation result from the first server. This represents the third calculation result from the second server.

[0213] Optionally, in determining the fourth calculation result by the client based on the k third calculation results and the original polynomial, the above procedure includes instructions for performing the following steps:

[0214]

[0215] Among them, U B V B This indicates the fourth calculation result.

[0216] This application also provides a computer storage medium storing a computer program for electronic data interchange, which causes a computer to perform some or all of the steps of any of the methods described in the above method embodiments, wherein the computer includes an electronic device.

[0217] This application also provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program operable to cause a computer to perform some or all of the steps of any of the methods described in the above method embodiments. The computer program product may be a software installation package, and the computer may include an electronic device.

[0218] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.

[0219] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions in other embodiments.

[0220] In the several embodiments provided in this application, it should be understood that the disclosed apparatus can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical or other forms.

[0221] The units described above 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 units can be selected to achieve the purpose of this embodiment according to actual needs.

[0222] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0223] If the integrated units described above are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage device (CMD). In this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory 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 memory includes various media capable of storing program code, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.

[0224] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, which may include: flash drive, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.

[0225] The embodiments of this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The description of the above embodiments is only for the purpose of helping to understand the method and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A batch anonymous query method for multiple data sources, characterized in that, The method is applied to a multi-party computation system, which includes: a client and k servers. The client includes n query keys, and each of the k servers includes a key-value database. Each key-value database includes multiple key-value data pairs, and each key-value data pair includes a key and a data element. n and k are both positive integers. The client synchronizes the original polynomial and its polynomial quotient ring to each of the k servers; the nth-order polynomial is calculated based on the n query key values ​​to obtain the first polynomial. Each of the k servers calculates an nth-order polynomial based on its own key-value database to obtain k second polynomials, and then calculates the corresponding interpolation polynomials to obtain k interpolation polynomials. The client performs calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client. Each of the k servers corresponds to one second calculation result. The first calculation result and each of the k second calculation results satisfy a preset constraint relationship. The client decomposes the first calculation result according to the preset constraint relationship to obtain a first decomposition result; the first decomposition result is broadcast to each of the k servers. Each of the k servers decomposes the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results; By determining the nth-order polynomial of each of the k servers based on the polynomial quotient ring and the k interpolation polynomials, k third polynomials are obtained. Each of the k servers performs calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results; The client determines the fourth calculation result based on the k third calculation results and the original polynomial; and iterates through the n query key values ​​based on the fourth calculation result to obtain the target query result.

2. The method according to claim 1, characterized in that, The process involves the client performing calculations with each of the k servers based on the ring-OLE protocol to obtain a first calculation result and k second calculation results for the client, including: The client performs calculations with each of the k servers based on the programmability of the PCG in the ring-OLE protocol to obtain the client's first calculation result and k second calculation results; The first calculation result includes a first reference polynomial and a second reference polynomial; each of the k second calculation results corresponds to a third reference polynomial and a fourth reference polynomial, respectively; The second reference polynomial = the first reference polynomial * the target third reference polynomial and the target fourth reference polynomial, wherein the target third reference polynomial and the target fourth reference polynomial are polynomials of any one of the k second calculation results.

3. The method according to claim 2, characterized in that, When k is 2, the k servers include a first server and a second server; the output of the client satisfies the following relationship: s A =a′·e B +r B =a′·e C +r C Where a' represents the first reference polynomial; s A Represents the second reference polynomial; e B r B The third and fourth reference polynomials represent the second calculation result of the first server; e C r C The third and fourth reference polynomials represent the second calculation result of the second server; s A This is a calculated value.

4. The method according to claim 3, characterized in that, The step of decomposing the first calculation result according to the preset constraint relationship to obtain the first decomposition result includes: The first reference polynomial is decomposed according to the following formula, as follows: a′=a′0+a′1·x n t A =p A -a′0 Among them, a'0, t A a′1, x n a' represents the first decomposition result; p represents the first reference polynomial; A Let represent the first polynomial.

5. The method according to claim 4, characterized in that, The step involves decomposing the corresponding second calculation result through each of the k servers according to the preset constraint relationship to obtain k second decomposition results, including: The second calculation result is decomposed according to the following formula, as follows: in, x n This represents the second decomposition result from the first server. x n This represents the second decomposition result from the second server.

6. The method according to claim 5, characterized in that, The k third polynomials include: (d B ,g B ) and (d C ,g C ), where (d B ,g B ) is the third polynomial of the first server, (d C ,g C ) represents the third polynomial of the second server; The process involves each of the k servers performing calculations based on its own second decomposition result, third polynomial, second polynomial, and first decomposition result to obtain k third calculation results, including: The k third calculation results are determined according to the following formula, as follows: Where, p B p represents the second polynomial of the first server; C F(x) represents the second polynomial of the second server; F(x) represents the original polynomial. This represents the third calculation result from the first server. This represents the third calculation result from the second server.

7. The method according to claim 6, characterized in that, The process of determining the fourth calculation result through the client based on the k third calculation results and the original polynomial includes: Among them, U B V B This indicates the fourth calculation result.

8. A multi-party computation system, characterized in that, The multi-party computation system includes: a client and k servers. The client includes n query keys. Each of the k servers includes a key-value database, each key-value database includes multiple key-value pairs, and each key-value pair includes a key and a data item; n and k are both positive integers. The client is used to synchronize the original polynomial and the polynomial quotient ring of the original polynomial to each of the k servers; and to calculate the nth-order polynomial based on the n query key values ​​to obtain the first polynomial. Each of the k servers is used to calculate an nth-order polynomial based on its own key-value database to obtain k second polynomials, and to calculate the corresponding interpolation polynomials to obtain k interpolation polynomials. The client is configured to perform calculations with each of the k servers based on the ring-OLE protocol, obtaining a first calculation result and k second calculation results for the client, with each of the k servers corresponding to one second calculation result. A preset constraint relationship is satisfied between the first calculation result and each of the k second calculation results. The first calculation result is then decomposed according to the preset constraint relationship to obtain a first decomposition result. Finally, the first decomposition result is broadcast to each of the k servers. Each of the k servers is used to decompose the corresponding second calculation result according to the preset constraint relationship to obtain k second decomposition results; determine the nth order polynomial of each server according to the polynomial quotient ring and the k interpolation polynomials to obtain k third polynomials; and perform calculations according to their respective second decomposition results, third polynomials, second polynomials and first decomposition results to obtain k third calculation results. The client is configured to determine a fourth calculation result based on the k third calculation results and the original polynomial; and to traverse the n query key values ​​based on the fourth calculation result to obtain the target query result.

9. An electronic device, characterized in that, It includes a processor and a memory, the memory being used to store one or more programs and configured to be executed by the processor, the programs including instructions for performing the steps of the method as described in any one of claims 1-7.

10. A computer-readable storage medium, characterized in that, A computer program for storing electronic data interchange, wherein the computer program causes a computer to perform the method as described in any one of claims 1-7.

Citation Information

Patent Citations

  • Privacy keyword query method and device and electronic equipment

    CN115982424A

  • Online hidden trace query method and system supporting efficient updating and related equipment

    CN116032667A