22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The computation needed to compute the tensored ciphertext c 3 is Õ(dn2 j log q j). For the RLWE instantiation,<br />

since n j = 1 and since (as we will see) log q j depends logarithmically on the security parameter and<br />

linearly on L, the computation here is only quasi-linear in the security parameter. For the LWE instantiation,<br />

the computation is quasi-quadratic.<br />

4.3 Correctness and Performance of FHE.Refresh<br />

FHE.Refresh consists of three steps: Expand, Switch Moduli, and Switch Keys. We address each of these<br />

steps in turn.<br />

Correctness and Performance of the Expand Step. The Expand step of FHE.Refresh takes as input a long<br />

ciphertext c under the long tensored key s ′ j = s j ⊗ s j for modulus q j . It simply applies the Powersof2<br />

transformation to c to obtain c 1 . By Lemma 2, we know that<br />

〈<br />

Powersof2(c, qj ), BitDecomp(s ′ j, q j ) 〉 = 〈 c, s ′ 〉<br />

j mod qj<br />

i.e., we know that if s ′ j decrypts c correctly, then s′′ j decrypts c 1 correctly. The noise has not been affected<br />

at all.<br />

If implemented naively, the computation in the Expand step is Õ(dn2 j log2 q j ). The somewhat high<br />

computation is due to the fact that the expanded ciphertext is a ( ( n j +1) 2 · ⌈log qj ⌉)-dimensional vector over<br />

R q .<br />

However, recall that s j is drawn using the distribution χ – i.e., it has small coefficients of size basically<br />

independent of q j . Consequently, s ′ j also has small coefficients, and we can use this a priori knowledge<br />

in combination with an optimized version of BitDecomp to output a shorter bit decomposition of s ′ j – in<br />

particular, a ( ( n j +1) 2 · ⌈log q<br />

′<br />

j ⌉)-dimensional vector over R q where q j ′ ≪ q j is a bound (with overwhelming<br />

probability) on the coefficients of elements output by χ. Similarly, we can use an abbreviated version of<br />

Powersof2(c, q j ). In this case, the computation is Õ(dn2 j log q j).<br />

Correctness and Performance of the Switch-Moduli Step. The Switch Moduli step takes as input a ciphertext<br />

c 1 under the secret bit-vector s ′′<br />

j for the modulus q j, and outputs the ciphertext c 2 ← Scale(c 1 , q j , q j−1 , 2),<br />

which we claim to be a ciphertext under key s ′′<br />

j for modulus q j−1. Note that s ′′<br />

j is a short secret key, since it<br />

is a bit vector in R t j<br />

2 for t j ≤ ( n j +1) 2 · ⌈log qj ⌉. By Corollary 1, and using the fact that l 1 (s ′′<br />

j ) ≤ √ d · t j , the<br />

following is true: if the noise of c 1 has length at most B < q j /2 − (q j /q j−1 ) · d · γ R · t j , then correctness<br />

is preserved and the noise of c 2 is bounded by (q j−1 /q j ) · B + d · γ R · t j . Of course, the key feature of this<br />

step for our purposes is that switching moduli may reduce the length of the moduli when q j−1 < q j .<br />

We capture the correctness of the Switch-Moduli step in the following lemma.<br />

Lemma 8. Let c 1 be a ciphertext under the key s ′′<br />

j = BitDecomp(s j ⊗ s j , q j ) such that e j ← [〈c 1 , s ′′<br />

j 〉] q j<br />

has length at most B and m = [e j ] 2 . Let c 2 ← Scale(c 1 , q j , q j−1 , 2), and let e j−1 = [〈c 2 , s ′′<br />

j 〉] q j−1<br />

. Then,<br />

e j−1 (the new noise) has length at most (q j−1 /q j ) · B + d · γ R · (n j +1) 2 · ⌈log qj ⌉, and (assuming this noise<br />

length is less than q j−1 /2) we have m = [e j−1 ] 2 .<br />

The computation in the Switch-Moduli step is Õ(dn2 j log q j), using the optimized versions of BitDecomp<br />

and Powersof2 mentioned above.<br />

Correctness and Performance of the Switch-Key Step. Finally, in the Switch Keys step, we take as input a<br />

ciphertext c 2 under key s ′′<br />

j for modulus q j−1 and set c 3 ← SwitchKey(τ s ′′<br />

j →s , c j−1 2, q j−1 ), a ciphertext under<br />

the key s j−1 for modulus q j−1 . In Lemma 3, we proved the correctness of key switching and established<br />

that the noise grows only by the additive factor 2 〈BitDecomp(c 2 , q j−1 ), e〉, where BitDecomp(c 2 , q j−1 ) is<br />

14<br />

2. Fully Homomorphic Encryption without Bootstrapping

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!