HomeAbout | Releases | Latest version

This page lists the major releases based on the TFHE scheme.

List of major code releases based on the TFHE scheme

TFHE.rs v0.6 - released on 2024.04.08


TFHE-rs v0.6.0 adds Zero Knowledge (ZK) proofs to the Compact Public Key encryption. This feature enables server-side verification of the correctness of the ciphertext encrypted in this manner without knowing the content of the ciphertexts.

This release also introduces a new form of post-computation compression that limits the size of data on disk/in transit. It’s particularly useful when storing computation results in their encrypted forms.

The CUDA backend v0.2.0 now supports more integer operations, including shift, rotate, scalar multiplication, and the corresponding signed operations.

What's Changed

Breaking Changes


The Compact Public Key encryption is not backward compatible due to the change of layout, preventing from updating older ciphertexts to the newer format.

New features

  • High Level API: added the FHE oblivious pseudo random generation
  • High Level API/Integer: added leading/trailing zeros/ones, ilog2 and checked ilog2
  • Integer: added checked division, returning a flag to indicate if the divisor was non-zero
  • Integer: added smart variant for the neg_assign function
  • Integer/CUDA: added support for unsigned cast
  • Integer/CUDA: added overflowing sub
  • Integer/CUDA: added support for signed add/sub/mul, bitops, shifts and rotations
  • Integer/CUDA: added decompression from compressed CPU server key to GPU server key
  • Shortint/Integer: total count of executed PBS can now be queried with get_pbs_count with feature pbs-stats
  • Shortint: added the "many LUT" construction allowing to evaluate several functions in case where the ciphertext has unused message bits
  • Core crypto: added support keyswitch with a modulus switching as well
  • Core crypto: added parallelized private functional packing keyswitch over a list of LWE ciphertexts
  • All: added support for TUniform distribution for noise distributions
  • All: added modulus switching for post computation compression
  • C API: added CUDA support
  • C API: allow configuration of the number of threads used by integer API calls


  • Integer: improved carry propagation and sum algorithm
  • Integer: bitnot is now PBS free improving performance
  • Integer/CUDA: improved performance of the term reduction in the multiplication
  • Core crypto: faster PBS 128 with usage of new version of concrete-fft


  • Integer: fix cast in scalar_shift/rotate
  • Integer: is_scalar_out_of_bounds handles bigger ciphertext case
  • Integer: correct degree in small comparisons
  • Integer: fix parallel carry propagation on empty input
  • Integer: fix the wopbs CRT LUT generation
  • Integer/CUDA: fix 40 bit integer multiplication
  • Integer/CUDA: fix scalar eq for booleans
  • Integer/CUDA: fix bug in integer mult when k > 1
  • Integer/CUDA: replace hardcoded degrees in multiplication.cuh
  • CUDA: fix cuda_memset with size 0
  • CUDA: fix memory bug in multi-bit PBS
  • Core crypto: ignore value already present in the body when doing LWE encryption
  • Core crypto: fix unsigned noise addition for custom modulus
  • Core crypto: fix empty extracted bits list rejected as invalid by the wopbs
  • C API: add missing function on FheBool


TFHE.rs v0.5 - released on 2024.01.19

TFHE-rs v0.5.0 includes:In the High-Level API (HL API):
- Added support of new GPU backend (tfhe-cuda-backend)
- Added operations with overflow detection (add/sub/mul)
- Added C API for operations with overflow detection
- Added consistent representation for Booleans and Shortints
- Added efficient 'Debug Mode'
- Added '.sum()' operators on vectors of integers (FheUint/FheInt)In the Integer API:
- Added operations with overflow detection for signed and unsigned Integers (add/sub/mul)
- Added accessors to inner shortint server keys
- Added debug mode (i.e., efficient trivial ciphertext management)
- Added fast sum of vectors of Integers
- Added cast between signed and unsigned Integers
- Refactored the RNS operations
- Added practical homomorphic evaluation of a standard PRF allowing to generate randomness in FHE
- Added noise level measurementIn the Core Crypto API:
- Improved keyswich performance

 Read the release note

TFHE.rs v0.4.0 - released on 2023.10.17

TFHE-rs v0.4.0 includes:In the High-Level API (HL API):
- Allowed scalar operations on values up to U256
- Added FheInt{8,16,32,64,128,256}
- Tied scalar ops with corresponding clear type
- Added C API support for FheIntIn the Integer API:
- Introduced full_propagate_parallelized with more parallelism
- Added full support for signed radix ciphertext
- Improved scalar multiplication
- Enhanced division using overflowing_sub
- Added smarter choice of the carry propagation algorithmIn the Core Crypto API:
- Added parallel LWE PFPKS and LWE KS
- Optimized monic polynomial operations in PBS
- Improved closest_representable and pbs_modulus_switch
- Added monomial fft for multibit pbs
- Added parallel variant of extract_lwe_sample_from_glwe
- Added GLWE linear algebra primitives

 Read the release note

TFHE.rs v0.3.0 - released on 2023.07.25

