mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 05:06:44 +01:00
3.1 KiB
3.1 KiB
CHANGELOG
[0.3.2] - 2025-10-27
poulpy-hal
- Improved convolution functionality
poulpy-core
- Rename
GLWEToLWESwitchingKeytoGLWEToLWEKey. - Rename
LWEToGLWESwitchingKeytoLWEToGLWEKey. - Add
GLWESecretTensorwhich stores the flattened upper triangular matrix of the pairssk[i] * sk[j]. - Add
GGLWEToGGSWKey,GGLWEToGGSWKeyPrepared,GGLWEToGGSWKeyCompressed, which encrypts the full tensor matrix of all pairssk[i] * sk[j], with oneGGLWEper row. - Update
GGLWEToGGSWAPI to takeGGLWEToGGSWKeyinstead of theGLWETensorKey - Add
GLWETensor, the result of tensoring twoGLWEof identical rank. - Changed
GLWETensorKeyto be an encryption ofGLWESecretTensor(preliminary work forGLWEFromGLWETensor, a.k.a relinearization).
poulpy-schemes
- Add
GLWEBlindRotation, aGGSW-based blind rotation that evaluatesGLWE <- GLWE * X^{((k>>bit_rsh) % 2^bit_mask) << bit_lsh}.(k=FheUintBlocksPrepared). - Add
GGSWBlindRotation, aGGSW-based blind rotation that evaluatesGGSW <- (GGSW or ScalarZnx) * X^{((k>>bit_rsh) % 2^bit_mask) << bit_lsh}.(k=FheUintBlocksPrepared).
[0.3.1] - 2025-10-24
poulpy-hal
- Add bivariate convolution (X, Y) / (X^{N} + 1) with Y = 2^-K
poulpy-core
- Fix typo in impl of GGLWEToRef for GLWEAutomorphismKey that required the data to be mutable.
[0.3.0] - 2025-10-23
- Fixed builds on MACOS
Breaking changes
- The changes to
poulpy-corerequired to break some of the existing API. For example the APIprepare_allochas been removed and the traitPrepare<...>has been broken down for each different ciphertext type (e.g. GLWEPrepare). To achieve the same functionality, the user must allocated the prepared ciphertext, and then call prepare on it.
poulpy-hal
- Added cross-base2k normalization
poulpy-core
- Added functionality-based traits, which removes the need to import the low-levels traits of
poulpy-haland makes backend agnostic code much cleaner. For example instead of having to import each individual traits required for the encryption of a GLWE, only the traitGLWEEncryptSkis needed.
poulpy-schemes
- Added basic framework for binary decicion circuit (BDD) arithmetic along with some operations.
[0.2.0] - 2025-09-15
Breaking changes
- Updated the trait
FillUniformto takelog_bound.
poulpy-hal
- Added pure Rust reference code for
vec_znxandfft64backend. - Added cross-backend generic test suite along with macros.
- Added benchmark generic test suite.
poulpy-backend
- Added
FFTRefbackend, which provides an implementation relying on the reference code ofpoulpy-hal. - Added
FFTAvxbackend, which provides a pure Rust AVX/FMA accelerated implementation ofFFTRefbackend. - Added cross-backend tests between
FFTRefandFFTAvx. - Added cross-backend tests between
FFTRefandFFT64Spqlios.
poulpy-core
- Removed unsafe blocks.
- Added tests suite for
FFTRefandFFTAvxbackends.
Other
- Fixed a few minor bugs.
[0.1.0] - 2025-08-25
- Initial release.