Commit Graph

21 Commits

Author SHA1 Message Date
900c42ac81 [composite-ntt] reconstruct u64 works (CRT with 3 eq'ns) 2025-09-02 18:04:34 +00:00
f95f0389cf [composite-ntt] reconstruct u32 works 2025-08-24 17:04:31 +00:00
4d4e2dab76 wip, works for values < (1<<62) 2025-08-22 20:39:35 +00:00
4dca2c6ff5 ntt: get rid of Zq and use u64 instead (>2x speed improvement) 2025-08-18 14:14:19 +00:00
fb1fb6b4e9 Rm const generics (#2)
* 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).

* bfv: get rid of constant generics (reason in previous commit)

* ckks: get rid of constant generics (reason in two commits ago)

* group ring params under a single struct

* gfhe: get rid of constant generics

* tfhe: get rid of constant generics

* polish & clean a bit

* add methods for encoding constants for ct-pt-multiplication
2025-08-14 18:32:43 +02:00
13abadf6e1 tfhe: add bootstrapping impl
add initial version of bootstrapping implementation
2025-08-03 21:24:17 +00:00
8e2e522f8a arith/torus: add left_rotate & mod_switch 2025-08-02 21:42:36 +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
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
4a082b9187 add modulus switching to GLWE ciphertexts (and Zq,Rq) 2025-07-16 18:15:51 +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
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