Practical Bootstrapping in Quasilinear Time: Jacob Alperin-Sheriff and Chris Peikert
Practical Bootstrapping in Quasilinear Time: Jacob Alperin-Sheriff and Chris Peikert
Practical Bootstrapping in Quasilinear Time: Jacob Alperin-Sheriff and Chris Peikert
1 Introduction
Bootstrapping, a central technique from the breakthrough work of Gentry [8, 7]
on fully homomorphic encryption (FHE), converts a sufficiently powerful “some-
what homomorphic” encryption (SHE) scheme into a fully homomorphic one.
This material is based upon work supported by the National Science Foundation un-
der CAREER Award CCF-1054495, by the Alfred P. Sloan Foundation, and by the
Defense Advanced Research Projects Agency (DARPA) and the Air Force Research
Laboratory (AFRL) under Contract No. FA8750-11-C-0098. The views expressed
are those of the authors and do not necessarily reflect the official policy or position
of the National Science Foundation, the Sloan Foundation, DARPA or the U.S. Gov-
ernment.
R. Canetti and J.A. Garay (Eds.): CRYPTO 2013, Part I, LNCS 8042, pp. 1–20, 2013.
c International Association for Cryptologic Research 2013
2 J. Alperin-Sheriff and C. Peikert
1
This stands in contrast with leveled FHE schemes, which can homomorphically eval-
uate a function of any a priori bounded depth, but using keys and ciphertexts whose
sizes depend on the bound. Leveled FHE can be constructed without resorting to
bootstrapping [3].
Practical Bootstrapping in Quasilinear Time 3
reasons: first, the runtimes, while asymptotically quasilinear, include very large
polylogarithmic factors. For realistic values of the security parameter, these poly-
logarithmic terms exceed the rather small (but asymptotically worse) quasilinear
overhead obtained in [3]. The second reason is that their bootstrapping oper-
ation is algorithmically very complex and difficult to implement (see the next
paragraphs for details). Indeed, while there are now a few working implementa-
tions of bootstrapping (e.g., [10, 6]) that follow the templates from [8, 7, 18, 3],
we are not aware of any attempt to implement any method having subquadratic
runtime.
(which encrypt integers modulo some p, e.g., bits) and “packed” ciphertexts
(which encrypt elements of a high-dimensional ring), and also interpolates be-
tween the two cases to handle an intermediate concept we call “semi-packed”
ciphertexts.
Our procedure for non-packed ciphertexts is especially simple and efficient.
In particular, it can work very naturally using only cyclotomic rings having
k
power-of-two index, i.e., rings of the form Z[X]/(1 + X 2 ), which admit very
fast implementations. This improves upon the method of [3], which achieves
quasilinear amortized runtime when bootstrapping Ω̃(λ) non-packed ciphertexts
at once. Also, while that method can also use power-of-two cyclotomics, it can
only do so by emulating Z2 (bit) arithmetic within Zp for some moderately large
prime p, which translates additions in Z2 into much more costly multiplications
in Zp . By contrast, our method works “natively” with any plaintext modulus.
For packed ciphertexts, our procedure draws upon high-level ideas from [13,
12], but our approach is conceptually and technically very different. Most impor-
tantly, it completely avoids the two main inefficiencies from those works: first,
unlike [13], we do not use permutation networks or any explicit permutations of
the plaintext slots, nor do we rely on a general-purpose compiler for homomor-
phically evaluating arithmetic circuits. Instead, we give direct, practically effi-
cient procedures for homomorphically mapping the coefficients of an encrypted
plaintext element into slots and vice-versa. In particular, our procedure does
not incur the large cost or algorithmic complexity of homomorphically reducing
modulo Φm (X), which was the main bottleneck in the decryption circuit of [12].
At a higher level, our bootstrapping method has two other attractive and
novel features: first, it is entirely “algebraic,” by which we mean that the full
procedure (including generation of all auxiliary data it uses) can be described as
a short sequence of elementary operations from the “native instruction set” of
the SHE scheme. By contrast, all previous methods at some point invoke rather
generic arithmetic circuits, e.g., for modular addition of values represented as
bit strings, or reduction modulo a cyclotomic polynomial Φm (X). Of course,
arithmetic circuits can be evaluated using the SHE scheme’s native operations,
but we believe that the distinction between “algebraic” and “non-algebraic” is
an important qualitative one, and it certainly affects the simplicity and concrete
efficiency of the bootstrapping procedure.
The second nice feature of our method is that it completely decouples the
algebraic structure of the SHE plaintext ring from that which is needed by the
bootstrapping procedure. In previous methods that use amortization (or “batch-
ing”) for efficiency (e.g., [17, 3, 12]), the ring and plaintext modulus of the SHE
scheme must be chosen so as to provide many plaintext slots. However, this struc-
ture may not always be a natural match for the SHE application’s efficiency or
functionality requirements. For example, the lattice-based pseudorandom func-
tion of [1] works very well with a ring Rq = Zq [X]/(X n + 1) where both q and
n are powers of two, but for such parameters Rq has only one slot. Our method
can bootstrap even for this kind of plaintext ring (and many others), while still
using batching to achieve quasilinear runtime.
Practical Bootstrapping in Quasilinear Time 5
1.2 Techniques
At the heart of our bootstrapping procedure are two novel homomorphic oper-
ations for SHE schemes over cyclotomic rings: for non-packed (or semi-packed)
ciphertexts, we give an operation that isolates the message-carrying coefficient(s)
of a high-dimensional ring element; and for (semi-)packed ciphertexts, we give
an operation that maps coefficients to slots and vice-versa.
Mapping coefficients to slots. Our second technique, and main technical inno-
vation, is in bootstrapping (semi-)packed ciphertexts. We enhance the recent
“ring-switching” procedure of [11], and use it to efficiently move “noisy” plain-
text coefficients (with respect to an appropriate decryption basis) into slots for
batch-rounding, and finally move the rounded slot values back to coefficients.
We note that all previous methods for loading plaintext data into slots used the
same ring for the source and destination, and so required the plaintext to come
from a ring designed to have many slots. In this work, we use ring-switching to
go from the SHE plaintext ring to a different ring having many slots, which is
used only temporarily for batch-rounding. This is what allows the SHE plaintext
ring to be decoupled from the rings used in bootstrapping, as mentioned above.
To summarize our technique, we first recall the ring-switching procedure of [11].
It was originally devised to provide moderate efficiency gains for SHE/FHE
schemes, by allowing them to switch ciphertexts from high-degree cyclotomic rings
to subrings of smaller degree (once enough homomorphic operations have been per-
formed to make this secure). We generalize the procedure, showing how to switch
between two rings where neither ring need be a subring of the other. The procedure
has a very simple implementation, and as long as the two rings have a large com-
mon subring, it is also very efficient (e.g., quasilinear in the dimension). Moreover,
it supports, as a side effect, the homomorphic evaluation of any function that is
linear over the common subring. However, the larger the common subring is, the
more restrictive this condition on the function becomes.
We show how our enhanced ring-switching can move the plaintext coefficients
into the slots of the target ring (and back), which can be seen as just evaluating
a certain Z-linear function. Here we are faced with the main technical challenge:
for efficiency, the common subring of the source and destination rings must be
large, but then the supported class of linear functions is very restrictive, and
certainly does not include the Z-linear one we want to evaluate. We solve this
problem by switching through a short sequence of “hybrid” rings, where adjacent
rings have a large common subring, but the initial and final rings have only the
integers Z in common. Moreover, we show that for an appropriately chosen
sequence of hybrid rings, the Z-linear function we want to evaluate is realizable
by a sequence of allowed linear functions between adjacent hybrid rings. Very
Practical Bootstrapping in Quasilinear Time 7
critically, this decomposition requires the SHE scheme to use a highly structured
basis of the ring for decryption. The usual representation of a cyclotomic ring
as Z[X]/Φm (X) typically does not correspond to such a basis, so we instead
rely on the tensorial decomposition of the ring and its corresponding bases, as
recently explored in [16]. At heart, this is what allows us to avoid the expensive
homomorphic reduction modulo Φm (X), which is one of the main bottlenecks in
previous work [12].2
Stepping back a bit, the technique of switching through hybrid rings and bases
is reminiscent of standard “sparse decompositions” for linear transformations
like the FFT, in that both decompose a complicated high-dimensional trans-
form into a short sequence of simpler, structured transforms. (Here, the simple
transforms are computed merely as a side-effect of passing through the hybrid
rings.) Because of these similarities, we believe that the enhanced ring-switching
procedure will be applicable in other domain-specific applications of homomor-
phic encryption, e.g., signal-processing transforms or statistical analysis.
Organization. Due to space restrictions, this version of the paper omits much
of the algebraic background, several proofs, and some lower-level descriptions
of our procedures; see the full version for complete details. Section 2.1 recalls
some of the algebraic background required for our constructions, and Section 2.2
recalls a standard ring-based SHE scheme and some of its natural homomorphic
operations. Section 3 defines the general bootstrapping procedure. Sections 4
and 5 respectively fill in further details of the two novel homomorphic operations
used in the bootstrapping procedure.
The full version also documents a folklore transformation between two es-
sentially equivalent ways of encoding messages in SHE schemes (namely, the
“least/most significant bit” encodings), describes an integer rounding procedure
that simplifies the one given in [12], and gives some concrete choices of rings
that our method can use in practice.
2 Preliminaries
For a positive integer k, we let [k] = {0, . . . , k − 1}. For an integer modulus q, we
let Zq = Z/qZ denote the quotient ring of integers modulo q. For integers q, q ,
we define the integer “rounding” function ·q : Zq → Zq as xq = (q /q) ·
x mod q .
2
The use of more structured representations of cyclotomic rings in [16] was initially
motivated by the desire for simpler and more efficient algorithms for cryptographic
operations. Interestingly, these representations yield moderate efficiency improve-
ments for computations “in the clear,” but dramatic benefits for their homomorphic
counterparts!
8 J. Alperin-Sheriff and C. Peikert
Cyclotomic Rings. For a positive integer m called the index, let Om = Z[ζm ]
denote the mth cyclotomic ring, where ζm is an abstract element of order m
over Q. (In particular, we do not view ζm as any particular complex root of
unity.) Theminimal polynomial of ζm over Q is the mth cyclotomic √ polynomial
Φm (X) = i∈Z∗m (X − ωm i
) ∈ Z[X], where ωm = exp(2π −1/m) ∈ C is the
principal mth complex root of unity, and the roots ωm i
∈ C range over all the
primitive complex mth roots of unity. Therefore, Om is a ring extension of degree
n = ϕ(m) over Z. (In particular, O1 = O2 = Z.) Clearly, Om is isomorphic to
the polynomial ring Z[X]/Φm (X) by identifying ζm with X, and has the “power
basis” {1, ζm , . . . , ζm
n−1
} as a Z-basis. However, for non-prime-power m the power
basis can be somewhat cumbersome and inefficient to work with. In Section 2.1
we consider other, more structured bases that are essential to our techniques.
If m|m , we can view the mth cyclotomic ring Om as a subring of Om =
Z[ζm ], via the ring embedding (i.e., injective ring homomorphism) that maps
m /m
ζm to ζm . The ring extension Om /Om has degree d = ϕ(m )/ϕ(m), and also
d automorphisms τi (i.e., automorphisms of Om that fix Om pointwise), which
∗
for each i ∈ Zm such that i = 1 (mod m). The
i
are defined by τi (ζm ) = ζm
trace function Tr = TrOm /Om : Om → Om can be defined as the sum of these
automorphisms:
TrOm /Om (a) = τi (a) ∈ Om .
i
Notice that Tr is Om -linear by definition. If Om /Om /Om is a tower of ring ex-
tensions, then the trace satisfies the composition property TrOm /Om =
TrOm /Om ◦ TrOm /Om .
An important element in the mth cyclotomic ring is
g := (1 − ζp ) ∈ Om . (1)
odd prime p|m
Later on we use the scaled trace function (m̂/m̂ ) TrR /R , which by the above
lemma maps the ideal g R to gR, and g to g.
Ol /Og ∼
= (Om1 /Og ) ⊗ (Om2 /Og ).
On the right, the ring tensor product is defined as the set of all Og -linear com-
binations of pure tensors a1 ⊗ a2 , with ring operations defined by Og -bilinearity
and the mixed-product property (a1 ⊗ a2 ) · (b1 ⊗ b2 ) = (a1 b1 ) ⊗ (a2 b2 ). The
isomorphism with Ol /Og then simply identifies a1 ⊗ a2 with a1 · a2 ∈ Ol . Note
that any a1 ∈ Om1 corresponds to the pure tensor a1 ⊗ 1, and similarly for any
a2 ∈ Om2 .
The following simple lemma will be central to our techniques.
Proof. Write Ol ∼ = Om1 ⊗ Om2 , where the common base ring Og is implicit.
Let L : (Om1 ⊗ Om2 ) → Om2 be the Og -linear function uniquely defined by
L(a1 ⊗ a2 ) = L̄(a1 ) · a2 ∈ Om2 for all pure tensors a1 ⊗ a2 . Then because
(a1 ⊗ a2 ) · b2 = a1 ⊗ (a2 b2 ) for any b2 ∈ Om2 by the mixed-product property,
L is also Om2 -linear. Finally, for any a1 ∈ Om1 we have L(a1 ⊗ 1) = L̄(a1 ) by
construction.
Ideal Factorization and Plaintext Slots. In the full version we recall the
unique factorization of prime integers into prime ideals in cyclotomic rings, and,
following [17], how the Chinese remainder theorem can yield several plaintext
“slots” that embed Zq as a subring, even for composite q.
In brief,
for any prime integer p and cyclotomic ring R, the ideal pR factors
as pR = i pei for some distinct prime ideals pi and some e ≥ 1. Moreover, for
any power q = pr where r ≥ 1, the quotient ring R/pre i embeds Zq as a subring.
By the Chinese Remainder Theorem
(CRT), the natural ring homomorphism
from Rq to the product ring i (R/pre i ) is an isomorphism. When the natural
plaintext space of a cryptosystem is Rq , we refer to the quotient rings R/prei as
the plaintext “Zq -slots” (or just “slots”), and use them to store vectors of Zq -
elements via the CRT isomorphism. With this encoding, ring operations in Rq
induce “batch” (or “SIMD”) component-wise operations on the corresponding
10 J. Alperin-Sheriff and C. Peikert
Decryption. At a high level, the decryption algorithm works in two steps: the
“linear” step simply computes v = c0 + c1 · s = pq · μ + e ∈ Rq , and the
“non-linear” step outputs v p ∈ Rp using a certain “ring rounding function”
·p : Rq → Rp . As long as the error term e is within the tolerance of the
rounding function, the output will be μ ∈ Rp . This is all entirely analogous
to decryption in LWE-based systems, but here the rounding is n-dimensional,
rather than just from Zq to Zp .
Concretely, the ring rounding function ·p : Rq → Rp is defined in terms of
the integer rounding function ·p : Zq → Zp and a certain “decryption” Z-basis
B = {bj } ofR , as follows.5 Represent the input v ∈ Rq in the decryption
basis as v = j vj · bj for some coefficients
vj ∈
Zq , then independently round
the coefficients, yielding an element vj p · bj ∈ Rp that corresponds to the
message μ ∈ Rp (under the standard embedding of Rp into Rp ).
some μ ∈ Rp such that μ = μ (mod pR ). To do this, it simply “lifts” the
input ciphertext c = (c0 , c1 ) ∈ (Rq )2 to an arbitrary c = (c0 , c1 ) ∈ (Rq )2
such that cj = cj (mod qR ), where q = dq. The second operation applies to an
encryption of a message μ ∈ Rp that is known to be divisible by some divisor d
of p, and produces an encryption of μ/d ∈ Rp/d . The operation actually leaves
the ciphertext c unchanged; it just declares the associated plaintext modulus to
be p/d (which affects how decryption is performed).
The security of the procedure described in Proposition 2.3 is based on the hard-
ness of the ring-LWE problem in S , so the dimension of S must be sufficiently
large. The procedure itself is quite simple and efficient: it first switches to a
secret key that lies in the subring S , then it multiplies the resulting ciphertext
by an appropriate fixed element of R (which is determined solely by the func-
tion L). Finally, it applies to the ciphertext the trace function TrR /S : R → S .
All of these operations are quasi-linear time in the dimension of R /Z, and very
efficient in practice. In particular, the trace is a trivial linear-time operation
when elements are represented in any of the bases we use. The ring-switching
procedure increases the effective error rate of the ciphertext by a factor of about
the square root of the dimension of R , which is comparable to that of a single
homomorphic multiplication. See [11] for further details.
m̂ g q
u= · Tr R /R · u = · μ + e ∈ Rq
m̂ g p
for some suitably small error term e ∈ R. See Section 4 further details.
This step changes the plaintext ring from Rq to Rq , and homomorphically
isolates the noisy Rq -encoding of μ. It is a null operation if the original
ciphertext was packed, i.e., if m = m .
3. Homomorphically apply the ring rounding function ·p : Rq → Rp , yield-
ing an output ciphertext that encrypts up = μ ∈ Rp . This proceeds in
three sub-steps, all of which are applied homomorphically (see Section 5 for
details):
(a) Map the coefficients uj of u ∈ Rq (with respect to the decryption basis B
of R) to the Zq -slots of a ring Sq , where S is a suitably chosen cyclotomic.
This step changes the plaintext ring from Rq to Sq . It is a null operation
if the original ciphertext was non-packed (i.e., if m = 1), because we can
let S = R = Z.
(b) Batch-apply the integer rounding function · : Zq → Zp to the Zq -slots
of Sq , yielding a ciphertext that encrypts the values μj = uj p ∈ Zp in
its Zp -slots.
This step changes the plaintext ring from Sq to Sp . It constitutes
the only non-linear operation on the plaintext, with multiplicative depth
lg p · (logp (q) − 1) ≈ log(q), and as such is the most expensive in terms
of runtime, noise expansion, etc.
(c) Reverse the map from the step 3a, sending the values μj from the Zp -
slots of Sp to coefficients with respect to the decryption basis B of Rp ,
yielding an encryption of μ = j μj bj ∈ Rp .
Practical Bootstrapping in Quasilinear Time 15
This step changes the plaintext ring from Sp to Rp . Just like step 3a,
it is a null operation for non-packed ciphertexts.
In the full version we describe a few minor variants and practical optimizations
of our basic procedure.
4 Homomorphic Trace
Here we show how to perform Step 2 of our bootstrapping procedure, which
homomorphically evaluates the scaled trace function (m̂/m̂ ) TrR /R on an en-
cryption of (g /g)u ∈ Rq , where recall that: g ∈ R , g ∈ R are as defined in
Equation (1), and (g /g) divides (m̂ /m̂); the plaintext modulus is q = (m̂ /m̂)q;
and
q
u = v = · μ + e (mod qR ),
p
where e · g ∈ g R is sufficiently short. Our goal is to show that:
1. the scaled trace of the plaintext (g /g)u is some u = pq · μ + e ∈ Rq , where
e · g ∈ gR is short, and
2. we can efficiently homomorphically apply the scaled trace on a ciphertext c
over some larger ring R = Om ⊇ R .
q
(g /g)u = (g /g)v = (g /g) ·μ+e (mod (g /g)qR ).
p
16 J. Alperin-Sheriff and C. Peikert
m̂ q
= ·μ+e (mod q R),
m̂ p
where e = (m̂/m̂ ) Tr(e · g )/g ∈ R. Therefore, after scaling down the plaintext
modulus q by an m̂ /m̂ factor (see Section 2.2), the plaintext is pq · μ + e ∈ Rq .
Moreover, e · g = (m̂/m̂ ) Tr(e · g ) ∈ gR is short because e · g ∈ g R is
short; see, e.g., [11, Corollary 2.2]. In fact, by basic properties of the decod-
ing/decryption basis (as defined in [16]) under the trace, the coefficient vector
of e with respect to the decryption basis of R is merely a subvector of the co-
efficient vector of e with respect to the decryption basis of R . Therefore, e is
within the error tolerance of the rounding function on Rq , assuming e is within
the error tolerance of the rounding function on Rq .
Now we show how to efficiently homomorphically apply the scaled trace function
(m̂/m̂ ) TrR /R to an encryption of any plaintext in Rq that is divisible by (g /g).
Note that this condition ensures that the output of the trace is a multiple of
m̂/m̂ in Rq (see Lemma 2.1), making the scaling a well-defined operation that
results in an element of Rq .
First recall that TrR /R is the sum of all ϕ(m )/ϕ(m) automorphisms of R /R,
i.e., automorphisms of R that fix R pointwise. So as mentioned in the introduc-
tion, one way of homomorphically computing the scaled trace is to homomor-
phically apply the proper automorphisms, sum the results, and scale down the
plaintext and its modulus. While this “sum-automorphisms” procedure yields
the correct result, computing the trace in this way does not run in quasilinear
time, unless the number ϕ(m )/ϕ(m) of automorphisms is only polylogarithmic.
Instead, we consider a sufficiently fine-grained tower of cyclotomic rings
where R = R(r) , R = R(0) , and each R(i) = Omi , where mi is divisible by mi−1
for i > 0. E.g., for the finest granularity we would choose the tower so that every
mi /mi−1 is prime. Notice that the scaled trace function (m̂/m̂ ) TrR /R is the
composition of the scaled trace functions (m̂i−1 /m̂i ) TrR(i) /R(i−1) , and that g /g
is the product of all g (i) /g (i−1) for i = 1, . . . , r, where g (i) ∈ R(i) is as defined
in Equation (1). So, another way of homomorphically applying the full scaled
trace is to apply the corresponding scaled trace in sequence for each level of
the tower, “climbing down” from R = R(r) to R = R(0) . In particular, if we
use the above sum-automorphisms procedure with a tower of finest granularity,
then there are at most log2 (m /m) = O(log λ) levels, and since we have assumed
Practical Bootstrapping in Quasilinear Time 17
i−1 · Zi ,
Ai−1 = Aout i · Zi
Ai = Ain (3)
two subrings E (i−1) and E (i) , which is why we need two sets Ain out
i and Ai .)
(i)
Then, we simply define L̄i to be an arbitrary E -linear function that bijectively
maps Aout in out in
i−1 to Ai . (Note that Ai−1 and Ai have the same cardinality, because
Ai−1 and Ai do.) It immediately follows that L̄i bijectively maps Ai−1 to Ai ,
because
i−1 · Zi ) = L̄i (Ai−1 ) · Zi = Ai · Zi
L̄i (Ai−1 ) = L̄i (Aout out in
Theorem 5.1. Suppose there are cyclotomic rings R = H (0) , H (1) , . . . , H (r) =
S and sets Ai ⊂ H (i) such that for all i = 1, . . . , r, we have Ai−1 = Aout i−1 · Zi
and Ai = Ain i · Z i for some sets Z i ⊂ E (i)
= H (i−1)
∩ H (i)
and Aout
i−1 , Ain
i that are
each E (i) -linearly independent and of equal cardinality. Then there is a sequence
of E (i) -linear maps L̄i : H (i−1) → H (i) , for i = 1, . . . , r, whose composition
L̄r ◦ · · · ◦ L̄1 bijectively maps A0 to Ar .
So far we have described how our desired map between plaintext rings R and S
can be expressed as a sequence of linear maps through hybrid rings. In the
context of bootstrapping, for security these plaintext rings typically need to be
embedded in some larger ciphertext rings, because the dimensions of R, S are
not large enough to securely support the very small noise used in bootstrapping.
For example, following Step 2 of our bootstrapping procedure (Section 3), we
have a ciphertext over the ring R where R = Om ⊇ R for some m of our
choice that is divisible by m. We need to choose the sequence of hybrid ciphertext
rings so that they admit suitable linear functions that induce the desired ones
on the corresponding plaintext rings. Achieving this is easy; see the full version
for details.
1. Each compositum T (i) = H (i−1) + H (i) is not too large, i.e., its dimension is
quasilinear.
2. The sets Ai−1 , Ai factor as described in Equation (3).
The main ideas are as follows: view R as the top level of a fine-grained cyclotomic
tower, and choose a target ring S as the top level of a fine-grained tower that has
sufficiently many Zq -slots at each level. Consider finest-possible factorizations of
the decryption basis B of R, and of a mod-q CRT set C of S. Then to define the
hybrid rings and sets Ai−1 , Ai , for each successive hybrid ring we “tear down”
a level from the top of the R-tower and the corresponding component of B, and
“build up” another level from the bottom of the S-tower and the corresponding
component of the CRT set C.
20 J. Alperin-Sheriff and C. Peikert
References
[1] Banerjee, A., Peikert, C., Rosen, A.: Pseudorandom functions and lattices.
In: Pointcheval, D., Johansson, T. (eds.) EUROCRYPT 2012. LNCS, vol. 7237,
pp. 719–737. Springer, Heidelberg (2012)
[2] Brakerski, Z.: Fully homomorphic encryption without modulus switching from
classical gapSVP. In: Safavi-Naini, R. (ed.) CRYPTO 2012. LNCS, vol. 7417,
pp. 868–886. Springer, Heidelberg (2012)
[3] Brakerski, Z., Gentry, C., Vaikuntanathan, V. (Leveled) fully homomorphic en-
cryption without bootstrapping. In: ICTS, pp. 309–325 (2012)
[4] Brakerski, Z., Vaikuntanathan, V.: Efficient fully homomorphic encryption from
(standard) LWE. In: FOCS, pp. 97–106 (2011)
[5] Brakerski, Z., Vaikuntanathan, V.: Fully homomorphic encryption from ring-LWE
and security for key dependent messages. In: Rogaway, P. (ed.) CRYPTO 2011.
LNCS, vol. 6841, pp. 505–524. Springer, Heidelberg (2011)
[6] Cheon, J.H., Coron, J.-S., Kim, J., Lee, M.S., Lepoint, T., Tibouchi, M., Yun,
A.: Batch fully homomorphic encryption over the integers. In: Johansson, T.,
Nguyen, P.Q. (eds.) EUROCRYPT 2013. LNCS, vol. 7881, pp. 315–335. Springer,
Heidelberg (2013)
[7] Gentry, C.: A fully homomorphic encryption scheme. PhD thesis, Stanford Uni-
versity (2009), http://crypto.stanford.edu/craig
[8] Gentry, C.: Fully homomorphic encryption using ideal lattices. In: STOC,
pp. 169–178 (2009)
[9] Gentry, C., Halevi, S.: Fully homomorphic encryption without squashing using
depth-3 arithmetic circuits. In: FOCS, pp. 107–109 (2011)
[10] Gentry, C., Halevi, S.: Implementing Gentry’s fully-homomorphic encryp-
tion scheme. In: Paterson, K.G. (ed.) EUROCRYPT 2011. LNCS, vol. 6632,
pp. 129–148. Springer, Heidelberg (2011)
[11] Gentry, C., Halevi, S., Peikert, C., Smart, N.P.: Ring switching in BGV-style
homomorphic encryption. In: Visconti, I., De Prisco, R. (eds.) SCN 2012. LNCS,
vol. 7485, pp. 19–37. Springer, Heidelberg (2012),
http://eprint.iacr.org/2012/240
[12] Gentry, C., Halevi, S., Smart, N.P.: Better bootstrapping in fully homomorphic
encryption. In: Fischlin, M., Buchmann, J., Manulis, M. (eds.) PKC 2012. LNCS,
vol. 7293, pp. 1–16. Springer, Heidelberg (2012)
[13] Gentry, C., Halevi, S., Smart, N.P.: Fully homomorphic encryption with polylog
overhead. In: Pointcheval, D., Johansson, T. (eds.) EUROCRYPT 2012. LNCS,
vol. 7237, pp. 465–482. Springer, Heidelberg (2012)
[14] Gentry, C., Halevi, S., Smart, N.P.: Homomorphic evaluation of the AES circuit.
In: Safavi-Naini, R. (ed.) CRYPTO 2012. LNCS, vol. 7417, pp. 850–867. Springer,
Heidelberg (2012)
[15] Lyubashevsky, V., Peikert, C., Regev, O.: On ideal lattices and learning with
errors over rings. J. ACM (2013); To appear Preliminary version In: Gilbert, H.
(ed.) EUROCRYPT 2010. LNCS, vol. 6110, pp. 1–23. Springer, Heidelberg (2010)
[16] Lyubashevsky, V., Peikert, C., Regev, O.: A toolkit for ring-LWE cryptography.
In: Johansson, T., Nguyen, P.Q. (eds.) EUROCRYPT 2013. LNCS, vol. 7881,
pp. 35–54. Springer, Heidelberg (2013)
[17] Smart, N.P., Vercauteren, F.: Fully homomorphic SIMD operations. Cryptology
ePrint Archive, Report 2011/133 (2011), http://eprint.iacr.org/
[18] van Dijk, M., Gentry, C., Halevi, S., Vaikuntanathan, V.: Fully homomorphic
encryption over the integers. In: Gilbert, H. (ed.) EUROCRYPT 2010. LNCS,
vol. 6110, pp. 24–43. Springer, Heidelberg (2010)