Welcome to the
This library contains a set of low-level primitives which can be used to implement Fully Homomorphically Encrypted (FHE) programs. In a nutshell, fully homomorphic encryption makes it possible to perform arbitrary computations over encrypted data. With FHE, you can perform computations without putting your trust on third-party computation providers.
This library is geared towards people who already know their way around FHE. It gives the user freedom of choice over a breadth of parameters, which can lead to less than 128 bits of security if chosen incorrectly
Fortunately, we propose multiple libraries that build on top of
concrete-core and which
propose a safer API. To see which one best suits your needs, see the
concrete-core is a modular library which makes it possible to use different backends to
perform FHE operations. Its design revolves around two modules:
specificationmodule contains a specification (in the form of traits) of the
concreteFHE scheme. It describes the FHE objects and operators, which are exposed by the library.
backendsmodule contains various backends implementing all or a part of this scheme. These different backends can be activated by feature flags, each making use of different hardware or system libraries to make the operations faster.
The different backends can be activated using the feature flags
contains an engine executing operations on a single thread of the cpu. It is activated by
If this is your first time looking at the
concrete-core code-base, it may be simpler for you
to first have a look at the
specification module, which contains explanations on the
abstract API, and navigate from there.