Methods, systems, media, and computer programs for protecting membership in multi-identity secure computation and communications.

A differential privacy protocol with dummy elements and randomized common set sizes addresses the privacy risks in secure computation, ensuring secure and compliant data sharing.

JP2026513888APending Publication Date: 2026-05-01LEMON CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
LEMON CO LTD
Filing Date
2024-04-03
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

Existing secure computation protocols like PSI expose common set sizes, risking privacy breaches by allowing attackers to infer membership of elements across organizations, violating privacy regulations.

Method used

Implement a differential privacy protocol that generates dummy membership elements and randomizes common set sizes, ensuring differential privacy through padding and shuffling datasets to protect membership privacy.

Benefits of technology

The solution effectively conceals membership information, making it impossible for attackers to determine dataset or user membership, thus complying with privacy regulations and maintaining data security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026513888000001_ABST
    Figure 2026513888000001_ABST
Patent Text Reader

Abstract

A method and system are provided for protecting membership privacy in multi-identity secure computation and communications. The method includes the steps of: providing a dataset having a first set of membership identities and a second set of membership identities; determining a number N based on data privacy settings; generating and shuffling a first padding dataset; and upsampling the first set of membership identities using the first N elements of the shuffled first padding dataset. The method also includes the steps of: inserting a first N random membership identities element into the second set of membership identities; generating and shuffling a second padding dataset; and upsampling the inserted second set of membership identities using the first N elements of the shuffled second padding dataset. The method further includes the step of performing a set intersection operation based on the upsampled dataset and a received dataset.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] [Cross-reference of related applications] This application claims priority to U.S. Application No. 18 / 297,389 (title: PROTECTING MEMBERSHIP IN MULTI-IDENTIFICATION SECURE COMPUTATION AND COMMUNICATION), filed on April 7, 2023, the disclosures of said application are incorporated into this application in whole by reference.

[0002] [Technical field] The embodiments described herein generally relate to protecting membership privacy for secure computation and communication. More specifically, the embodiments described herein relate to protecting membership (such as elements, members, and users) so that they are not identified through the common set size in multi-identity-confidentiality common set computation algorithms or protocols. [Background technology]

[0003] Hidden Common Set Operations (PSI) is a secure two-party or multi-party protocol for calculating common set-related statistics, and PSI has attracted significant industry interest. The PSI algorithm or protocol allows two or more organizations to jointly compute functions (e.g., counts, sums, etc.) on a common set of their respective datasets without explicitly exposing the common set to the other party. In applications, two parties may not want, or be able to, expose their underlying data to each other, but still want to compute aggregate-level measurements. These two parties may want to do so while ensuring that their input datasets do not expose anything beyond these aggregate values ​​regarding individual users. [Overview of the project] [Problems that the invention aims to solve]

[0004] Many datasets have two or more identifying categories or fields. Performing an algorithm that implements the PSI protocol for each identifying category could ultimately expose the common set size between datasets of two or more parties. However, an attacker on data communications could potentially use the exposed common set size to infer the set membership of several elements belonging to a single organization. Disclosing element membership within one organization's dataset to another organization risks violating privacy regulations, as the disclosure could be considered the identification or tracking of one or more individuals across organizations.

[0005] Features of the embodiments disclosed herein can avoid the above-mentioned situation by, for example, providing a membership protection scheme or algorithm (for elements, members, users, etc.) based on a differential privacy (DP) protocol for multi-identity configurations. Features of the embodiments disclosed herein may generate dummy (padding or filler) membership identification elements for each identification category in each party's dataset independently according to a pre-calibrated noise distribution, add the dummy elements to each dataset, and run an algorithm based on the PSI protocol. Another feature of the embodiments disclosed herein is to ensure that the common set size exposed in the following PSI protocol is random and differentially private (differentially concealed), making it virtually impossible for an attacker to determine the membership of a dataset or users in an organization. [Means for solving the problem]

[0006] In one exemplary embodiment, a method is provided for protecting membership privacy in multi-identity secure computation and communication. The method includes the steps of: providing a first dataset having a first set of membership identities and a second set of membership identities; determining a number N based on data privacy settings; generating a first padding dataset; shuffling the first padding dataset; upsampling the first set of membership identities using the first N elements of the shuffled first padding dataset; inserting a first N random membership identities element into the second set of membership identities; generating a second padding dataset; shuffling the second padding dataset; upsampling the inserted second set of membership identities using the first N elements of the shuffled second padding dataset; and performing a set intersection operation based on the upsampled first dataset and a received dataset.

[0007] In another exemplary embodiment, a system is provided for protecting membership privacy for multi-identity secure computation and communications. The system includes a memory for storing a first dataset and a processor. The processor is configured to provide a first dataset having a first set of membership identifiers and a second set of membership identifiers, determine a number N based on data privacy settings, generate a first padding dataset having 2*N elements and having an empty intersection with the first set of membership identifiers, shuffle the first padding dataset, upsample the first set of membership identifiers using the first N elements of the shuffled first padding dataset, insert the first N random membership identifier elements into the second set of membership identifiers, generate a second padding dataset having 2*N elements and having an empty intersection with the second set of membership identifiers, shuffle the second padding dataset, upsample the inserted second set of membership identifiers using the first N elements of the shuffled second padding dataset, and perform an intersection operation based on the upsampled first dataset and the received dataset.

[0008] In yet another embodiment, a non-temporary computer-readable medium is provided on which computer-executable instructions are stored. When the computer-executable instructions are executed by one or more processors, one or more processors provide a first dataset having a first set of membership identifiers and a second set of membership identifiers, wherein the priority of the first set of membership identifiers is higher than the priority of the second set of membership identifiers; upsample the first dataset using a padding dataset; provide a second dataset having a third set of membership identifiers and a fourth set of membership identifiers, wherein the priority of the third set of membership identifiers is higher than the priority of the fourth set of membership identifiers; and the padding The operation includes the steps of: upsampling the second dataset using the matching dataset; for each membership identifier in the first set of membership identifiers that matches a membership identifier in the third set of membership identifiers, deleting the row containing the matched membership identifier from the first dataset and adding the deleted row to the first common set; and for each membership identifier in the second set of membership identifiers that matches a membership identifier in the fourth set of membership identifiers, deleting the row containing the matched membership identifier from the first dataset and adding the deleted row to the first common set. [Brief explanation of the drawing]

[0009] The accompanying drawings illustrate various embodiments of the system, the method, and various other embodiments of the present disclosure. Those skilled in the art will understand that the element boundaries shown in the drawings (e.g., boxes, groups of boxes, or other shapes) represent examples of boundaries. In some examples, one element may be designed as multiple elements, and multiple elements may be designed as one element. In some examples, an element shown as an internal component of one element may be implemented as an external component of another element, and vice versa. A non-limiting and non-exclusive description is made with reference to the following drawings. The components in the drawings are not necessarily to scale, and the emphasis is on illustrating the principle. Embodiments are described only as examples, as various changes and modifications will become apparent to those skilled in the art from the following detailed description.

[0010] [Figure 1] This is a schematic diagram showing an exemplary multi-identity membership privacy protection system arranged according to at least some embodiments described herein.

[0011] [Figure 2A] This flowchart shows an exemplary processing flow for a multi-identification matching algorithm according to at least some embodiments described herein.

[0012] [Figure 2B] This is a schematic diagram showing an example of the processing flow of Figure 2A according to at least some embodiments described herein.

