Skip to content

Releases: virtualsecureplatform/TFHEpp

Version 9

15 Jul 10:28
Compare
Choose a tag to compare

This release introduces the change that will break the backward compatibility. The API has not been changed but I added memory alignment requirements to some input and output variables. Because one of the philosophies of this library is to keep the data format as plain as possible, users must explicitly handle this alignment requirement by adding alignas or the custom allocator like TFHEpp::AlignedAllocator.

The main modification you will need to use this version is to ensure that the output of CircuitBootstrapping is aligned to the 64-byte boundary.

This alignment requirement is required to speed up the library.

This release also introduces some additional FFT library supports, but it is just for the completeness of this library. I recommend you to keep using SPQLIOS or its AVX512 version.

Version 8

01 Oct 08:13
Compare
Choose a tag to compare

I decided to add the support for Centered Binomial Distribution since it is believed to be faster to generate than Gaussian Distribution and is used in CRYSTAL-Kyber and Microsoft SEAL.
This change came from the need for faster evaluation key generation to reduce the cost of the client side.
After this release, some API changes caused by the distribution selection interface are expected.

Version 7

08 May 09:09
Compare
Choose a tag to compare

I decided to change the explicit instantiation structure to support non-predefined parameters. It may achieved by pre-compiled header or extern template functionality.

This release includes AVX512 spqlios, ternary key supports, CI using GitHub actions, Bootstrapping Unrolling, and BFV like multiplication.

Version 6

04 May 16:41
Compare
Choose a tag to compare

I will integrate the technique introduced in the recent paper.

Version 5

22 Dec 07:32
c484709
Compare
Choose a tag to compare

This release includes some additional FFT library supports and the introduction of EvalKey for a more flexible bootstrapping key format.

After this release, I will support k>1 parameters and 32-bit NTT. This may introduce some minor API changes.

Version 4

09 Oct 13:12
Compare
Choose a tag to compare

This is the last release that assumes only TLWElvl0 is the input of Homomomorphic Gates.
After this release, significant API changes are expected.

Version 3

02 Oct 11:14
Compare
Choose a tag to compare

This is the last release that supports GateBootstrappingTLWE2TRLWE, GateBootstrappingTLWE2TLWEFFTvariableMu, and RotatedTestVector. These are replaced by more generic functions like BlindRotate.
This release includes AnnihilatePacking, LWEMult, and BlindRotateManyLUT.

Version 2

13 Jul 16:06
Compare
Choose a tag to compare

This release is the last version that trgswSymEncrypt takes an integer as a plaintext, After this release, trgswSymEncrypt takes a polynomial.
This change is needed to implement Chen's packing method.

Version 1

27 Feb 11:05
Compare
Choose a tag to compare

This release is the last version that is compatible with USENIX 2021's codes.
To make this library more extensible, I decided to do refactoring with breaking backward compatibility.