Commit Graph

107 Commits

Author SHA1 Message Date
Jean-Philippe Bossuat
e2fd203d81 staticcheck 2020-12-16 11:15:57 +01:00
Jean-Philippe Bossuat
bdf9aaa1d6 replaced math/rand in tests by crypto/rand 2020-12-14 15:09:41 +01:00
Jean-Philippe Bossuat
db91eec916 [bfv] added special-purpose plaintexts encodings (#74)
* [bfv] added PlaintextRingT and PlaintextMul types
* [bfv] enhanced bfv.Encoder interface

Co-authored-by: Christian M <christian.mouchet@epfl.ch>
2020-12-11 14:06:55 +01:00
Jean-Philippe Bossuat
b622884be6 [ckks] API improvements and documentation (#80)
[ckks/dckks] : API changes:
- RotateColumns -> Rotate
- EvaluateChebySpecial is removed. Now the user needs to do the change of variable before the evaluation.
- Added MultByGaussianInteger/MultByGaussianIntegerAndAdd
- Encoder now takes logSlots instead of slots. This forbids giving zero slots or a non power of two slot number.
- Improved API documentation
- added the RescaleNew method to the ckks.Evaluator interface (closes #83)

Co-authored-by: ChristianMct <christian.mouchet@epfl.ch>
2020-12-02 13:48:53 +01:00
Jean-Philippe Bossuat
f023ff529d [ckks] polynomial evaluation return an error when ciphertext level doesn't enable full evaluation (closes #71)
In addition to the partially evaluated result, the homomorphic polynomial evaluation methods return an error if the ciphertext level does not enable full evaluation.
2020-11-06 16:48:47 +01:00
Christian M
1628ae0dbf changed the import path for v2 2020-10-09 12:30:31 +02:00
Juan R. Troncoso
112b2bda8d Revised documentation of DBFV examples 2020-10-07 03:10:15 +02:00
Jean-Philippe Bossuat
3c1e0b698a [examples] : dbfv/psi : added comments. 2020-10-07 00:23:10 +02:00
Juan R. Troncoso
258dd1538b Revised README and documentation of the examples 2020-10-07 01:59:22 +02:00
Jean-Philippe Bossuat
5ba0f09b58 [bfv/ckkd] : Moduli internals are now public 2020-10-02 12:33:02 +02:00
Christian M
eb45fefb1c added bootstrapping example to make test target 2020-09-24 17:01:57 +02:00
Jean-Philippe Bossuat
b635054df9 [ckks] : better tests verification 2020-09-14 14:42:14 +02:00
Jean-Philippe Bossuat
b00479b420 [bfv/ckks] : renamed "xxx"Element, ckks : made verifytestvector public (for the examples)
golint
2020-09-14 11:54:30 +02:00
Jean-Philippe Bossuat
4566ce1f85 [ckks] : much faster generation of the rotation index needed for the bootstrapping keys 2020-09-10 18:56:55 +02:00
Christian M
55b378485d [ckks] streamlined the bootstrapping key generation and Bootstrapper public API 2020-09-10 17:53:04 +02:00
Jean-Philippe Bossuat
4a33b51666 [dckks] : test.Short(), fixed examples, fixed experiments, removed fmt.Print in test of Ring 2020-09-10 14:51:40 +02:00
Jean-Philippe Bossuat
5016a59e36 [ckks] : hardcoded default bootstrapp parameters 2020-09-09 23:18:46 +02:00
Christian M
32a337334b [ring] updated variable names for the ring.Context -> ring.Ring refactoring 2020-09-09 15:00:34 +02:00
Christian M
7c8e8ff58d [ring] renamed ring.Context to ring.Ring 2020-09-08 16:21:46 +02:00
Jean-Philippe Bossuat
8be869a975 Merge branch 'dev_v1.4.0' into dev_v1.4.0_bootstrapp 2020-09-06 19:20:06 +02:00
Jean-Philippe Bossuat
ed59b8f732 [ckks] new parameters API 2020-09-06 00:08:42 +02:00
Christian M
f4adb1a613 [bfv/ckks] unexporting the fields of bfv.Parameters 2020-09-03 14:21:43 +02:00
Christian M
3871936fda [dbfv/dckks] two-rounds relinearization key generation 2020-09-03 13:54:53 +02:00
Jean-Philippe Bossuat
d62895e33d CKKS : updated polynomial evaluation in standard basis with the scale invariant BSGS algo 2020-08-26 15:08:18 +02:00
Jean-Philippe Bossuat
670433a63c Merge branch 'dev_v1.4.0' into dev_v1.4.0_bootstrapp 2020-06-22 17:09:54 +02:00
Christian M
891b9455cd [sampling] explicit mention of Montgomery form in sampler pointer name 2020-06-22 11:43:20 +02:00
Elie Daou
448f9a2299 [sampling] remove Read***NTT functions 2020-06-20 14:24:49 +02:00
Elie Daou
fc39b9e191 [sampling] gaussian and uniform samplers interface simplication 2020-06-15 00:50:22 +02:00
Christian M
7e3dc727b1 bootstrapping experiment is ready to run 2020-06-11 11:36:48 +02:00
Christian M
b98d1d0d5a [sampling] ternary sampler interface reduction 2020-06-08 20:11:23 +02:00
Elie Daou
4961924ca3 [sampling] refactor sampling function names 2020-06-06 01:30:18 +02:00
Elie Daou
0c93b6313e [sampling] remove ring CRPGenerator 2020-06-06 00:37:22 +02:00
Elie Daou
823468ab1b [sampling] migrate all samplers off crypto/rand 2020-06-04 00:19:06 +02:00
Elie Daou
cc50bccf1f [utils] Clean up PRNG interface 2020-06-02 11:38:50 +02:00
Christian M
a77c13bbbc Merge branch 'dev_v1.4.0_bootstrapp' of ssh://github.com/ldsec/lattigo-private into dev_v1.4.0_bootstrapp 2020-05-25 18:49:15 +02:00
Elie Daou
61aa8931e2 [utils] Add osrand prng 2020-05-15 12:36:21 +02:00
Jean-Philippe Bossuat
47e89020c3 Merge branch 'dev_v1.4.0' into dev_v1.4.0_bootstrapp 2020-04-25 22:29:55 +02:00
Jean-Philippe Bossuat
758e501f91 Utils : changed PRNG to use XOF from blake2b
Ring : added samplegaussian to PRNG, reduced the memory allocation of sampleuniform and samplegaussian, fixed a pointer error in samplegaussian
2020-04-16 23:28:56 +02:00
Jean-Philippe Bossuat
f73550be0e Merged with dev_v1.4.0 adn added bootstrapp example 2020-04-02 18:26:35 +02:00
Jean-Philippe Bossuat
4d406749fe ckks : params revamp 2020-03-30 15:55:00 +02:00
Jean-Philippe Bossuat
4c1ad7c0ae Guidelines review BFV : 2/14 + params revamp 2020-03-30 14:52:08 +02:00
Jean-Philippe Bossuat
a4b5e7b61a Reverted the keyswitch to the previous state 2020-03-24 11:09:14 +01:00
Jean-Philippe Bossuat
7d017138f8 updated example 2020-03-04 00:31:58 +01:00
Jean-Philippe Bossuat
c71518d6a3 example 2020-03-02 15:07:59 +01:00
Christian Mouchet
17b8ba890f Merge branch 'dev_v1.3.0' into encryptor-interface 2019-12-18 14:28:10 +01:00
Jean-Philippe Bossuat
710f70727c ckks : keygenerator interface 2019-12-17 17:41:52 +01:00
Jean-Philippe Bossuat
6420cbe004 ckkks : envaluator interface 2019-12-17 17:33:54 +01:00
Jean-Philippe Bossuat
6d19e61e0e Fixes
BFV/CKKS : ciphertext marshaling now properly works when the target is a ciphertext that isnt a bfv or ckks element.

BFV/CKKS : API change on key-generator, Gen is now a prefix to indicate that there is sampling, while New is a prefixe to indicate the creation of an empty struct.
2019-12-17 15:54:38 +01:00
Christian Grigis
fc7a6cea5e ckks: change Decryptor to an interface 2019-12-16 17:06:08 +01:00
Christian Grigis
92dcdc9700 ckks: change Encryptor to an interface 2019-12-16 17:04:57 +01:00