Masking text data for secure multiparty computation

Textual masking for multiparty computation is provided. The method comprises receiving masked input data from a number of contributors, wherein the input data from each contributor has a unique contributor mask value. A unique analyst mask factor is received for each contributor, computed by an analyst as a difference between a uniform analyst mask value and the contributor mask value. An API call is received from the analyst to aggregate the input data from the contributors. The respective analyst mask factors are added to the input data from the contributors, and the data is aggregated and shuffled. Computational results received from the analyst based on the aggregated input data are published. In response to API calls from the contributors, the analyst mask factors are removed from the computational results, wherein computational results received by each contributor are masked only by the respective contributor mask value.

BACKGROUND

The disclosure relates generally to categorical masking of textual data from multiple parties and more specifically to transforming the masked data to original form in a secure multiparty computation scenario while preserving privacy.

Secure multiparty computation (sMPC) allows multiple parties to participate in a joint computation by sharing data in encrypted form. In a typical sMPC context, data contributors/participants share masked private data. A broker/service provider provides hardware and software infrastructure for executing the computation in question. An analyst is a party that devises the computation using the contributed data and derives insights or generates reports on the computational results from the masked private data.

For sMPC applications that involve artificial intelligence (AI) and machine learning (ML) algorithms, data mining or pre-processing is often useful in determining most determinant and least determinant inputs (i.e. features) for a favorable outcome. In many cases such features can be name, gender, education, profession, marital status, employer, etc., which are classified as Personal Identifiable Information (PII). However, many data regulations mandate protection of personal data.

SUMMARY

An illustrative embodiment provides a computer-implemented method for textual masking for multiparty computation. The method comprises receiving masked input data from a number of contributors, wherein the input data from each contributor has a unique contributor mask value. A unique analyst mask factor is received for each contributor, computed by an analyst as a difference between a uniform analyst mask value and the contributor mask value. An API call is received from the analyst to aggregate the input data from the contributors. The respective analyst mask factors are added to the input data from the contributors, and the data is aggregated and shuffled. Computational results received from the analyst based on the aggregated input data are published. In response to API calls from the contributors, the analyst mask factors are removed from the computational results, wherein computational results received by each contributor are masked only by the respective contributor mask value.

Another illustrative embodiment provides a computer program product for textual masking for multiparty computation. The computer program product comprises a non-volatile computer readable storage medium having program instructions embodied therewith, the program instructions executable by a number of processors to cause the computer to perform the steps of: receiving masked input data from a number of contributors, wherein the input data from each contributor has a unique contributor mask value added by that contributor; receiving a unique analyst mask factor for each contributor computed by an analyst as a difference between a uniform analyst mask value and the contributor mask value; receiving an application programming interface (API) call from the analyst to aggregate the input data from the contributors; adding the respective analyst mask factors to the masked input data from the corresponding contributors; aggregating and randomly shuffling the input data from the contributors; receiving and publishing computational results from the analyst based on the aggregated input data; removing the respective analyst mask factors from the computational results in response to API calls from the contributors, wherein computational results for each contributor are masked only by the respective contributor mask value added by that contributor; and sending the computational results to the contributors.

Another illustrative embodiment provides a system for textual masking for multiparty computation. The system comprises a bus system; a storage device connected to the bus system, wherein the storage device stores program instructions; and a number of processors connected to the bus system, wherein the number of processors execute the program instructions to: receive masked input data from a number of contributors, wherein the input data from each contributor has a unique contributor mask value added by that contributor; receive a unique analyst mask factor for each contributor computed by an analyst as a difference between a uniform analyst mask value and the contributor mask value; receive an application programming interface (API) call from the analyst to aggregate the input data from the contributors; add a uniform broker mask value and the respective analyst mask factors to the masked input data from the corresponding contributors; aggregate and randomly shuffle the input data from the contributors; receive and publish computational results from the analyst based on the aggregated input data; remove the uniform broker mask value and the respective analyst mask factors from the computational results in response to API calls from the contributors, wherein computational results for each contributor are masked only by the respective contributor mask value added by that contributor; and send the computational results to the contributors.

DETAILED DESCRIPTION

The illustrative embodiments recognize and take into account one or more different considerations. Illustrative embodiments recognize and take into account that many data regulations mandate protection of personal data, which complicates gaining access to data that is often critical for secure multiparty computation (sMPC). The illustrative embodiments provide the technical solution of preserving the privacy of sensitive information collected from data contributors that wish to participate in sMPC.

