Google Private Join and Compute

Google Private Join and Compute

open_source

Open-source cryptographic protocol by Google that lets two parties compute the count and sum of values for shared identifiers without exposing any private data.

About

Google Private Join and Compute implements a cryptographic protocol that allows a Server and a Client—each holding a private dataset—to jointly discover how many identifiers they share and compute the sum of associated values for those shared records, without either party learning anything beyond those two outputs. No individual records, non-matching identifiers, or raw values are ever exposed to the other party. The protocol is built around Private Set Intersection (PSI) cryptographic techniques and is designed for scenarios where two organizations need to collaborate on sensitive data without fully exposing their datasets to one another. For example, an advertiser and a publisher could compute the number of shared users and an aggregate conversion value without either side seeing the other's user list. The codebase is structured around a client-server model and is built with Bazel for reproducible builds. It is released under the Apache-2.0 license, making it freely usable and auditable. The library is intended for developers and data engineers building privacy-preserving computation pipelines, secure data clean rooms, or federated analytics systems. Ideal users include security engineers, privacy researchers, data scientists, and enterprises needing compliant cross-organization data collaboration. Use cases span digital advertising attribution, healthcare data federation, financial fraud detection, and any domain requiring secure multi-party computation without centralizing raw data.

Key Features

  • Private Set Intersection (PSI): Cryptographically determines which identifiers are common between two datasets without revealing non-matching records to either party.
  • Secure Sum Computation: Computes the aggregate sum of values associated with the intersecting identifiers, disclosing only the final total—not individual values.
  • Client-Server Architecture: Implements a well-defined two-party protocol where neither the Server nor the Client learns anything beyond the intersection count and the sum.
  • Apache-2.0 Open Source License: Fully auditable, freely usable codebase backed by Google, built with Bazel for reproducible and reliable builds.
  • Minimal Information Disclosure: Guarantees that only two outputs are revealed—the number of common identifiers and their summed associated values—enforcing strong privacy by design.

Use Cases

  • Digital advertising attribution: an advertiser and publisher privately measure campaign conversion value without sharing their full user lists.
  • Healthcare data federation: two hospitals identify shared patient cohorts and compute aggregate clinical metrics without exposing individual patient records.
  • Financial fraud detection: two financial institutions find overlapping suspicious accounts and sum transaction values across institutions without revealing customer data.
  • Privacy-compliant marketing analytics: brands and data partners collaborate on audience overlap and revenue attribution in a GDPR-friendly manner.
  • Secure data clean room foundation: serves as the cryptographic core for building enterprise data clean rooms that require verifiable privacy guarantees.

Pros

  • Strong Privacy Guarantees: Based on well-established cryptographic PSI techniques, ensuring neither party learns anything beyond the agreed-upon outputs.
  • Auditable & Open Source: Released under Apache-2.0 with full source code available, allowing organizations to audit, adapt, and deploy with confidence.
  • Google-Backed Credibility: Developed and maintained by Google engineers, providing production-quality implementation and active community support.

Cons

  • Narrow Computation Scope: Only supports intersection count and sum aggregation; arbitrary multi-party computations or other aggregation functions require extending the protocol.
  • Requires Technical Implementation: No GUI or hosted service—both parties must compile, deploy, and operate the software themselves, requiring engineering resources.
  • Two-Party Only: The current implementation supports exactly two parties; multi-party scenarios involving three or more participants are not covered out of the box.

Frequently Asked Questions

What is Private Join and Compute?

It is an open-source implementation of the PSI-Sum cryptographic protocol that lets two parties find the count of shared identifiers and compute the sum of associated values without exposing any other data to each other.

What cryptographic technique does it use?

The protocol is based on Private Set Intersection (PSI) cryptography, which uses commutative encryption to allow parties to find common elements without revealing non-matching ones.

Who is this library intended for?

It is designed for developers, security engineers, and data scientists building privacy-preserving data collaboration pipelines, secure data clean rooms, or cross-organization analytics systems.

How do I get started?

Clone the repository from GitHub, install Bazel, and follow the build instructions in the README. The project includes sample input files and instructions to run the client-server protocol locally.

Can it compute things beyond sums?

The current implementation specifically supports sum aggregation over intersecting records. Supporting other functions (e.g., average, count-only) would require modifying the cryptographic protocol and implementation.

Reviews

No reviews yet. Be the first to review this tool.

Alternatives

See all