B-4.5 Public Key Encryption

The encryption scheme in §B-4.2 assumes that it is the secret key owner who encrypts each plaintext. In this section, we explain a public key encryption scheme in which we create a public key counterpart of the secret key. Anyone who knows the public key can encrypt the plaintext in such a way that only the secret key owner can decrypt it. The high-level idea is that a portion of the components to be used in the encryption stage is pre-computed at the setup stage and published as a public key. At the actual encryption stage, the public key is multiplied by an additional randomness (U) and added to additional noise (E1,E→2) to create unpredictable randomness for each encrypted ciphertext. The actual scheme is as follows:

⟨Summary B-4.5⟩ GLWE Public Key Encryption

Initial Setup:


Encryption Input: M ∈R⟨n,t⟩, U ←$R⟨n,𝑡𝑒𝑟𝑛⟩, E1 ←χσR⟨n,q⟩, E→2 ←χσR⟨n,q⟩k

1.
Scale up M→ΔM  ∈R⟨n,q⟩
2.
Compute the following:

B = 𝑃𝐾1 ⋅U + ΔM + E1  ∈R⟨n,q⟩

D→ = 𝑃𝐾 →2 ⋅U + E→2 ∈R⟨n,q⟩k ▹ 𝑃𝐾 →2 ⋅U multiplies each element of 𝑃𝐾 →2 by U

3.
𝖦𝖫𝖶𝖤S,σ(ΔM + E𝑎𝑙𝑙) = (D→,B)  ∈R⟨n,q⟩k+1 ▹ where E𝑎𝑙𝑙 = E ⋅U + E1 −E→2 ⋅S→


Decryption Input: 𝖼𝗍 = (D→,B)  ∈R⟨n,q⟩k+1

1.
𝖦𝖫𝖶𝖤S,σ−1(𝖼𝗍) = B −D→ ⋅S→ = ΔM + E𝑎𝑙𝑙  ∈R⟨n,q⟩
2.
Scale down ⌈ΔM + E𝑎𝑙𝑙 Δ ⌋ = M  ∈R⟨n,t⟩

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

The equation in the 1st step of the decryption process is derived as follows:

𝖦𝖫𝖶𝖤S,σ−1( 𝖼𝗍 = (D→,B) ) = B −D→ ⋅S→

= (𝑃𝐾1 ⋅U + ΔM + E1) −(𝑃𝐾 →2 ⋅U + E→2) ⋅S→

= (A→ ⋅S→ + E) ⋅U + ΔM + E1 −(A→ ⋅U) ⋅S→ −E→2 ⋅S→

= (U ⋅A→) ⋅S→ + E ⋅U + ΔM + E1 −(U ⋅A→) ⋅S→ −E→2 ⋅S→

= ΔM + E ⋅U + E1 −E→2 ⋅S→

= ΔM + E𝑎𝑙𝑙 ▹ where E𝑎𝑙𝑙 = E ⋅U + E1 −E→2 ⋅S→

Security: The GLWE encryption scheme’s encryption formula (Summary B-4.2 in §B-4.2) is as follows:

𝖦𝖫𝖶𝖤S,σ(ΔM + E) = ( A→, B = A→ ⋅S→ + ΔM + E )

, where the hardness of the LWE and RLWE problems guarantees that guessing S→ is difficult given A→ and E are randomly picked at each encryption. On the other hand, the public key encryption scheme is as follows:

𝖦𝖫𝖶𝖤S,σ(ΔM + E𝑎𝑙𝑙) = ( D→ = 𝑃𝐾 →2 ⋅U + E→2, B = 𝑃𝐾1 ⋅U + ΔM + E1 )

, where 𝑃𝐾1, 𝑃𝐾 →2 are fixed and U, E1, E→2 are randomly picked at each encryption. Given the polynomial degree n is large, both schemes provide the equivalent level of hardness to solve the problem.