[0013] [Figure 3A] This flowchart shows an exemplary processing flow for protecting membership privacy in a multi-identity confidential common set operation according to at least some embodiments described herein.

[0014] [Figure 3B]A schematic diagram showing an example of the processing flow of FIG. 3A, according to at least some embodiments described in this specification.

[0015] [Figure 4] A schematic configuration diagram of an exemplary computer system applicable to realizing an electronic device, arranged according to at least some embodiments described in this specification.

Embodiments for Carrying Out the Invention

[0016] In the following detailed description, specific embodiments of the present disclosure will be described herein with reference to the accompanying drawings that form part of the description. In this description and the drawings, unless otherwise specified in the context, like reference numerals represent elements that can perform the same, similar, or equivalent functions. Further, unless otherwise noted, in the description of each successive drawing, one or more features of the previous drawing may be referred to in order to provide a clearer context and a more substantial description of the current exemplary embodiment. Nevertheless, the exemplary embodiments described in the detailed description, the drawings, and the claims are not intended to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. It is readily understood that the aspects of the present disclosure generally described herein and shown in the drawings may be arranged, substituted, combined, separated, and designed in a variety of different configurations. All of these are explicitly contemplated herein.

[0017] It should be understood that the disclosed embodiments are merely examples of the disclosure and may be embodied in various forms. To avoid obscuring the present disclosure with unnecessary details, well-known functions or structures will not be described in detail. Therefore, the specific structural and functional details disclosed herein should not be construed as limiting, but rather as a representative basis for teaching those skilled in the art how to use the present disclosure in substantially any suitable detailed structure for various purposes, merely as a basis for the claims.

[0018] Furthermore, in this specification, functional blocks may also be described in the form of functional block components and various processing steps. It is understood that such functional blocks can be realized by any number of hardware and / or software components configured to perform a specified function.

[0019] The scope of the disclosure should be determined by the attached claims and their legal equivalents, not by the examples set forth herein. For example, the steps described in the claims of a method may be performed in any order, and are not limited to the order shown in the claims. Furthermore, unless specifically stated herein as “material” or “essential,” there are no elements essential to the implementation of the disclosure.

