Breaking Changes
-
rlwe.Evaluator.InnerSumdoes not exist anymore. It has been replaced byrlwe.Evaluator.PartialTracesSum, which applies the automorphisms that correspond to rotations at the scheme level (and sum the results).Migration: At the scheme level, use the new
bgv.Evaluator.InnerSum/bgv.Evaluator.RotateAndAddorckks.Evaluator.InnerSum/ckks.Evaluator.RotateAndAddmethods (see doc or below for more details). At therlweevaluator level, userlwe.Evaluator.PartialTracesSum. -
ShallowCopy()methods have been removed.Migration: These can safely be removed as the structures can be used concurrently.
-
The minimum required Go version is now 1.24.
Added
- Thread-safety: methods of a given structure (e.g. an evaluator) can be called concurrently.
- Introduction of the
bgv.Evaluator.InnerSumandckks.Evaluator.InnerSummethods, which have the same behaviour as the oldInnerSummethod for parametersnandbatchSizes.t.0 < n*batchSize <= ctIn.Slots()divides the number of slots. Parameters not satisfying these conditions are rejected. - Introduction of the
bgv.Evaluator.RotateAndAddandckks.Evaluator.RotateAndAddmethods, which have the same behaviour as the oldInnerSummethod for all parameters. - Allowing to encode N values in BGV when using coefficient encoding
Improved
- Documentation and interface of t-out-of-N MHE
SECURITY.MDmore complete and precise
Fixed
- Ciphertext packing before bootstrapping
- CKKS encoding respects the
NTTflag of the plaintext DivRoundByLastModulusdoes not overwrite the input- Homomorphic DFT when decomposition level has multiple matrices
encryptor.encryptZeroSkreturns a ciphertext in the Montgomery domain when appropriate