D-3.7 ModDrop

Remember that CKKS’s ciphertext decryption relation is as follows:

ΔM + E = A ⋅S + B mod ql

ΔM + E = A ⋅S + B −K ⋅ql ▹ where K ⋅ql represents a modulo reduction by ql

ModDrop is an operation of lowering the multiplicative level of a ciphertext by sequentially throwing away its modulus’s one or more prime elements (i.e., { qi qi−1} i=0L) except for the last one q0, while ensuring that the plaintext’s scaling factor Δ stays the same as before. Specifically, a ModDrop operation that decreases its modulus from ql →ql−1 is performed by updating the ciphertext (A,B) to a new one: (A′ = A mod ql−1, B′ = B mod ql−1). After the ModDrop, the ciphertext’s modulus decreases from ql →ql−1, yet its decryption relation still holds the same as follows:

A′⋅S + B′−K ⋅ql

= (A mod ql−1) ⋅S + (B mod ql−1) −K ⋅ql

= (A −KA ⋅ql−1) ⋅S + (B −KB ⋅ql−1) −K ⋅ql

= A ⋅S + B −(KA + KB + K q ql−1) ⋅ql−1 ▹ where q ql−1 is an integer (the l-the prime element of qL)

= A ⋅S + B −K′⋅ql−1 ▹ where K′ = KA + KB + K q ql−1 is an integer

= A ⋅S + B mod ql−1

= ΔM + E ▹ since ΔM + E < q0 < ql−1

As shown above, (A′,B′) mod ql−1 decrypts to the same ΔM + E, a scaled plaintext with an error.

CKKS’s ModDrop is summarized as follows:

⟨Summary D-3.7⟩ CKKS’s ModDrop

Given a CKKS ciphertext with the l-th multiplicative level 𝖱𝖫𝖶𝖤S,σ(ΔM) = (A,B) mod ql, a ModDrop operation is as follows:

(A′,B′) mod ql−1 = (A mod ql−1,B mod ql−1)

, after which the ciphertext’s multiplicative level decreases by 1, while the plaintext’s scaling factor Δ and the noise are unaffected.

D-3.7.1 Difference between Modulus Switch and ModDrop

In CKKS, both modulus switch (i.e., rescaling explained in §D-3.5.4) and ModDrop lower a ciphertext’s modulus from ql →ql−1. However, the key difference is that rescaling also decreases the plaintext’s scaling factor by the ql ql−1 ≈Δ, whereas ModDrop does not affect the plaintext’s scaling factor and the noise. Therefore, rescaling is used only during ciphertext-to-ciphertext multiplication when scaling down the plaintext’s scaling factor in the intermediate ciphertext from Δ2 →Δ. Meanwhile, ModDrop is used to reduce the modulo computation time during an application’s routine when it becomes certain that the ciphertext will not undergo any additional ciphertext-to-ciphertext multiplication (i.e., no need to further decrease the ciphertext’s modulus).