My question is rather practical and specific. I am trying to setup an efficient CKKS scheme in Palisade. To this end, the automatic choice for secure parameters has to be turned off and I rely on the LWE estimator which estimates the security of an LWE instance. Now, the estimator provides a security estimation for an LWE instance $$\mathrm{LWE}(n,\alpha,q)$$, where $$n$$ is the dimension/ring dimension, $$\alpha$$ depends on error distribution, and $$q$$ is the ciphertext modulus. However, in Palisade there seems to be no possibility to setup the error in CKKS (this is easily possible in BGV). This way, $$\alpha$$ remains unknown and the security can not be estimated.

Therefore, how is the error chosen in Palisade for CKKS and how can this value be accessed?

• Even if you cannot change the value of $\alpha$, I don't see how it can remain unknown, since you can always check the code and see which value is used... – Hilder Vitor Lima Pereira Nov 20 '20 at 11:44
• Yep. That's why the question is how I can access the value. Actually, I have no idea how to do that. I admit its a pretty specific question. – opag Nov 20 '20 at 12:14

In PALISADE, CKKS is configured to use $$\alpha = 8/q$$ (using the definition of $$\alpha$$ in the LWE estimator). This corresponds to the standard deviation of $$8/\sqrt{2\pi} \approx 3.19$$. This value was chosen based on the HE security standard at https://homomorphicencryption.org/standard/
You can manually change this value from 3.19 to something else by modifying $$\textbf{genCryptoContextCKKS}$$ in https://gitlab.com/palisade/palisade-release/-/blob/master/src/pke/lib/cryptocontextfactory.cpp