I have a CKKS ciphertext containing [a, b, c, d] and I want to get these 4 ciphertexts : [a, a, a, a]; [b, b, b, b]; [c, c, c, c]; [d, d, d, d].

Is there a more efficient way than repeating the following process for each slot:

  • multiplying it with a binary mask [1, 0, 0, 0] to obtain [a, 0, 0, 0]
  • (rotate & add) 3 times each the multiplied ciphertext to get [a, a, a, a]

I was advised to look at multiplication with a specific polynomial, do you have some ideas ?

Thank you in advance

NB: I called it ciphertext extension as I didn't came up with a more precise term.. :/

  • $\begingroup$ At least it is clear that you don't need to rotate three times, but only two: one rotation by one position and add to get [a, a, 0, 0], then one rotation by two positions to get [0, 0, a, a] and add to get [a, a, a, a]. $\endgroup$ May 18 at 14:07

Your Answer

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

Browse other questions tagged or ask your own question.