Privacy computation method, device, system, and storage medium
By verifying the computing environment information and using a trusted execution environment in privacy computing, the legitimate acquisition of keys is ensured, solving the problem of unauthorized key acquisition, realizing data security and the credibility of computing results, and improving the security and reliability of privacy computing.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING TENGYUN TIANXIA SCI & TECH CO LTD
- Filing Date
- 2022-12-19
- Publication Date
- 2026-04-14
AI Technical Summary
In privacy computing, data security is difficult to guarantee once the key is illegally obtained, and existing technologies cannot effectively protect data security.
The legitimacy of key acquisition requests is ensured by verifying computing environment information between compute nodes and data nodes. Keys are only sent when both the application and verification data are trustworthy. A Trusted Execution Environment (TEE) is used to protect sensitive data computation. Separate memory and dual-channel transmission are used to transmit encrypted data and keys.
It improves key security, ensures data security and computational reliability, prevents unauthorized access and malicious manipulation, and enhances the security and reliability of privacy-preserving computations.
Smart Images

Figure CN115840954B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of big data technology, specifically to a privacy computing method, privacy computing device, privacy computing system, computer-readable storage medium, and computer program product. Background Technology
[0002] Privacy-preserving computation refers to the analysis and computation of data while protecting the data itself from external disclosure, achieving the goal of making the data "usable but not visible." Privacy-preserving computation realizes the transformation and release of data value while fully protecting data and privacy security.
[0003] In current privacy computing technologies, the party possessing the data typically encrypts it before transmitting it to the computing party to ensure data security during transmission. While encryption reduces the risk of unauthorized data access, data security is compromised if the key is illegally obtained. Therefore, ensuring key security is crucial for further enhancing data protection. Summary of the Invention
[0004] This disclosure provides a privacy computing method, a privacy computing device, a privacy computing system, a computer-readable storage medium, and a computer program product.
[0005] According to one aspect of this disclosure, a privacy computing method is provided for a computing node in a privacy computing task. The method includes: acquiring first encrypted data from a first data node in the privacy computing task; generating a key acquisition request based on first computing environment information of the computing node, wherein the first computing environment information includes application information corresponding to the privacy computing task and verification data, the verification data being the first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; sending a key acquisition request to the first data node, so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node; in response to receiving the first key from the first data node, using the first key to decrypt the first encrypted data to obtain the first task data; and performing a privacy computing task based on the first task data and the second task data to obtain a computing result.
[0006] According to another aspect of this disclosure, a privacy computing method is provided for a first data node in a privacy computing task. The method includes: encrypting first task data using a first key to generate first encrypted data; sending the first encrypted data to a computing node in the privacy computing task; in response to receiving a key acquisition request from the computing node, performing a first environment verification on first computing environment information of the computing node, wherein the first computing environment information includes application information corresponding to the privacy computing task and verification data, the verification data being the first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; and in response to the first computing environment information passing the first environment verification, sending a first key to the computing node so that the computing node decrypts the first encrypted data to perform a privacy computing task based on the first task data and the second task data.
[0007] According to another aspect of this disclosure, a privacy computing apparatus is provided for a computing node in a privacy computing task. The apparatus includes: a data acquisition module configured to: acquire first encrypted data from a first data node in the privacy computing task; and a request generation module configured to: generate a key acquisition request based on first computing environment information of the computing node, wherein the first computing environment information includes application information corresponding to the privacy computing task and verification data, and the verification data is the first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data. The verification data is the second task data, which originates from the computing node; and the verification data is the second encrypted data, which is generated based on the second encrypted data; the request sending module is configured to send a key acquisition request to the first data node, so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node; the decryption module is configured to decrypt the first encrypted data in response to receiving the first key from the first data node to obtain the first task data; and the computing module is configured to perform a privacy computing task based on the first task data and the second task data to obtain the computing result.
[0008] According to another aspect of this disclosure, a privacy computing apparatus is provided for a first data node in a privacy computing task. The apparatus includes: an encryption module configured to: encrypt first task data using a first key to generate first encrypted data; a data sending module configured to: send the first encrypted data to a computing node in the privacy computing task; and a first verification module configured to: in response to receiving a key acquisition request from the computing node, perform a first environment verification on first computing environment information of the computing node, wherein the first computing environment information includes application information corresponding to the privacy computing task and verification data, and the verification data consists of the first encrypted data and the second task data. The second task data is either from a second data node in a privacy computing task or from a second encrypted data node, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; and a key sending module is configured to: in response to the first computing environment information being verified by the first environment, send a first key to the computing node so that the computing node decrypts the first encrypted data to perform a privacy computing task based on the first task data and the second task data.
[0009] According to another aspect of this disclosure, a privacy computing system is provided, comprising: a computing node, the computing node including the privacy computing device as described in this disclosure; and a first data node, the first data node including the privacy computing device as described in this disclosure, wherein the second task data originates from the computing node.
[0010] According to another aspect of this disclosure, a privacy computing system is provided, comprising: a computing node including a privacy computing device as described in this disclosure; a first data node including the privacy computing device as described in this disclosure; and a second data node, wherein second task data is generated by the computing node based on second encrypted data from the second data node.
[0011] According to another aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method of any of the above aspects.
[0012] According to another aspect of this disclosure, a non-transitory computer-readable storage medium is provided, on which a computer program is stored, wherein the computer program, when executed by a processor, implements the method described in any of the above aspects.
[0013] According to another aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the method described in any of the foregoing aspects.
[0014] According to one or more embodiments of this disclosure, since the data node verifies the computing environment information of the computing node before sending the key, it ensures that the key will not be illegally obtained, thereby ensuring the security of the data and the reliability of the computing results.
[0015] These and other aspects of this disclosure will be apparent from the embodiments described below, and will be elucidated with reference to the embodiments described below. Attached Figure Description
[0016] The accompanying drawings exemplify embodiments and form part of the specification, serving to explain exemplary implementations of the embodiments together with the textual description. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals refer to similar but not necessarily identical elements.
[0017] Figure 1 A flowchart of a privacy computing method according to an embodiment of the present disclosure is shown;
[0018] Figure 2 A flowchart of a privacy computing method according to an embodiment of the present disclosure is shown;
[0019] Figure 3 An embodiment according to this disclosure is shown in Figure 1 A flowchart illustrating an exemplary process for performing privacy-preserving computation tasks based on first task data and second task data in the method;
[0020] Figure 4 A schematic diagram of a module for performing a privacy intersection operation according to an embodiment of the present disclosure is shown;
[0021] Figure 5 A flowchart of a privacy computing method according to an embodiment of the present disclosure is shown;
[0022] Figure 6 A schematic block diagram of a privacy computing device according to an embodiment of the present disclosure is shown;
[0023] Figure 7 A schematic block diagram of a privacy computing device according to an embodiment of the present disclosure is shown;
[0024] Figures 8A-8B A schematic diagram of a privacy computing system according to an embodiment of the present disclosure is shown; and
[0025] Figure 9A block diagram of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation
[0026] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.
[0027] In this disclosure, unless otherwise stated, the use of terms such as "first," "second," etc., to describe various elements is not intended to limit the positional, temporal, or importance relationships of these elements; such terms are merely used to distinguish one element from another. In some examples, the first element and the second element may refer to the same instance of that element, while in other cases, based on the context, they may refer to different instances.
[0028] The terminology used in the description of the various examples in this disclosure is for the purpose of describing particular examples only and is not intended to be limiting. Unless the context expressly indicates otherwise, an element may be one or more unless the number of elements is specifically limited. As used herein, the term "multiple" means two or more, and the term "based on" should be interpreted as "at least partially based on". Furthermore, the terms "and / or" and "at least one of..." cover any one of the listed items and all possible combinations thereof.
[0029] In current privacy-preserving computing, to ensure data security and prevent data asset loss, the following method is typically used: First, one party encrypts its own data and sends the encrypted data to the other party; then, the corresponding key is sent to the other party via other means (e.g., email, WeChat), allowing the other party to decrypt the data for subsequent computation. However, this method cannot guarantee data security if the key is illegally obtained.
[0030] To address the aforementioned issues, this disclosure provides a privacy-preserving computation method that ensures the security of the key, thereby improving the security of data in privacy-preserving computation.
[0031] It should be noted that the privacy computing method provided in this invention can be applied to various application scenarios requiring data security protection. For example, in joint marketing, data fusion can be performed between different platforms without exposing users' personal information, optimizing customer group selection and improving response rates; in anti-fraud, under the premise of ensuring privacy data security, the social relationship attributes of internet and operator data can be combined to accurately identify fraud risks in the relationship chain; in smart city construction, while protecting personal information security and corporate trade secrets, secure data fusion across regions, institutions, and departments can be achieved, improving transaction processing efficiency. It should be noted that the application scenarios mentioned above are merely illustrative, and this invention is not limited in any way.
[0032] The following description of privacy computing will use the following terms:
[0033] (1) Data node: In privacy computing, the role of encrypting and transmitting the data it owns to other participants.
[0034] (2) Computing node: In privacy computing, the role of receiving data owned by other participants (e.g., data nodes as defined above) for computation.
[0035] (3) Privacy intersection operation: refers to the ability of participants holding data to calculate the intersection of their data sets without exposing any data set information outside the intersection.
[0036] (4) Data requester: also known as the guest, is the party that has a smaller dataset in the privacy intersection operation and matches the smaller dataset with the larger dataset;
[0037] (5) Data provider: also known as the host party, is the party that has a large dataset in the privacy intersection operation and provides data matching for the data requester;
[0038] Exemplary embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.
[0039] According to embodiments of this disclosure, a privacy computing method is provided for a computing node in a privacy computing task. The method includes: acquiring first encrypted data from a first data node in the privacy computing task; generating a key acquisition request based on first computing environment information of the computing node, wherein the first computing environment information includes application information and verification data corresponding to the privacy computing task, and the verification data is the first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; sending a key acquisition request to the first data node, so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node; in response to receiving the first key from the first data node, using the first key to decrypt the first encrypted data to obtain the first task data; and performing a privacy computing task based on the first task data and the second task data to obtain a computing result.
[0040] Figure 1 A flowchart illustrating a privacy computation method 100 according to an embodiment of the present disclosure is shown. Method 100 is executed by a computing node (e.g., as described below). Figure 8A Compute node 802 and Figure 8B (Compute node 803 in the example). Figure 1 As shown, method 100 includes:
[0041] Step S101: Obtain the first encrypted data from the first data node in the privacy computing task.
[0042] Step S102: Generate a key acquisition request based on the first computing environment information of the computing node. The first computing environment information includes application information and verification data corresponding to the privacy computing task. The verification data is first encrypted data, second task data, or second encrypted data from the second data node in the privacy computing task. Specifically: when the verification data is first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is second task data, the second task data comes from the computing node; and when the verification data is second encrypted data, the second task data is generated based on the second encrypted data.
[0043] Step S103: Send a key acquisition request to the first data node so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node.
[0044] Step S104: In response to receiving the first key from the first data node, use the first key to decrypt the first encrypted data to obtain the first task data.
[0045] Step S105: Based on the first task data and the second task data, perform a privacy computation task to obtain the computation result.
[0046] According to embodiments of this disclosure, a computing node can only obtain a first key from a first data node after the first data node verifies its first computing environment information. That is, a computing node can only obtain a key for decrypting encrypted data and obtain second task data in a privacy computing task if both the application and verification data corresponding to the privacy computing task of the computing node are verified as trustworthy.
[0047] Therefore, in the embodiments disclosed herein, on the one hand, by verifying both the application and verification data corresponding to the privacy computing task, it is ensured that both the application and verification data are trustworthy and not maliciously forged (for example, malicious actors may maliciously attack computing nodes, implant malicious programs on the computing nodes, and disguise them as applications used to perform privacy computing tasks in an attempt to trick data from data nodes), ensuring that the key will not be illegally obtained and guaranteeing data security; on the other hand, since the key acquisition request is generated based on the application and verification data, the consistency between the application and verification data is also ensured, preventing computing nodes from forging data or adding other data to the original data to maliciously manipulate the privacy computing results (for example, in privacy intersection operations, the computing node may be the data provider, and may forge the data or provide a wider range of data to improve the data matching rate without the consent of the data requester).
[0048] The steps of method 100 are described in detail below.
[0049] According to some embodiments, the compute node is a hardware platform with a Trusted Execution Environment (TEE), such as Intel's SGX, ARM's TrustZone, and AMD's SEV. According to some embodiments, the compute node allocates a separate, isolated memory block within the hardware for sensitive data (e.g., the Enclave in SGX). All sensitive data is computed within this memory block, and no other part of the hardware can access the information in this isolated memory block except through authorized interfaces. This ensures that data is processed by trusted programs within this environment, thereby protecting program code or data from being stolen or tampered with by the operating system or other applications.
[0050] According to some embodiments, a data node may be a hardware platform that does not have a TEE but only has authentication functionality. For example, the data node may have a server that caches the information to be authenticated in the local network (e.g., a PCK certificate caching server PCCS), or the data node may obtain the information to be authenticated from a cloud server.
[0051] According to some embodiments, the application information corresponding to the privacy computing task is the information of the application used to execute the privacy computing task in the computing node, such as the application's version number, code, allocated memory, etc.
[0052] According to some embodiments, the privacy computing task can be performed by two-end systems including a first data node and a computing node (see reference below). Figure 8A The described system 800 is used to perform the task, wherein a first data node, acting as a data source, provides first encrypted data generated based on first task data, while a computing node, acting as another data source, provides second task data. According to other embodiments, the privacy computing task can be performed by a three-terminal system including a first data node, a second data node, and a computing node (see reference below). Figure 8B The system described is executed in a manner in which a first data node, acting as a data source, provides first encrypted data generated based on first task data, while a second data node, acting as another data source, provides second encrypted data generated based on second task data.
[0053] According to some embodiments, the verification data is first encrypted data from a first data node. When the privacy computing task is executed by a two-end system including a first data node and a computing node, the second task data comes from the computing node. For example, the privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation and the computing node is the data requester in the privacy intersection operation.
[0054] According to some embodiments, the verification data is first encrypted data from a first data node. When the privacy computing task is executed by a three-terminal system including a first data node, a second data node, and a computing node, the second task data is generated based on the second encrypted data from the second data node in the privacy computing task (for example, the computing node uses a second key from the second data node to decrypt the second encrypted data to generate the second task data). For example, the privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation, and the second data node is the data requester in the privacy intersection operation.
[0055] According to some embodiments, the verification data is second encrypted data from the first data node, wherein the second task data is generated based on the second encrypted data from the second data node in the privacy computing task (for example, the computing node uses a second key from the second data node to decrypt the second encrypted data to generate the second task data). For example, the privacy computing task includes a privacy intersection operation, the first data node is the data requester in the privacy intersection operation, and the second data node is the data provider in the privacy intersection operation.
[0056] According to some embodiments, the verification data is second task data from the first data node. When the privacy computing task is executed by a two-end system including the first data node and a computing node, the second task data comes from the computing node. For example, the privacy computing task includes a privacy intersection operation, where the first data node is the data requester in the privacy intersection operation and the computing node is the data provider in the privacy intersection operation.
[0057] According to some embodiments, generating a key acquisition request based on the first computing environment information of the computing node can be as follows: In an SGX environment, the key acquisition request is generated based on the current identifier value of the program corresponding to the privacy computing task. This current identifier value can be generated when the binary code of the application corresponding to the privacy computing task was last modified, and is used to identify code and data loaded in the isolated memory of the application. For example, in an SGX environment, this identifier value can be MR Enclave (also known as MRENCLAVE), which is a hash of the code running in the Enclave, and can be used to identify code and data loaded in the Enclave's memory.
[0058] According to some embodiments, the first computing environment information also includes the identity information of the computing node, such as SGX host hardware information in an SGX environment. According to some embodiments, the current identifier value of the program corresponding to the privacy computing task can be generated based on the application information corresponding to the privacy computing task, the first task data, and the identity information of the computing node, for verification purposes.
[0059] According to some embodiments, the first data node first verifies whether the key acquisition request comes from the specified node, and after confirming that the key acquisition request comes from the specified node, it then verifies the first computing environment information (e.g., the identifier value mentioned above) carried in the key acquisition request. That is, it first completes the verification of the identity certificate of the platform to which the application belongs, and then completes the verification of the trustworthiness of the application and the first task data and the verification of the consistency between the application and the first task data.
[0060] According to some embodiments, the method of this disclosure further includes: before generating a key acquisition request, in response to the application corresponding to the privacy computing task being compiled, sending the first computing environment information of the computing node to the first data node, so that the first data node can subsequently use the first computing environment information obtained here to perform a first environment verification. According to some embodiments, the first computing environment information of the computing node is sent to the first data node each time the application corresponding to the privacy computing task is compiled.
[0061] According to other embodiments, the method described in this disclosure further includes: before generating a key acquisition request, in response to the application corresponding to the privacy computing task, sending first computing environment information of the computing node to a trusted cloud server by compilation, so that the first data node can subsequently obtain the first computing environment information from the cloud server as a benchmark value for the first environment verification.
[0062] According to some embodiments, obtaining first encrypted data from a first data node in a privacy computing task includes: obtaining the first encrypted data from the first data node via a first channel between the computing node and the first data node, wherein sending a key acquisition request to the first data node includes: sending a key acquisition request to the first data node via a second channel between the computing node and the first data node, and wherein decrypting the first encrypted data in response to receiving a first key from the first data node includes: decrypting the first encrypted data in response to receiving the first key from the first data node via the second channel.
[0063] According to some embodiments, at least two data transmission channels are set up between the first data node and the computing node. One data channel is used to transmit encrypted data, while the other is used to transmit key retrieval requests and keys. By setting up separate transmission channels for encrypted data and key transmission, the reliability of encrypted data and key transmission is further improved, the risk of both being obtained simultaneously is reduced, and data reading efficiency is also improved (for example, the first data node uploads its encrypted data to its own data peninsula in the cloud security infrastructure for the computing node to read, while remotely receiving key retrieval requests and sending keys via a secure transport layer protocol).
[0064] According to some embodiments, the verification data is second encrypted data or second task data, and, as described in this disclosure, the method further includes: encrypting the computation result using a first key to generate an encrypted result; and sending the encrypted result to a first data node via a first channel. For example, the computing node stores the encrypted result in a TEE environment, while the first data node obtains the encrypted result through a data peninsula and decrypts it.
[0065] According to some embodiments, the computing node can encrypt the computation result using a key other than the key obtained from the first data node, wherein the key used to encrypt the computation result is known to the first data node. For example, the computing node generates a key for encrypting the computation result based on the key obtained from the first data node, and the generation rule is agreed upon in advance by both parties; or, after generating the encrypted result, the computing node sends the key for encrypting the computation result to the first data node via a second channel.
[0066] According to some embodiments, such as the method described in this disclosure, the method further includes: before acquiring the first encrypted data from the first data node in the privacy computing task, in response to the privacy computing task being triggered, the computing node performs a second environment verification on the second computing environment information, wherein the second computing environment information includes the identity information of the computing node and the application information corresponding to the privacy computing task; and in response to the second computing environment information of the computing node passing the second environment verification, the application corresponding to the privacy computing task is launched, wherein acquiring the first encrypted data from the first data node in the privacy computing task includes: in response to the application being launched, acquiring the first encrypted data from the first data node in the privacy computing task.
[0067] Figure 2 A flowchart of a privacy computation method 200 according to an embodiment of the present disclosure is shown. Method 200 is executed by a computing node (e.g., as described below). Figure 8A Compute node 802 and Figure 8B (Compute node 803 in the example). Figure 2 As shown, method 200 includes:
[0068] Step S201: In response to the privacy computing task being triggered, the computing node performs a second environment verification on the second computing environment information, wherein the second computing environment information includes the identity information of the computing node and the application information corresponding to the privacy computing task.
[0069] According to some embodiments, a privacy-preserving computation task is triggered based on a task initiated by a task initiator. For example, a reporting module can receive tasks from users, store the user-submitted tasks in a database, and trigger a privacy-preserving computation task.
[0070] According to some embodiments, a second environment verification can be performed in a verification module located locally on the computing node to verify the identity information of the computing node and the application information corresponding to the privacy computing task. The benchmark value used for verification can be stored locally on the computing node or stored in the cloud.
[0071] Step S202: In response to the second computing environment information of the computing node being verified by the second environment, the application corresponding to the privacy computing task is launched.
[0072] According to some embodiments, after passing the second environment verification, isolated memory is requested for the application corresponding to the privacy computing task, and the application is launched simultaneously. In the embodiments described in this disclosure, by verifying the computing node's own computing environment information (e.g., the computing node's identity information and the application information corresponding to the privacy computing task), it is ensured that the application is launched only if the computing node's hardware platform and the application located thereon are trustworthy, thereby ensuring the security of subsequent privacy computing tasks.
[0073] Step S203: In response to the application being started, obtain the first encrypted data from the first data node in the privacy computing task.
[0074] Step S204: Generate a key acquisition request based on the first computing environment information.
[0075] Step S205: Send a key acquisition request to the first data node so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node.
[0076] Step S206: In response to receiving the first key from the first data node, decrypt the first encrypted data to obtain the second task data.
[0077] Step S207: Based on the first task data and the second task data, perform a privacy computation task to obtain the computation result.
[0078] According to some embodiments, it can be compared with the reference. Figure 1 Steps S102 to S105 are similarly executed as steps S204 to S207.
[0079] According to some embodiments, the verification data is second encrypted data, and the method further includes: acquiring second encrypted data from a second data node (e.g., a computing node reading encrypted data from its own data peninsula that the second data node has uploaded to the cloud security infrastructure); sending a key acquisition request to the second data node (e.g., via a secure transport layer protocol) to enable the second data node to perform a first environment verification on the computing node's first computing environment information to determine whether to send the second key of the second data node; and, in response to receiving the second key from the second data node (e.g., via a secure transport layer protocol), using the second key to decrypt the second encrypted data to obtain second task data.
[0080] According to some embodiments, the process of obtaining the second encrypted data and the second key, and obtaining the second task data described above can be similar to the process of obtaining the first encrypted data and the first key, and obtaining the first task data described above.
[0081] In privacy-preserving computation tasks, as described in the exemplary embodiments of this disclosure, where privacy intersection operations are included, a smaller dataset from a data requester is intersected with a larger dataset from a data provider to obtain a result for the data requester's use. The data provided by the data provider is relatively large and less frequently updated. To improve the performance of subsequent intersection operations, the larger dataset provided by the data provider is often preloaded. Therefore, using the privacy-preserving computation method described in this disclosure ensures the reliability and consistency of the application and data, thereby improving the security and reliability of the privacy-preserving computation results.
[0082] According to some embodiments, the privacy computation task includes a privacy intersection operation, and the privacy computation task based on first task data and second task data includes: sorting multiple first sub-data in the first intersection data of the first task data and second task data; dividing the sorted first intersection data into multiple first data sets; determining the index parameter of each of the multiple first data sets, wherein the index parameter includes a start index value and an end index value, the first sub-data of each first data set defines the start index value of the first data set, and the last sub-data of each first data set defines the end index value of the first data set; sorting multiple second sub-data in the second intersection data of the first task data and second task data; dividing the sorted second intersection data into multiple second data sets based on the start index value and the end index value of each first data set; and performing a privacy intersection operation on the merged rows of the multiple first data sets and the multiple second data sets, wherein for each second data set, a privacy intersection operation is performed on the second data set and the first data set corresponding to the second data set, wherein the number of first sub-data in the first intersection data is greater than the number of second sub-data in the second intersection data.
[0083] Figure 3 An embodiment according to this disclosure is shown in Figure 1 The exemplary process of performing privacy-preserving computation tasks based on first task data and second task data in method 100 (e.g., Figure 1 The flowchart for step S105 in [the document]. For example... Figure 3 As shown, step S105 includes:
[0084] Step S301: Sort the multiple first sub-data in the first intersection data of the first task data and the second task data.
[0085] According to some embodiments, the data in the first intersection data can be sorted in ascending or descending order according to lexicographical order.
[0086] Step S302: Divide the sorted first intersection data into multiple first data sets.
[0087] According to some embodiments, the sorted first intersection data can be divided according to a fixed set size (e.g., 4G), wherein the size of the fixed set can be determined based on the computing power and storage space of the hardware (e.g., each parallel computing hardware unit used to perform privacy intersection operations).
[0088] According to some embodiments, after segmentation, multiple first data sets can be sorted according to dictionary order. For example, multiple first data sets can be sorted based on the first data in each first data set.
[0089] Step S303: Determine the index parameters of each of the multiple first data sets, wherein the index parameters include a start index value and an end index value, the first sub-data of each first data set defines the start index value of the first data set, and the last sub-data of each first data set defines the end index value of the first data set.
[0090] According to some embodiments, the starting index value of the first data set is the first sub-data item of the first data set, and the ending index value of the first data set is the last sub-data item of the first data set. For example, if the first sub-data item of the first data set is "a1111" and the last sub-data item is "e2222", then the starting index value of the first data set is "a1111" and the ending index value of the first data set is "e2222".
[0091] According to other embodiments, the starting index of the first data set is the first N characters of the first sub-data item in the first data set, and the ending index of the first data set is the first N characters of the last sub-data item in the first data set, where N is a positive integer. For example, if the first sub-data item of the first data set is "a1111" and the last sub-data item is "e2222", and N=1, then the starting index of the first data set is "a" and the ending index of the first data set is "e".
[0092] According to other embodiments, the index parameters of the first data set also include one or more interval index values between the start index value and the end index value.
[0093] According to some embodiments, starting from the first sub-data item in the first data set, an interval sub-data item can be taken at predetermined intervals (e.g., 10,000 items), and an interval index value can be determined based on the interval sub-data item. For example, when the first data set includes 40,000 items, the 10,000th, 20,000th, and 30,000th items are taken as interval sub-data items to determine their corresponding interval index values. According to some embodiments, the interval index value corresponding to the interval sub-data item is the interval sub-data item itself, or the first N characters of the interval sub-data item.
[0094] Step S304: Sort the multiple second sub-data in the second intersection data of the first task data and the second task data.
[0095] According to some embodiments, the same sorting rules are used to sort the data in the first intersection data and the second intersection data.
[0096] Step S305: Based on the starting index value and ending index value of each first data set, divide the sorted second task data into multiple second data sets.
[0097] According to some embodiments, for each first data set, the sub-data in the second task data that falls within the index range defined by the start index value and the end index value are divided to form a second data set corresponding to the first data set. Therefore, the first data set and the second data set are in one-to-one correspondence, and the sub-data in the corresponding first data set and the second data set belong to the same index range. For example, if the start index value and the end index value of the first data set are "a" and "e" respectively, and the second task data is {b2222, c3333, d4444, f5555, g6666}, then the index range is ae, and the second data set corresponding to the first data set is {b2222, c3333, d4444}.
[0098] Step S306: Perform privacy intersection operation on the merged rows of multiple first data sets and multiple second data sets, wherein for each second data set, perform privacy intersection operation on the second data set and the first data set corresponding to the second data set.
[0099] According to some embodiments, as described with reference to step S305, the first data set corresponding to the second data set is a first data set in which the second data set is divided according to its start index value and end index value.
[0100] According to some embodiments, multiple computing units can be used for parallel computing, wherein each computing unit performs privacy intersection operation on a first data set and a second data set corresponding to the first data set.
[0101] According to some embodiments, the number of first sub-data in the first intersection data is greater than the number of second sub-data in the second intersection data. For example, the first intersection data is data provided by the data provider, while the second intersection data is data provided by the data requester.
[0102] Therefore, in the method described in this disclosure, the efficiency of privacy intersection operation is improved by dividing the first intersection data and the second intersection data into data sets with smaller data volume and corresponding data ranges, and performing parallel operations.
[0103] According to some embodiments, performing a privacy intersection operation on the second data set and the first data set corresponding to the second data set includes: for each second sub-data in the second data set, comparing the second sub-data with the first sub-data in the corresponding first data set in the order of the first sub-data in the corresponding first data set, wherein the first sub-data in the corresponding first data set that is the same as the second sub-data is the matching data, and the calculation result is a set of matching data.
[0104] According to some embodiments, the sorting operation is an ascending order sorting operation, and comparing the second sub-data with the first sub-data in the corresponding first data set in sequence according to the order of the first sub-data in the corresponding first data set includes:
[0105] In response to the fact that the second sub-data is greater than the first sub-data being compared, and that there is a first sub-data in the corresponding first data set that has not yet been compared, the second sub-data is compared with the next sub-data in the corresponding first data set;
[0106] In response to the second sub-data being greater than the first sub-data being compared, and there being no uncompared first sub-data in the corresponding first data set, or the second sub-data being less than the first sub-data being compared, the comparison between the second sub-data and each of the first sub-data in the corresponding first data set ends; and
[0107] In response to the second sub-data being equal to the first sub-data being compared, the second sub-data is determined to be a matching data, and the comparison between the second sub-data and each first sub-data in the corresponding first data set is terminated.
[0108] The following is an example pseudocode for implementing the above comparison process:
[0109] for (;;) {
[0110] / / Retrieve the second sub-data as a query condition
[0111] s1 = input();
[0112] / / If no query conditions are found, continue to retrieve query conditions.
[0113] if (s1 == null) {
[0114] continue?
[0115] }
[0116] / / Read the first data set corresponding to the second sub-data
[0117] while(l = readline()){
[0118] a2 = l.split(",");
[0119] / / Compare query conditions and the first child data
[0120] int c = s1.compareTo(a2[0]);
[0121] / / If the query condition is larger than the first sub-data, then continue searching.
[0122] if (c>0){
[0123] continue?
[0124] }
[0125] / / If found, output the query criteria and the first sub-data.
[0126] if (c == 0){
[0127] output(s1,a2[1]);
[0128] }
[0129] / / If the query condition is less than the first child data, exit.
[0130] if (c<0){
[0131] break
[0132] }
[0133] }
[0134] }
[0135] According to some embodiments, the sorting operation is a descending order sorting operation, and the second sub-data is compared with the first sub-data in the corresponding first data set in the order of the first sub-data, including:
[0136] In response to the fact that the second sub-data is less than the first sub-data being compared, and that there is a first sub-data in the corresponding first data set that has not yet been compared, the second sub-data is compared with the next sub-data in the corresponding first data set;
[0137] In response to the second sub-data being less than the first sub-data being compared, and there being no uncompared first sub-data in the corresponding first data set, or the second sub-data being greater than the first sub-data being compared, the comparison between the second sub-data and each of the first sub-data in the corresponding first data set ends; and
[0138] In response to the second sub-data being equal to the first sub-data being compared, the second sub-data is determined to be a matching data, and the comparison between the second sub-data and each first sub-data in the corresponding first data set is terminated.
[0139] According to some embodiments, the index parameters further include one or more interval index values between the start index value and the end index value, and the privacy intersection operation between the second data set and the first data set corresponding to the second data set includes: for each second sub-data in the second data set, determining a matching subset in the corresponding first data set based on the interval index value of the corresponding first data set; comparing the second sub-data with the first sub-data of the matching subset in the order of the first sub-data in the corresponding first data set, wherein the first sub-data in the corresponding first data set that is the same as the second sub-data is the matching data, and the calculation result is a set of matching data.
[0140] According to some embodiments, the second sub-data piece is compared with multiple interval index values to determine a matching subset in the corresponding first data set. According to some embodiments, when the interval index value is the interval sub-data piece itself, comparing the second sub-data piece with the multiple interval index values includes comparing the second sub-data piece with each interval index value separately. According to other embodiments, when the interval index value is the first N characters of the interval sub-data piece, comparing the second sub-data piece with the multiple interval index values includes comparing the first N characters of the second sub-data piece with each interval index value separately.
[0141] According to some embodiments, when the second sub-data is less than or equal to the first interval index value, the matching subset is the set of first sub-data in the first data set that falls within the range defined by the starting index value and the first interval index value; when the second sub-data is greater than the (M-1)th interval index value and less than or equal to the Mth interval index value (M is a positive integer), the matching subset is the set of first sub-data in the first data set that falls within the range defined by the (M-1)th interval index value and the Mth interval index value; when the second sub-data is greater than the last interval index value, the matching subset is the set of first sub-data in the first data set that falls within the range defined by the last interval index value and the ending index value.
[0142] According to some embodiments, the sorting operation is an ascending sorting operation, and comparing the second sub-data with the first sub-data of the matching subset sequentially according to the order of the first sub-data in the corresponding first data set includes:
[0143] In response to the fact that the second sub-data is greater than the first sub-data being compared, and that there is a first sub-data in the matching subset that has not yet been compared, the second sub-data is compared with the next sub-data in the matching subset;
[0144] In response to the fact that the second sub-data is greater than the first sub-data being compared, and there is no first sub-data in the matching subset that has not yet been compared, or the second sub-data is less than the first sub-data being compared, the comparison between the second sub-data and each first sub-data in the matching subset ends;
[0145] In response to the second sub-data being equal to the first sub-data being compared, the second sub-data is determined to be a matching data, and the comparison between the second sub-data and each first sub-data in the matching subset is terminated.
[0146] According to other embodiments, the sorting operation is a descending sorting operation, and comparing the second sub-data with the first sub-data of the matching subset sequentially according to the order of the first sub-data in the corresponding first data set includes:
[0147] In response to the fact that the second sub-data is less than the first sub-data being compared, and that there is a first sub-data in the matching subset that has not yet been compared, the second sub-data is compared with the next sub-data in the matching subset;
[0148] In response to the second sub-data being less than the first sub-data being compared, and there being no uncompared first sub-data in the matching subset, or the second sub-data being greater than the first sub-data being compared, the comparison between the second sub-data and each of the first sub-data in the matching subset ends; and
[0149] In response to the fact that the second sub-data is equal to the first sub-data being compared, the second sub-data is determined to be a matching data, and the comparison between the second sub-data and each first sub-data in the matching subset ends.
[0150] The following is an example pseudocode for implementing the above comparison process:
[0151] for (;;) {
[0152] / / Retrieve the second sub-data as a query condition
[0153] s1 = input();
[0154] / / If no query conditions are found, continue to retrieve query conditions.
[0155] if (s1 == null) {
[0156] continue?
[0157] }
[0158] / / Match the starting line from the index file
[0159] String si = null;
[0160] while(ri = readline()){
[0161] int c = s1.compareTo(ri);
[0162] if (c>= 0){
[0163] si = li;
[0164] continue?
[0165] }
[0166] if (c<0){
[0167] break
[0168] }
[0169] }
[0170] / / Read the first data set corresponding to the second sub-data
[0171] while(l = readline()){
[0172] a2 = l.split(",");
[0173] / / Skip lines smaller than the found index file. That is, only match files larger than the starting index.
[0174] int i = si.compareTo(a2[0]);
[0175] if (i<0){
[0176] continue?
[0177] }
[0178] / / Compare query conditions and the first child data
[0179] int c = s1.compareTo(a2[0]);
[0180] / / If the query condition is larger than the first sub-data, then continue searching.
[0181] if (c>0){
[0182] continue?
[0183] }
[0184] / / If found, output the query criteria and the first sub-data.
[0185] if (c == 0){
[0186] output(s1,a2[1]);
[0187] }
[0188] / / If the query condition is less than the first child data, exit.
[0189] if (c<0){
[0190] break
[0191] }
[0192] }
[0193] }
[0194] Figure 4 A schematic diagram of a module 400 for performing a privacy intersection operation according to an embodiment of the present disclosure is shown. According to some embodiments, module 400 may be located on a computing node (e.g., as described below). Figure 8A Compute node 802 and Figure 8B In the computing node 803).
[0195] like Figure 4As shown, module 400 includes an index manager 401, a metric manager 402, a task manager 403, and a monitoring manager 404.
[0196] Index manager 401 is used to distribute data from first task data 410 and second task data 420 to task processors 403a-403c in task manager 403 according to index file 430. According to some embodiments, index manager 401 reads index file 430 and outputs corresponding data sets from first task data 410 and second task data 420 to the same task processor according to the index values in index file 430, thereby performing parallel computation. According to other embodiments, index manager 401 also outputs corresponding index values (e.g., the interval index values mentioned above) from the index file to task processors 403a-403c respectively, so that task processors 403a-403c can determine the matching subset in the first data set of first task data 410 according to the index values.
[0197] Task processor 403 includes a first task processor 403a, a second task processor 403b, and a third task processor 403c, wherein each of task processors 403a-403c can be configured to execute as described above. Figure 3 The privacy-preserving intersection operation is described, and the outputs of task processors 403a-403c are summed to form task output 440. It should be understood that the number of task processors shown in the figure is merely illustrative, and there may be more or fewer task processors.
[0198] The metrics manager 402 counts the number of sub-data items matched in the task manager 403, and outputs this count as a metrics output 450. The monitoring manager 404 monitors the task processing status of the task manager 403.
[0199] According to embodiments of this disclosure, a privacy computing method is provided for a first data node in a privacy computing task. The method includes: encrypting first task data using a first key to generate first encrypted data; sending the first encrypted data to a computing node in the privacy computing task; in response to receiving a key acquisition request from the computing node, performing a first environment verification on first computing environment information of the computing node, wherein the first computing environment information includes application information corresponding to the privacy computing task and verification data, the verification data being the first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; and in response to the first computing environment information passing the first environment verification, sending a first key to the computing node so that the computing node decrypts the first encrypted data to perform a privacy computing task based on the first task data and the second task data. Figure 5 A flowchart illustrating a privacy computation method 500 according to an embodiment of the present disclosure is shown. Method 500 is performed by data nodes (e.g., as described below). Figure 8A Data node 801 and Figure 8B The first data node in the data (801). For example... Figure 5 As shown, method 500 includes:
[0200] Step S501: Encrypt the first task data using the first key to generate the first encrypted data;
[0201] Step S502: Send the first encrypted data to the computing node in the privacy computing task;
[0202] Step S503: In response to receiving a key acquisition request from a computing node, perform a first environment verification on the first computing environment information of the computing node. The first computing environment information includes application information corresponding to the privacy computing task and verification data. The verification data is first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task. Specifically: when the verification data is first encrypted data, the second task data originates from the computing node or is generated based on the second encrypted data; when the verification data is second task data, the second task data originates from the computing node; and when the verification data is second encrypted data, the second task data is generated based on the second encrypted data.
[0203] Step S504: In response to the first computing environment information being verified by the first environment, a first key is sent to the computing node so that the computing node can decrypt the first encrypted data to perform a privacy computing task based on the first task data and the second task data.
[0204] According to some embodiments, the elements in method 500 (e.g., computing nodes, data nodes, first task data, second task data, first computing environment information, etc.) may be the same as those described above (e.g., refer to...). Figure 1-4 Similar to (as described).
[0205] According to some embodiments, the first computing environment information also includes the identity information of the computing node.
[0206] According to some embodiments, sending first encrypted data to a computing node in a privacy computing task includes: sending the first encrypted data to the computing node via a first channel between the computing node and a first data node, wherein, in response to receiving a key acquisition request from the computing node, performing a first environment verification on the first computing environment information of the computing node includes: performing a first environment verification on the first computing environment information in response to receiving a key acquisition request via a second channel between the computing node and the first data node, and wherein, sending the first key to the computing node includes: sending the first key to the computing node via the second channel.
[0207] According to some embodiments, the verification data is second encrypted data or second task data, and, as described in this disclosure, the method further includes: receiving an encrypted result from a computing node via a first channel; and decrypting the encrypted result using a first key to obtain the computation result of the privacy computing task.
[0208] According to some embodiments, the verification data is second encrypted data, and the privacy computing task includes a privacy intersection operation, where the first data node is the data requester in the privacy intersection operation and the second data node is the data provider in the privacy intersection operation.
[0209] According to some embodiments, the verification data is the second task data, and the privacy computing task includes a privacy intersection operation, the first data node is the data requester in the privacy intersection operation, and the computing node is the data provider in the privacy intersection operation.
[0210] According to some embodiments, the verification data is the first encrypted data, and the privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation, and the computing node is the data requester in the privacy intersection operation.
[0211] According to some embodiments, the verification data is the first encrypted data, and the privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation and the second data node is the data requester in the privacy intersection operation.
[0212] Figure 6 A schematic block diagram of a privacy computing device 600 according to an embodiment of the present disclosure is shown. The device 600 is used as a computing node in a privacy computing task (e.g., as described below). Figure 8A Compute node 802 and Figure 8B (Computation node 803 in the middle).
[0213] The device 600 includes: a data acquisition module 601 configured to acquire first encrypted data from a first data node in a privacy computing task; and a request generation module 602 configured to generate a key acquisition request based on first computing environment information of the computing node, wherein the first computing environment information includes application information and verification data corresponding to the privacy computing task, and the verification data is the first encrypted data, second task data, or second encrypted data from a second data node in the privacy computing task, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data... The task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; the request sending module 603 is configured to send a key acquisition request to the first data node so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node; the decryption module 604 is configured to decrypt the first encrypted data in response to receiving the first key from the first data node to obtain the first task data; and the computing module 605 is configured to perform a privacy computing task based on the first task data and the second task data to obtain the computing result.
[0214] It should be understood that Figure 6 The various modules of the device 600 shown can be connected to the reference. Figure 1 The steps in method 100 described correspond to each other. Therefore, the operations, features, and advantages described above for method 100 also apply to device 600 and its included modules. For the sake of brevity, some operations, features, and advantages will not be repeated here.
[0215] While specific functions have been discussed above with reference to specific modules, it should be noted that the functions of the modules discussed herein can be divided into multiple modules, and / or at least some functions of multiple modules can be combined into a single module. The specific actions performed by the modules discussed herein include the specific module itself performing the action, or alternatively, the specific module calling or otherwise accessing another component or module that performs the action (or performs the action in conjunction with the specific module). Therefore, a specific module performing an action can include the specific module performing the action itself and / or another module that performs the action, called or otherwise accessed by the specific module. For example, the decryption module 604 / computation module 605 described above can be combined into a single module in some embodiments.
[0216] It should also be understood that this article can describe various technologies in the general context of software and hardware components or program modules. The above regarding... Figure 6 The various modules described can be implemented in hardware or in hardware in combination with software and / or firmware. For example, these modules can be implemented as computer program code / instructions configured to execute in one or more processors and stored in a computer-readable storage medium. Alternatively, these modules can be implemented as hardware logic / circuit. For example, in some embodiments, one or more of the data acquisition module 601, request generation module 602, request sending module 603, decryption module 604, and computing module 605 can be implemented together in a System-on-Chip (SoC). The SoC may include an integrated circuit chip (which includes a processor (e.g., a Central Processing Unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and / or one or more components of other circuitry) and may optionally execute received program code and / or include embedded firmware to perform functions.
[0217] Figure 7 A schematic block diagram of a privacy computing apparatus 700 according to an embodiment of the present disclosure is shown. The apparatus 700 is used for data nodes (e.g., those described below) in privacy computing tasks. Figure 8A Data node 801 and Figure 8B The first data node in the system is 801.
[0218] The apparatus 700 includes: an encryption module 701 configured to encrypt first task data using a first key to generate first encrypted data; a data sending module 702 configured to send the first encrypted data to a computing node in a privacy computing task; and a first verification module 703 configured to, in response to receiving a key acquisition request from a computing node, perform a first environment verification on first computing environment information of the computing node, wherein the first computing environment information includes application information corresponding to the privacy computing task and verification data, and the verification data is the first encrypted data, second task data, or second data from the privacy computing task. The node's second encrypted data, wherein: when the verification data is the first encrypted data, the second task data comes from the computing node or is generated based on the second encrypted data; when the verification data is the second task data, the second task data comes from the computing node; and when the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; and a key sending module 704, configured to: in response to the first computing environment information passing the first environment verification, send a first key to the computing node, so that the computing node decrypts the first encrypted data to perform a privacy computing task based on the first task data and the second task data. It should be understood that... Figure 7 The various modules of the device 700 shown can be connected to the reference. Figure 5 The steps in method 500 described correspond to each other. Therefore, the operations, features, and advantages described above for method 500 also apply to apparatus 700 and its included modules. For the sake of brevity, some operations, features, and advantages will not be repeated here.
[0219] While specific functions have been discussed above with reference to specific modules, it should be noted that the functions of the modules discussed herein can be divided into multiple modules, and / or at least some functions of multiple modules can be combined into a single module. The specific actions performed by the modules discussed herein include the specific module itself performing the action, or alternatively, the specific module calling or otherwise accessing another component or module that performs the action (or performs the action in conjunction with the specific module). Therefore, a specific module performing an action can include the specific module performing the action itself and / or another module that performs the action, called or otherwise accessed by the specific module. For example, the first verification module 703 / key sending module 704 described above can be combined into a single module in some embodiments.
[0220] It should also be understood that this article can describe various technologies in the general context of software and hardware components or program modules. The above regarding... Figure 7The various modules described can be implemented in hardware or in hardware in combination with software and / or firmware. For example, these modules can be implemented as computer program code / instructions configured to execute in one or more processors and stored in a computer-readable storage medium. Alternatively, these modules can be implemented as hardware logic / circuit. For example, in some embodiments, one or more of the encryption module 701, data transmission module 702, first authentication module 703, and key transmission module 704 can be implemented together in a System on Chip (SoC). The SoC may include an integrated circuit chip (which includes a processor (e.g., a Central Processing Unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and / or one or more components of other circuitry) and may optionally execute received program code and / or include embedded firmware to perform functions.
[0221] According to another aspect of this disclosure, a privacy computing system is provided, comprising: a computing node including the privacy computing apparatus as described in this disclosure; and a first data node including the privacy computing apparatus as described in this disclosure, wherein second task data originates from the computing node.
[0222] like Figure 8A As shown, the privacy computing system 800 includes a data node 801 and a computing node 802, wherein data transmission occurs between the data node 801 and the computing node 802. According to some embodiments, the data node 801 may include the privacy computing device 700 as described above, while the computing node 802 may include the privacy computing device 600 as described above.
[0223] According to some embodiments, a data node, acting as a data source, provides first encrypted data generated based on first task data, while a computing node, acting as another data source, provides second task data.
[0224] According to another aspect of this disclosure, a privacy computing system is provided, comprising: a computing node including a privacy computing device as described in this disclosure; a first data node including a privacy computing device as described in this disclosure; and a second data node, wherein second task data is generated by the computing node based on second encrypted data from the second data node.
[0225] like Figure 8BAs shown, the privacy computing system 800 includes a first data node 801, a second data node 802, and a computing node 803. Data transmission occurs between the first data node 801 and the computing node 803, and data transmission also occurs between the second data node 802 and the computing node 803. According to some embodiments, the first data node 801 may include the privacy computing device 700 as described above, and the computing node 803 may include the privacy computing device 600 as described above. According to some embodiments, the second data node 802 may also include the privacy computing device 700 as described above.
[0226] According to some embodiments, a first data node, acting as a data source, provides first encrypted data generated based on first task data, and a second data node, acting as another data source, provides second encrypted data generated based on second task data. The computing node decrypts the first encrypted data and the second encrypted data respectively to obtain the first task data and the second task data used for privacy computing tasks.
[0227] According to one aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the steps of any of the method embodiments described above, such as methods 100, 200, 500 and various variations thereof.
[0228] According to one aspect of this disclosure, a non-transitory computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps of any of the method embodiments described above, such as method 100, 200, 500 and various variations thereof.
[0229] According to one aspect of this disclosure, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the steps of any of the method embodiments described above, such as method 100, 200, 500 and various variations thereof.
[0230] Figure 9 An example configuration of an electronic device 900 that can be used to implement the methods described herein is shown. For example, the privacy computing device 600 or 700 described above can also be implemented wholly or at least partially by the electronic device 900 or similar devices or systems. It should be understood that the components of the electronic device 900 can be distributed across a network. For example, some processing can be performed using one processor, while other processing can be performed simultaneously by another processor located remotely from that processor.
[0231] Electronic device 900 may include elements that are connected to or communicate with bus 902 (possibly via one or more interfaces). For example, electronic device 900 may include bus 902, one or more processors 904, one or more input devices 906, and one or more output devices 908. The one or more processors 904 may be any type of processor and may include, but are not limited to, one or more general-purpose processors and / or one or more dedicated processors (e.g., special-purpose chips). Input devices 906 may be any type of device capable of inputting information to electronic device 900 and may include, but are not limited to, a mouse, keyboard, touchscreen, microphone, and / or remote control. Output devices 908 may be any type of device capable of presenting information and may include, but are not limited to, a monitor, speaker, video / audio output terminal, vibrator, and / or printer. Electronic device 900 may also include or be connected to a non-transitory storage device 910. The non-transitory storage device can be any storage device that is non-transitory and capable of storing data, and may include, but is not limited to, disk drives, optical storage devices, solid-state storage, floppy disks, flexible disks, hard disks, magnetic tapes or any other magnetic media, optical discs or any other optical media, read-only memory (ROM), random access memory (RAM), cache memory and / or any other memory chip or cartridge, and / or any other medium from which a computer can read data, instructions, and / or code. The non-transitory storage device 910 can be detached from an interface. The non-transitory storage device 910 may have data / programs (including instructions) / code for implementing the methods and steps described above. Electronic device 900 may also include a communication device 912. The communication device 912 can be any type of device or system that enables communication with external devices and / or with a network, and may include, but is not limited to, modems, network interface cards, infrared communication devices, wireless communication devices and / or chipsets, such as Bluetooth. TM Devices, 802.11 devices, WiFi devices, WiMax devices, cellular communication devices and / or the like.
[0232] Electronic device 900 may also include working memory 914, which may be any type of working memory that can store programs (including instructions) and / or data useful for the operation of processor 904, and may include, but is not limited to, random access memory and / or read-only memory devices.
[0233] Software elements (programs) may reside in working memory 914, including but not limited to operating system 916, one or more application programs 918, drivers, and / or other data and code. Instructions for performing the above methods and steps may be included in one or more application programs 918, and the data acquisition module 601, request generation module 602, request sending module 603, decryption module 604, and computing module 605 of the privacy computing device 600, as well as the encryption module 701, data sending module 702, first verification module 703, and key sending module 704 of the privacy computing device 700, can be implemented by the processor 904 reading and executing the instructions of one or more application programs 918. The executable code or source code of the instructions of the software elements (programs) may be stored in a non-transitory computer-readable storage medium (such as the storage device 910 described above), and may be stored in working memory 914 during execution (possibly compiled and / or installed). The executable code or source code of the instructions of the software elements (programs) may also be downloaded from a remote location.
[0234] It should also be understood that various variations are possible depending on specific requirements. For example, custom hardware may be used, and / or specific elements may be implemented using hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. For example, some or all of the disclosed methods and apparatus may be implemented by programming hardware (e.g., programmable logic circuits including Field Programmable Gate Arrays (FPGAs) and / or Programmable Logic Arrays (PLAs)) in assembly language or hardware programming languages (such as Verilog, VHDL, C++) using logic and algorithms according to this disclosure.
[0235] For the purposes of the detailed discussion above, embodiments of this disclosure have been described with reference to distributed computing environments; however, the distributed computing environments described herein are merely exemplary. Components may be configured to perform novel aspects of the embodiments, wherein the term "configured for" may mean "programmed to" perform a particular task or implement a particular abstract data type using code. Furthermore, while embodiments of this disclosure may generally relate to distributed computing environments, it should be understood that the described techniques can be extended to other implementation contexts.
[0236] Although this disclosure has been described and illustrated in detail in the accompanying drawings and the foregoing description, such description and illustration should be considered illustrative and suggestive, not restrictive; this disclosure is not limited to the disclosed embodiments. By studying the drawings, the disclosure, and the appended claims, those skilled in the art will be able to understand and implement variations of the disclosed embodiments in practicing the claimed subject matter. In the claims, the word "comprising" does not exclude other elements or steps not listed, and the words "a" or "an" do not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be beneficial.
Claims
1. A privacy-preserving computation method for a computation node in a privacy-preserving computation task, the method comprising: Obtain the first encrypted data from the first data node in the privacy computing task; Based on the first computing environment information of the computing node, a key acquisition request is generated, wherein the first computing environment information includes application information and verification data corresponding to the privacy computing task, and the verification data is the first encrypted data, the second task data, or the second encrypted data from the second data node in the privacy computing task, wherein: When the verification data is the first encrypted data, the second task data comes from the computing node, or is generated based on the second encrypted data; When the verification data is the second task data, the second task data comes from the computing node; and When the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; Send the key acquisition request to the first data node so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node; In response to receiving a first key from the first data node, the first encrypted data is decrypted using the first key to obtain first task data; and Based on the first task data and the second task data, the privacy computation task is performed to obtain the computation result.
2. The method as described in claim 1, wherein, The first computing environment information also includes the identity information of the computing node.
3. The method according to any one of claims 1-2, further comprising: Before the key generation request, the application corresponding to the privacy computing task is compiled and sends the first computing environment information of the computing node to the first data node.
4. The method according to any one of claims 1-2, wherein, The step of obtaining the first encrypted data from the first data node in the privacy computing task includes: First encrypted data is obtained from the first data node via the first channel between the computing node and the first data node. Sending the key acquisition request to the first data node includes: A key acquisition request is sent to the first data node via the second channel between the computing node and the first data node, and... Wherein, the step of decrypting the first encrypted data in response to receiving the first key from the first data node includes: In response to receiving the first key from the first data node via the second channel, the first encrypted data is decrypted.
5. The method of claim 4, wherein, The verification data is either the second encrypted data or the second task data, and the method further includes: Using the first key, the calculation result is encrypted to generate an encrypted result; and The encryption result is sent to the first data node via the first channel.
6. The method according to any one of claims 1-2, wherein, The verification data is the second encrypted data, and the method further includes: Obtain the second encrypted data from the second data node; Send the key acquisition request to the second data node so that the second data node performs the first environment verification on the first computing environment information of the computing node to determine whether to send the second key of the second data node; In response to receiving a second key from the second data node, the second key is used to decrypt the second encrypted data to obtain the second task data.
7. The method according to any one of claims 1-2, further comprising: Before acquiring the first encrypted data from the first data node in the privacy computing task, in response to the triggering of the privacy computing task, the computing node performs a second environment verification on second computing environment information, wherein the second computing environment information includes the identity information of the computing node and the application information corresponding to the privacy computing task; and In response to the second computing environment information of the computing node being verified by the second environment, the application corresponding to the privacy computing task is launched. The step of obtaining the first encrypted data from the first data node in the privacy computing task includes: In response to the application being launched, first encrypted data is obtained from the first data node in the privacy computing task.
8. The method according to any one of claims 1-2, wherein, The verification data is the second encrypted data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data requester in the privacy intersection operation and the second data node is the data provider in the privacy intersection operation.
9. The method according to any one of claims 1-2, wherein, The verification data is the second task data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data requester in the privacy intersection operation and the computing node is the data provider in the privacy intersection operation.
10. The method according to any one of claims 1-2, wherein, The verification data is the first encrypted data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation and the computing node is the data requester in the privacy intersection operation.
11. The method according to any one of claims 1-2, wherein, The verification data is the first encrypted data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation and the second data node is the data requester in the privacy intersection operation.
12. The method according to any one of claims 1-2, wherein, The privacy computation task includes a privacy intersection operation, and the step of performing the privacy computation task based on the first task data and the second task data includes: Sort the multiple first sub-data items in the first intersection data of the first task data and the second task data; The sorted first intersection data is divided into multiple first data sets; Determine the index parameters for each of the plurality of first data sets, wherein the index parameters include a start index value and an end index value, the first sub-data of each first data set defines the start index value of the first data set, and the last sub-data of each first data set defines the end index value of the first data set; The sorting operation is performed on multiple second sub-data items in the second intersection data of the first task data and the second task data; Based on the starting and ending index values of each first data set, the sorted second intersection data is divided into multiple second data sets; and The privacy-preserving intersection operation is performed on the merged rows of the plurality of first data sets and the plurality of second data sets, wherein, for each second data set, the privacy-preserving intersection operation is performed on the second data set and the first data set corresponding to the second data set. In this case, the number of first sub-data in the first intersection data is greater than the number of second sub-data in the second intersection data.
13. The method of claim 12, wherein, The privacy intersection operation performed on the second data set and the first data set corresponding to the second data set includes: For each second sub-data item in the second data set, the second sub-data item is compared with the first sub-data items in the corresponding first data set in the order they appear. The first sub-data items in the corresponding first data set that are identical to the second sub-data item are considered matching data. The calculation result is the set of matching data.
14. The method of claim 12, wherein, The index parameters also include one or more interval index values between the starting index value and the ending index value, and the privacy intersection operation performed on the second data set and the first data set corresponding to the second data set includes: For each second sub-data item in the second data set, a matching subset in the corresponding first data set is determined based on the interval index value of the corresponding first data set. Following the order of the first sub-data in the corresponding first data set, the second sub-data is compared sequentially with the first sub-data in the matching subset. The first sub-data in the corresponding first data set that is identical to the second sub-data is considered matching data. The calculation result is the set of matching data.
15. A privacy-preserving computation method for a first data node in a privacy-preserving computation task, the method comprising: The first task data is encrypted using the first key to generate the first encrypted data; Send the first encrypted data to the computing node in the privacy computing task; In response to receiving a key acquisition request from the computing node, a first environment verification is performed on the first computing environment information of the computing node. The first computing environment information includes application information and verification data corresponding to the privacy computing task. The verification data is the first encrypted data, the second task data, or the second encrypted data from the second data node in the privacy computing task. When the verification data is the first encrypted data, the second task data comes from the computing node, or is generated by the computing node based on the second encrypted data; When the verification data is the second task data, the second task data comes from the computing node; and When the verification data is the second encrypted data, the second task data is generated by the computing node based on the second encrypted data; and In response to the first computing environment information being verified by the first environment, the first key is sent to the computing node so that the computing node can decrypt the first encrypted data and perform the privacy computing task based on the first task data and the second task data.
16. The method of claim 15, wherein, The first computing environment information also includes the identity information of the computing node.
17. The method according to any one of claims 15-16, wherein, Sending the first encrypted data to the computing node in the privacy computing task includes: The first encrypted data is sent to the computing node via the first channel between the computing node and the first data node. Wherein, the step of performing a first environment verification on the first computing environment information of the computing node in response to receiving a key acquisition request from the computing node includes: In response to receiving the key acquisition request via the second channel between the computing node and the first data node, the first computing environment information is verified using the first environment verification method, and Sending the first key to the computing node includes: The first key is sent to the computing node via the second channel.
18. The method of claim 17, wherein, The verification data is either the second encrypted data or the second task data, and the method further includes: The encryption result is received from the computing node via the first channel; and The encryption result is decrypted using the key to obtain the computation result of the privacy computing task.
19. The method according to any one of claims 15-16, wherein, The verification data is the second encrypted data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data requester in the privacy intersection operation and the second data node is the data provider in the privacy intersection operation.
20. The method according to any one of claims 15-16, wherein, The verification data is the second task data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data requester in the privacy intersection operation and the computing node is the data provider in the privacy intersection operation.
21. The method according to any one of claims 15-16, wherein, The verification data is the first encrypted data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation and the computing node is the data requester in the privacy intersection operation.
22. The method according to any one of claims 15-16, wherein, The verification data is the first encrypted data, and The privacy computing task includes a privacy intersection operation, where the first data node is the data provider in the privacy intersection operation and the second data node is the data requester in the privacy intersection operation.
23. A privacy computing apparatus for use as a computing node in a privacy computing task, the apparatus comprising: The data acquisition module is configured to: acquire first encrypted data from the first data node in the privacy computing task; The request generation module is configured to: generate a key acquisition request based on the first computing environment information of the computing node, wherein the first computing environment information includes application information and verification data corresponding to the privacy computing task, and the verification data is the first encrypted data, the second task data, or the second encrypted data from the second data node in the privacy computing task, wherein: When the verification data is the first encrypted data, the second task data comes from the computing node, or is generated based on the second encrypted data; When the verification data is the second task data, the second task data comes from the computing node; and When the verification data is the second encrypted data, the second task data is generated based on the second encrypted data; The request sending module is configured to send the key acquisition request to the first data node, so that the first data node performs a first environment verification on the first computing environment information of the computing node to determine whether to send the first key of the first data node; The decryption module is configured to: in response to receiving a first key from the first data node, decrypt the first encrypted data to obtain first task data; and The calculation module is configured to perform the privacy calculation task based on the first task data and the second task data to obtain the calculation result.
24. A privacy computing apparatus for a first data node in a privacy computing task, the apparatus comprising: The encryption module is configured to encrypt the first task data using a first key to generate first encrypted data; The data sending module is configured to send the first encrypted data to the computing node in the privacy computing task; The first verification module is configured to: in response to receiving a key acquisition request from the computing node, perform a first environment verification on the first computing environment information of the computing node, wherein the first computing environment information includes application information and verification data corresponding to the privacy computing task, and the verification data is the first encrypted data, the second task data, or the second encrypted data from the second data node in the privacy computing task, wherein: When the verification data is the first encrypted data, the second task data comes from the computing node, or is generated by the computing node based on the second encrypted data; When the verification data is the second task data, the second task data comes from the computing node; and When the verification data is the second encrypted data, the second task data is generated by the computing node based on the second encrypted data; and The key sending module is configured to: in response to the first computing environment information passing the first environment verification, send the first key to the computing node so that the computing node can decrypt the first encrypted data to perform the privacy computing task based on the first task data and the second task data.
25. A privacy-preserving computing system, comprising: A computing node, the computing node including the privacy computing device as described in claim 23; The first data node includes the privacy computing device as described in claim 24. The second task data comes from the computing node.
26. A privacy-preserving computing system, comprising: A computing node, the computing node including the privacy computing device as described in claim 23; A first data node, the first data node comprising the privacy computing device as described in claim 24; Second data node, The second task data is generated by the computing node based on the second encrypted data from the second data node.
27. An electronic device comprising: At least one processor; as well as A memory that is communicatively connected to the at least one processor; in The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-22.
28. A non-transitory computer-readable storage medium having a computer program stored thereon, wherein, When the computer program is executed by a processor, it implements the method of any one of claims 1-22.
29. A computer program product comprising a computer program, wherein, When the computer program is executed by a processor, it implements the method of any one of claims 1-22.
Citation Information
Patent Citations
Edge computing framework based on blockchain and trusted execution environment
CN112380578A
Data fusion calculation method and device for trusted execution environment, equipment and medium
CN115085917A