[0020] As used herein, “dataset” is a technical term and may refer to an organized collection of electronically stored and accessed data. In one embodiment, a dataset may refer to a database, a data table, a portion of a database or data table, etc. It is understood that a dataset corresponds to one or more database tables, where each column of the database table represents a specific variable or field, and each row of the database table corresponds to a specific record in the dataset. A dataset may list the values ​​of each variable and / or the values ​​of each record in the dataset. A dataset may also refer to a collection of related data and the way in which the related data is organized. In exemplary embodiments, each record in a dataset may include one or more predefined or predetermined identifying information (e.g., a user's unique ID, username, email address, telephone number, or other membership identifying information, user identifying information), and / or fields or elements such as one or more attributes, features, or values ​​associated with one or more identifying information. It is understood that any user identifying information and / or user data described herein are authorized, approved, and / or authenticated by the user for use in the embodiments described herein and appropriate legal equivalents understood by those skilled in the art.

[0021] The term "inner join" as used here is a technical term and may refer specifically to an operation or function that combines records from datasets when there are matching values ​​in a common field of the datasets. For example, an inner join can be performed on the "Departments" dataset and the "Employees" dataset to determine all employees in each department. It should be understood that the resulting dataset of an inner join operation (i.e., the "common set") may contain mutually relevant information from both datasets. On the other hand, an outer join may result in a dataset that contains information unrelated to the other dataset. A secret inner join refers to an inner join operation of two or more parties' datasets that does not expose data in the common set of the two or more parties' datasets.

[0022] The term "hash" as used here may refer to an operation or function that transforms or converts an input (a key such as a number or string) into an output (another number, another string, etc.). It's important to understand that hashing is a technical term and can be used in cybersecurity applications to access data in short, nearly constant intervals each time it's retrieved.

[0023] The terms "MPC" or "Multi-Party Computation" used here are technical terms and may refer to a field of cryptography aimed at creating schemes for parties to collaboratively compute a function on a shared input while keeping each input private. Unlike traditional encryption tasks where encryption guarantees the security and integrity of communications or storage, MPC encryption may protect the privacy of the participants themselves, especially when adversaries are outside the participants' systems (e.g., eavesdroppers on the sender and / or receiver).

[0024] The terms "ECC" or "elliptic curve cryptography" used here are technical terms and may refer to public-key cryptography based on the algebraic structure of elliptic curves over a finite field. ECC is understood to offer equivalent security with smaller keys compared to non-EC cryptography. It is also understood that "EC" or "elliptic curves" can be applied to key sharing, digital signatures, pseudorandom number generators, and / or other tasks. Elliptic curves can be used indirectly for encryption by combining key sharing between parties with symmetric encryption schemes. Elliptic curves can also be used in integer factorization algorithms based on elliptic curves that are applied to cryptography.

[0025] The terms "Elliptic Curve Diffie-Hellman" or "ECDH" used here are technical terms and may refer to a key-sharing protocol or corresponding algorithm that enables two or more parties, each possessing an elliptic curve public-key and private-key pair, to establish a shared secret over an unsecured channel. The shared secret can be used directly as a key or to derive another key. This key, or any derived key, can then be used to encrypt or encode subsequent communications using symmetric-key cryptography. Furthermore, ECDH may also refer to a variant of the Diffie-Hellman protocol that uses elliptic curve cryptography.

[0026] As used herein, “shuffle,” “shuffling,” and “rearrange” are technical terms and may refer to an operation or algorithm for randomly rearranging the order of records (elements, rows, etc.) in an array, dataset, database, data table, etc.

[0027] As used herein, “Differential Privacy” or “DP” is a technical term and may refer to a protocol, system, or algorithm for publicly sharing information about a dataset by describing patterns of groups of elements within the dataset, while concealing information about individual users enumerated in the dataset. In the case of differential privacy, it should be understood that if the impact of any single substitution of a user's record in the dataset is less than a desired or predetermined threshold, the query results cannot be used to infer much about any single individual user and therefore cannot be used to provide privacy. Differential privacy may also refer to constraints on algorithms used to expose aggregated information about a statistical dataset or database to users, and it should be understood that these constraints limit the disclosure of private information about individual records whose information is contained in the dataset or database.

[0028] As referenced herein, the term “randomized algorithm” in relation to DP is a technical term and may refer to an algorithm that employs some degree of randomness as part of its logic or procedure. Randomized algorithms guide their actions using uniformly random bits as auxiliary inputs to achieve good performance across all possible random choices determined by random bits, so the execution time, or the output, or both, are random variables.

[0029] As used herein, “secure commonality operation” is a technical term that may refer to a secure multi-party computational cryptographic operation, algorithm, or function in which two or more parties, each holding a dataset, compare encrypted versions of these datasets in order to compute a commonality. It should be understood that with a secret commonality operation, neither party exposes to the other any data elements other than those in the commonality.

[0030] The terms "secret sharing" or "secret partitioning" used here are technical terms and may refer to an encryption function or algorithm that generates a secret, divides that secret into multiple shares, distributes those shares among multiple parties, and allows the secret to be reconstructed only when the parties combine their respective shares. Secret sharing may refer to a function or algorithm that distributes a secret within a group, so that no individual possesses any understandable information about the secret, but allows the secret to be reconstructed when a sufficient number of individuals combine their "shares." It should also be understood that in insecure secret sharing, an attacker may be able to obtain more information from each share, while secure secret sharing is "all or nothing," where "all" may mean the required number of shares.

[0031] Figure 1 is a schematic diagram showing an exemplary multi-identity membership privacy protection system 100 arranged according to at least some embodiments described herein.

[0032] System 100 may include terminal devices 110, 120, 130, and 140, a network 160, and a server 150. It should be understood that Figure 1 shows only an exemplary number of terminal devices, networks, and servers. The embodiments described herein are not limited to the number of terminal devices, networks, and / or servers described herein. That is, the number of terminal devices, networks, and / or servers described herein are provided for illustrative purposes only and are not limiting.

[0033] According to at least some embodiments, terminal devices 110, 120, 130, and 140 may be various electronic devices. These various electronic devices include, but are not limited to, mobile devices such as smartphones, tablet computers, e-readers, laptop computers, and desktop computers, and / or other suitable electronic devices.

[0034] According to at least some embodiments, network 160 is a medium used to provide communication links between terminal devices 110, 120, 130, 140 and server 150. Network 160 can be the Internet, a local area network (LAN), a wide area network (WAN), a local interconnection network (LIN), a cloud, etc. Network 160 is implemented by various types of connections such as wired communication links, wireless communication links, and fiber optic cables.

[0035] According to at least some embodiments, server 150 may be a server that provides various services to users using one or more of the terminal devices 110, 120, 130, and 140. Server 150 may be implemented as a distributed server cluster including multiple servers, or as a single server.

[0036] Users may communicate with the server 150 via the network 160 using one or more terminal devices 110, 120, 130, and 140. Various applications, such as social media applications and online shopping services, or their localized interfaces, may be installed on the terminal devices 110, 120, 130, and 140.

[0037] It should be understood that software applications or services in accordance with the embodiments and / or services provided by the service provider described herein may be executed by server 150 and / or terminal devices 110, 120, 130, and 140 (which may be referred to herein as user devices). Therefore, the devices for the software applications and / or services may be located within server 150 and / or terminal devices 110, 120, 130, and 140.

[0038] It is also understood that if the service is not performed remotely, system 100 may not include network 160 and may only include terminal devices 110, 120, 130, and 140 and / or server 150.

[0039] Furthermore, it is understood that each of the terminal devices 110, 120, 130, 140 and / or server 150 may include one or more processors, memory, and a storage device for storing one or more programs. Each of the terminal devices 110, 120, 130, 140 and / or server 150 may also include an Ethernet connector, a wireless fidelity receptor, and the like. When one or more programs are executed by one or more processors, they can cause one or more processors to perform the methods described in any embodiment described herein. It is also understood that, according to the embodiments described herein, a computer-readable non-volatile medium is provided. A computer program is stored on the computer-readable medium. When the computer program is executed by a processor, it is used to perform the methods described in any embodiment described herein.

[0040] Figure 2A is a flowchart illustrating an exemplary processing flow 200 for a multi-identification information matching algorithm according to at least some embodiments described herein. Figure 2B is a schematic diagram 201 showing an example of the processing flow of Figure 2A according to at least some embodiments described herein.

[0041] It should be understood that the processing flow 200 disclosed herein may be performed by one or more processors (for example, the processors of one or more of the terminal devices 110, 120, 130, and 140 in Figure 1, the processor of the server 150 in Figure 1, the central processor unit 405 in Figure 4, and / or any other suitable processor) unless otherwise specified.

[0042] Furthermore, the processing flow 200 may include one or more operations, actions, or functions, as indicated by one or more of blocks 210, 220, 230, 240, and 280. These various operations, actions, or functions may correspond, for example, to software, program code, or program instructions executable by the processor that cause these functions to be performed. Although shown as discrete blocks, obvious modifications may be made, for example, two or more of the blocks may be rearranged, more blocks may be added, and various blocks may be divided into additional blocks, combined into fewer blocks, or removed, depending on the desired implementation. The processing flow 200 may begin in block 210.

[0043] In block 210 (initialization), the processor of each device may perform initialization functions or operations on, for example, system parameters and / or application parameters. The processor of each device may provide a dataset for party A (e.g., 250A in Figure 2B) and / or provide a dataset for party B (e.g., 250B in Figure 2B). It should be understood that datasets 250A and / or 250B may be upsampled datasets (e.g., 390 in Figure 3B) generated or acquired in block 340 of Figure 3A, as will be described in more detail below.

[0044] Furthermore, it should be understood that each dataset 250A or 250B may contain two or more identification (ID) fields or columns, and the number of identification fields or columns in dataset 250A may or may not be equal to the number of identification fields or columns in dataset 250B. As shown in Figure 2B, each of datasets 250A and 250B contains two ID fields, id1 and id2.

[0045] In one exemplary embodiment, the processor of each device may shuffle dataset 250A for party A and / or shuffle dataset 250B for party B. The processor may also transform the ID field of dataset 250A using a transformation skim for party A.

[0046] It should be understood that a function or operation for "transforming" or "transforming" one or more fields / columns (or records / rows) of a dataset or a portion thereof, such as one or more ID fields / columns (or records / rows), may also mean processing the dataset or a portion thereof (e.g., encryption, decryption, encoding, decryption, manipulation, compression, decompression, conversion, etc.). A "transformation skim" refers to an algorithm, protocol, or function that performs processing of the dataset or a portion thereof (e.g., encryption, decryption, encoding, decryption, manipulation, compression, decompression, conversion, etc.). In one embodiment, the processor may encrypt (or decrypt, encode, decrypt, manipulate, compress, decompression, conversion, etc.) the ID field of dataset 250A using, for example, the key of party A, based on an ECDH algorithm or protocol.

[0047] The processor may also transform the ID field of dataset 250B using a transformation skim for party B. In one embodiment, the processor may encrypt (or decrypt, encode, decrypt, manipulate, compress, decompress, transform, etc.) the ID field of dataset 250B using, for example, party B's key, based on an ECDH algorithm or protocol.

[0048] For Party A and / or Party B, the order in which the ID field of the dataset (250A or 250B) is transformed and the shuffling of the dataset (250A or 250B) may be switched or changed without affecting the purpose of the resulting dataset.

[0049] The processor of each device may further exchange dataset 250A and dataset 250B between party A and party B. For party A, the processor may dispatch or send dataset 250A to party B and receive or acquire dataset 250B from party B. For party B, the processor may dispatch or send dataset 250B to party A and receive or acquire dataset 250A from party A. It should be understood that since datasets 250A and 250B have already been transformed (e.g., encoded), the corresponding receiving party does not know the actual data in the received dataset. It should now be understood that each party may have local copies of both dataset 250A and dataset 250B.

[0050] The processor in each device may further transform the ID field of the received transformed dataset 250B using a transformation skim for party A. In one embodiment, the processor may encrypt (or decrypt, encode, decrypt, manipulate, compress, decompress, convert, etc.) the ID field of the received transformed dataset 250B using party A's key based on an ECDH algorithm or protocol. The processor in each device may further transform the ID field of the received transformed dataset 250A using a transformation skim for party B. In one embodiment, the processor may encrypt (or decrypt, encode, decrypt, manipulate, compress, decompress, convert, etc.) the ID field of the received transformed dataset 250A using party B's key based on an ECDH algorithm or protocol.

[0051] The processor may also shuffle the received converted dataset 250A for party B and / or shuffle the received converted dataset 250B for party A. The order of the conversion of the ID field of the received converted datasets (250A and / or 250B) and the shuffling of the received converted datasets (250A and / or 250B) for party A and / or party B may be switched or changed without affecting the purpose of the resulting dataset. The processor of each device may exchange the resulting shuffled dataset 250A (referred to as "250A" in blocks 220-240 and 280 for simplicity of explanation) and the resulting shuffled dataset 250B (referred to as "250B" in blocks 220-240 and 280 for simplicity of explanation) between party B and party A. The process may proceed from block 210 to block 220.

[0052] In block 220 (Sorting Datasets), the processor of each device may sort datasets 250A and / or dataset 250B for party A and / or party B. For example, for party A, the processor may sort the ID fields (id1, id2, etc.) of dataset 250A in an order (or sequence) corresponding to a predetermined importance or priority level of the ID fields. For example, dataset 250A may include ID fields such as username (e.g., having a priority level of 3), email address (e.g., having a priority level of 2), telephone number (e.g., having a priority level of 4), user-specific ID (e.g., having a priority level of 1), etc. In one exemplary embodiment, the lower the priority level number, the more important the corresponding ID field. In one exemplary embodiment, sorting the ID field of dataset 250A results in the following: the user's unique ID (e.g., having a priority level such as 1) is listed as the first field / column in dataset 250A; the email address (e.g., having a priority level such as 2) is listed as the second field / column in dataset 250A; the username (e.g., having a priority level such as 3) is listed as the third field / column in dataset 250A; and the telephone number (e.g., having a priority level such as 4) is listed as the fourth field / column in dataset 250A. That is, in a non-exclusive example of dataset 250A, the ID field is sorted in ascending order of priority level numbers for the user's unique ID, email address, username, and user telephone number.

[0053] For party B, the processor may sort the ID fields (id1, id2, etc.) of dataset 250B in the same order (or sequence) as for party A's dataset 250A, corresponding to a predetermined importance or priority level of the ID fields. It should be understood that sorting datasets 250A and 250B is done to prepare for the subsequent matching process. Processing may proceed from block 220 to block 230.

[0054] In block 230 (execution of matching logic), with datasets 250A and 250B sorted, the processor of each device may search for a match (or an inner join operation, etc.) between dataset 250A and dataset 250B for each ID field of dataset 250A (from the ID field with the lowest priority level number to the ID field with the highest priority level number) and obtain or generate a common set for party A (dataset 255A in Figure 2B).

[0055] It should be understood that the search for a match (or internal join operation, etc.) involves, for each ID field in dataset 250A (from the ID field with the lowest priority level number to the ID field with the lowest priority level number), and for each identifier in dataset 250A that matches an identifier in dataset 250B, deleting the record (or row) in dataset 250A that contains the matched identifier, and adding or appending the deleted record (or row) from dataset 250A to dataset 255A.

[0056] For example, as shown in Figure 2B, for the ID field id1 in dataset 250A, records / rows containing "g", "c", and "e" each have corresponding matches in dataset 250B. Such records / rows may be deleted from dataset 250A, and the deleted records / rows may be added or appended to dataset 255A. For the ID2 in dataset 250A, records / rows containing "3" have corresponding matches in dataset 250B. Such records / rows may be deleted from dataset 250A, and the deleted records / rows may be added or appended to dataset 255A.

[0057] The processor of each device may search for a match (or perform an inner join operation, etc.) between dataset 250A and dataset 250B for each ID field of dataset 250B (from the ID field with the lowest priority level number to the ID field with the highest priority level number) and obtain or generate a common set for party B (dataset 255B in Figure 2B).

[0058] It should be understood that the search for a match (or internal join operation, etc.) involves, for each ID field in dataset 250B (from the ID field with the lowest priority level number to the ID field with the lowest priority level number), and for each identifier in dataset 250B that matches an identifier in dataset 250A, deleting the record (or row) in dataset 250B that contains the matched identifier, and adding or appending the deleted record (or row) from dataset 250B to dataset 255B.

[0059] For example, as shown in Figure 2B, for the ID field id1 in dataset 250B, records / rows containing "g", "c", and "e" each have corresponding matches in dataset 250A. Such records / rows may be deleted from dataset 250B, and the deleted records / rows may be added or appended to dataset 255B. For the ID2 in dataset 250B, records / rows containing "3" have corresponding matches in dataset 250A. Such records / rows may be deleted from dataset 250B, and the deleted records / rows may be added or appended to dataset 255B.

[0060] It should be understood that the matching logic / algorithm calculation may be performed until all ID fields in dataset 250A have been processed for party A, and / or until all ID fields in dataset 250B have been processed for party B. Processing may proceed from block 230 to block 240.

[0061] In block 240 (common set generation), if all ID fields of dataset 250A have been processed, the processor of each device may generate a common set / dataset 255A for party A. If all ID fields of dataset 250B have been processed, the processor of each device may generate a common set / dataset 255B for party B. Processing may proceed from block 240 to block 280.

[0062] In block 280 (Post-processing of the common set), the processor of each device may process the common set 255A and / or 255B. It should be understood that the processes in block 280 are for illustrative purposes only. In one exemplary embodiment, the processor may sort the rows of the common set 255A and / or 255B in ascending or descending order, for example, by the first ID field of 255A and / or 255B (e.g., the ID field having the highest priority or lowest priority number). The common set 255A and / or 255B may be used for other MPC processing, such as generating secret shares based on the common set 255A and / or 255B, collecting secret shares, and / or generating results by combining the collected secret shares.

[0063] Figure 3A is a flowchart of an exemplary processing flow 300 for protecting membership privacy in a multi-identity-confidentiality common set operation according to at least some embodiments described herein. Figure 3B is a schematic diagram 301 showing an example of the processing flow of Figure 3A according to at least some embodiments described herein.

[0064] It should be understood that the processing flow 300 disclosed herein may be performed by one or more processors (for example, the processors of one or more of the terminal devices 110, 120, 130, and 140 in Figure 1, the processor of the server 150 in Figure 1, the central processor unit 405 in Figure 4, and / or any other suitable processor) unless otherwise specified.

[0065] Furthermore, the processing flow 300 may include one or more operations, actions, or functions, as indicated by one or more of blocks 310, 320, 330, 340, and 350. These various operations, actions, or functions may correspond, for example, to software, program code, or program instructions executable by the processor that cause these functions to be performed. Although shown as discrete blocks, obvious modifications may be made, for example, two or more of the blocks may be rearranged, more blocks may be added, and various blocks may be divided into additional blocks, combined into fewer blocks, or removed, depending on the desired implementation. It should be understood that operations, including initialization, may be performed before the processing flow 300. For example, system parameters and / or application parameters may be initialized. The processing flow 300 may start in block 310.

[0066] In block 310 (determining size), the processor may determine the size N (i.e., number) used to generate the padding / filling dataset in order to achieve a desired data privacy protection objective or performance (described in more detail below). It should be understood that the size N is determined to ensure that the multi-identity privacy settings and / or privacy requirements are met or satisfied. In embodiments, the multi-identity privacy settings and / or privacy requirements may include settings and / or requirements (described in more detail below) defined in a differential privacy protocol or algorithm. Processing may proceed from block 310 to block 320.

[0067] In block 320 (common set generation), the processor of each device may provide a dataset for party A (e.g., 370 in Figure 3B) and / or provide a dataset for party B (i.e., the original dataset before upsampling, not shown). It should be understood that the operations or functions described in processing flow 300 may be symmetrical for party A and party B. It should be understood that the format, content and / or arrangement of the datasets described herein are for illustrative purposes only and are not intended to be limiting.

[0068] For example, dataset 370 may have two or more ID fields (ID columns: id1, id2, and id3) and / or one or more features or attributes (columns not shown) associated with the ID fields. In one exemplary embodiment, ID field id1 may represent a username, ID field id2 may represent a telephone number, and ID field id3 may represent an email address.

[0069] For each ID field of dataset 370 (from the first ID field to the last ID field), the processor may generate a separate dataset (e.g., 355, 360, or 365 in Figure 3B). It should be understood that each of the datasets (355, 360, and 365) may be a padding or fill dataset used or shared in common by both Party A and Party B. In one exemplary embodiment, each of the datasets (355, 360, and 365) has a size of 2*N (see description in block 310). In other exemplary embodiments, each of the datasets (355, 360, and 365) may have a size of N or greater.

[0070] It should be understood that the size of a dataset (355, 360, or 365) may refer to the number of records (or rows, elements, etc.) in the dataset (355, 360, or 365). It should also be understood that if each of the datasets (355, 360, and 365) has a size of 2*N, then subsequent operations, such as a multi-identified PSI operation on an upsampled dataset (e.g., 390 for Party A in Figure 3B, and an upsampled dataset for Party B (not shown), as described in more detail below), can be guaranteed to be (ε,δ) differentially confidential (as described and / or defined below) for both Party A and Party B. In exemplary embodiments, "ε" may refer to a first privacy parameter and "δ" may refer to a second privacy parameter. In exemplary embodiments, ε and / or δ may be predetermined to achieve a desired multi-identified data privacy protection objective or performance.

[0071] In a differential privacy protocol or algorithm, it should be understood that the privacy protection mechanism M used in the differential privacy protocol or algorithm (e.g., a randomized algorithm) may use an input dataset A and an adjacent input dataset A' that differs from A by only one element (e.g., A' has one fewer entry than A). The privacy protection mechanism M may map the input datasets to real values ​​in the R domain. For any (A, A') pair and each measurable set E∈R, the probability of (M(A)∈E) is e ε If the probability of ×(M(A')∈E) is less than or equal to +δ, then the privacy protection mechanism M may be considered "(ε, δ)-differentially private" (i.e., differentially private based on ε and δ), where e is Euler's number.