Illustrative embodiments recognize and take into account that many existing sMPC applications do not deal with textual data at large. In many sMPC applications, a trusted third party automatically masks sensitive data, mostly numeric data, after splitting it as shares in a homomorphic representation with other contributors before performing joint computation. The illustrative embodiments provide the technical solution of enabling data contributors to uniquely mask sensitive textual data offline and validate that the encrypted form does not reveal any personal identifiable information before providing the data to a third party.

Illustrative embodiments provide a method of masking textual data for sMPC. Data contributors convert sensitive text data to UNICODE, which is then masked with a random mask value that is unique to each contributor. The masked UNICODE is then converted back to a character string before encryption. Therefore, the original sensitive information is not revealed to third parties involved in the sMPC because the data is uniquely masked by contributors before being shared. Third parties, even trusted ones, cannot gain any useful insights about the shared information because the third party only see masked or encoded data. Therefore, privacy is preserved.

By adding a normalizing mask to the data received from different contributors, illustrative embodiments generate a uniformly masked representation of textual data from all contributors, even when each data contributor masks its own data with a different key.

FIG. 1depicts a pictorial representation of a network of data processing systems in which illustrative embodiments can be implemented. Network data processing system100is a network of computers, data processing systems, and other devices in which the illustrative embodiments may be implemented. Network data processing system100contains network102, which is the medium used to provide communications links between the computers, data processing systems, and other devices connected together within network data processing system100. Network102may include connections, such as, for example, wire communication links, wireless communication links, and fiber optic cables.

In the depicted example, server104and server106connect to network102, along with storage108. Server104and server106may be, for example, server computers with high-speed connections to network102. In addition, server104and server106may provide a set of one or more connector services for managing idempotent operations on a system of record, such as storage108. An idempotent operation is an identical operation, which was previously performed or executed, that has the same effect as performing a single operation. Also, it should be noted that server104and server106may each represent a plurality of servers providing management of idempotent operations for a plurality of system of records.

Client110, client112, and client114also connect to network102. Clients110,112, and114are clients of server104and server106. Server104and server106may provide information, such as boot files, operating system images, and software applications to clients110,112, and114.

In this example, clients110,112, and114are shown as desktop or personal computers. However, it should be noted that clients110,112, and114are intended as examples only. In other words, clients110,112, and114may include other types of data processing systems, such as, for example, network computers, laptop computers, tablet computers, handheld computers, smart phones, smart watches, personal digital assistants, gaming devices, set-top boxes, kiosks, and the like. Users of clients110,112, and114may utilize clients110,112, and114to access system of records corresponding to one or more enterprises, via the connector services provided by server104and server106, to perform different data operations. The operations may be, for example, retrieve data, update data, delete data, store data, and the like, on the system of records.

Storage108is a network storage device capable of storing any type of data in a structured format or an unstructured format. In addition, storage108may represent a plurality of network storage devices. Further, storage108may represent a system of record, which is an authoritative data source, corresponding to an enterprise, organization, institution, agency, or similar entity. Furthermore, storage unit108may store other types of data, such as authentication or credential data that may include user names, passwords, and biometric data associated with client users and system administrators, for example.

In addition, it should be noted that network data processing system100may include any number of additional servers, clients, storage devices, and other devices not shown. Program code located in network data processing system100may be stored on a computer readable storage medium and downloaded to a computer or other data processing device for use. For example, program code may be stored on a computer readable storage medium on server104and downloaded to client110over network102for use on client110.

In the depicted example, network data processing system100may be implemented as a number of different types of communication networks, such as, for example, an internet, an intranet, a local area network (LAN), and a wide area network (WAN).FIG. 1is intended as an example only, and not as an architectural limitation for the different illustrative embodiments.

FIG. 2illustrates a block diagram of a system for masking textual data for multiparty computation in accordance with an illustrative embodiment. Secure multiparty computational system200comprises three types of parties: data contributors202, a broker/service provider212, and an analyst226. Data contributors202might be implemented as client computers such as clients110,112inFIG. 1communicating over a network such as network102. Similarly, analyst226might be implement as a client such client114. Broker212might be implemented as a server such server104inFIG. 1.

