Replies: 3 comments
-
Hi, Sorry for the slow answer. The parameter selection in general is a complex process and many optimizations are possible depending on the application. If you're not familiar the basics of CKKS, I'd recommend you to read the original paper and the RNS-variant. That said, usually the moduli size given in Usually, the rest of the primes are picked s.t. they are close to the scale. For instance, the values in your example (45) match the value Without going into too much detail, you also the size of the auxiliary prime(s)
TL;DR The range is Note that more complex techniques allowing the use of different prime sizes exist, e.g. scale management systems. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your answer. I noticed that in the params.go file, |
Beta Was this translation helpful? Give feedback.
-
Indeed, my previous answer was a simplification. In practice in Lattigo we use a generalised version of the RNS decomposition described in this paper: https://eprint.iacr.org/2019/688.pdf. The answer to your question is in Section 3. In short, if you have |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I noticed in the example ckks, LogQ: []int{55, 45, 45, 45, 45, 45, 45, 45}, how are these numbers 55,...,45 chosen and what is their range? Can I choose 28 or 29?
Beta Was this translation helpful? Give feedback.
All reactions