Hello,
is there a reference where I can check how the dcrtBits
and firstMod
values affects ciphertexts and calculations in CKKS?
I do not have a technical knowledge of the scheme, but I can’t find a reference to check
thank you
Hi @marc-alonso
It depends on the CKKS mode. The main paper for the CKKS modes implemented in OpenFHE is Approximate Homomorphic Encryption with Reduced Approximation Error It has noise expressions that can be used to determine dctBits
(labeled as p there) and some tables with parameters, too. CKKS-IA there corresponds to FIXEDMANUAL/AUTO, CKKS-DE to FLEXIBLEAUTO, and RE-CKKS-DE to FLEXIBLEAUTOEXT.
firstMod
should typically be slightly larger than dcrtBits
to support numbers than are larger than unity. For example, often firstMod
can be 60 while dcrtBits
is 50 to support messages of the order up to 1024 or so. By default the message is scaled around unity. I gave here a simplified description. In reality the numbers depend on sparsity of the ciphertext/encoded plaintext and other factors related to the CKKS encoding.
Thank you very much for your response!!
So, theorically, when working with values always in [-1, 1], can I reduce those values in order to build ligher ciphertexts?
Only firstMod
depends on the range (one modulus). drtBits
specifies the precision (size of all other moduli). So you can change only firstMod
.