Concrete

The concrete project is a set of crates that implements Zama's variant of TFHE and make it easy to use. In a nutshell, fully homomorphic encryption (FHE), allows you to perform computations over encrypted data, allowing you to implement Zero Trust services.

Concrete is based on the Learning With Errors (LWE) and the Ring Learning With Errors (RLWE) problems, which are well studied cryptographic hardness assumptions believed to be secure even against quantum computers.

Project layout

The concrete project is a set of several modules which are high-level frontends, compilers, backends and side tools.

  • The frontends directory contains a python frontend.
  • The compilers directory contains the concrete-compiler and concrete-optimizer modules. The concrete-compiler is a compiler that synthetize a FHE computation dag expressed as a MLIR dialect, compile to a set of artifacts, and provide tools to manipulate those artifacts at runtime. The concrete-optimizer is a specific module used by the compiler to find the best, secure and accurate set of crypto parameters for a given dag.
  • The backends directory contains implementations of cryptographic primitives on different computation unit, used by the concrete-compiler runtime. The concrete-cpu module provides CPU implementation, while concrete-cuda module provides GPU implementation using the CUDA platform.
  • The tools directory contains side tools used by the rest of the project.
Description
No description provided
Readme 148 MiB
Languages
C++ 34.3%
Python 23.1%
MLIR 22.9%
Rust 14.6%
C 2.2%
Other 2.8%