PPLL is a compact C++ library for executing Boolean and integer logic operators on TFHE ciphertexts. It wraps a small set of programmable bootstrapping based operators on top of the bundled TFHEpp dependency.
This repository intentionally contains only the reusable gate execution layer:
include/HomOP.h: public logic and arithmetic operator API.include/HomGate.h: standard key-switch plus programmable bootstrap helpers.src/Hom*.cpp: Boolean, add/subtract, comparison, equality, and constants.examples/ppll_smoke.cpp: a minimal encrypted AND/OR/XOR smoke test.
It does not include application workflows, proof systems, experiments, benchmark logs, generated keys, or private datasets.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j./build/ppll_smokeExpected output:
AND=0 OR=1 XOR=1
#include "HomOP.h"
TFHEpp::HomAND(a_bits, b_bits, width, eval_key);
TFHEpp::HomOR(a_bits, b_bits, width, eval_key);
TFHEpp::HomXOR(a_bits, b_bits, width, eval_key);
TFHEpp::HomNOT(a_bits, width, eval_key);
TFHEpp::HomAdd(a_bits, b_bits, width, eval_key, false);
TFHEpp::HomSub(a_bits, b_bits, width, eval_key, false);
TFHEpp::HomGT(a_bits, b_bits, width, eval_key);
TFHEpp::HomEQ(a_bits, b_bits, width, eval_key);Inputs and outputs are TFHEpp::TLWE<TFHEpp::lvl2param> ciphertexts using the
bundled parameter set.