Secure multi-party computation method and system based on data federation
By employing a secure multi-party computation method based on data federation and utilizing secure multi-party operators and sort-merge algorithm optimization strategies, this approach addresses the issues of data privacy leakage and low computational efficiency in traditional methods, achieving efficient and secure data federation connections and computations.
Patent Information
- Application Number
- CN202410761369.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-13
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2044-06-13
AI Technical Summary
Traditional centralized data processing and analysis methods suffer from problems such as data privacy breaches, data silos, and low computational efficiency. Data federation and secure multi-party computation methods have failed to effectively solve these problems.
A secure multi-party computation method based on data federation is adopted, which uses secure multi-party operators to connect and operate on the data of each party. The joint join query result of each party is obtained through various operations, and the sort-merge algorithm optimization strategy is used to reduce the number of operator executions, thereby achieving efficient computation.
Without disclosing the local data of the data owner, the execution efficiency of the federated connection algorithm has been optimized, the computation and communication costs have been reduced, data barriers have been broken down, and computation efficiency has been improved.
Smart Images

Figure CN118606997B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the technical field of privacy computing, and particularly relates to a secure multi-party computation method and system based on data federation. BACKGROUND
[0002] With the continuous growth and diversification of data, traditional centralized data processing and analysis methods have problems such as data privacy leakage, data barriers, and low computing efficiency. In order to solve these problems, data federation and secure multi-party computation methods have emerged. Data federation is a distributed computing method that allows different organizations or individuals to share data while maintaining the privacy and security of the data. Secure multi-party computation is a method that can perform computation and decision-making among multiple participants without directly sharing the original data. Participants can jointly complete complex computing tasks and obtain the computing results without exposing private data.
[0003] Therefore, the application provides a secure multi-party computation method and system based on data federation, which can obtain the joint connection query result of each party by connecting the data of each party through various operations using various secure multi-party operators without leaking the local data of each data owner. SUMMARY
[0004] Based on the above background and problems existing in the prior art, the application adopts the following technical scheme: In a first aspect, a secure multi-party computation method based on data federation is provided, which can efficiently and accurately complete various complex computing tasks using multi-party data while protecting privacy through secure multi-party computation.
[0005] A secure multi-party computation method based on data federation includes the following steps:
[0006] Determine whether the data owner holds the data table related to the query condition, and if so, perform a connection operation on the data table locally and send the result to the center server, wherein each data owner holds a local database containing multiple data tables;
[0007] Map the query condition to the data tables between multiple data owners, and then perform a connection operation on the data tables related to the query condition;
[0008] The data tables related to the query condition are connected according to the connection condition through a secure multi-party operator to obtain a secure multi-party result, and then column value comparison is performed and optimized based on a sorting and merging algorithm to obtain a column value set that meets the connection condition;
[0009] The column values corresponding to the row values that meet the connection condition in the data table are taken from the column value set, and a tuple set that meets the connection condition is obtained based on the column value set and the row value set.
[0010] Based on the tuple set, the center server performs summarization and splicing through the connection condition to obtain a connection result, and sends the splicing result to each data owner.
[0011] As an implementable manner, the secure multi-party operator at least includes one and more of a secure multi-party addition operator, a secure multi-party multiplication operator and a secure multi-party comparison operator.
[0012] As an implementable manner, when the secure multi-party addition operator, the relevant data table involved in the query condition is obtained through the secure multi-party operator according to the connection condition to obtain a secure multi-party result, including the following steps:
[0013] A random element set is obtained by randomly generating mutually different elements, and is expressed as follows:
[0014] X=x1, x2,..., xn n
[0015] The data owner locally generates a polynomial P i (x) and is expressed as follows:
[0016]
[0017] Wherein, P i (x) represents a polynomial, μ ik represents a coefficient in the polynomial, β i represents a constant term of the polynomial, i.e. a value held by the data owner, x n represents a random element, and n represents the number of random elements.
[0018] After generating the polynomial, each data owner substitutes the random element into the polynomial to obtain secret data.
[0019] The data owner saves the secret data and sends it to other data owners.
[0020] When the data owner obtains all the secret data sent by other data owners, the data owner accumulates the secret data to obtain accumulated secret data.
[0021] Based on the accumulated secret data, a secret data polynomial is obtained, and the secure multi-party addition result is obtained by combining the random element set and the accumulated secret data polynomial.
[0022] As an implementable manner, when the secure multi-party multiplication operator, the relevant data table involved in the query condition is obtained through the secure multi-party operator according to the connection condition to obtain a secure multi-party result, including the following steps:
[0023] A random element set is obtained by randomly generating different elements, and is expressed as follows:
[0024] X=x1, x2,..., x n
[0025] The data owner locally generates a polynomial, and is expressed as follows:
[0026]
[0027] Wherein, P i (x) represents a polynomial, μ ik represents a coefficient in the polynomial, β i represents a constant term of the polynomial, i.e., a value held by the data owner, x n represents a random element, and n represents the number of random elements.
[0028] After generating the polynomial, each data owner substitutes the random element into the polynomial to obtain secret data.
[0029] The data owner saves the secret data and sends it to other data owners.
[0030] When the data owner obtains all the secret data sent by other data owners, the data owner multiplies the secret data to obtain multiplied secret data.
[0031] Based on the multiplied secret data, a secret data polynomial is obtained, and a secure multi-party multiplication result is obtained by combining the random element set and the multiplied secret data polynomial.
[0032] As an implementable manner, when it is a secure multi-party comparison operator, the data table related to the query condition is obtained by the secure multi-party operator according to the connection condition to obtain a secure multi-party result, including the following steps:
[0033] A random element set is obtained by randomly generating different elements, and is expressed as follows:
[0034] X=x1, x2,..., x n
[0035] The data owner splits the owned data, and at the same time, the data owner generates a positive number by random and splits to obtain secret data.
[0036] The data owner s i holds P a (x i ) and P -b (x i ) locally, adds them to obtain σ a-b (x i ), and adds P t(x i ) and P k (x i ) to obtain σ t+k (x i );
[0037] The secret [[σ a-b ]] and [[σ t+k ]] are calculated by a secure multi-party multiplication operator to obtain the value of res=(β a -β b )·(P t +P k );
[0038] According to the positive and negative comparison of res and β a -β b , the size of β a and β b is compared, wherein the positive and negative of res is the same as that of β a -β b .
[0039] As an implementable manner, the following steps are further included:
[0040] The secure multi-party multiplication result is obtained by polynomial interpolation method, specifically: the polynomial coefficients are determined using known data points (x i , σ(x i )), the polynomial is determined according to the polynomial coefficients, and the corresponding interpolation result is calculated by the x i value of the known data point.
[0041] As an implementable manner, the optimization based on the sorting merge algorithm includes the following steps:
[0042] Each data owner performs sorting locally in plaintext to obtain a plurality of sorting tables;
[0043] According to the query condition, the corresponding sorting table is divided into a first sorting table and a second sorting table;
[0044] The pointer and the result set are initialized, the pointer is first pointed to the first item of the column value of the first sorting table and the second sorting table, and the result set is initialized as an empty set;
[0045] By calling a secure multi-party operator, it is calculated whether the elements pointed by the left and right pointers meet the connection condition;
[0046] If the condition is met, the corresponding column value is added to the result set, and then the left pointer is moved down one bit to continue the subsequent comparison;
[0047] If the condition is not met, the right pointer is moved and the comparison is continued until the pointers traverse the first sorting table and the second sorting table.
[0048] A secure multi-party computation system based on data federation, comprising a local operation module, a secure multi-party computation module and an output module:
[0049] The local operation module determines whether the data owner holds the data table related to the query condition, and if so, performs a join operation on the data table locally and sends the result to the center server, wherein each data owner holds a local database, and the local database contains multiple data tables;
[0050] The secure multi-party computation module performs a join operation on the data tables related to the query condition according to the mapping of the query condition to the data tables between multiple data owners;
[0051] The data tables related to the query condition are connected according to the connection condition through the secure multi-party operator to obtain a secure multi-party result, and then column value comparison is performed and optimized based on the sorting and merging algorithm to obtain a column value set that meets the connection condition;
[0052] The row values corresponding to the column values in the data table that meet the connection condition are taken from the column value set, and a tuple set that meets the connection condition is obtained based on the column value set and the row value set;
[0053] The output module, based on the tuple set, the center server performs summarization and splicing through the connection condition to obtain a connection result, and sends the splicing result to each data owner.
[0054] A computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the method as follows:
[0055] Determine whether the data owner holds the data table related to the query condition, and if so, perform a join operation on the data table locally and send the result to the center server, wherein each data owner holds a local database, and the local database contains multiple data tables;
[0056] According to the mapping of the query condition to the data tables between multiple data owners, the data tables related to the query condition are connected;
[0057] The data tables related to the query condition are connected according to the connection condition through the secure multi-party operator to obtain a secure multi-party result, and then column value comparison is performed and optimized based on the sorting and merging algorithm to obtain a column value set that meets the connection condition;
[0058] The row values corresponding to the column values in the data table that meet the connection condition are taken from the column value set, and a tuple set that meets the connection condition is obtained based on the column value set and the row value set;
[0059] Based on the tuple set, the center server performs summarization and splicing through the connection condition to obtain a connection result, and sends the splicing result to each data owner.
[0060] A secure multi-party computation device based on data federation, comprising a memory, a processor and a computer program stored in the memory and running on the processor, wherein the processor implements the method as follows when executing the computer program:
[0061] Determine whether the data owner holds the data table related to the query condition, if yes, perform a connection operation on the data table locally, and send the result to the center server, wherein each data owner holds a local database, and the local database contains multiple data tables;
[0062] According to the mapping of the query condition to the data tables between multiple data owners, the connection operation is performed on the data tables related to the query condition;
[0063] The data tables related to the query condition are connected through the secure multi-party operator to obtain a secure multi-party result, and then column value comparison is performed and optimization is performed based on the sorting and merging algorithm to obtain a column value set meeting the connection condition;
[0064] The column value corresponding to the row value meeting the connection condition in the data table is taken out from the column value set, and a tuple set meeting the connection condition is obtained based on the column value set and the row value set;
[0065] Based on the tuple set, the center server performs summarization and splicing through the connection condition to obtain a connection result, and sends the splicing result to each data owner.
[0066] (1) A secure multi-party computation method and system based on data federation are proposed, which connects the data of each party through multiple operations by using multiple secure multi-party operators without leaking the local data of each data owner, to obtain a joint connection query result of each party;
[0067] (2) A secure multi-party computation method and system based on data federation are proposed, which reduces the number of secure multi-party operator executions by using an algorithm optimization strategy based on sorting-merging, thereby optimizing the execution efficiency of the federal connection algorithm and reducing the calculation cost and communication cost of operator operation.
[0068] Other advantages, objects and features of the present application will be apparent from the following description, and will be understood by those skilled in the art through a study of the present application. BRIEF DESCRIPTION OF DRAWINGS
[0069] Figure 1A step schematic diagram of the secure multi-party computation method based on data federation of the present application;
[0070] Figure 2 An algorithm framework diagram of the secure multi-party computation method based on data federation of the present application. DETAILED DESCRIPTION
[0071] In order to clearly set forth the present application, make the purposes, technical solutions and advantages of the embodiments of the present application more clear, the technical solutions in the embodiments of the present application are described clearly and completely below in combination with the drawings in the embodiments of the present application, so that those skilled in the art can implement the present application according to the description in the specification.
[0072] In the context of the present application, the trusted execution environment provides an isolated running environment from the perspective of underlying hardware and operating system, which can protect the code and data running therein from external attacks, including attacks from operating system, hardware and other application programs. This technology has been used in some fields to achieve the purposes described above, and some basic principles of this technology are known to those skilled in the art, but those skilled in the art will know how to use this technology in the present context after reading the present application, and will clearly know that this technology has novelty in combination with other features in the specific context.
[0073] The drawings will be combined with the specific embodiments to explain the technology of the present application in detail.
[0074] Embodiment 1:
[0075] A secure multi-party computation method based on data federation, as shown in Figure 1 The specific steps are as follows:
[0076] S100, determining whether the data owner holds the data table related to the query condition, if yes, performing a connection operation on the data table locally, and sending the result to the center server, wherein each data owner holds a local database, and the local database contains multiple data tables;
[0077] S200, mapping the query condition to the data tables between multiple data owners, and then performing a connection operation on the data tables related to the query condition;
[0078] S300, the data tables related to the query condition are connected according to the connection condition through a secure multi-party operator to obtain a secure multi-party result, and then column value comparison is performed and optimization is performed through a sorting and merging algorithm to obtain a column value set meeting the connection condition;
[0079] S400, taking out the row value meeting the connection condition corresponding to the column value in the data table from the column value set, and obtaining a tuple set meeting the connection condition based on the column value set and the row value set.
[0080] S500: Based on a set of tuples, the central server summarizes the data and concatenates them according to the connection conditions to obtain the connection result, and then sends the concatenated result to each data owner.
[0081] This invention proposes a secure multi-party computation method and system based on data federation. Without disclosing the local data of each data owner, it utilizes multiple secure multi-party operators to join the data from each party through various operations, obtaining a joint join query result. A sort-merge-based algorithm optimization strategy is employed to reduce the number of executions of secure multi-party operators, thereby optimizing the execution efficiency of the federated join algorithm and reducing the computational and communication costs of operator operations. The algorithm framework diagram of this invention is shown below. Figure 2 As shown.
[0082] In step S200, the query conditions are mapped to data tables among multiple data owners. A join operation is performed on the data tables involved in the query conditions, that is, the query conditions are mapped to data among multiple data owners. For example, if the query condition is to query the detailed information of transaction users whose transaction amount is greater than 5000, it will be mapped to the transaction amount data table and the transaction user information data table of multiple data owners.
[0083] In step S300, the process of obtaining a secure multi-party result by applying a secure multi-party operator to the relevant data tables involved in the query conditions according to the join conditions, and then comparing column values and optimizing them using a sort-merge algorithm to obtain a set of column values that meet the join conditions, specifically includes the following steps:
[0084] S310: The data tables involved in the query conditions are compared in terms of column values using the safe multi-party addition operator according to the join conditions, including the following steps:
[0085] The secure multi-party addition operator randomly generates n distinct elements X = x1, x2, ..., xn. n ;
[0086] Each data owner s i Generate an n-1 degree polynomial locally. Where μ ik In a polynomial, x represents k The coefficients of the polynomial, and the constant term of the polynomial, are the data owner s. i The value β held i ;
[0087] After generating the polynomial, each data owner s i Elements x1, x2, ..., x can be... n Substituting into polynomial P i In (x), n secret Ps are obtained. i (x1),Pi (x2),…,P i (x n );
[0088] Data owner s i Secret P i (x i Keep it in your own hands, and keep the secret P i (x j Send to other data owners s j (j≠i);
[0089] When the data owner s i Collected data from other data owners j All secrets sent by P j (x i After (j≠i), s i These secrets can be accumulated locally.
[0090] The secret after accumulation σ(x) i Together they form a new polynomial The coefficients of the new polynomial
[0091] Based on x1, x2, ..., x n With σ(x1), σ(x2), ..., σ(x n The final result is calculated using polynomial interpolation for n secret shared shares.
[0092] S320: The data tables involved in the query conditions are compared in terms of column values using the safe multi-party multiplication operator according to the join conditions, including the following steps:
[0093] The secure multi-party multiplication operator randomly generates n distinct elements X = x1, x2, ..., xn. n ;
[0094] Each data owner s i Generate an n-1 degree polynomial locally. Where μ ik In a polynomial, x represents k The coefficients of the polynomial, and the constant term of the polynomial, are the data owner s. i The value β held i ;
[0095] After generating the polynomial, each data owner s i Elements x1, x2, ..., x can be... n Substituting into polynomial P i In (x), n secret Ps are obtained. i(x1), P i (x2), …, P i (x n );
[0096] data owner s i sends the secret P i (x i ) to other data owner s i (x j ) to other data owner s j (j≠i);
[0097] When data owner s i collects all the secrets P j (x j ) sent by other data owners s i (j≠i), s i can locally multiply these secrets to get
[0098] The multiplied secret π(x i ) together constitute a new polynomial π(x);
[0099] Based on x1, x2, …, x n and π(x1), π(x2), …, π(x t ) n shares of secret sharing, the method of polynomial interpolation is used to calculate The final result β is solved.
[0100] S330: For two values β a and β b held by two data owners s a and s b in the data federation, the secure multi-party comparison operator can calculate the size relationship of the two values without revealing β i and β j to the other party. The comparison result is equal to 0, indicating that β a = β b , the comparison result is equal to 1, indicating that β a > β b , and the comparison result is equal to -1, indicating that β a < β b . In addition, the operator needs the participation of two other data owners s t and s k .
[0101] The data table involved in the query condition is compared by column value through the secure multi-party comparison operator according to the connection condition, including the following steps:
[0102] The secure multi-party comparison operator randomly generates n different elements X=x1,x2,…,x n ;
[0103] The data owner s a and s b randomly generate two positive numbers p a and p b , and split them into n secret values [[p a ]] and [[p b ]] respectively;
[0104] The data owner s t and s k randomly generate two positive numbers p t and p k , and split them into n secret values [[p t ]] and [[p k ]] respectively;
[0105] The data owner s i adds P a (x i ) and P -b (x i ) held locally to obtain σ a-b (x i ), and adds P t (x i ) and P k (x i ) to obtain σ t+k (x i );
[0106] The secrets [[σ a-b ]] and [[σ t+k ]] are calculated by the secure multi-party multiplication operator to obtain the value of res=(β a -β b )·(P t +P k );
[0107] According to the positive and negative comparison of res and β a -β b , the size of β a and β b is compared, wherein the positive and negative of res is the same as that of β a -β b .
[0108] S340: The polynomial interpolation method includes the following steps:
[0109] Using known data points (x i , σ(x i) to determine the coefficients of the polynomial, i.e. to solve the linear equation system;
[0110] determine the polynomial according to the coefficients of the polynomial;
[0111] calculate the corresponding interpolation result by the x i value of the known data point.
[0112] S350: the sorting-merging based algorithm optimization strategy, including the following steps:
[0113] Each data owner locally performs sorting in plaintext to obtain a plurality of tables;
[0114] According to the query condition, the corresponding table is selected as the left table and the right table respectively;
[0115] Initialize the pointer and the result set, and the pointer points to the first item of the column value of the left table and the right table, and the result set is initialized as an empty set;
[0116] Call the secure multi-party operator to calculate whether the elements pointed by the left and right pointers meet the connection condition;
[0117] If the condition is met, the corresponding column value is added to the result set, and then the left pointer is moved down by one bit to continue the subsequent comparison;
[0118] If the condition is not met, the right pointer is moved to continue the comparison until the pointers traverse the two tables.
[0119] Finally, according to the obtained column value set, the row value corresponding to the column value in the data table is taken out to obtain a tuple set meeting the connection condition; and then the central server collects all tuple values and splices the connection result according to the connection condition, and sends the result to each data owner.
[0120] In summary, the secure multi-party computing method and system based on data federation provided by the application utilize a plurality of secure multi-party operators to connect the data of each party through a plurality of operations to obtain the joint connection query result of each party without leaking the local data of each data owner; in addition, the sorting-merging based algorithm optimization strategy is utilized to reduce the execution times of the secure multi-party operator, thereby optimizing the execution efficiency of the federated connection algorithm and reducing the calculation cost and communication cost of the operator operation. The secure multi-party computing method and system based on data federation provided by the application perform complex operations under the premise of privacy protection, break through the data barrier, and improve the calculation efficiency.
[0121] Embodiment 2:
[0122] A secure multi-party computing system based on data federation, comprising a local operation module 100, a secure multi-party computing module 200 and an output module 300:
[0123] The local operation module 100 determines whether the data owner holds the data table related to the query condition, and if so, performs a join operation on the data table locally and sends the result to the center server, wherein each data owner holds a local database, and the local database contains multiple data tables;
[0124] The secure multi-party computation module 200 maps the query condition to the data tables between multiple data owners, and then performs a join operation on the data tables related to the query condition; the data tables related to the query condition are connected according to the connection condition through a secure multi-party operator to obtain a secure multi-party result, and then column value comparison is performed and optimization is performed based on a sorting and merging algorithm to obtain a column value set meeting the connection condition; the row values corresponding to the column values in the data table meeting the connection condition are taken from the column value set, and a tuple set meeting the connection condition is obtained based on the column value set and the row value set;
[0125] The output module 300 performs summarization and splicing based on the tuple set to obtain a connection result, and sends the spliced result to each data owner.
[0126] Various changes and modifications can be made to the application without departing from the spirit and scope of the application. All equivalent technical solutions also belong to the scope of the application.
[0127] Each embodiment in the specification is described in a progressive manner, and each embodiment focuses on the difference from other embodiments. The same and similar parts between the embodiments can be referred to each other.
[0128] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, device, or computer program product. Therefore, the present application can be in the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can be in the form of a computer program product implemented on one or more computer usable storage media containing computer usable program code (including but not limited to disk storage, CD-ROM, optical storage, etc.).
[0129] The present application is described with reference to flowcharts and / or block diagrams according to the method, terminal device (system), and computer program product of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, and the combination of the flows and / or blocks in the flowchart and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to produce a machine, so that the instructions executed by the computer or other programmable data processing terminal device produce a machine that implements the flowchart and / or block diagram. Figure 1one or more processes and / or blocks Figure 1 an apparatus for performing the functions specified in the one or more blocks or
[0130] These computer program instructions can also be stored in a computer- readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the Figure 1 one or more processes and / or blocks Figure 1 an apparatus for performing the functions specified in the one or more blocks or
[0131] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the Figure 1 one or more processes and / or blocks Figure 1 an apparatus for performing the functions specified in the one or more blocks or
[0132] It is to be understood that:
[0133] The phrase "one embodiment" or "an embodiment" as used throughout this specification means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the application. The appearances of the phrase "one embodiment" or "an embodiment" in various places throughout the specification are not necessarily all referring to the same embodiment.
[0134] The above description of the embodiments is for the purpose of illustration only. Those skilled in the art will readily appreciate that the specific embodiments that have been described are merely illustrative of the principles of the application. Numerous modifications and adaptations will be readily apparent to those skilled in this art in view of the foregoing description. Thus, the true scope of the application should be determined only by the examination of the claims that follow.
Claims
1. A secure multi-party computation method based on data federation, characterized in that, The method comprises the following steps: determining whether the data owner holds a data table related to the query condition, if yes, performing a connection operation on the data table locally, and sending the result to the central server, wherein each data owner holds a local database, and the local database comprises a plurality of data tables; mapping the data tables between a plurality of data owners according to the query condition, and then performing a connection operation on the data tables related to the query condition; performing column value comparison and optimization based on a sorting and merging algorithm according to the secure multi-party result obtained by the secure multi-party operator according to the connection condition, wherein the optimization based on the sorting and merging algorithm comprises: performing plaintext sorting on the data tables according to the query association field locally by each data owner to obtain a plurality of sorted tables; dividing the sorted tables into first sorted tables and second sorted tables according to the connection field type of the query condition; initializing a left pointer to point to the first item of the column value of the first sorted table, a right pointer to point to the first item of the column value of the second sorted table, and a result set to be empty; calling a secure multi-party comparison operator to determine whether the column values pointed to by the left and right pointers meet the connection condition, if yes, adding the corresponding column values to the result set and moving the left pointer down by one bit, if not, moving the right pointer down by one bit, and repeating the above comparison steps until any pointer traverses the corresponding sorted table to obtain a column value set meeting the connection condition; obtaining row values meeting the connection condition in the data table from the column values in the column value set, and obtaining a tuple set meeting the connection condition based on the column value set and the row value set, wherein the tuple set comprises primary key association information of the data tables of each data owner; based on the tuple set, the central server performs summarization and splicing based on the connection condition to obtain a connection result, wherein the connection result comprises the field mapping relationship between the fields participating in the calculation of each data owner and the fields of the original data table, and the central server sends the splicing result to each data owner for subsequent business analysis in combination with the local fields not participating in the calculation.
2. The secure multi-party computation method based on data federation according to claim 1, characterized in that, The secure multi-party operator comprises at least one of a secure multi-party addition operator, a secure multi-party multiplication operator and a secure multi-party comparison operator.
3. The secure multi-party computation method based on data federation according to claim 2, characterized in that, When the secure multi-party addition operator, the secure multi-party result obtained by the secure multi-party operator according to the connection condition of the data tables related to the query condition comprises the following steps: a random element set is obtained by randomly generating mutually different elements, and is represented as follows: The data owner locally generates a random polynomial is represented as follows: wherein, denotes a polynomial, denotes a coefficient in the polynomial, denotes a constant term of the polynomial, i.e. a value held by the data owner, denotes a random element, denotes a number of random elements; After generating the polynomial, each data owner substitutes the random element into the polynomial to obtain secret data. The data owner saves the secret data and sends it to other data owners. After the data owner obtains all the secret data sent by other data owners, the data owner accumulates the secret data to obtain accumulated secret data. Based on the accumulated secret data, a secret data polynomial is obtained, and a secure multi-party addition result is obtained by combining the random element set and the accumulated secret data polynomial.
4. The secure multi-party computation method based on data federation according to claim 2, characterized in that, When the secure multi-party multiplication operator, the secure multi-party result obtained by the secure multi-party operator according to the connection condition of the data tables related to the query condition comprises the following steps: a random element set is obtained by randomly generating mutually different elements, and is represented as follows: The data owner locally generates a polynomial at random, denoted as follows: wherein, denotes a polynomial, denotes a coefficient in the polynomial, denotes a constant term of the polynomial, i.e. a value held by the data owner, denotes a random element, denotes a number of random elements; After generating the polynomial, each data owner substitutes a random element into the polynomial to obtain secret data; The data owner saves the secret data and sends it to other data owners; When the data owner obtains all the secret data sent by other data owners, the data owner multiplies the secret data to obtain multiplied secret data; Based on the multiplied secret data, a secret data polynomial is obtained, and a secure multi-party multiplication result is obtained based on the set of random elements and the multiplied secret data polynomial.
5. The secure multi-party computation method based on data federation according to claim 2, characterized in that, When it is a secure multi-party comparison operator, the data tables related to the query condition are connected through the secure multi-party operator to obtain a secure multi-party result, including the following steps: Random elements that are different from each other are generated to obtain a set of random elements, denoted as follows: The data owner splits the data owned by the data owner, and the data owner splits the secret data by randomly generating a positive number; Data owner adds up and adds up and adds up and adds up ; secret and the value of is computed by a secure multi-party multiplication operator. According to The positive and negative of The size of The positive and negative of The positive and negative of The positive and negative of The positive and negative of 6. The secure multi-party computation method based on data federation according to claim 3 or 4, characterized in that, Further comprising the following steps: The secure multi-party multiplication result is obtained by polynomial interpolation method, specifically, using known data points to determine polynomial coefficients, determining a polynomial according to the polynomial coefficients, and calculating the corresponding interpolation result through the value of the known data points. to determine polynomial coefficients, determining a polynomial according to the polynomial coefficients, and calculating the corresponding interpolation result through the value of the known data points.
7. A secure multi-party computation system based on data federation, characterized in that, It includes a local operation module, a secure multi-party computing module, and an output module: The local operation module determines whether the data owner holds the data table related to the query condition, and if so, performs a connection operation on the data table locally and sends the result to the center server, wherein each data owner holds a local database, and the local database contains multiple data tables; The secure multi-party computing module connects the data tables related to the query condition according to the mapping between the query condition and the data tables of multiple data owners, and then performs a connection operation on the data tables related to the query condition; The data tables related to the query condition are connected through the secure multi-party operator according to the connection condition to obtain a secure multi-party result, and then column value comparison is performed and optimization is performed based on a sorting and merging algorithm, wherein the optimization based on the sorting and merging algorithm includes: each data owner locally sorts the data table according to the query association field to obtain multiple sorted tables; according to the connection field type of the query condition, the sorted tables are divided into a first sorted table and a second sorted table; the left pointer is initialized to point to the first item of the column value of the first sorted table, the right pointer is initialized to point to the first item of the column value of the second sorted table, and the result set is initialized to an empty set; a secure multi-party comparison operator is called to determine whether the column values pointed to by the left and right pointers meet the connection condition, if so, the corresponding column values are added to the result set and the left pointer is moved down one bit, if not, the right pointer is moved down one bit, and the above comparison steps are repeated until any pointer traverses the corresponding sorted table, to obtain a set of column values that meet the connection condition; The column values in the column value set are taken out to obtain the row values in the data table that meet the connection condition, and a tuple set that meets the connection condition is obtained based on the column value set and the row value set, wherein the tuple set contains the primary key association information of the data table of each data owner; The output module combines the tuple set based on the tuple set, and the center server performs a connection operation to obtain a connection result, wherein the connection result contains the field mapping relationship between the fields participating in the calculation of each data owner and the original data table, and the center server sends the spliced result to each data owner for subsequent business analysis in combination with the fields not participating in the calculation of each data owner.
8. A computer-readable storage medium storing a computer program, the computer-readable storage medium comprising: The computer program, which when executed by a processor, implements the method of any one of claims 1 to 6.
9. A secure multi-party computation device based on data federation, comprising a memory, a processor, and a computer program stored in the memory and running on the processor, characterized in that, The processor, when executing the computer program, implements the method of any one of claims 1 to 6.
Citation Information
Patent Citations
Data processing method, distributed database system, equipment and storage medium
CN116680285A
Query optimization methods, apparatuses, and systems for secure multi-party database
US20240054129A1