0
$\begingroup$

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?

$\endgroup$
2
  • $\begingroup$ 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... $\endgroup$ – Hilder Vitor Lima Pereira Nov 20 '20 at 11:44
  • $\begingroup$ 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. $\endgroup$ – opag Nov 20 '20 at 12:14
0
$\begingroup$

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

$\endgroup$
1
  • $\begingroup$ Perfect! Thanks alot. $\endgroup$ – opag Jan 5 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.