The LWE decryption formula is summarized as follows:
Summary B-2.3 LWE Decryption
Decryption Input:
For correct decryption, the noise should be .
During decryption, the secret key owner can subtract from because he can directly compute by using his secret key .
The reason we scaled the plaintext by is: (i) to left-shift by bits and separate it from the noise in the lower bits during encryption, whereas is essential to make it hard for the attacker to guess or ; and (ii) to eliminate in the lower bits by right-shifting it by bits without compromising in the higher bits during decryption. The process of right-shifting (i.e., scaling) the plaintext by bits followed by adding the noise is illustrated in Figure 8.
In Summary B-2.2 (§B-2.2), we assumed that divides . In this case, there is no upper or lower limit on the size of plaintext : its value is allowed to wrap around modulo indefinitely, yet the decryption works correctly. This is because any value greater than will be correctly modulo-reduced by when we do modulo reduction by during decryption.
On the other hand, suppose that does not divide . In such a case, we set the scaling factor as . Then, provided , the decryption works correctly even if is a large value that wraps around . We will show why this is so.
We can denote plaintext as , where and are some integers we use to represent the modulo wrap-around value portion of . And we set the plaintext scaling factor as . Then, the noise-added scaled plaintext value is as follows:
# by applying
# where
We treat the above noisy scaled ciphertext as , where , the maximum possible value of . In other words, we overestimate the noise caused by to , because the maximum value this term can become is less than .
Given the LWE decryption relation , we can decrypt the above message by performing:
# provided
To summarize, if we set the plaintext’s scaling factor as where does not divide , the decryption works correctly as far as the error bound holds. This error bound can break if: (1) the noise is too large; (2) the plaintext modulus is too large; and (3) the plaintext value wraps around too many times (i.e., is too large). A solution to ensure is that the ciphertext modulus is sufficiently large. To put it differently, if , then the error bound will hold.
Therefore, we can generalize the formula for the plaintext’s scaling factor in Summary B-2.2 (in §B-2.2) as where does not necessarily divide .