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¯n 2 1,v¯n 2 2,,v¯1,v¯0). 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,vn 2 1,,v1,v0)

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

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

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

= {M(X1)} # where X = {ω,ω3,,ωn1,ωn1¯,,ω3¯,ω¯}= {ω1,ω3,,ω2n1}

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).