TFHE-rs v0.3.0 includes:- In the High-level API:
 - Scalar_bitwise/div/rem operations
 - Not operator (!)
 - Scalar comparisons
 - Not equal
 - Bit rotations
 - Homomorphic shifts
 - Multibit PBS
 - Impl TryFrom operators for GenericInteger: RadixCiphertext and Vec<Ciphertext>
 - CompressedPublicKey decompression
 - CompressedServerKey
 - Casting between integer types
 - Use one unique key for integers
 - Trivial encryptions- In the Integer API:
 - Division by encrypted value
 - Scalar division/remainder
 - Scalar comparisons
 - CastingKey struct to allow users to switch between integer parameter sets
 - Scalar_mul generic over UnsignedInteger
 - Reduced default sub latency
 - Faster scalar add, sub and negation
 - Scalar shift match rust when shift >= bit size
 - Shifts and rotates on encrypted values
 - Decompression of CompressedPublicKey
 - Faster mul and scalar mul
 - Faster parallel algorithms for add/sub
 - Parallelized scalar rotate_left/right
 - Improved scalar shift performance
 - Trivial encryption
 - Scalar bitwise operations
 - Faster eq (==)
 - Not equal operator (!=)- In the Shortint API:
 -  Encrypt_message_and_carry function
 -  Possibility to select deterministic execution for multibit PBS
 -  CastingKey struct to allow users to change server_key during a circuit execution on the server
 -  The possibility to use multi bit PBS- In the Boolean API:
 - BooleanEngine::replace_thread_local
 - CastingKey struct to allow users to change server_key during a circuit execution on the server
 - CompressedPublicKey- In the Core Crypto API:
 -  Compact Public Key
 -  Std multi-bit bootstrapping
 -  Deterministic Multibit PBS- Test Improvements:
 - Test On Noise Variance For LWE Encryption
 - Normality Test Based On Shapiro-Francia- Applications
 -  Trivium application of TFHE
 -  Boolean sha256 tutorial
 -  Dark market tutorial
 -  FHE Regex Pattern Matching Engine- C / WASM APIs:
 - Safer destroys
 - #[repr(C)] for boolean parameters
 - Parralellism in wasm API and wasm for HLAPI (client side)- Documentation
 - Refactor of the documentation

 Read the release note

TFHE.rs v0.2.0 - released on 2023.01.12

TFHE-rs 0.2.0 includes:

New modules:
- An integer module to manage homomorphic unsigned integers encrypting messages up to 256 bits;
- A high-level API, including predefined homomorphic types and overloaded operators. A C binding is also available;

New features in all modules:
- Encryption key choice: In shortint and integer, the large LWE key is used by default. It is now possible to encrypt with the small one;
- A smaller public encryption key: As a consequence of the previous point, a smaller secret encryption key implies a smaller public key;

New features in core_crypto:
- The ability to compute a PBS over 128-bit ciphertexts;
- The choice of the ciphertext modulus: This can now be modified to use any powers of two smaller than 2^128;
- Parallel Programmable Bootstrapping: A parallelized version of the bootstrapping is now available.

 Read the release note

TFHE.rs v0.1.6 - released on 2023.01.12

TFHE-rs 0.1.6 features:
- A low-level, cryptographic library that implements Zama’s variant of TFHE, including programmable bootstrapping;
- An implementation of the original TFHE boolean API, which can be used as a drop-in replacement for other TFHE libraries;
- A short integer API, which enables exact, unbounded FHE integer arithmetics with up to 8 bits of message space;
- A public key encryption implementation for TFHE;
- Ciphertext and server key compression for efficient data transfer;
- A full Rust and C API, and a client-side WASM API.

 Read the release note

TFHE.rs v0.1.3 - released on 2022.11.15

TFHE-rs is a pure Rust implementation of TFHE for boolean and small integer arithmetics over encrypted data. It includes:
- a Rust API
- a C APIand
- a client-side WASM API
TFHE-rs is meant for developers and researchers who want full control over what they can do with TFHE, while not having to worry about the low level implementation. The goal is to have a stable, simple, high-performance and production-ready library for all the advanced features of TFHE.

 Read the release note

Concrete v0.2.0 - released on 2022.10.18

Today, Zama announces the release of a new version of Concrete, following the concrete-core V1.0.0 release. Concrete v0.2 provides a high-level and easy-to-use interface for developers that relies on three crates, namely concrete-boolean, concrete-shortint, and concrete-integer.

 Read the release note

Concrete v0.2.0-beta - released on 2022.07.07

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.

 Read the release note

Concrete v0.1.10 — released on 2022.09.30

First official release of the Concrete library. The Zama's implementation of TFHE with support for homomorphic boolean gates, open source license.

 Read the release note

TFHE v1.1 — released on 2020.02.21

Updated security parameters release.

TFHE v1.0.1 — released on 2017.08.15

FHE for Linux and MacOs.

 Read the release note

TFHE v1.0 — released on 2017.05.02

First official release.

 Read the release note

TFHE v1.0-rc2 — released on 2017.04.21

Second release candidate.

 Read the release note

TFHE v1.0-rc1 — released on 2017.04.05

First release candidate.

 Read the release note

TFHE v0.1 — released on 2016.08.10

Proof of concept.