Open allanhungria opened 3 years ago
In Tutorial 4 under the Encrypted Evaluation section, you should find intuitions on how to choose parameters for your computation
@youben11 Thanks, I assume you mean the following:
" Choosing the parameters isn't easy, so we list some intuition here for why we have chosen these parameters exactly:
I was looking for a more detailed analysis, rather than an intuition on why these parameters were chosen for this particular example. The thing is, I won't necessarily know ahead of time how many multiplications have to occur.
The current implementation of CKKS in SEAL doesn't allow bootstrapping, which makes it leveled, which means that for a given set of parameters, you can only perform n multiplication. If you don't know in advance the number of multiplications, then you can't choose the right parameters. You might need to look into solutions that gives you the ability to perform unlimited multiplications for your use case, mainly schemes that implements bootstrapping.
Question
I notice that there's a limitation on the number and accuracy of multiplications that TenSEAL can perform on encrypted data, and I notice that this depends on the coeff_mod_bit_sizes vector as well as the global_scale parameter, but I don't understand this dependence. Could someone please provide a general idea of this dependence? Or at least point me to a good source on the matter?
Further Information
I take a dataframe, encrypt it as a ckks_tensor, and multiply the original dataframe and the ckks_tensor by, say, 0.7. Then I decrypt it and check it against the original, and it's quite close. Then I multiply the encrypted and originals by, say, 0.5, decrypt the encrypted one, and check them, and they're quite close, again, if a little different. But then when I multiply-and-check them again they're now orders of magnitude different. I notice that the number of multiplications I'm allowed to do is the size of coeff_mod_bit_sizes; that part is fine. But how do the global_scale parameter and the first and last entries of the coeff_mod_bit_sizes vector affect the homomorphic multiplication process?
Screenshots
If applicable, add screenshots to help explain your question.
System Information
Additional Context
Add any other context about the problem here.