[0072] Features in the embodiments disclosed herein (e.g., a determined size N) may be "(ε,δ)-differentially private" with respect to a given ε and δ (i.e., "differentially private" based on ε and δ). That is, the size N may be determined such that it is "(ε,δ)-differentially private" with respect to subsequent operations, such as multi-identity PSI operations on upsampled datasets (i.e., subsequent operations are "differentially private" based on ε and δ), based on a given ε and δ.

[0073] It should be understood that the above settings or requirements for a differential privacy protocol or algorithm may refer to a measure of "how much data privacy is granted (e.g., by querying on an input dataset) in order to perform an operation or function." The measurable set E may refer to all potential outputs of the predictable M. The first privacy parameter "ε" may refer to the privacy budget (i.e., the limit of privacy allowed in a leak), for example, the maximum distance between a query on dataset A and the same query on dataset A'. A smaller value of ε indicates stronger privacy protection for the multi-identity privacy protection mechanism. The second privacy parameter "δ" may refer to a probability, such as the probability of information being leaked unintentionally. In exemplary embodiments, the required or predetermined value of ε may range from 1 or about 1 to 3 or about 3. The required or predetermined value of δ may be 10 -10 Or about 10 -10 (or 10 -8 Or about 10 -8 ) to 10 -6 Or about 10 -6 It may also be within the range of (ε,δ). The value of N may be several thousand or approximately several thousand in order to achieve, satisfy, fulfill, or guarantee a requirement that is (ε,δ) differentially private.

