mirror of
https://github.com/zama-ai/concrete.git
synced 2026-01-09 12:57:55 -05:00
8a672a0c594ef9002db8e2bf0f6464591cf714fa
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
frontendsdirectory contains apythonfrontend. - The
compilersdirectory contains theconcrete-compilerandconcrete-optimizermodules. Theconcrete-compileris 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. Theconcrete-optimizeris a specific module used by the compiler to find the best, secure and accurate set of crypto parameters for a given dag. - The
backendsdirectory contains implementations of cryptographic primitives on different computation unit, used by theconcrete-compilerruntime. Theconcrete-cpumodule provides CPU implementation, whileconcrete-cudamodule provides GPU implementation using the CUDA platform. - The
toolsdirectory contains side tools used by the rest of the project.
Description
Languages
C++
34.3%
Python
23.1%
MLIR
22.9%
Rust
14.6%
C
2.2%
Other
2.8%