B-4.3 Decryption

1.
Given the ciphertext ({Ai}i=0k1,B) where B = i=0k1(Ai Si) + Δ M + E Rn,q, compute B i=0k1(Ai Si) = Δ M + E.
2.
Round each coefficient of the polynomial Δ M + E Rn,q to the nearest multiple of Δ (i.e., round it as a base Δ number), which is denoted as Δ M + EΔ. This operation successfully eliminates E and gives Δ M. One caveat is that E’s each coefficient ei has to be ei < Δ 2 to be eliminated during the rounding. Otherwise, some of ei’s higher bits will overlap the plaintext mi coefficient’s lower bit and won’t be eliminated during decryption, corrupting the plaintext m1.
3.
Compute Δ M Δ , which is equivalent to right-shifting each polynomial coefficient in Δ M by log2Δ bits.

In summary, the GLWE decryption formula is summarized as follows:

Summary B-4.3 GLWE Decryption

Decryption Input: C = ({Ai}i=0k1,B)  Rn,qk+1

1.
𝖦𝖫𝖶𝖤S,σ1(C) = B i=0k1(Ai Si) = ΔM + E  Rn,q
2.
Scale down ΔM + E Δ mod t = M  Rn,t

For correct decryption, every noise coefficient ei of polynomial E should be: ei < Δ 2.

B-4.3.1 Discussion

1.
LWE is a special case of GLWE where the polynomial ring’s degree n = 1. That is, all polynomials in {Ai}i=0k1,{Si}i=0k1,E, and M are zero-degree polynomial constants. Instead, there are k such constants for Ai and Si, so each of them forms a vector.
2.
RLWE is a special case of GLWE where k = 1. That is, the secret key S is a single polynomial S0, and each encryption is processed by only a single polynomial A0 as a public key.
3.
Size of 𝐧: A large polynomial degree n increases the number of the secret key’s coefficient terms (i.e., Si = si,0 + si,1X +    + si,n1Xn1), which makes it more difficult to guess the complete secret key. The same applies to the noise polynomial E and the public key polynomials Ai, thus making it harder to solve the search-hard problem (§B-1.1). Also, higher-degree polynomials can encode more plaintext terms in the same plaintext polynomial M, improving the throughput efficiency of processing ciphertexts.
4.
Size of 𝐤: A large k increases the number of the secret key polynomials (S0,S1,  ,Sk) and the number of the one-time public key polynomials (A0,A1,  ,Ak), which makes it more difficult for the attacker to guess the complete secret keys. Meanwhile, there is only a single M and E polynomials per GLWE ciphertext, regardless of the size of k.
5.
Reducing the Ciphertext Size: The public key {Ai}i=0k1 has to be created for each ciphertext, which is a big size. To reduce this size, each ciphertext can instead include the seed d for the pseudo-random number generation hash function H. Then, the public key can be lively computed k 1 times upon each encryption & decryption as {H(s),H(H(s)),H(H(H(s)),  }. Note that H, by nature, generates the same sequence of numbers given the same random initial seed d.