Commit Graph

40 Commits

Author SHA1 Message Date
d484f29b17 arith: get rid of constant generics. Reason:
using constant generics was great for allocating the arrays in the
stack, which is faster, but when started to use bigger parameter values,
in some cases it was overflowing the stack. This commit removes all the
constant generics in all of the `arith` crate, which in some cases slows
a bit the performance, but allows for bigger parameter values (on the
ones that affect lengths, like N and K).
2025-08-11 18:18:58 +00:00
13abadf6e1 tfhe: add bootstrapping impl
add initial version of bootstrapping implementation
2025-08-03 21:24:17 +00:00
2c20a2ed0e tfhe: add blind_rotation & lookup table computation 2025-08-03 19:12:47 +00:00
7bfcf6f7c1 add TGGSW & TGLev impl 2025-08-03 07:42:29 +00:00
8e2e522f8a arith/torus: add left_rotate & mod_switch 2025-08-02 21:42:36 +00:00
0617b8b9ff tfhe: add TGLWE.sample_extraction 2025-08-02 20:27:36 +00:00
752525a1c6 add TGLWE logic (pending to abstract it with TLWE to reuse part of the impl) 2025-07-28 12:14:44 +00:00
55c892cc47 add TLWE key_switching 2025-07-28 12:02:17 +00:00
b1b201043f tfhe: add CMux gate 2025-07-28 11:58:41 +00:00
e4717da5b0 tfhe: add external prod TGSW * TLWE, also TLev * Vec<T64> 2025-07-27 20:58:32 +00:00
f053e9a904 add TGSW encryption & decryption 2025-07-27 19:41:15 +00:00
4f89caef1e fit T64 into the 'Ring' trait, this is to use it in tfhe instead of using Tn<1> which is more tedious 2025-07-27 19:22:41 +00:00
81306edf05 fusion TFHE to use GFHE underthehood 2025-07-24 14:32:44 +00:00
87da85a035 adapt gfhe to work with Ring trait, so that it can work with Rq & Tn (for TFHE) 2025-07-24 16:40:57 +02:00
4790fdbb3b tfhe: ciphertext-plaintext multiplication 2025-07-22 15:42:24 +00:00
f0745da902 add TLWE ciphertexts addition, substraction, plaintext(constant)-addition 2025-07-22 15:31:03 +00:00
fd5c4124ea TLev encryption & decryption 2025-07-22 15:13:35 +00:00
0ca73ac505 (TFHE): add TLWE encryption & decryption 2025-07-22 14:59:56 +00:00
d60eb1dff1 add discretized torus & 𝕋_<N,q>[X]; organize a bit arith crate 2025-07-22 06:22:06 +00:00
188bc7fa7f implement GLWE key switching 2025-07-16 21:02:07 +02:00
1e2ea824fd implement GLev encryption & decryption 2025-07-16 18:57:32 +02:00
4a082b9187 add modulus switching to GLWE ciphertexts (and Zq,Rq) 2025-07-16 18:15:51 +02:00
c73ff20931 add GLWE ciphertext-plaintext mult 2025-07-09 18:10:43 +02:00
92b6f50ccc add GLWE ciphertext-ciphertext addition, and ciphertext-plaintext addition 2025-07-09 17:52:59 +02:00
2998f1761c generalized-fhe: add GLWE encryption & decryption 2025-07-09 17:17:19 +02:00
17b1e9ed43 add Ring trait, adapt R & Rq to it; add TR (tuple_ring) 2025-07-09 16:44:39 +02:00
84c54e8edd ckks addition & substraction of ciphertexts 2025-07-05 16:58:41 +02:00
6090116a8b add ckks encrypt & decrypt 2025-07-05 16:25:46 +02:00
a8117140fc implement CKKS encoder & decoder 2025-07-04 19:48:17 +02:00
267422a3b5 add arith::{complex, matrix} primitives 2025-07-04 19:44:48 +02:00
b968310ce1 polish, tensor & mul with relinearization works for some parameters choice 2025-06-22 23:04:28 +02:00
19457c98dd mv arithmetic arith 2025-06-22 19:15:14 +02:00
7740a3ef3e work on tensor, fix mul by constant(plaintext) 2025-06-22 18:42:50 +02:00
d2fc32ac0c add wip version of tensor & relinearization 2025-06-22 15:51:20 +02:00
f3a368ab6a add ciphertext-by-const (plaintext) addition & mult 2025-06-22 13:24:35 +02:00
9a7fcb08d0 add BFV newkey, encrypt, decrypt, and homomorphic addition impl 2025-06-21 22:13:11 +02:00
2a82a98285 add NTT implementation, and use it for the negacyclic poly ring multiplication, more details on the NTT can be found at https://github.com/arnaucube/math/blob/master/notes_ntt.pdf . 2025-06-20 23:18:30 +02:00
182fd518fe add polynomial ring (Rq) impl 2025-06-20 23:16:15 +02:00
69a7a81537 add Zq arithmetic impl 2025-06-20 23:14:41 +02:00
8db7631f95 init repo 2025-06-20 23:14:25 +02:00