Commit Graph

88 Commits

Author SHA1 Message Date
Jean-Philippe Bossuat
9aa4b1f1e2 Dev serialization (#64)
* Added compressed serialization for GLWECiphertext + Ciphertext decompression

* Added compressed serialization for GGLWECiphertext & GLWESwitchingkey

* generalized automorphism test

* Removed ops on scalar_znx, replaced by as_vec_znx/as_vec_znx_mut and then call op on vec_znx

* Added tests for automorphism key encryption

* Added tensorkey compressed

* added ggsw compressed
2025-08-12 17:43:28 +02:00
Jean-Philippe Bossuat
0e0745065e Add Hardware Abstraction Layer (#56) 2025-08-08 19:22:42 +02:00
Jean-Philippe Bossuat
07a1d7227e More fixes 2025-07-15 20:18:45 +02:00
Jean-Philippe Bossuat
a8e8743b50 Various fixes 2025-07-15 20:09:37 +02:00
Jean-Philippe Bossuat
ff84e7e859 Revert "Fix glwe/test_fft64/encrypt_sk for case k_pt < basek"
This reverts commit 30b5edc536.
2025-07-15 19:51:21 +02:00
Jean-Philippe Bossuat
90bb0ba60f Merge remote-tracking branch 'origin/main' into jay/fhe-vm-fixes 2025-07-15 17:46:56 +02:00
Jean-Philippe Bossuat
52a6a130a5 Fixes after meeting 2025-07-11 13:03:11 +02:00
Janmajaya Mall
790b2c2d91 Merge branch 'dev_blind_rotate' into jay/fhe-vm-fixes 2025-07-09 16:54:00 +05:30
Janmajaya Mall
64edc869d0 Two changes:
- Fix setting `k` in `GlweOps`
- Improve GLWEPacker API avoid accumulating beyond limit (#50)
2025-07-09 16:23:56 +05:30
Jean-Philippe Bossuat
38df06f7ab Fixed lut generation 2025-07-08 18:50:04 +02:00
Jean-Philippe Bossuat
0e65df9795 export blind rotation 2025-07-08 17:00:50 +02:00
Jean-Philippe Bossuat
2e0e7e11b4 Enforce extension factor to be a power of two 2025-07-08 13:54:20 +02:00
Jean-Philippe Bossuat
af5bbbb55d fixed modulus switching rounding 2025-07-08 13:48:51 +02:00
Jean-Philippe Bossuat
f7c94cd84a fixed standard binary cggi blind rotation & fixed GLWECiphertext::external_product_scratch_space returning too small values 2025-07-08 13:37:35 +02:00
Jean-Philippe Bossuat
992cb3fa37 Added missing tests for CGGI & added standard blind rotation 2025-07-08 13:23:38 +02:00
Jean-Philippe Bossuat
5234c3fc63 Added LWE-GLWE conversion & LWE Keyswitch, improved LUT generation 2025-07-08 12:49:24 +02:00
Janmajaya Mall
b99f43aa0f Make GLWECiphertextToRef/{ToMut} implement Infos 2025-07-08 13:53:43 +05:30
Janmajaya Mall
463731948d Bug fixes
- fixed `encoding.rs/decode_coeff_i64` for the case `k < basek2`
- `glwe/external_product.rs/external_product_scratch_space` did not allocate enough space for [`a_dft`](829b8be610/core/src/glwe/external_product.rs (L83)) when `k_out < k_ggsw`. Fixed by replacing `in_size` with `ggsw_size`.
- `glwe/ops.rs/add` sets `basek` and `k`of `self` GLWECiphertext whic is invalid because the `size` which depends on `inner` data remains unchanged.
- (not a fix) expose `backend` from `core`.
2025-07-06 12:40:08 +05:30
Janmajaya Mall
30b5edc536 Fix glwe/test_fft64/encrypt_sk for case k_pt < basek 2025-07-04 17:32:19 +05:30
Jean-Philippe Bossuat
e8454cd5f1 small fix on scratch space size 2025-07-03 11:39:46 +02:00
Jean-Philippe Bossuat
81fb710165 wip on extended br + bug fixing 2025-07-03 11:38:43 +02:00
Jean-Philippe Bossuat
c98bf75b61 Fixed lut & added test for lut 2025-07-02 12:25:22 +02:00
Jean-Philippe Bossuat
52154d6f8a wip CGGI BR for extended LUT 2025-06-20 11:00:04 +02:00
Jean-Philippe Bossuat
4c1a84d702 Added support for arbitrary extended LUT 2025-06-19 16:33:47 +02:00
Jean-Philippe Bossuat
6a006b442a working block binary BR 2025-06-18 22:23:32 +02:00
Jean-Philippe Bossuat
829b8be610 wip on BR + added enc/dec for LWE 2025-06-18 17:34:07 +02:00
Jean-Philippe Bossuat
e8cfb5e2ab Reorganized other crates 2025-06-17 12:39:36 +02:00
Jean-Philippe Bossuat
4d4b43a4e5 Re-organized code for glwe testing 2025-06-17 12:12:12 +02:00
Jean-Philippe Bossuat
989ea077a9 Code organisation for glwe 2025-06-17 12:12:12 +02:00
Jean-Philippe Bossuat
ec4253bb1c Added LWESecret 2025-06-17 12:10:56 +02:00
Jean-Philippe Bossuat
d5dc9e6902 Fixed block binary secret generation & added CGGI blind rotation key generation 2025-06-17 12:10:56 +02:00
Jean-Philippe Bossuat
d826fcd5c8 Added binary key distributions 2025-06-17 12:10:56 +02:00
Jean-Philippe Bossuat
c77a819653 Added mat_znx_dft_mul_x_pow_minus_one 2025-06-17 12:10:56 +02:00
Jean-Philippe Bossuat
4455afdabd factored out blackbox in benchmarks 2025-06-17 09:52:15 +02:00
Jean-Philippe Bossuat
b93e011347 fixed automorphism on gglwe for k_out < k_in 2025-06-17 09:46:22 +02:00
Jean-Philippe Bossuat
ca19def72f typo 2025-06-17 09:33:35 +02:00
Jean-Philippe Bossuat
4753b73cc7 removed div_ceil 2025-06-17 09:33:04 +02:00
Jean-Philippe Bossuat
e6ec588d6d typo 2025-06-17 09:20:36 +02:00
Jean-Philippe Bossuat
655b22ef21 Small optimization + more fixes 2025-06-11 14:31:32 +02:00
Jean-Philippe Bossuat
a673b84047 various bug fixes 2025-06-11 14:21:48 +02:00
Jean-Philippe Bossuat
113231da55 fixed all tests 2025-06-08 17:57:04 +02:00
Jean-Philippe Bossuat
159cd8025f Added API in poulpy for updated vmp_add (+tests) 2025-06-05 19:18:48 +02:00
Jean-Philippe Bossuat
de4a5e9bfc refactored secret key 2025-05-30 20:19:04 +02:00
Jean-Philippe Bossuat
82810a87c8 Added license 2025-05-30 11:48:04 +02:00
Jean-Philippe Bossuat
f9440c5407 Updated arguments to get scratch space size for ops 2025-05-30 09:05:07 +02:00
Jean-Philippe Bossuat
8209fb4e40 Replaced manual core structs scratch allocation by new API on Scratch 2025-05-28 15:59:49 +02:00
Jean-Philippe Bossuat
f2b671329d Added support for packing GLWE 2025-05-28 15:20:06 +02:00
Jean-Philippe Bossuat
f58d06ddf5 Added bytes_of to structs that can be created through the trait extension of Scratch 2025-05-28 15:19:52 +02:00
Jean-Philippe Bossuat
187756a495 Added extension trait for struct allocation 2025-05-28 15:11:04 +02:00
Jean-Philippe Bossuat
fa1a1fc49b added glwe ops on plaintext 2025-05-27 23:40:17 +02:00