arnaucube
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
2 weeks ago
arnaucube
13abadf6e1
tfhe: add bootstrapping impl
add initial version of bootstrapping implementation
3 weeks ago
arnaucube
2c20a2ed0e
tfhe: add blind_rotation & lookup table computation
3 weeks ago
arnaucube
7bfcf6f7c1
add TGGSW & TGLev impl
3 weeks ago
arnaucube
8e2e522f8a
arith/torus: add left_rotate & mod_switch
3 weeks ago
arnaucube
0617b8b9ff
tfhe: add TGLWE.sample_extraction
3 weeks ago
arnaucube
752525a1c6
add TGLWE logic (pending to abstract it with TLWE to reuse part of the impl)
1 month ago
arnaucube
55c892cc47
add TLWE key_switching
1 month ago
arnaucube
b1b201043f
tfhe: add CMux gate
1 month ago
arnaucube
e4717da5b0
tfhe: add external prod TGSW * TLWE, also TLev * Vec<T64>
1 month ago
arnaucube
f053e9a904
add TGSW encryption & decryption
1 month ago
arnaucube
4f89caef1e
fit T64 into the 'Ring' trait, this is to use it in tfhe instead of using Tn<1> which is more tedious
1 month ago
arnaucube
81306edf05
fusion TFHE to use GFHE underthehood
1 month ago
arnaucube
87da85a035
adapt gfhe to work with Ring trait, so that it can work with Rq & Tn (for TFHE)
1 month ago
arnaucube
4790fdbb3b
tfhe: ciphertext-plaintext multiplication
1 month ago
arnaucube
f0745da902
add TLWE ciphertexts addition, substraction, plaintext(constant)-addition
1 month ago
arnaucube
fd5c4124ea
TLev encryption & decryption
1 month ago
arnaucube
0ca73ac505
(TFHE): add TLWE encryption & decryption
1 month ago
arnaucube
d60eb1dff1
add discretized torus & 𝕋_<N,q>[X]; organize a bit arith crate
1 month ago
arnaucube
188bc7fa7f
implement GLWE key switching
1 month ago
arnaucube
1e2ea824fd
implement GLev encryption & decryption
1 month ago
arnaucube
4a082b9187
add modulus switching to GLWE ciphertexts (and Zq,Rq)
1 month ago
arnaucube
c73ff20931
add GLWE ciphertext-plaintext mult
1 month ago
arnaucube
92b6f50ccc
add GLWE ciphertext-ciphertext addition, and ciphertext-plaintext addition
1 month ago
arnaucube
2998f1761c
generalized-fhe: add GLWE encryption & decryption
1 month ago
arnaucube
17b1e9ed43
add Ring trait, adapt R & Rq to it; add TR (tuple_ring)
1 month ago
arnaucube
84c54e8edd
ckks addition & substraction of ciphertexts
1 month ago
arnaucube
6090116a8b
add ckks encrypt & decrypt
1 month ago
arnaucube
a8117140fc
implement CKKS encoder & decoder
1 month ago
arnaucube
267422a3b5
add arith::{complex, matrix} primitives
1 month ago
arnaucube
b968310ce1
polish, tensor & mul with relinearization works for some parameters choice
2 months ago
arnaucube
19457c98dd
mv arithmetic arith
2 months ago
arnaucube
7740a3ef3e
work on tensor, fix mul by constant(plaintext)
2 months ago
arnaucube
d2fc32ac0c
add wip version of tensor & relinearization
2 months ago
arnaucube
f3a368ab6a
add ciphertext-by-const (plaintext) addition & mult
2 months ago
arnaucube
9a7fcb08d0
add BFV newkey, encrypt, decrypt, and homomorphic addition impl
2 months ago
arnaucube
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 .
2 months ago
arnaucube
182fd518fe
add polynomial ring (Rq) impl
2 months ago
arnaucube
69a7a81537
add Zq arithmetic impl
2 months ago
arnaucube
8db7631f95
init repo
2 months ago