Algorithm 1: The General Unbounded FHE Scheme without Noises

• Secret Key: One selects m pairwise relatively prime ideal lattices I 1 , I 2 , ⋯ , I m in ℤ n as the decryption key.

• Public Key: Let t i = t ( I i ) be the one dimensional modulus of I i ( 1 ≤ i ≤ m ) . The plaintexts space is the direct sum of ring P = ⊕ i = 1 m     ℤ t i , the addition and multiplication in P are given by

( a 1 , a 2 , ⋯ , a m ) + ( b 1 , b 2 , ⋯ , b m ) = ( a 1 + b 1 , a 2 + b 2 , ⋯ , a m + b m ) ,

( a 1 , a 2 , ⋯ , a m ) ⋅ ( b 1 , b 2 , ⋯ , b m ) = ( a 1 b 1 , a 2 b 2 , ⋯ , a m b m ) .

The public key for encryption is { A 1 , A 2 , ⋯ , A m } ⊂ ℤ n , and each A i is given by (2.5).

• Encryption: For any plaintext u = ( u 1 , u 2 , ⋯ , u m ) ∈ P = ⊕ i = 1 m     ℤ t i , the encryption function f is given by

c = f ( u ) = u 1 ¯ ⊗ A 1 + u 2 ¯ ⊗ A 2 + ⋯ + u m ¯ ⊗ A m , (2.6)

where u i ¯ is the embedding of u i .

• Decryption: For any ciphertext c ∈ ℤ n , we use the secret key I 1 , I 2 , ⋯ , I m to decrypt c. Since for every i, 1 ≤ i ≤ m , we have c ≡ u i ¯ ( mod I i ) , and c mod I i is a unique vector in the orthogonal parallelepiped F ( I i ) of I i , thus one has c mod I i = u i ¯ , and by (2.3), we have

f − 1 ( c ) = ( u 1 , u 2 , ⋯ , u m ) = u .