[0074] In one exemplary embodiment, the relationship between ε, δ, and N (represented as τ) may be expressed by the following algorithms (A1 and A2): The size N may be determined, for example, based on a requested or predetermined ε and δ, according to a pre-calibrated or predetermined noise distribution, such as being "(ε,δ) differentially concealed" for subsequent operations, such as multi-identity PSI operations on an upsampled dataset.

[0075] In one exemplary embodiment, the output of algorithm A1 is of size N (represented as "τ"), and the inputs to algorithm A1 are (1) a given ε and a given δ, (2) the number of ID fields / columns within the dataset of Party A (e.g., 370 in FIG. 3B) and / or within the dataset of Party B, "L", (3) the total number of multi-identifier information common set operations, "K", required or needed or permitted to determine the result, (4) δ up <Satisfies δ

Number

[0076] That is, the size N ("τ") may be determined based on the inputs to algorithm A1. τ low If τ is initialized as 0, algorithm A1 may be described as follows. τ low <τ up During, (1) set τ' = [τ up + τ low / 2, (2) determine δ'(ε, τ') in algorithm A2, (3) if δ' ≥ δ, set τ low = τ', and repeat, otherwise, set τ up = τ'. At the end of the process (i.e., when τ low ≥ τ up ), the algorithm returns τ = τ'. That is, by executing algorithm A1, the number τ can be determined.

[0077] In one exemplary embodiment, the output of algorithm A2 is the privacy parameter δ, and the inputs to algorithm A2 are: (1) size τ', (2) the total number of multi-identity common set operations ("K") that are sought, required, or permitted to determine the result, (3) the Fast Fourier Transform (FFT) period window size W (e.g., W = 600), and (4) the FFT density n x (For example, n x =10 6 This includes, for example, the privacy parameter δ may be determined based on the input to algorithm A2.

[0078] In one exemplary embodiment, algorithm A2 may be described as follows: (1) FFT resolution Δ x = 2 * W / n x (2) For Pr∈R, initialize all privacy loss distribution vectors to 0, and (3) for o∈[1, …,τ-1],

number

number

number

number

number

[0079] In one exemplary embodiment, the size of dataset 370 for party A, or the size of the original dataset for party B before upsampling (not shown), may range from tens of thousands to hundreds of thousands of records. That is, the sizes of datasets 355, 360, and 365 (e.g., 2*N) may be less than 1% of the size of dataset 370 for party A or the original dataset for party B, so the overhead introduced (e.g., by using datasets 355, 360, and 365 to protect multi-identity membership privacy) is negligible compared to the size of dataset 370 for party A or the original dataset for party B.

[0080] Furthermore, datasets 355, 360, and 365 are generated such that the intersection of dataset 355 with its corresponding ID field (id1) in both dataset 370 for party A and the original dataset for party B (e.g., the result of an inner join operation) is empty (i.e., has a size of zero), the intersection of dataset 360 with its corresponding ID field (id2) in both dataset 370 for party A and the original dataset for party B (e.g., has a size of zero), and the intersection of dataset 365 with its corresponding ID field (id2) in both dataset 370 for party A and the original dataset for party B (e.g., has a size of zero). In other words, there are no common or shared elements between datasets (355, 360, and 365) and their corresponding ID fields in dataset 370 for party A and the original dataset for party B. Processing may proceed from block 320 to block 330.

[0081] In block 330 (Shuffling of Common Sets), the processor of each device may independently shuff (e.g., randomly rearrange) each of the datasets (355, 360, and 365) for party A and party B to generate the corresponding shuffled dataset for party A (e.g., 375, 380, or 385 in Figure 3B) and the corresponding shuffled dataset for party B (not shown). The process may then proceed from block 330 to block 340.

[0082] In block 340 (Upsampling of Datasets), for each ID field (from the first ID field to the last ID field) in dataset 370 for party A and / or in the original dataset for party B, the processor of each device may upsample the corresponding ID field in dataset 370 for party A and / or in the original dataset for party B. It should be understood that upsampling of the corresponding ID field in dataset 370 may include (1) selecting or retrieving the first N elements (or records, rows, etc.) of each dataset (375, 380, or 385), (2) generating a union of the corresponding ID field in dataset 370 and the first N elements of each dataset (375, 380, or 385) (resulting in the corresponding ID field in dataset 390 in Figure 3B), and (3) inserting N random numbers / elements into other fields in dataset 390 that are in the same records / rows as the first N added / inserted / appended elements of each dataset (375, 380, or 385).

[0083] For example, as shown in Figure 3B, in block 310, N is determined to be 2. For id1 in dataset 370, the first N elements (or records, rows, etc.) of dataset 375 are selected or retrieved. The union of the first N elements of dataset 375 and the id1 field of dataset 370 is generated and becomes the id1 field of dataset 390. N random numbers / elements are inserted into each of the other fields (id2, id3) of dataset 390 that are in the same records / rows as the first N added / inserted / appended elements of dataset 375. It should be understood that any one of these N random numbers / elements has an empty intersection with any other element in the resulting dataset 390 for party A, and an empty intersection with any element in the upsampled dataset for party B.

[0084] For id2 in dataset 370, the first N elements (or records, rows, etc.) of dataset 380 are selected or retrieved. The union of the first N elements of dataset 380 and the id2 field of dataset 370 (extended by the inserted 1*N random numbers / elements) is generated and becomes the id2 field of dataset 390. The N random numbers / elements are inserted into each of the other fields (id1, id3) in dataset 390 that are in the same records / rows as the first N added / inserted / appended elements in dataset 380. It should be understood that any one of these N random numbers / elements has an empty intersection with any other element in dataset 390 resulting for party A, and an empty intersection with any element in the upsampled dataset resulting for party B.

[0085] For id3 in dataset 370, the first N elements (or records, rows, etc.) of dataset 385 are selected or retrieved. The union of the first N elements of dataset 385 and the id3 field of dataset 370 (extended by the inserted 2*N random numbers / elements) is generated and becomes the id3 field of dataset 390. The N random numbers / elements are inserted into each of the other fields (id1, id2) in dataset 390 that are in the same records / rows as the first N added / inserted / appended elements of dataset 385. It should be understood that any one of these N random numbers / elements has an empty intersection with any other element in dataset 390 resulting for party A, and an empty intersection with any element in the upsampled dataset resulting for party B.

[0086] It should also be understood that the upsampled dataset 390 may be used as dataset 250A in Figure 2B. Similarly, the ID field of the dataset for party B may be upsampled using independently shuffled datasets (375, 380, and 385, respectively) to generate an upsampled dataset (e.g., 250B in Figure 2B). The process may then proceed from block 340 to block 350.

[0087] In block 350 (dataset post-processing), the processor of each device may process the upsampled dataset 390 for party A and / or the upsampled dataset for party B to generate a common set for further processing (without exposing the actual size of the common set, as padding / filling elements and random numbers / elements are inserted into the upsampled datasets for party A and / or party B). In one exemplary embodiment, the processes within block 350 may include one or more of the processes described in Figure 2.

[0088] By introducing datasets (355, 360, 365) and a random number / element, the size of the common set between Party A's upsampled dataset 390 and Party B's upsampled dataset (e.g., 250B in Figure 2B) does not expose the common set size of the original datasets (e.g., 370 for Party A and the original dataset for Party B). That is, another feature of the embodiments disclosed herein is that the common set size exposed in the following multi-identity PSI protocol is random and differentially concealed, making it virtually impossible for an attacker to determine a user's membership.

[0089] Figure 4 is a schematic diagram of an exemplary computer system 400 applicable to realizing an electronic device (e.g., one of the servers or terminal devices shown in Figure 1), arranged according to at least some embodiments described herein. It should be understood that the computer system shown in Figure 4 is provided for illustrative purposes only and does not limit the functions and applications of the embodiments described herein.

[0090] As shown in the figure, the computer system 400 may include a central processing unit (CPU) 405. The CPU 405 may perform various operations and processes based on programs stored in read-only memory (ROM) 410 or programs loaded from storage device 440 into random access memory (RAM) 415. The RAM 415 may also store various data and programs required for the operation of the system 400. The CPU 405, ROM 410, and RAM 415 may be connected to each other via a bus 420. An input / output (I / O) interface 425 may also be connected to the bus 420.

[0091] The components connected to the I / O interface 425 may further include an input device 430, such as a keyboard, mouse, digital pen, or drawing pad; an output device 435, such as a display like a liquid crystal display (LCD) or a speaker; a storage device 440, such as a hard disk; and a communication device 445, such as a network interface card like a LAN card or a modem. The communication device 445 may perform communication processing via a network, such as the Internet, WAN, LAN, LINE, or cloud. In one embodiment, a driver 450 may also be connected to the I / O interface 425. A removable medium 455, such as a magnetic disk, optical disk, magneto-optical disk, or semiconductor memory, may be mounted to the driver 450 as needed so that a computer program read from the removable medium 455 may be installed in the storage device 440.

[0092] It should be understood that the processes described with reference to the flowcharts in Figures 2A and 3A and / or the processes described in other figures may be implemented as a computer software program or in hardware. The computer program product may include a computer program stored on a computer-readable non-volatile medium. The computer program includes program code for performing the methods shown in the flowcharts and / or GUI. In this embodiment, the computer program may be downloaded and installed from a network via a communication device 445, or it may be installed from a removable medium 455. When the computer program is executed by a central processing unit (CPU) 405, it can perform the functions defined in the methods in the embodiments disclosed herein.

[0093] It should be understood that the disclosed and other solutions, examples, embodiments, modules, and functional operations described herein may be implemented within digital electronic circuits, or within computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or within one or more combinations thereof. The disclosed embodiments and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium, to be executed by or to control the operation of a data processing device. The computer-readable medium may be a machine-readable storage device, a machine-readable storage board, a memory device, a composition of a material that affects machine-readable propagating signals, or one or more combinations thereof. "Data processing device" includes all equipment, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the device may include code that generates the execution environment of the computer program being discussed, such as processor firmware, a protocol stack, a database management system, an operating system, or code that constitutes one or more combinations thereof.

[0094] Computer programs (also referred to as programs, software, software applications, scripts, or code) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. Computer programs do not necessarily correspond to files in a file system. A program may be stored in part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program, or in a group of collaborative files (e.g., a file containing one or more modules, subprograms, or parts of code). Computer programs may be deployed to run on one computer, located in one site, or distributed across multiple sites and interconnected by a communication network.

[0095] The processing and logic flows described herein can perform their functions by manipulating input data and generating outputs, which are executed by one or more programmable processors running one or more computer programs. The processing and logic flows may also be executed by dedicated logic circuits, such as field-programmable gate arrays and application-specific integrated circuits, and devices may also be implemented as such.

[0096] Processors suitable for executing computer programs include, for example, both general-purpose and dedicated microprocessors, and any one or more processors of any type of digital computer. Generally, a processor receives instructions and data from read-only memory or random-access memory or both. Essential elements of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. Generally, a computer also includes or is operablely coupled to one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, for receiving or transferring data or both. However, a computer is not required to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, erasable programmable read-only memory, electrically erasable programmable read-only memory, and semiconductor memory devices such as flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and compact disk read-only memory, and digital video disk read-only memory disks. The processor and memory may be complemented by dedicated logic circuits, or they may be incorporated within dedicated logic circuits.

[0097] It should be understood that different features, variations, and multiple different embodiments are illustrated and described in various details. In this application, what is described with respect to a particular embodiment is done for illustrative purposes only and is not intended to limit or suggest that what has been devised is only one specific embodiment or particular embodiment. It should be understood that this disclosure is not limited to any single specific embodiment or enumerated variation. A person skilled in the art will conceive of many modifications, variations, and other embodiments which are intended and actually covered by this disclosure. The scope of this disclosure is actually intended to be determined by the appropriate legal interpretation and structure of the disclosure, including equivalents, as a person skilled in the art will understand by relying on the complete disclosure available at the time of filing.

[0098] Pattern:

[0099] It will be understood that any one of the embodiments may be combined.

[0100] Appearance 1, A method for protecting membership privacy in multi-identified secure computation and communications, the method is: The steps include providing a first dataset having a first set of membership identification information and a second set of membership identification information, The steps include determining the number N based on data privacy settings, The steps include generating a first padding dataset and The first step of shuffling the padding dataset, The steps include upsampling the first set of membership identifiers using the first N elements of the shuffled first padding dataset, The steps include inserting a first set of N random membership identification information elements into the second set of membership identification information, The steps include generating a second padding dataset and The steps include shuffling the second padding dataset and The steps include: upsampling the inserted second set of membership identifiers using the first N elements of the shuffled second padding dataset; The process includes the step of performing an intersection operation based on an upsampled first dataset and a received dataset.

[0101] Appearance 2, A method according to Embodiment 1, wherein the data privacy setting includes a first predetermined privacy parameter and a second predetermined privacy parameter, The number N is determined such that the intersection operation is differentially confidential when given the first predetermined privacy parameter and the second predetermined privacy parameter.

[0102] Appearance 3, The method according to embodiment 2, wherein the number N is further determined based on the number of sets of membership identification information.

[0103] Appearance 4, The method according to embodiment 3, wherein the number N is further determined based on the number of intersection operations.

[0104] Appearance 5, A method according to any one of embodiments 1 to 4, wherein the intersection of the first N random membership identification information elements and any other element of the first dataset is empty.

[0105] Appearance 6, A method according to any one of embodiments 1 to 5, wherein the first padding dataset contains 2*N elements, and the intersection of the first padding dataset and the first set of membership identifiers is empty.

[0106] Appearance 7, A method according to any one of embodiments 1 to 6, wherein the second padding dataset contains 2*N elements, and the intersection of the second padding dataset and the second set of membership identifiers is empty.

[0107] Appearance 8, A method according to any one of the embodiments 1 to 7, The steps include providing a second dataset having a third set of membership identification information and a fourth set of membership identification information, The steps include generating a third padding dataset, The third step of shuffling the padding dataset, The steps include upsampling the third set of membership identifiers using the first N elements of the shuffled third padding dataset, The steps include inserting a second set of N random membership identification information elements into the fourth set of membership identification information, The fourth step is to generate a padding dataset, The fourth step is to shuffle the padding dataset, The method further includes the step of upsampling the inserted fourth set of membership identifiers using the first N elements of the shuffled fourth padding dataset.

[0108] Appearance 9, The method according to embodiment 8, wherein the intersection of the second N random membership identification information elements and any other elements of the second dataset is empty.

[0109] Appearance 10, The method according to embodiment 8 or embodiment 9, wherein the third padding dataset comprises 2*N elements, and the intersection of the third padding dataset and the third set of membership identifiers is empty.

[0110] Embodiment 11, A method according to any one of embodiments 8 to 10, wherein the fourth padding dataset contains 2*N elements, and the intersection of the fourth padding dataset and the fourth set of membership identifiers is empty.

[0111] Appearance 12, A system for protecting membership privacy in multi-identity secure computation and communications, wherein the system is Memory for storing the first dataset, It is a processor, A first dataset is provided, having a first set of membership identification information and a second set of membership identification information. The number N is determined based on the data privacy settings. A first padding dataset is generated having 2*N elements, the intersection of which with the first set of membership identifiers is empty. The first padding dataset is shuffled, The first set of membership identifiers is upsampled using the first N elements of the shuffled first padding dataset, Insert the first N random membership identification information elements into the second set of membership identification information. A second padding dataset is generated having 2*N elements, and the intersection with the second set of membership identifiers is empty. The second padding dataset is shuffled as follows: The first N elements of the shuffled second padding dataset are used to upsample the inserted second set of membership identifiers. A processor configured to perform an intersection operation based on an upsampled first dataset and a received dataset, Includes.

[0112] Embodiment 13, A system according to embodiment 12, wherein the data privacy setting includes a first predetermined privacy parameter and a second predetermined privacy parameter, The number N is determined such that the intersection operation is differentially confidential when given the first predetermined privacy parameter and the second predetermined privacy parameter.

[0113] Appearance 14, The system according to embodiment 13, wherein the number N is further determined based on the number of sets of membership identification information.

[0114] Appearance 15, The system according to embodiment 14, wherein the number N is further determined based on the number of intersection operations.

[0115] Appearance 16, A system according to any one of embodiments 12 to 15, wherein the intersection of the first N random membership identification information elements and any other element of the first dataset is empty.

[0116] Appearance 17, A system described in any one of the embodiments 12 to 16, The aforementioned processor further, A second dataset is provided, which has a third set of membership identification information and a fourth set of membership identification information. A third padding dataset is generated having 2*N elements, and the intersection with the third set of membership identification information is empty. The third padding dataset is shuffled, The third set of membership identifiers is upsampled using the first N elements of the shuffled third padding dataset. Insert the second N random membership identification information elements into the fourth set of membership identification information. A fourth padding dataset is generated having 2*N elements, and the intersection with the fourth set of membership identifiers is empty. The fourth padding dataset is shuffled, The process is configured to upsample the inserted fourth set of membership identifiers using the first N elements of the shuffled fourth padding dataset.

[0117] Appearance 18, The system of embodiment 17, wherein the intersection of the second N random membership identification information elements and any other element of the second dataset is empty.

[0118] Appearance 19, A non-temporary computer-readable medium containing computer-executable instructions, wherein when the computer-executable instructions are executed by one or more processors, one or more processors, A step of providing a first dataset having a first set of membership identification information and a second set of membership identification information, wherein the priority of the first set of membership identification information is higher than the priority of the second set of membership identification information. The steps include: upsampling the first dataset using a padding dataset; A step of providing a second dataset having a third set of membership identification information and a fourth set of membership identification information, wherein the priority of the third set of membership identification information is higher than the priority of the fourth set of membership identification information. The steps include: upsampling the second dataset using the padding dataset; For each membership identifier in the first set of membership identifiers that matches a membership identifier in the third set of membership identifiers, the row containing the matched membership identifier is deleted from the first dataset, and the deleted row is added to the first intersection set. For each membership identifier in the second set of membership identifiers that matches a membership identifier in the fourth set of membership identifiers, the operation is performed which includes the steps of deleting the row containing the matched membership identifier from the first dataset and adding the deleted row to the first intersection set.

[0119] Appearance 20, A computer-readable medium according to embodiment 19, wherein the operation is, For each member identification information in the third set of membership identification information that matches a member identification information in the first set of membership identification information, the row containing the matched member identification information is deleted from the second dataset, and the deleted row is added to the second intersection set. The process further includes the step of, for each membership identifier in the fourth set of membership identifiers that matches a membership identifier in the second set of membership identifiers, deleting the row containing the matched membership identifier from the second dataset and adding the deleted row to the second intersection set.

[0120] The terms used herein are intended to describe, and not limit, specific embodiments. The terms “one,” “one,” and “the” include the plural form unless expressly indicated. The terms “includes” and / or “equipment,” as used herein, specify the presence of the described features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, and / or components.

[0121] It should be understood that, with respect to the above description, modifications may be made to details, particularly the materials used, shapes, sizes, and arrangements of components, without departing from the scope of this disclosure. The embodiments described herein and described herein are illustrative only, and the true scope and essence of this disclosure are given by the following claims.

Claims

1. A method for protecting membership privacy in multi-identified secure computation and communications, the method is: The steps include providing a first dataset having a first set of membership identification information and a second set of membership identification information, The steps include determining the number N based on data privacy settings, The steps include generating a first padding dataset and The first step of shuffling the padding dataset, The steps include upsampling the first set of membership identifiers using the first N elements of the shuffled first padding dataset, The steps include inserting a first set of N random membership identification information elements into the second set of membership identification information, The steps include generating a second padding dataset and The steps include shuffling the second padding dataset and The steps include upsampling the inserted second set of membership identifiers using the first N elements of the shuffled second padding dataset, The steps include performing an intersection operation based on the upsampled first dataset and the received dataset, including, method.

2. The data privacy settings include a first predetermined privacy parameter and a second predetermined privacy parameter, The number N is determined such that the intersection operation is differentially confidential when given the first predetermined privacy parameter and the second predetermined privacy parameter. The method according to claim 1.

3. The aforementioned number N is further determined based on the number of membership identification information sets. The method according to claim 2.

4. The aforementioned number N is further determined based on the number of intersection operations. The method according to claim 3.

5. The intersection of the first N random membership identification information elements and any other element of the first dataset is empty. The method according to claim 1.

6. The first padding dataset contains 2 * N elements, and the intersection of the first padding dataset and the first set of membership identifiers is empty. The method according to claim 1.

7. The second padding dataset contains 2 * N elements, and the intersection of the second padding dataset and the second set of membership identifiers is empty. The method according to claim 1.

8. The steps include providing a second dataset having a third set of membership identification information and a fourth set of membership identification information, The steps include generating a third padding dataset, The third step of shuffling the padding dataset, The steps include upsampling the third set of membership identifiers using the first N elements of the shuffled third padding dataset, The steps include inserting a second set of N random membership identification information elements into the fourth set of membership identification information, The fourth step is to generate a padding dataset, The fourth step is to shuffle the padding dataset, The steps include upsampling the inserted fourth set of membership identifiers using the first N elements of the shuffled fourth padding dataset, The method according to claim 1, further comprising:

9. The intersection of the second set of N random membership identification information elements and any other element of the second dataset is empty. The method according to claim 8.

10. The third padding dataset contains 2 * N elements, and the intersection of the third padding dataset and the third set of membership identifiers is empty. The method according to claim 8.

11. The fourth padding dataset contains 2 * N elements, and the intersection of the fourth padding dataset and the fourth set of membership identifiers is empty. The method according to claim 8.

12. A system for protecting membership privacy in multi-identity secure computation and communications, wherein the system is Memory for storing the first dataset, It is a processor, A first dataset is provided, having a first set of membership identification information and a second set of membership identification information. The number N is determined based on the data privacy settings. A first padding dataset is generated having 2 * N elements, the intersection of which with the first set of membership identification information is empty. The first padding dataset is shuffled, The first set of membership identifiers is upsampled using the first N elements of the shuffled first padding dataset. Insert the first N random membership identification information elements into the second set of membership identification information. A second padding dataset is generated having 2 * N elements, and the intersection with the second set of membership identification information is empty. The second padding dataset is shuffled as follows: Using the first N elements of the shuffled second padding dataset, the inserted second set of membership identifiers is upsampled. The system is configured to perform an intersection operation based on the upsampled first dataset and the received dataset. Processor and including, system.

13. The data privacy settings include a first predetermined privacy parameter and a second predetermined privacy parameter, The number N is determined such that the intersection operation is differentially confidential when given the first predetermined privacy parameter and the second predetermined privacy parameter. The system according to claim 12.

14. The aforementioned number N is further determined based on the number of membership identification information sets. The system according to claim 13.

15. The aforementioned number N is further determined based on the number of intersection operations. The system according to claim 14.

16. The intersection of the first N random membership identification information elements and any other element of the first dataset is empty. The system according to claim 12.

17. The aforementioned processor further, A second dataset is provided, which has a third set of membership identification information and a fourth set of membership identification information. A third padding dataset is generated having 2 * N elements, and the intersection with the third set of membership identification information is empty. The third padding dataset is shuffled, The third set of membership identifiers is upsampled using the first N elements of the shuffled third padding dataset. Insert the second N random membership identification information elements into the fourth set of membership identification information. A fourth padding dataset is generated having 2 * N elements, and the intersection with the fourth set of membership identification information is empty. The fourth padding dataset is shuffled, The method is configured to upsample the inserted fourth set of membership identifiers using the first N elements of the shuffled fourth padding dataset, The system according to claim 12.

18. The intersection of the second set of N random membership identification information elements and any other element of the second dataset is empty. The system according to claim 17.

19. A non-temporary computer-readable medium containing computer-executable instructions, wherein when the computer-executable instructions are executed by one or more processors, one or more processors, A step of providing a first dataset having a first set of membership identification information and a second set of membership identification information, wherein the priority of the first set of membership identification information is higher than the priority of the second set of membership identification information. The steps include: upsampling the first dataset using a padding dataset; A step of providing a second dataset having a third set of membership identification information and a fourth set of membership identification information, wherein the priority of the third set of membership identification information is higher than the priority of the fourth set of membership identification information. The steps include: upsampling the second dataset using the padding dataset; For each membership identifier in the first set of membership identifiers that matches a membership identifier in the third set of membership identifiers, the row containing the matched membership identifier is deleted from the first dataset, and the deleted row is added to the first intersection set. For each membership identifier in the second set of membership identifiers that matches a membership identifier in the fourth set of membership identifiers, the operation includes the steps of: deleting the row containing the matched membership identifier from the first dataset, and adding the deleted row to the first intersection set. Computer-readable media.

20. The aforementioned operation is, For each member identification information in the third set of membership identification information that matches a member identification information in the first set of membership identification information, the row containing the matched member identification information is deleted from the second dataset, and the deleted row is added to the second intersection set. The process further includes the steps of: for each membership identifier in the fourth set of membership identifiers that matches a membership identifier in the second set of membership identifiers, deleting the row containing the matched membership identifier from the second dataset, and adding the deleted row to the second common set. The computer-readable medium according to claim 19.