Releases: sp301415/tfhe-go
Releases · sp301415/tfhe-go
v0.4.0
- Merge
poly.Evaluator
andpoly.FourierEvaluator
- Performance improvements to
ToFourierPoly
- Faster exact multiplication between polynomials
- New parameters for optimal performance
- Create a new structure,
tfhe.Decomposer
Full Changelog: v0.3.1...v0.4.0
v0.3.1
- Fix TFHE and Multi-Key TFHE parameters.
- Remove ClearBit, ToLWECiphertext methods.
Full Changelog: v0.3.0...v0.3.1
v0.3.0
TFHE-go v0.3.0 arrives with major new features, performance improvements, bug fixes and more!
- Implement Multi-Key TFHE.
- Implement public key encryption for some parameters.
- Change representation of FourierPoly coefficients: now it is represented with 4 blocks of float, making AVX2 path faster.
- Reduce FFT in Bootstrapping. Now Programmable Bootstrapping is 1.5~2.0x faster.
- Optimize numerous methods and functions, including AVX2 implementations.
- Rename methods and variables to be more concise and meaningful.
Full Changelog: v0.2.7...v0.3.0
v0.2.7
- Implement EBS(Extended Bootstrapping) from [LY23]. This significantly improves bootstrapping performance and key size, especially for large parameters.
- Fix polynomial multiplication for small degree polynomials.
- Fix panic in
SampleExtract
. - Fix to use cyclic FFT, rather than negacyclic FFT.
Full Changelog: v0.2.6...v0.2.7
v0.2.6
- Add
UnSafe
methods to inverse FFT operations for slightly faster performance - Implement
MonomialMulSub
operations in AVX2
Full Changelog: v0.2.5...v0.2.6
v0.2.5
- Breaking Change:
tfheb
package is now integrated totfhe
.tfheb.XXX
structures are now renamed totfhe.BinaryXXX
. - Add option to choose bootstrapping order in Parameters. This matches TFHE-rs implementation.
- Revert
LWESmallDimension
toLWEDimension
to reduce confusion. - Optimize default parameters so that it matches security level of TFHE-rs.
- Optimize codepath for BlockSize 1, which matches the original bootstrapping of TFHE.
Full Changelog: v0.2.4...v0.2.5
v0.2.4
- Breaking Change: Change the order of KeySwitch and BlindRotate. This allows for better parameters, and is consistent with TFHE-rs.
LWEDimension
is renamed toLWESmallDimension
, andLWELargeDimension
is nowLWEDimension
. - Breaking Change: Rename
Hoisted
methods toDecomposed
. - Breaking Change: Remove defined types from
num
package. - Add custom binary serialization to all common entities. Now all plaintexts, ciphertexts and keys implement
io.WriterTo
/io.ReaderFrom
, andencoding.BinaryMarshaler
/encoding.BinaryUnmarshaler
interfaces. - Optimize CSPRNGs. Now EvaluationKey generation is ~50% faster.
Full Changelog: v0.2.3...v0.2.4
v0.2.3
- Breaking Change: Rename
DecompositionParameters
toGadgetParameters
for concise code - Add
Clear()
methods - Add binary marshalling/unmarshalling to parameters. Now all common entities (plaintexts, ciphertexts, keys) can be marshalled/unmarshalled into binary using
encoding/gob
. - Fix incorrect gaussian sampling
Full Changelog: v0.2.2...v0.2.3