Skip to content

Releases: zama-ai/tfhe-rs

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

TFHE-rs version 0.2.1

19 Apr 09:34
0.2.1
Compare
Choose a tag to compare

TFHE-rs v0.2.1 features:

  • (integer) Fix default multiplication
  • (integer) Improve Min/Max performance
  • (hl_api) Add trivial_ciphertext to the high-level API
  • (hl_api) Fix the number of blocks for FheUint32
  • (Doc) Benches updated

TFHE-rs version 0.2.0

13 Apr 12:53
0.2.0
Compare
Choose a tag to compare

TFHE-rs v0.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.