Round each coefficient of the polynomial
to the nearest multiple of
(i.e., round it as a base
number), which is denoted as .
This operation successfully eliminates
and gives .
One caveat is that ’s
each coefficient
has to be
to be eliminated during the rounding. Otherwise, some of ’s
higher bits will overlap the plaintext
coefficient’s lower bit and won’t be eliminated during decryption, corrupting the plaintext
.
3.
Compute ,
which is equivalent to right-shifting each polynomial coefficient in
by
bits.
In summary, the GLWE decryption formula is summarized as follows:
Summary B-4.3GLWE Decryption
Decryption Input:
1.
2.
Scale down
For correct decryption, every noise coefficient
of
polynomial
should be: .
B-4.3.1 Discussion
1.
LWE is a special case of GLWE where the polynomial ring’s degree .
That is, all polynomials in ,
and
are zero-degree polynomial constants. Instead, there are
such constants for
and ,
so each of them forms a vector.
2.
RLWE is a special case of GLWE where .
That is, the secret key
is a single polynomial ,
and each encryption is processed by only a single polynomial
as a public key.
3.
Size of :
A large polynomial degree
increases the number of the secret key’s coefficient terms (i.e., ),
which makes it more difficult to guess the complete secret key. The same applies to the noise
polynomial
and the public key polynomials ,
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 ,
improving the throughput efficiency of processing ciphertexts.
4.
Size of :
A large
increases the number of the secret key polynomials
and the number of the one-time public key polynomials ,
which makes it more difficult for the attacker to guess the complete secret keys. Meanwhile, there
is only a single
and
polynomials per GLWE ciphertext, regardless of the size of .
5.
Reducing the Ciphertext Size: The public key
has to be created for each ciphertext, which is a big size. To reduce this size, each ciphertext can
instead include the seed
for the pseudo-random number generation hash function .
Then, the public key can be lively computed
times upon each encryption & decryption as .
Note that ,
by nature, generates the same sequence of numbers given the same random initial seed .