D-3.11 Homomorphic Conjugation

As explained in Summary D-3.1 (§D-3.1), given the n 2-dimensional input vector v = (v0,v1,,vn 2 1), its corresponding n-dimensional Hermitian vector is v = (v0,v1,,vn 2 1,v¯0,v¯1,,v¯n 2 1). To compute the conjugation of v, which is essentially conjugating v, we can conjugate M(X) as follows:

v¯ = (v¯0,v¯1,,v¯n 2 1,v0,v1,,vn 2 1)

= (M(ω¯),M(ω3¯),,M(ωn1¯),M(ω),M(ω3),,M(ωn1)) where ω = e𝑖𝜋 n

= (M((ω)1),M((ω3)1),,M((ωn1)1),M(ω),M(ω3),,M(ωn1))

since ωk¯ = e𝑘𝑖𝜋 n ¯ = e𝑘𝑖𝜋 n = ωk and ωk = (ωk¯)1 for k = {1,3,,n 1}

= {M(X1)}

where X = {ω,ω3,,ωn1,ω1,ω3,,ω(n1)}= {ω,ω3,,ωn1,ω2n1,ω2n3,,ωn+1}

Therefore, homomorphic conjugation of the input vector is equivalent to updating the ciphertext (A(X),B(X)) to (A(X1),B(X1)) and then key-switching it from S(X1) S(X).

Summary D-3.11 CKKS’s Homomorphic Conjugation

Homomorphic conjugation of the input vector of a ciphertext is equivalent to the following:

1.
Update the ciphertext (A(X),B(X)) to (A(X1),B(X1)).
2.
Key-switch (A(X1),B(X1)) from S(X1) to S(X).