Each data contributor204among the data contributors202comprises sensitive text data206that can be contributed to a pool of input data for use by the analyst226. At the same time, the contributor204also wants to keep the sensitive information confidential to itself. For example, a car dealer might want to know potential customer segments to which it can market a new product based on customer segment analysis of previous purchases from itself and other car dealers. However, car dealers cannot share personal identifiable information about customers with third parties due to privacy regulations. Therefore, to preserve data privacy while still being able to share sensitive information, data contributor204masks the data with a unique, randomly generated, contributor mask value208that only the contributor204knows before sharing the data with broker212(seeFIG. 4). The mask value208is encrypted with a public encryption key210from an encryption key pair generated by the analyst226.

Analyst226comprises a computational function236that is performed on a data union220of contributed data provided by broker212. Because data contributors202use different unique mask values to mask their respective data, analyst226generates a normalizing, analyst mask value232that is applied uniformly to masked data from all contributors202to generate respective mask factors228for each contributor. Therefore, for each data contributor, such as data contributor204, analyst226generates a corresponding mask factor230that comprises the unique mask value208of the contributor204and a uniform analyst mask value232that is the same for all data contributors202(seeFIG. 5).

The normalizing mask factors228incorporating the uniform analyst mask value232make it possible to have a similar masked representation of text data from all contributors202even when the contributors initially mask their respective data with different values.

Analyst226uses a private encryption key234from the encryption key pair to decode the respective contributor mask values in order to compute the mask factors228. It should be emphasized that the private encryption key234is only used to decode the contributors' mask values, not the original, underlying data to which those masks are applied. Analyst226never gains access to the original data from any contributor, such as text data206.

Broker212comprises a data union220formed from the aggregate input data222shared by all of the data contributors202. Data union220is formed by broker212in response to an application protocol interface (API) call from analyst226. Broker212applies the normalizing mask factors228generated by analyst226to normalize the contributed data before it is aggregated into data union220.

As an additional layer of privacy protection, broker212generates its own uniform mask value218which is unknown to analyst226. The broker mask value218is added to the mask factors228provided by analyst226to created updated mask factors214(seeFIG. 6). Each updated mask factor, such as updated mask factor216, comprises the unique analyst mask factor230generated by analyst226and the uniform broker mask value218generated by broker212.

Therefore, data shared by each contributor has three mask values applied to it before it is used in the multiparty computation: 1) a unique mask value generated by that contributor, 2) an analyst mask value, and 3) a broker mask value.

Broker212publishes computational results224produced by analyst226from the application of computational function236to data union220.

In one illustrative example, one or more technical solutions are present that overcome a technical problem of preserving data privacy in sMPC. One or more technical solutions provide multiple mask values to sensitive data. As a result, one or more technical solutions may provide a technical effect of preventing third parties from gain access to and decoding the original data shared by contributors. One or more technical solutions also provide a technical effect of allowing data contributors to benefit from multiparty computation regarding attributes of sensitive data they possess without compromising the privacy of that data.

FIG. 3depicts a flowchart of a process for sMPC in accordance with illustrative embodiments. Process300can be implemented with multiple parties such as data contributors202, broker212, and analyst226shown inFIG. 2. Process300begins with the contributors masking and encrypting their respective data, wherein the input data from each contributor has a unique contributor mask value added by that contributor (step302).

The broker receives the masked, encrypted input data from the contributors (step304). The analyst normalizes the data masking by decoding the contributor mask values and generating a unique analyst mask factor for each contributor computed as a difference between a uniform analyst mask value and the contributor mask value (step306).

The broker receives the analyst mask values from the analyst and an API call from the analyst to aggregate the input data from the contributors (step308). The broker adds the respective analyst mask factors, and a uniform broker mask value, to the masked input data from the corresponding contributors (step310). The broker then aggregates and randomly shuffles the input data from the contributors (step312).

The analyst computes a function with the aggregated masked input data and makes an API call to the broker to publish the computational results (step314).

The broker receives and publishes the computational results from the analyst based on the aggregated input data (step316). In response to API calls from the contributors, the broker decodes the computational results and removes the respective analyst mask factors and broker mask value from the computational results, wherein computational results for each contributor are masked only by the respective contributor mask value added by that contributor (step318). The broker then sends the computational results to the data contributors (step320).

FIG. 4depicts a flowchart of a process for masking data by a contributor for sMPC in accordance with illustrative embodiments. Process400is a more detailed explanation of step302inFIG. 3. Process400begins with a contributor randomly selecting a mask value (number) within a specified range (step402). The contributor encrypts this mask value using a public key shared by the analyst (step404). In an embodiment, the contributor can optionally select specific sensitive data (e.g., personal data) for masking instead of simply masking all of the data (step406).

