Skip to content
A high level wrapper around libtfhe.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
docs
examples
include
src
tests
tools/verilog-to-tfhe
.clang-format
.gitignore
CMakeLists.txt
LICENSE
README.md
devnotes.md
gsl_span.diff
todo.md

README.md

FHE-tools

A high-level wrapper around libtfhe. This is extremely experimental, alpha, and by all means not release-ready - feel free to peek at the features, but don't rely on its API.

Check out the examples folder to see it in action.

Usage

  • Install the requirements detailed in tools/verilog-to-tfhe
  • cd tools/verilog-to-tfhe
  • ./transpile.sh ../../src/autogenerated/add.{v,cpp}
  • ./transpile.sh ../../src/autogenerated/mul.{v,cpp}
  • cd ../..
  • Install TFHE v1 (https://github.com/tfhe/tfhe/tree/v1.0.1)
  • Install the GSL
  • Install rpclib
  • cmake . -DPLAINTEXT=0 (PLAINTEXT=1 uses a mock implementation and enables debug flags)
  • make

Tests

  • In addition to TFHEv1 and the GSL, clone Rapidcheck
  • cmake . -DPLAINTEXT=0 -DTESTS_ENABLED=1
  • make fhetools_test
  • bin/fhetools_test

Misc notes

Uses a custom version of gsl::span for syntactic reasons. If it ever needs to be updated, apply the patch in gsl_span.diff to gsl/span from the Microsoft GSL.

You can’t perform that action at this time.