youben11 dc8b762708 fix: add a wrapper to compiled circuits to unify invocation
this was already implemented for JIT using mlir::ExecutionEngine, but
was using a different, and more complex way for library compilation and
execution, which was causing a bad calling convention at the assembly
level in MacOS M1 machine. This commits unify the invocation of JIT and
Library compiled circuit, solving the previously mentioned issue, but
also gives the ability to extend compiled libraries to support more than one
returned value
2023-03-14 11:18:55 +01:00
2023-03-13 11:51:38 +00:00
2022-01-31 17:17:24 +01:00
2022-12-05 12:35:26 +01:00

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%