Skip to content

Concrete Operates oN Ciphertexts Rapidly by Extending TfhE

License

Notifications You must be signed in to change notification settings

Fully-Homomorphic-Encryption/concrete

 
 

Repository files navigation

Concrete

The concrete ecosystem is a set of crates that implements Zama's variant of TFHE. 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.

Links

Concrete crates

Concrete is implemented using the Rust Programming language, which allows very fast, yet very secure implementations.

The ecosystem is composed of several crates (packages in the Rust language):

  • concrete: A high-level library, useful to cryptographers that want to quickly implement homomorphic applications, without having to understand the details of the implementation.
  • concrete-core: A low-level library, useful to cryptographers who want the fastest implementation possible, with all the settings at their disposal.
  • concrete-npe: A noise propagation estimator, used in concrete to simulate the evolution of the noise in ciphertexts, through homomorphic operations.
  • concrete-csprng: A fast cryptographically secure pseudorandom number generator used in concrete-core.

Installation

To use concrete, you will need the Rust compiler, and the FFTW library. The compiler can be installed on linux and osx with the following command:

curl  --tlsv1.2 -sSf https://sh.rustup.rs | sh

Other rust installation methods are available on the rust website.

To install the FFTW library on MacOS, one could use the Homebrew package manager. To install Homebrew, you can do the following:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

And then use it to install FFTW:

brew install fftw

Note for Apple Silicon users: Concrete is currently only available for x86 architecture. To use it on Apple Silicon chip, you could use an x86_64 version (more detailed information could be found here).

To install FFTW on a debian-based distribution, you can use the following command:

sudo apt-get update && sudo apt-get install -y libfftw3-dev

Credits

This library uses several dependencies and we would like to thank the contributors of those libraries :

We also use some crates published by The Rust Project Developers under the MIT or Apache 2.0 license :

We thank Daniel May for supporting this project and donating the concrete crate.

License

This software is distributed under the AGPL-v3 license. If you have any question, please contact us at [email protected].

About

Concrete Operates oN Ciphertexts Rapidly by Extending TfhE

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.9%
  • Other 0.1%