Kali Linux

Private Set Membership (PSM) : Cryptographic Protocol That Allows Clients To Privately Query

Private Set Membership (PSM) is a cryptographic protocol that allows clients to privately query whether the client’s identifier is a member of a set of identifiers held by a server in a privacy-preserving manner.

At a high level, PSM provides the following privacy guarantees:

  • The server does not learn the client’s queried identifier in the plaintext.
  • The server does not learn whether the client’s query results in a membership or non-membership determination.
  • The querying client does not learn any information about the set of identifiers that are stored by the server beyond whether the querying client’s identifier is a member or not of the server-held set of identifiers. In other words, the querying client learns the bare minimum amount of information which is only the answer of the membership query.

Dependencies

The Private Set Membership library requires the following dependencies:

  • Abseil for C++ common libraries.
  • Bazel for building the library.
  • BoringSSL for underlying cryptographic operations.
  • GFlag for flags. Needed to use glog.
  • GLog for logging.
  • Google Test for unit testing the library.
  • Protocol Buffers for data serialization.
  • Shell for fully homomorphic encryption.
  • Tink for cryptographic PRNGs.

How to build

In order to run this library, you need to install Bazel, if you don’t have it already. [Follow the instructions for your platform on the Bazel website. Make sure you are installing version 4.2.1 or above.] (https://docs.bazel.build/versions/master/install.html)

You also need to install Git, if you don’t have it already. Follow the instructions for your platform on the Git website.

Once you’ve installed Bazel and Git, open a Terminal and clone the repository into a local folder.

Navigate into the private-membership folder you just created, and build the library and dependencies using Bazel. Note, the library must be built using C++17.

cd private-membership
bazel build … –cxxopt=’-std=c++17′

You may also run all tests (recursively) using the following command:

bazel test … –cxxopt=’-std=c++17′

R K

Recent Posts

Best Advanced OSINT Tools 2026: Pivot Across Domains, Emails and Profiles

Advanced OSINT is not about using complicated tools for the sake of it. It is…

2 hours ago

Best OSINT Tools for Beginners 2026: A 7-Day Practical Learning Roadmap

Learning OSINT can feel confusing in the beginning because there are too many tools, websites,…

2 hours ago

Install KVM Ubuntu: Easy Virtualization Setup Guide

Virtualization has become a key technology for developers, system administrators, and IT professionals. If you…

2 hours ago

Install Elasticsearch Ubuntu: Complete Setup Guide

Elasticsearch has become one of the most popular platforms for search, analytics, and large-scale data…

2 hours ago

Install OpenCV Ubuntu: Complete Computer Vision Setup Guide

Install OpenCV Ubuntu is a common requirement for developers working on artificial intelligence, machine learning,…

3 hours ago

Install Steam Ubuntu: Easy Gaming Setup on Ubuntu 20.04

Whether you're interested in AAA titles, indie games, or multiplayer experiences, Steam provides a convenient…

3 hours ago