Skip to content

Releases: zama-ai/tfhe-rs

TFHE-rs v0.5.0

22 Jan 16:39
tfhe-rs-0.5.0
Compare
Choose a tag to compare

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 measurement

In the Core Crypto API:

  • Improved keyswich performance

TFHE-rs v0.4.1

23 Oct 16:31
tfhe-rs-0.4.1
Compare
Choose a tag to compare

fix(integer): fix unsigned_overflowing_sub on trivials

TFHE-rs v0.4

17 Oct 16:08
tfhe-rs-0.4.0
Compare
Choose a tag to compare

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 FheInt

In 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 algorithm

In 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

CSPRNG 0.4.0

12 Oct 09:55
csprng-0.4.0
Compare
Choose a tag to compare

Minimal Rust version set to 1.72 allowing compiling with stable toolchain and intrinsics on ARM devices.

TFHE-rs v0.3.1

15 Aug 20:23
0.3.1
Compare
Choose a tag to compare

TFHE-rs v0.3.1 includes:

In the HL API:

  • Scalar operations are now compatible with scalars up to 256 bits;
  • New instruction: if_then_else.

In the integer API:

  • New instruction: if_then_else;
  • Faster parallelized carry propagation.

In the boolean API:

  • Choice of the bootstrapping pattern: KS->PBS or PBS->KS;
  • Parameter update.

TFHE-rs v0.3.0

26 Jul 13:45
0.3.0
Compare
Choose a tag to compare

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
    • 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

TFHE-rs version 0.2.5

26 Jul 08:28
0.2.5
Compare
Choose a tag to compare

TFHE-rs v0.2.5 features:

(integer) Fix max_degree computation for CompressedServerKey which led to incorrect computations once decompressed

TFHE-rs version 0.2.4

09 May 14:12
0.2.4
Compare
Choose a tag to compare

TFHE-rs v0.2.4 features:

(core) fix split pbs for u128
(core) fix a rare conversion corner case for f128
(integer) remove mutex usage to ensure determinism in some parallel operations

TFHE-rs version 0.2.3

24 Apr 08:58
0.2.3
Compare
Choose a tag to compare

TFHE-rs v0.2.3 features:

(docs) Fix typo

TFHE-rs version 0.2.2

21 Apr 11:18
0.2.2
Compare
Choose a tag to compare

TFHE-rs v0.2.2 features:

(core) Fix rng
(core) Disable split PBS u128 implementation
(boolean) Add BooleanEngine::replace_thread_local