D-3.11 Homomorphic Conjugation

As explained in Summary D-3.1 (§D-3.1), given the n 2-slot input vector v→ = (v0,v1,⋯,vn 2 −1), its corresponding n-slot 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(ωn−1¯),M(ω),M(ω3),⋯,M(ωn−1)) ▹ where ω = e𝑖𝜋 n

= (M((ω)−1),M((ω3)−1),⋯,M((ωn−1)−1),M(ω),M(ω3),⋯,M(ωn−1))

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

= {M(X−1)}

▹ where X = {ω,ω3,⋯,ωn−1,ω−1,ω−3,⋯,ω−(n−1)}= {ω,ω3,⋯,ωn−1,ω2n−1,ω2n−3,⋯,ωn+1}

Therefore, homomorphic conjugation of the input vector is equivalent to updating the ciphertext (A(X),B(X)) to (A(X−1),B(X−1)) and then key-switching it from S(X−1) →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(X−1),B(X−1)).
2.
Key-switch (A(X−1),B(X−1)) from S(X−1) to S(X).