Skip to content

Concrete

Alexander Viand edited this page Nov 30, 2020 · 14 revisions

Concrete is an FHE library written in Rust. It is being developed by Zama and implements their version of the CGGI/TFHE scheme. See their documentation for more information on the library itself.

Setup

Linux / MacOS

The documentation provides tutorials for linux and macOS.

Windows:

You need to install Rust and vcpkg.

After installing vcpkg, you need to run vcpkg integrate install from the windows command line (in the folder where you installed vpckg). You will also need to install OpenSSL, since the rust openssl crate only installs a wrapper, not the libary itself. To do so, run vcpkg install openssl:x64-windows-static-md as usual. The same goes for fftw3, so run vcpkg install fftw3:x64-windows-static-md as usual.

Actually, installing fftw3 still leads to errors, and the rust fftw wrapper says system-installed fftw isn't supported on Windows, so we need to amend the dependency in the original concrete library. The local workaround is to clone concrete to an appropriate location, remove the [dependencies.fftw] block in Cargo.tomland instead add fftw="=0.6.0" under [dependencies]. Note that the version is important, as later versions are not compatible with Concrete.

If you want to use IntelliJ, you need to install the rust plugin and run rustup component add rust-src from the windows command line to add the rust sources that the plugin requires.

Clone this wiki locally