CiFEr
|
Data Fields | |
mpz_t | k |
mpf_t | k_square_inv |
mpz_t | twice_k |
cfe_normal_double_constant samples random values from the normal (Gaussian) probability distribution, centered on 0. This sampler works in a way that it first samples from a cfe_normal_cdt - normal distribution with fixed sigma - and then using another sampling from uniform distribution creates a candidate for the output, which is accepted or rejected with certain probability. The sampler algorithm is constant time in the sense that the sampled value is independent of the time needed. The implementation is based on paper: "FACCT: FAst, Compact, and Constant-Time Discrete Gaussian Sampler over Integers" by R. K. Zhao, R. Steinfeld, and A. Sakzad, see https://eprint.iacr.org/2018/1234.pdf. See the above paper for the argumentation of the choice of parameters and proof of precision and security.