Concrete Core V1.0.0-beta
agnesLeroy
released this
06 Apr 14:12
·
3527 commits
to main
since this release
Public features:
- Breaking change:
serde
becomes an optional dependency - Breaking change:
cleartext_vector_encoding_unchecked
name is fixed (thevector
word was missing in the name) - Breaking change: the name of all public engines involving "negation" are renamed to use "opposite" instead, "negate" into "compute_opposite", "neg" into "opp"
- Implement the
fuse_sub_lwe_ciphertext
,discard_sub_lwe_ciphertext
,fuse_add_lwe_ciphertext_vector
,discard_add_lwe_ciphertext_vector
,fuse_sub_lwe_ciphertext_plaintext
,discard_sub_lwe_ciphertext_plaintext
,fuse_sub_lwe_ciphertext_vector
,discard_sub_lwe_ciphertext_vector
engines inCoreEngine
- Add entities for GGSW ciphertexts in the Fourier domain, and implement them in the core backend
- Implement conversion engines to convert a GGSW from the standard to the Fourier domain in
CoreEngine
- Implement the GGSW encryption trait in
CoreEngine
- Implement the external product between a GLWE and a GGSW ciphertext in
CoreEngine
- Add
GlweCiphertextTrivialEncryptionEngine
andGlweCiphertextTrivialDecryptionEngine
traits and their implementation inCoreEngine
- Add
GlweCiphertextVectorTrivialEncryptionEngine
andGlweCiphertextVectorTrivialDecryptionEngine
traits and their implementation inCoreEngine
- Add
LweCiphertextTrivialEncryptionEngine
and LweCiphertextTrivialDecryptionEnginetraits and their implementation in
CoreEngine` - Add
LweCiphertextVectorTrivialEncryptionEngine
and LweCiphertextVectorTrivialDecryptionEnginetraits and their implementation in
CoreEngine` - Add an error for unsupported polynomial size in
CoreEngine
- Implement the conversion of GLWE ciphertexts from the standard to the Fourier domain in
CoreEngine
Internal refactoring:
- The dependency to
bincode
is removed - A new companion library containing generic fixtures for the
concrete-core
operators is added. This fixture allows to sample and test any implementation of an engine trait. - A new companion library using the generic fixtures to systematically test the public engines for all backends is added.
Bug fixes:
- When generating large bootstrap keys, we used to reach the bounds of the generator. This is due to the rejection sampling algorithm used to sample gaussian variates: we did not provision enough randomness to generate one sample (86) bytes. We now provision (832) bytes, which solves the issue.
- The
CoreEngine
implementation of theLweCiphertextDiscardingDecryptionEngine
contained a bug. The decryption was added to the output, while it is supposed to be a discarding operation.
Links
- Check our community update about the release here
- User documentation