mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-08 11:35:02 -05:00
e0c52515bf7ba581c9bc05d7624870cf31e8d3c5
Sometimes the optimizer provides inconsistent parameter sets for the wop PBS depending on how many inputs & bits to extract we're going to need for a certain precision. This results in r < 0 and until now the corresponding error in concrete-cuda was very hard to understand. This commit fixes this behavior. Also, when introducing the support for k > 1 we forgot to update the checks on the low lat PBS. This commit also fixes them.
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%