The contributor then converts the character sequence of the text data to a UNICODE sequence (step408). UNICODE is a computing industry standard that is used to encode text data by using a number to represent characters. UNICODE provides a unique number for every character, regardless of platform device, application, or language. The contributor then adds the mask value to the UNICODE sequence (step410). The contributor converts the altered UNICODE sequence back to a character sequence (step412). For example, the personal identifiable text to be masked might be the word “male.” The contributor chooses a mask value of 1000. The UNICODE representation of the letters in “male” is: 109 97 108 101. Adding the masking value of 1000 to the UNICODE sequence produces the altered sequence: 001109 001097 001108 001101. Converting this altered UNICODE sequence back to a character sequences produces:.

The contributor converts the new character sequence to a base64 encoded string and shares is with the broker (step414). Base64 is an encoding scheme used to encode binary data that needs to be stored and transferred over media that designed to deal with textual data. This encoding helps to ensure that the data remains intact during transport. Continuing the example above, applying base64 encoding on the masked character sequenceforms: 0ZXRidGU0Y0=. Therefore, applying the steps402-414to the text “male” produces the masked form OZXRidGU0Y0=.

The contributor shares the encrypted mask value (in the above example, 1000) with the analyst (step416). The enables the analyst to normalize the masking from multiple contributors, explained in more detail below.

FIG. 5depicts a flowchart of a process for normalizing masked data by an analyst for sMPC in accordance with illustrative embodiments. Process500is a more detailed explanation of step306inFIG. 3. The analyst uses the private key from the encryption key pair to decode the encrypted mask values shared by each data contributors (step502). The analyst generates a normalizing mask value of its own (step504). This analyst mask value is used to ensure that the input data aggregated by the broker has a normalizing mask that uniformly alters the different UNICODE sequences based on the text data supplied by the contributors.

The analyst then computes a unique mask factor for each contributor using the normalizing mask value and the contributor mask value (step506). For example, if there are three contributors, and their respective mask values can be represented by as a, b, and c. The analyst generates a normalizing analyst mask value, d. Applying these values, the analyst computes a unique masking factor, m, for each contributor as a difference between the normalizing mask value and the contributor's mask value. Therefore, the respective masking factors for the contributors are,

The analyst shares the respective mask factors with the broker (step508) and makes an API call to the broker to aggregate the input data from the contributors (step510).

FIG. 6depicts a flowchart of a process for randomizing mask factors and aggregating input data by a broker for sMPC in accordance with illustrative embodiments. Process600is a more detailed explanation of steps310-312inFIG. 3. After receiving the API call and mask factors for each contributor from the analyst, the broker generates a random mask factor, e, of its own (step602). This additional broker mask value ensures that the analyst cannot decode the masked data with the mask factors, m, that it computed. The broker updates the mask factors received from the analyst by adding the broker mask value, e, to them (step604). Using the example fromFIG. 5, the broker generates updated mask factors, f, for the contributors as,

The broker decodes the base64 strings to generate the masked character sequence received from each contributor (step606). The broker generates a UNICODE value sequence for the masked character sequence from each contributor (step608).

The broker alters the UNICODE sequences by adding the respective update mask factors, f, for the corresponding contributor (step610). The broker then converts the altered UNICODE sequences back to character sequences (step612) and encodes the new character sequences with base64 (step614).

The broker aggregates the encoded, masked data from all of the contributors and randomly shuffles it (step616). At this point, the analyst can run the analysis on the union masked data and publish to the broker. Because the union data has unknown updated masking factors due to the addition of the broker mask value, the analyst cannot decode the actual input data from the contributors.

FIG. 7depicts a flowchart of a process for de-scaling mask factors by a broker for sMPC in accordance with illustrative embodiments. Process700is a more detailed explanation of steps318-320inFIG. 3. The broker receives an API call from one or more contributors to provide the computational results of the analysis (step702) and decodes the masked textual data from the computational results with base64 decoding to generate a character sequence (step704).

The broker generates a UNICODE value for the decoded character sequence (step706). For each contributor, the broker subtracts the respective updated masking factor, f, from the UNICODE value (step708), which includes both the uniform broker mask value, e, and the mask factor, m, generated by the analyst. Therefore, the computational results destined for each contributor are masked only by the original mask value added by the contributor.

The respective descaled UNICODE sequences are then converted back to character sequences (step710) and encoded with base64 (step712). The broker sends the encoded computational results to each respective contributor (step714).

