Single-party-HE Examples
Applications
Application examples are examples showcasing specific capabilities of the library on scaled-down real world scenarios.
Binary computations
bin_blind_rotations: an example showcasing the evaluation of the sign function using blind rotations on RLWE ciphertexts.
Integer computations
int_ride_hailing: an example on privacy preserving ride hailing.int_vectorized_OLE: an example on vectorized oblivious linear evaluation using an RLWE trapdoor.
Real/Complex computations
-
reals_bootstrapping: a series of examples showcasing the capabilities of the bootstrapping for fixed point arithmetic.basics: an example showcasing the basic capabilities of the bootstrapping.high_precision: an example showcasing high-precision bootstrapping.slim: an example showcasing slim bootstrapping, i.e. re-ordering the steps of the bootstrapping.
-
reals_scheme_switching: an example showcasing scheme switching betweenckksandrgswto complement fixed-point arithmetic with lookup tables. -
reals_sigmoid_chebyshev: an example showcasing polynomial evaluation of a Chebyshev approximation of the sigmoid. -
reals_sigmoid_minimax: an example showcasing polynomial evaluation of a minimax approximation of the sigmoid. -
reals_vectorized_polynomial_evaluation: an example showcasing vectorized polynomial evaluation, i.e. evaluating different polynomials in parallel on specific slots.
Templates
Templates are files containing the basic instantiation, i.e. parameters, key-generation, encoding, encryption and decryption.
reals: a template forckks.int: a template forbgv.
Tutorials
Tutorials are examples showcasing the basic capabilities of the library.
reals: a tutorial on all the basic capabilities of the packageckks.
Multiparty-HE Examples
int_psi: an example showcasing the $N\text{-out-of-}N$-threshold scheme in a private set intersection scenario.int_pir: an example showcasing the $t\text{-out-of-}N$-threshold scheme in a private information retrieval scenario.thresh_eval_key_gen: an example showcasing the generation of a large set of evaluation-keys in the $t\text{-out-of-}N$-threshold scheme.
Parameters
The params.go file contains several sets of example parameters for both bgv and ckks.
These parameter are chosen to represent several degrees of homomorphic capacity for a fixed 128-bit security
(according to the standard estimates at the time of writing). They do not represent a set of default parameters
to be used in real HE applications. Rather, they are meant to facilitate quick tests and experimentation
with the library.