Privacy, trust, and security are paramount in today’s digital era. Policy makers all over the world are pushing for further research into privacy-enhancing technologies; regulators are introducing stricter rules to govern the collection and use of private and confidential data; and even Facebook is looking for ways to reduce the amount of data it collects.
The privacy battle
Back in April, Apple published a paper, “A day in the life of your data”. It talks about a typical scenario where a father and daughter have their data tracked by the digital ecosystem. It was criticised by Facebook, who has historically generated revenue in the advertising space by using these types of tracking techniques.
In this blog, we talk about private set intersection (PSI), the data privacy problem it solves, and how Conclave (based on Intel SGX) can be used in a real world PSI scenario.
So, what is a private set intersection (PSI) ?
Let’s look at an example.
The National Security Agency (NSA) has a list of terrorist suspects, and an airline company has a list of passengers. Both parties wish to determine which individuals appear on both lists (the intersection). However, the airline doesn’t want to disclose details about other passengers, and the NSA doesn’t want to disclose information about other terrorist suspects. This is a typical example of the data privacy problem PSI addresses.
PSI is a technique used to determine the intersection of two sets, without leaking or disclosing any additional information of the remaining elements of either sets.
In a recent article, Facebook talks about PSI, and how it can be used to solve multiparty computation problems. It also talks about its efforts in developing new algorithms to perform multiparty complex analysis on a private computation.
Are there any other practical use cases for PSI?
Another example might be determining who appears on a federal tax authory’s list of suspected tax evaders, and which individuals on that list have accounts with foreign banks. The federal tax authority can’t disclose its list of suspects to the bank, and the bank clearly can’t disclose account details of all its account holders.
PSI can even help countries avoid satellite collisions by deducing orbit intersections. Neither party is aware of the other party’s satellite details, as data sets are kept confidential.
Conclave to the rescue!
We have developed Conclave SDK, an easy solution to the PSI problem. Conclave enables multiple parties to find the intersection (common elements) of two or more data sets without revealing those data sets to the other parties, including the host running the computation. Conclave achieves this by running the private computation inside an Intel SGX hardware, a trusted executive environment, or Secure Enclave.
If we take the example of calculating the conversion rate of an ad. Currently, the merchant usually shares a list of users who have completed a transaction (purchased an item), with the ad service provider. The ad service provider, for example Facebook or Google, maintains a list of users who have clicked the ad. The service provider will then compare the two lists, looking for common elements, usually using email address or credit card number as the common identifier. From this, they can then calculate the ad conversion rate:
In Conclave, the two lists are compared in a secure enclave, so neither the merchant nor the service provider can see both sets of data, only their own.
I have shown in this sample, how easy it is to calculate the ad conversion rate using Conclave, without compromising on privacy.
Writing a secure multiparty computation application using Conclave, is like writing a simple application that performs computation on plain text. Conclave lets you write applications in high-level languages, like Java, Scala, and Clojure. It provides you with a framework so you can test your applications using a mock enclave, and has seamless integration with Gradle plugin for building, testing, and deploying applications. Applications can be deployed in Linux, Windows, or Mac, and can also be deployed to Azure cloud with one click!
Conclave solves the challenges associated with multiparty computations, and can be used as an alternative to secure multiparty computation, homomorphic encryptions, or tokenization techniques. It provides you with the necessary tools to build your Conclave application, leaving you to focus on the business logic. We’re excited to see how our partners and clients are using Conclave to solve this type of complex private computations.