FIG. 8depicts a flowchart of a process for decoding and unmasking data by a contributor for sMPC in accordance with illustrative embodiments. Process800is a more detailed explanation of step320inFIG. 3. The contributor decodes the masked character sequence of the computational results with based64 decoding (step802). The contributor then generates a UNICODE sequence from the decoded character string (step804).

The contributor removes the original mask value, e.g.,1000, from the UNICODE sequence (step806). The contributor can then convert the UNICODE back to a character sequence (step808), which provides the contributor with normal text for the computational results.

Turning toFIG. 9, a diagram of a data processing system is depicted in accordance with an illustrative embodiment. Data processing system900is an example of a system in which computer-readable program code or program instructions implementing processes of illustrative embodiments may be run. Data processing system900may be an example of one system in which server104or clients112inFIG. 1may be implemented. In this illustrative example, data processing system900includes communications fabric902, which provides communications between processor unit904, memory906, persistent storage908, communications unit910, input/output unit912, and display914.

Processor unit904serves to execute instructions for software applications and programs that may be loaded into memory906. Processor unit904may be a set of one or more hardware processor devices or may be a multi-processor core, depending on the particular implementation. Further, processor unit904may be implemented using one or more heterogeneous processor systems, in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit904may be a symmetric multi-processor system containing multiple processors of the same type.

A computer-readable storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, data, computer-readable program code in functional form, and/or other suitable information either on a transient basis and/or a persistent basis. Further, a computer-readable storage device excludes a propagation medium. Memory906, in these examples, may be, for example, a random access memory, or any other suitable volatile or non-volatile storage device. Persistent storage908may take various forms, depending on the particular implementation. For example, persistent storage908may contain one or more devices. For example, persistent storage908may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage908may be removable. For example, a removable hard drive may be used for persistent storage908.

Input/output unit912allows for the input and output of data with other devices that may be connected to data processing system900. For example, input/output unit912may provide a connection for user input through a keypad, keyboard, and/or some other suitable input device. Display914provides a mechanism to display information to a user and may include touch screen capabilities to allow the user to make on-screen selections through user interfaces or input data, for example.

Instructions for the operating system, applications, and/or programs may be located in storage devices916, which are in communication with processor unit904through communications fabric902. In this illustrative example, the instructions are in a functional form on persistent storage908. These instructions may be loaded into memory906for running by processor unit904. The processes of the different embodiments may be performed by processor unit904using computer-implemented program instructions, which may be located in a memory, such as memory906. These program instructions are referred to as program code, computer-usable program code, or computer-readable program code that may be read and run by a processor in processor unit904. The program code, in the different embodiments, may be embodied on different physical computer-readable storage devices, such as memory906or persistent storage908.

Program code918is located in a functional form on computer-readable media920that is selectively removable and may be loaded onto or transferred to data processing system900for running by processor unit904. Program code918and computer-readable media920form computer program product922. In one example, computer-readable media920may be computer-readable storage media924or computer-readable signal media926. Computer-readable storage media924may include, for example, an optical or magnetic disc that is inserted or placed into a drive or other device that is part of persistent storage908for transfer onto a storage device, such as a hard drive, that is part of persistent storage908. Computer-readable storage media924also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory that is connected to data processing system900. In some instances, computer-readable storage media924may not be removable from data processing system900.

Alternatively, program code918may be transferred to data processing system900using computer-readable signal media926. Computer-readable signal media926may be, for example, a propagated data signal containing program code918. For example, computer-readable signal media926may be an electro-magnetic signal, an optical signal, and/or any other suitable type of signal. These signals may be transmitted over communication links, such as wireless communication links, an optical fiber cable, a coaxial cable, a wire, and/or any other suitable type of communications link. In other words, the communications link and/or the connection may be physical or wireless in the illustrative examples. The computer-readable media also may take the form of non-tangible media, such as communication links or wireless transmissions containing the program code.

In some illustrative embodiments, program code918may be downloaded over a network to persistent storage908from another device or data processing system through computer-readable signal media926for use within data processing system900. For instance, program code stored in a computer-readable storage media in a data processing system may be downloaded over a network from the data processing system to data processing system900. The data processing system providing program code918may be a server computer, a client computer, or some other device capable of storing and transmitting program code918.

As another example, a computer-readable storage device in data processing system900is any hardware apparatus that may store data. Memory906, persistent storage908, and computer-readable storage media924are examples of physical storage devices in a tangible form.