fairmath / polycircuit

Polycircuit is an FHE components library built via FHERMA competitions
https://fherma.io/challenges
Apache License 2.0
15 stars 1 forks source link
encryption fhe homomorphic-encryption homomorphic-encryption-library privacy

FHE Components library

This repository is an initial phase of building an application layer FHE Components library for developers and serves as the home to the award-winning solutions from the FHERMA challenges platform. The library will be constantly extended by adding new FHE components.

Installation

To use library components, you'll need to install several dependencies and Polycircuit library itself.

Prerequisites

Ensure you have the following dependencies installed:

Library installation

To install the header-only Polycircuit library, follow these steps:

  1. Clone the repository

    git clone https://github.com/fairmath/polycircuit.git
    cd polycircuit
  2. Configure CMake and install Polycircuit library in /usr/local/include

    cmake .
    cmake --build . --target install

    You can also set a different installation directory:

    cmake . -DCMAKE_INSTALL_PREFIX:PATH=/path/to/include
    cmake --build . --target install

Build and run the examples

The examples demonstrate the basic use of a particular component. To build and run examples, you'll need to install several dependencies.

Prerequisites

Ensure you have the following dependencies installed:

Building and running the MatrixMultiplicationUsage example:

  1. Build:
    cd examples/MatrixMultiplicationUsage
    cmake -B ./build && make -C ./build -j$(nproc)
  2. Run (for more info about accepting parameters, see help):
    ./build/MatrixMultiplicationUsage --help

Contributing to the Library

There are two ways to contribute to Polycircuit:

Stay Connected

Join our vibrant community to stay updated on the latest developments, participate in discussions, and connect with fellow FHE enthusiasts: