Releases: zama-ai/tfhe-rs
TFHE-rs v0.5.0
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
fix(integer): fix unsigned_overflowing_sub on trivials
TFHE-rs v0.4
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
Minimal Rust version set to 1.72 allowing compiling with stable toolchain and intrinsics on ARM devices.
TFHE-rs v0.3.1
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
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
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
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
TFHE-rs v0.2.3 features:
(docs) Fix typo
TFHE-rs version 0.2.2
TFHE-rs v0.2.2 features:
(core) Fix rng
(core) Disable split PBS u128 implementation
(boolean) Add BooleanEngine::replace_thread_local