Practical Bootstrapping in Quasilinear Time Jacob Alperin-Sheriff - - PowerPoint PPT Presentation

practical bootstrapping in quasilinear time jacob alperin
SMART_READER_LITE
LIVE PREVIEW

Practical Bootstrapping in Quasilinear Time Jacob Alperin-Sheriff - - PowerPoint PPT Presentation

Practical Bootstrapping in Quasilinear Time Jacob Alperin-Sheriff Chris Peikert School of Computer Science Georgia Tech UC San Diego 29 April 2013 1 / 21 Fully Homomorphic Encryption [RAD78,Gen09] FHE lets you do this:


slide-1
SLIDE 1

Practical Bootstrapping in Quasilinear Time Jacob Alperin-Sheriff Chris Peikert

School of Computer Science Georgia Tech

UC San Diego 29 April 2013

1 / 21

slide-2
SLIDE 2

Fully Homomorphic Encryption [RAD’78,Gen’09]

◮ FHE lets you do this: µ Eval

  • f , µ
  • f(µ)

where |f(µ)| and decryption time don’t depend on |f|. A cryptographic “holy grail” with tons of applications.

2 / 21

slide-3
SLIDE 3

Fully Homomorphic Encryption [RAD’78,Gen’09]

◮ FHE lets you do this: µ Eval

  • f , µ
  • f(µ)

where |f(µ)| and decryption time don’t depend on |f|. A cryptographic “holy grail” with tons of applications. ◮ Naturally occurring schemes are “somewhat homomorphic” (SHE): they can only evaluate functions of an a priori bounded depth. µ Eval

  • f, µ
  • f(µ)

Eval

  • g, f(µ)
  • g(f(µ))

2 / 21

slide-4
SLIDE 4

Bootstrapping: SHE → FHE [Gen’09]

◮ Homomorphically evaluates the SHE decryption function to “refresh” a ciphertext µ , allowing further homomorphic operations. sk Eval

  • f(x) = Decx( µ ) , sk
  • µ

3 / 21

slide-5
SLIDE 5

Bootstrapping: SHE → FHE [Gen’09]

◮ Homomorphically evaluates the SHE decryption function to “refresh” a ciphertext µ , allowing further homomorphic operations. sk Eval

  • f(x) = Decx( µ ) , sk
  • µ

⋆ The only known way of obtaining unbounded FHE. ⋆ Goal: Efficiency! Minimize depth d and size s of decryption “circuit.” ⋆ Best SHEs [BGV’12] can evaluate in time ˜

O(d · s · λ).

3 / 21

slide-6
SLIDE 6

Bootstrapping: SHE → FHE [Gen’09]

◮ Homomorphically evaluates the SHE decryption function to “refresh” a ciphertext µ , allowing further homomorphic operations. sk Eval

  • f(x) = Decx( µ ) , sk
  • µ

⋆ The only known way of obtaining unbounded FHE. ⋆ Goal: Efficiency! Minimize depth d and size s of decryption “circuit.” ⋆ Best SHEs [BGV’12] can evaluate in time ˜

O(d · s · λ).

◮ Intensive study, many techniques [G’09,GH’11a,GH’11b,GHS’12b], but still very inefficient – the main bottleneck in FHE, by far.

3 / 21

slide-7
SLIDE 7

Bootstrapping: SHE → FHE [Gen’09]

◮ Homomorphically evaluates the SHE decryption function to “refresh” a ciphertext µ , allowing further homomorphic operations. sk Eval

  • f(x) = Decx( µ ) , sk
  • µ

⋆ The only known way of obtaining unbounded FHE. ⋆ Goal: Efficiency! Minimize depth d and size s of decryption “circuit.” ⋆ Best SHEs [BGV’12] can evaluate in time ˜

O(d · s · λ).

◮ Intensive study, many techniques [G’09,GH’11a,GH’11b,GHS’12b], but still very inefficient – the main bottleneck in FHE, by far. ◮ The asymptotically most efficient methods on “packed” ciphertexts

[GHS’12a,GHS’12b] are very complex, and appear practically worse than

asymptotically slower methods.

3 / 21

slide-8
SLIDE 8

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime

4 / 21

slide-9
SLIDE 9

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime [BGV’12]: ˜ O(λ2) runtime, or ˜ O(λ) amortized over λ ciphertexts

4 / 21

slide-10
SLIDE 10

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime [BGV’12]: ˜ O(λ2) runtime, or ˜ O(λ) amortized over λ ciphertexts Mainly via improved SHE homomorphic capacity. Amortized method requires “exotic” plaintext rings, emulating Z2 arithmetic in Zp.

4 / 21

slide-11
SLIDE 11

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime [BGV’12]: ˜ O(λ2) runtime, or ˜ O(λ) amortized over λ ciphertexts Mainly via improved SHE homomorphic capacity. Amortized method requires “exotic” plaintext rings, emulating Z2 arithmetic in Zp. [GHS’12b]: ˜ O(λ) runtime, for “packed” plaintexts. Declare victory?

4 / 21

slide-12
SLIDE 12

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime [BGV’12]: ˜ O(λ2) runtime, or ˜ O(λ) amortized over λ ciphertexts Mainly via improved SHE homomorphic capacity. Amortized method requires “exotic” plaintext rings, emulating Z2 arithmetic in Zp. [GHS’12b]: ˜ O(λ) runtime, for “packed” plaintexts. Declare victory? Dec circuit mod Φm(X) [GHS’12a] compiler Bootstrapping Procedure

4 / 21

slide-13
SLIDE 13

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime [BGV’12]: ˜ O(λ2) runtime, or ˜ O(λ) amortized over λ ciphertexts Mainly via improved SHE homomorphic capacity. Amortized method requires “exotic” plaintext rings, emulating Z2 arithmetic in Zp. [GHS’12b]: ˜ O(λ) runtime, for “packed” plaintexts. Declare victory? Dec circuit mod Φm(X) [GHS’12a] compiler Bootstrapping Procedure ✗ Log-depth mod-Φm(X) circuit is complex, w/large hidden constants.

4 / 21

slide-14
SLIDE 14

Milestones in Bootstrapping

[Gen’09]: ˜ O(λ4) runtime [BGV’12]: ˜ O(λ2) runtime, or ˜ O(λ) amortized over λ ciphertexts Mainly via improved SHE homomorphic capacity. Amortized method requires “exotic” plaintext rings, emulating Z2 arithmetic in Zp. [GHS’12b]: ˜ O(λ) runtime, for “packed” plaintexts. Declare victory? Dec circuit mod Φm(X) [GHS’12a] compiler Bootstrapping Procedure ✗ Log-depth mod-Φm(X) circuit is complex, w/large hidden constants. ✗✗ [GHS’12a] compiler is very complex, w/large polylog overhead factor.

4 / 21

slide-15
SLIDE 15

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

5 / 21

slide-16
SLIDE 16

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

5 / 21

slide-17
SLIDE 17

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

⋆ Cf. [BGV’12]: ˜

O(λ) amortized across λ ciphertexts, exotic rings.

5 / 21

slide-18
SLIDE 18

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

⋆ Cf. [BGV’12]: ˜

O(λ) amortized across λ ciphertexts, exotic rings.

2 For “packed” (many-bit) plaintexts:

5 / 21

slide-19
SLIDE 19

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

⋆ Cf. [BGV’12]: ˜

O(λ) amortized across λ ciphertexts, exotic rings.

2 For “packed” (many-bit) plaintexts:

⋆ Based on a substantial enhancement of “ring-switching” [GHPS’12] to

non-subrings.

5 / 21

slide-20
SLIDE 20

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

⋆ Cf. [BGV’12]: ˜

O(λ) amortized across λ ciphertexts, exotic rings.

2 For “packed” (many-bit) plaintexts:

⋆ Based on a substantial enhancement of “ring-switching” [GHPS’12] to

non-subrings. ✔ Appears quite practical, avoids both main inefficiencies of [GHS’12b]: no homomorphic reduction modulo Φm(X), no generic compilation.

5 / 21

slide-21
SLIDE 21

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

⋆ Cf. [BGV’12]: ˜

O(λ) amortized across λ ciphertexts, exotic rings.

2 For “packed” (many-bit) plaintexts:

⋆ Based on a substantial enhancement of “ring-switching” [GHPS’12] to

non-subrings. ✔ Appears quite practical, avoids both main inefficiencies of [GHS’12b]: no homomorphic reduction modulo Φm(X), no generic compilation. ✔ Special purpose, completely algebraic description – no “circuits.”

5 / 21

slide-22
SLIDE 22

Our Results

Practical bootstrapping algorithms with quasi-linear ˜ O(λ) runtimes:

1 For “unpacked” (single-bit) plaintexts:

✔ Extremely simple! ✔ Uses only power-of-2 cyclotomic rings (fast, easy to implement).

⋆ Cf. [BGV’12]: ˜

O(λ) amortized across λ ciphertexts, exotic rings.

2 For “packed” (many-bit) plaintexts:

⋆ Based on a substantial enhancement of “ring-switching” [GHPS’12] to

non-subrings. ✔ Appears quite practical, avoids both main inefficiencies of [GHS’12b]: no homomorphic reduction modulo Φm(X), no generic compilation. ✔ Special purpose, completely algebraic description – no “circuits.” ✔ Completely decouples the algebraic structure of SHE plaintext ring from that needed for bootstrapping.

5 / 21

slide-23
SLIDE 23

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.)

6 / 21

slide-24
SLIDE 24

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.) Let Rq = R/qR = Zq[X]/(Xk/2 + 1) for any integer q.

6 / 21

slide-25
SLIDE 25

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.) Let Rq = R/qR = Zq[X]/(Xk/2 + 1) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for q ≫ 2. Can assume k, q = ˜ O(λ) by ring- and modulus-switching.

6 / 21

slide-26
SLIDE 26

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.) Let Rq = R/qR = Zq[X]/(Xk/2 + 1) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for q ≫ 2. Can assume k, q = ˜ O(λ) by ring- and modulus-switching. ◮ Ciphertext c = (c0, c1) ∈ R2

q encrypting µ ∈ R2 under s ∈ R satisfies

v = c0 + c1 · s ≈ q

(mod qR).

6 / 21

slide-27
SLIDE 27

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.) Let Rq = R/qR = Zq[X]/(Xk/2 + 1) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for q ≫ 2. Can assume k, q = ˜ O(λ) by ring- and modulus-switching. ◮ Ciphertext c = (c0, c1) ∈ R2

q encrypting µ ∈ R2 under s ∈ R satisfies

v = c0 + c1 · s ≈ q

(mod qR). Define the decryption function Decs(c) := ⌊v⌉ = µ ∈ R2, where “rounding” ⌊·⌉: Zq → Z2 is applied to coeffs of v = v(X).

6 / 21

slide-28
SLIDE 28

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.) Let Rq = R/qR = Zq[X]/(Xk/2 + 1) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for q ≫ 2. Can assume k, q = ˜ O(λ) by ring- and modulus-switching. ◮ Ciphertext c = (c0, c1) ∈ R2

q encrypting µ ∈ R2 under s ∈ R satisfies

v = c0 + c1 · s ≈ q

(mod qR). Define the decryption function Decs(c) := ⌊v⌉ = µ ∈ R2, where “rounding” ⌊·⌉: Zq → Z2 is applied to coeffs of v = v(X). ◮ “Unpacked” plaintext µ ∈ Z2 ⊆ R2, i.e., just a constant polynomial.

6 / 21

slide-29
SLIDE 29

Setting the Stage: Decryption in SHE [LPR’10,BV’11,BGV’12]

◮ Let R = Z[X]/(Xk/2 + 1), for k a power of 2. (The kth cyclotomic ring.) Let Rq = R/qR = Zq[X]/(Xk/2 + 1) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for q ≫ 2. Can assume k, q = ˜ O(λ) by ring- and modulus-switching. ◮ Ciphertext c = (c0, c1) ∈ R2

q encrypting µ ∈ R2 under s ∈ R satisfies

v = c0 + c1 · s ≈ q

(mod qR). Define the decryption function Decs(c) := ⌊v⌉ = µ ∈ R2, where “rounding” ⌊·⌉: Zq → Z2 is applied to coeffs of v = v(X). ◮ “Unpacked” plaintext µ ∈ Z2 ⊆ R2, i.e., just a constant polynomial. “Packed” plaintext uses more of R2, e.g., multiple “slots” [SV’11].

6 / 21

slide-30
SLIDE 30

Warm-Up: Bootstrapping Unpacked Ciphertexts

7 / 21

slide-31
SLIDE 31

Bootstrapping Unpacked Ciphertexts: Main Idea

1 Isolate message-carrying coefficient v0 of v(X) by homomorphically

“tracing down” a tower of cyclotomic rings O2k/Ok/ · · · /O4/Z. (Trace = sum of the two automorphisms of O2i/Oi.)

8 / 21

slide-32
SLIDE 32

Bootstrapping Unpacked Ciphertexts: Main Idea

1 Isolate message-carrying coefficient v0 of v(X) by homomorphically

“tracing down” a tower of cyclotomic rings O2k/Ok/ · · · /O4/Z. (Trace = sum of the two automorphisms of O2i/Oi.) v0 + v1X + v2X2 + · · · vk−1Xk−1 Zq[X]/(Xk + 1) v0 + 0X + v2X2 + · · · 0Xk−1 Zq[X2]/(Xk + 1) v0 + vk/4Xk/4 + · · · + v3k/4X3k/4 Zq[Xk/4]/(Xk + 1) v0 + vk/2Xk/2 Zq[Xk/2]/(Xk + 1) v0 Zq

8 / 21

slide-33
SLIDE 33

Bootstrapping Unpacked Ciphertexts: Main Idea

1 Isolate message-carrying coefficient v0 of v(X) by homomorphically

“tracing down” a tower of cyclotomic rings O2k/Ok/ · · · /O4/Z. (Trace = sum of the two automorphisms of O2i/Oi.) v0 + v1X + v2X2 + · · · vk−1Xk−1 Zq[X]/(Xk + 1) v0 + 0X + v2X2 + · · · 0Xk−1 Zq[X2]/(Xk + 1) v0 + vk/4Xk/4 + · · · + v3k/4X3k/4 Zq[Xk/4]/(Xk + 1) v0 + vk/2Xk/2 Zq[Xk/2]/(Xk + 1) v0 Zq

2 Homomorphically “round” v0 ∈ Zq to the message bit ⌊ 2 q · v0⌉ ∈ Z2.

8 / 21

slide-34
SLIDE 34

Algebra: Cyclotomic Towers and Product Bases

◮ Let ζ = ζk have order k, a power of 2. Its min. poly: ζk/2 + 1 = 0.

9 / 21

slide-35
SLIDE 35

Algebra: Cyclotomic Towers and Product Bases

◮ Let ζ = ζk have order k, a power of 2. Its min. poly: ζk/2 + 1 = 0. So Ok = Z[ζ] ∼ = Z[X]/(Xk/2 + 1) has Z-basis {1, ζ, ζ2, . . . , ζk/2−1}.

9 / 21

slide-36
SLIDE 36

Algebra: Cyclotomic Towers and Product Bases

◮ Let ζ = ζk have order k, a power of 2. Its min. poly: ζk/2 + 1 = 0. So Ok = Z[ζ] ∼ = Z[X]/(Xk/2 + 1) has Z-basis {1, ζ, ζ2, . . . , ζk/2−1}. ◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z:

9 / 21

slide-37
SLIDE 37

Algebra: Cyclotomic Towers and Product Bases

◮ Let ζ = ζk have order k, a power of 2. Its min. poly: ζk/2 + 1 = 0. So Ok = Z[ζ] ∼ = Z[X]/(Xk/2 + 1) has Z-basis {1, ζ, ζ2, . . . , ζk/2−1}. ◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z: ζ2

k = ζk/2

Ok = Ok/2[ζk] Ok/2-basis B′

k = {1, ζk}

ζ2

8 = ζ4

O8 = O4[ζ8] O4-basis B′

8 = {1, ζ8}

ζ2

4 = ζ2

O4 = O2[ζ4] O2-basis B′

4 = {1, ζ4}

ζ2

2 = 1

O2 = Z[ζ2] = Z Z-basis B′

2 = {1}

9 / 21

slide-38
SLIDE 38

Algebra: Cyclotomic Towers and Product Bases

◮ Let ζ = ζk have order k, a power of 2. Its min. poly: ζk/2 + 1 = 0. So Ok = Z[ζ] ∼ = Z[X]/(Xk/2 + 1) has Z-basis {1, ζ, ζ2, . . . , ζk/2−1}. ◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z: ζ2

k = ζk/2

Ok = Ok/2[ζk] Ok/2-basis B′

k = {1, ζk}

ζ2

8 = ζ4

O8 = O4[ζ8] O4-basis B′

8 = {1, ζ8}

ζ2

4 = ζ2

O4 = O2[ζ4] O2-basis B′

4 = {1, ζ4}

ζ2

2 = 1

O2 = Z[ζ2] = Z Z-basis B′

2 = {1}

◮ “Product” Z-basis of Ok: Bk := B′

k · Bk/2 = B′ k · B′ k/2 · · · B′ 2 = {1, ζ, ζ2, . . . , ζk/2−1}.

9 / 21

slide-39
SLIDE 39

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

10 / 21

slide-40
SLIDE 40

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

◮ Oi has exactly two automorphisms that fix Oi/2: ζi → ± ζi. The trace function Tr: Oi → Oi/2 simply sums these automorphisms.

10 / 21

slide-41
SLIDE 41

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

◮ Oi has exactly two automorphisms that fix Oi/2: ζi → ± ζi. The trace function Tr: Oi → Oi/2 simply sums these automorphisms. ◮ Let v = v0 · 1 + v1 · ζi ∈ Oi for v0, v1 ∈ Oi/2. Then Tr(v) = 2 · v0. So Tr(Oi) = 2 · Oi/2.

10 / 21

slide-42
SLIDE 42

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

◮ Oi has exactly two automorphisms that fix Oi/2: ζi → ± ζi. The trace function Tr: Oi → Oi/2 simply sums these automorphisms. ◮ Let v = v0 · 1 + v1 · ζi ∈ Oi for v0, v1 ∈ Oi/2. Then Tr(v) = 2 · v0. So Tr(Oi) = 2 · Oi/2. ◮ More generally, TrOi/Oi′ sums the automorphisms of Oi that fix Oi′. Key facts:

10 / 21

slide-43
SLIDE 43

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

◮ Oi has exactly two automorphisms that fix Oi/2: ζi → ± ζi. The trace function Tr: Oi → Oi/2 simply sums these automorphisms. ◮ Let v = v0 · 1 + v1 · ζi ∈ Oi for v0, v1 ∈ Oi/2. Then Tr(v) = 2 · v0. So Tr(Oi) = 2 · Oi/2. ◮ More generally, TrOi/Oi′ sums the automorphisms of Oi that fix Oi′. Key facts:

⋆ TrOi/Oi′′ = TrOi′/Oi′′ ◦ TrOi/Oi′ 10 / 21

slide-44
SLIDE 44

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

◮ Oi has exactly two automorphisms that fix Oi/2: ζi → ± ζi. The trace function Tr: Oi → Oi/2 simply sums these automorphisms. ◮ Let v = v0 · 1 + v1 · ζi ∈ Oi for v0, v1 ∈ Oi/2. Then Tr(v) = 2 · v0. So Tr(Oi) = 2 · Oi/2. ◮ More generally, TrOi/Oi′ sums the automorphisms of Oi that fix Oi′. Key facts:

⋆ TrOi/Oi′′ = TrOi′/Oi′′ ◦ TrOi/Oi′

⇒ TrOi/Oi′ (Oi) = deg(Oi/Oi′) · Oi′.

10 / 21

slide-45
SLIDE 45

Algebra: The Trace

◮ Tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z, where ζ2

i = ζi/2.

◮ Oi has exactly two automorphisms that fix Oi/2: ζi → ± ζi. The trace function Tr: Oi → Oi/2 simply sums these automorphisms. ◮ Let v = v0 · 1 + v1 · ζi ∈ Oi for v0, v1 ∈ Oi/2. Then Tr(v) = 2 · v0. So Tr(Oi) = 2 · Oi/2. ◮ More generally, TrOi/Oi′ sums the automorphisms of Oi that fix Oi′. Key facts:

⋆ TrOi/Oi′′ = TrOi′/Oi′′ ◦ TrOi/Oi′

⇒ TrOi/Oi′ (Oi) = deg(Oi/Oi′) · Oi′. ⇒ TrOi/Z(v) = i

2 · v0, where v0 ∈ Z is the coeff of ζ0 i = 1.

10 / 21

slide-46
SLIDE 46

Bootstrapping Unpacked Ciphertexts: Overview

Recall: R = Ok, and v = c0 + c1 · s ≈ q

2µ ∈ Rq for message µ ∈ Z2 ⊆ R2.

11 / 21

slide-47
SLIDE 47

Bootstrapping Unpacked Ciphertexts: Overview

Recall: R = Ok, and v = c0 + c1 · s ≈ q

2µ ∈ Rq for message µ ∈ Z2 ⊆ R2. 1 Prepare:

⋆ View c as a “noiseless” encryption of plaintext

v = q

q · v + 0 = c0 + c1 · s ∈ Rq.

Plaintext ring is now Rq, not R2!

11 / 21

slide-48
SLIDE 48

Bootstrapping Unpacked Ciphertexts: Overview

Recall: R = Ok, and v = c0 + c1 · s ≈ q

2µ ∈ Rq for message µ ∈ Z2 ⊆ R2. 1 Prepare:

⋆ View c as a “noiseless” encryption of plaintext

v = q

q · v + 0 = c0 + c1 · s ∈ Rq.

Plaintext ring is now Rq, not R2!

⋆ (Switch to larger ciphertext modulus Q ≫ q and ring ˜

R ⊇ R, to support upcoming homomorphic operations.)

11 / 21

slide-49
SLIDE 49

Bootstrapping Unpacked Ciphertexts: Overview

Recall: R = Ok, and v = c0 + c1 · s ≈ q

2µ ∈ Rq for message µ ∈ Z2 ⊆ R2. 1 Prepare:

⋆ View c as a “noiseless” encryption of plaintext

v = q

q · v + 0 = c0 + c1 · s ∈ Rq.

Plaintext ring is now Rq, not R2!

⋆ (Switch to larger ciphertext modulus Q ≫ q and ring ˜

R ⊇ R, to support upcoming homomorphic operations.)

2 Extract “constant term” v0 ∈ Zq of v: homomorphically evaluate

TrR/Z(v) deg(R/Z) = v0 ≈ q

2 · µ ∈ Zq.

Fast, increases noise rate by only ≈ √ k factor.

11 / 21

slide-50
SLIDE 50

Bootstrapping Unpacked Ciphertexts: Overview

Recall: R = Ok, and v = c0 + c1 · s ≈ q

2µ ∈ Rq for message µ ∈ Z2 ⊆ R2. 1 Prepare:

⋆ View c as a “noiseless” encryption of plaintext

v = q

q · v + 0 = c0 + c1 · s ∈ Rq.

Plaintext ring is now Rq, not R2!

⋆ (Switch to larger ciphertext modulus Q ≫ q and ring ˜

R ⊇ R, to support upcoming homomorphic operations.)

2 Extract “constant term” v0 ∈ Zq of v: homomorphically evaluate

TrR/Z(v) deg(R/Z) = v0 ≈ q

2 · µ ∈ Zq.

Fast, increases noise rate by only ≈ √ k factor.

3 Round: homomorphically evaluate ⌊v0⌉ = µ ∈ Z2.

Uses algebraic procedure of depth lg(q/2) & size lg2(q/2) [GHS’12b]

11 / 21

slide-51
SLIDE 51

Bootstrapping Unpacked Ciphertexts: Overview

Recall: R = Ok, and v = c0 + c1 · s ≈ q

2µ ∈ Rq for message µ ∈ Z2 ⊆ R2. 1 Prepare:

⋆ View c as a “noiseless” encryption of plaintext

v = q

q · v + 0 = c0 + c1 · s ∈ Rq.

Plaintext ring is now Rq, not R2!

⋆ (Switch to larger ciphertext modulus Q ≫ q and ring ˜

R ⊇ R, to support upcoming homomorphic operations.)

2 Extract “constant term” v0 ∈ Zq of v: homomorphically evaluate

TrR/Z(v) deg(R/Z) = v0 ≈ q

2 · µ ∈ Zq.

Fast, increases noise rate by only ≈ √ k factor.

3 Round: homomorphically evaluate ⌊v0⌉ = µ ∈ Z2.

Uses algebraic procedure of depth lg(q/2) & size lg2(q/2) [GHS’12b] ⋆⋆ Now have an encryption of ⌊v0⌉ = µ. Done!

11 / 21

slide-52
SLIDE 52

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext.

12 / 21

slide-53
SLIDE 53

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

12 / 21

slide-54
SLIDE 54

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

?? Directly apply all automorphisms τ of R/Z to ciphertext, then sum?

τ(c0) + τ(c1) · τ(s) = τ(v)

key-switch

= ⇒ c′

0 + c′ 1 · s ≈ τ(v)

12 / 21

slide-55
SLIDE 55

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

?? Directly apply all automorphisms τ of R/Z to ciphertext, then sum?

τ(c0) + τ(c1) · τ(s) = τ(v)

key-switch

= ⇒ c′

0 + c′ 1 · s ≈ τ(v)

✗ k/2 automorphisms & key-switches: quadratic work & space

12 / 21

slide-56
SLIDE 56

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

?? Directly apply all automorphisms τ of R/Z to ciphertext, then sum?

τ(c0) + τ(c1) · τ(s) = τ(v)

key-switch

= ⇒ c′

0 + c′ 1 · s ≈ τ(v)

✗ k/2 automorphisms & key-switches: quadratic work & space

✔ Iteratively “trace down” R = Ok → Ok/2 → · · · → Z.

12 / 21

slide-57
SLIDE 57

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

?? Directly apply all automorphisms τ of R/Z to ciphertext, then sum?

τ(c0) + τ(c1) · τ(s) = τ(v)

key-switch

= ⇒ c′

0 + c′ 1 · s ≈ τ(v)

✗ k/2 automorphisms & key-switches: quadratic work & space

✔ Iteratively “trace down” R = Ok → Ok/2 → · · · → Z.

⋆ Only need to apply the two automorphisms of each Oi/Oi/2. ⋆ Total lg(k) automorphisms & key-switches ⇒ ˜

O(k) work.

12 / 21

slide-58
SLIDE 58

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

?? Directly apply all automorphisms τ of R/Z to ciphertext, then sum?

τ(c0) + τ(c1) · τ(s) = τ(v)

key-switch

= ⇒ c′

0 + c′ 1 · s ≈ τ(v)

✗ k/2 automorphisms & key-switches: quadratic work & space

✔ Iteratively “trace down” R = Ok → Ok/2 → · · · → Z.

⋆ Only need to apply the two automorphisms of each Oi/Oi/2. ⋆ Total lg(k) automorphisms & key-switches ⇒ ˜

O(k) work. Detail #1: ciphertexts are over ˜ R ⊇ R, so use automorphisms of ˜ R that coincide with those of Oi/Oi/2.

12 / 21

slide-59
SLIDE 59

Evaluating TraceR/Z Homomorphically

?? Use “ring switching” [GHPS’12] ?

✔ Computes TrR/R′ homomorphically, by taking TrR/R′ of ciphertext. ✗ Requires hardness of ring-LWE in R′ . . . but here R′ = Z.

?? Directly apply all automorphisms τ of R/Z to ciphertext, then sum?

τ(c0) + τ(c1) · τ(s) = τ(v)

key-switch

= ⇒ c′

0 + c′ 1 · s ≈ τ(v)

✗ k/2 automorphisms & key-switches: quadratic work & space

✔ Iteratively “trace down” R = Ok → Ok/2 → · · · → Z.

⋆ Only need to apply the two automorphisms of each Oi/Oi/2. ⋆ Total lg(k) automorphisms & key-switches ⇒ ˜

O(k) work. Detail #1: ciphertexts are over ˜ R ⊇ R, so use automorphisms of ˜ R that coincide with those of Oi/Oi/2. Detail #2: each Tr(Oi) = 2Oi/2, so lift to plaintext modulus 2q, then halve result.

12 / 21

slide-60
SLIDE 60

Main Result: Bootstrapping Packed Ciphertexts

13 / 21

slide-61
SLIDE 61

Bootstrapping Packed Ciphertexts: Overview

1 Prepare: as before, view c as a “noiseless” encryption of plaintext

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. Recall: µ = ⌊v⌉ =

j⌊vj⌉ · bj ∈ R2 (where bj = ζj).

14 / 21

slide-62
SLIDE 62

Bootstrapping Packed Ciphertexts: Overview

1 Prepare: as before, view c as a “noiseless” encryption of plaintext

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. Recall: µ = ⌊v⌉ =

j⌊vj⌉ · bj ∈ R2 (where bj = ζj). 2 Homomorphically map coeffs vj to “Zq-slots” of certain ring Sq:

  • vj · bj ∈ Rq

− →

  • vj · cj ∈ Sq.

(Change of basis, analogous to homomorphic DFT.)

14 / 21

slide-63
SLIDE 63

Bootstrapping Packed Ciphertexts: Overview

1 Prepare: as before, view c as a “noiseless” encryption of plaintext

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. Recall: µ = ⌊v⌉ =

j⌊vj⌉ · bj ∈ R2 (where bj = ζj). 2 Homomorphically map coeffs vj to “Zq-slots” of certain ring Sq:

  • vj · bj ∈ Rq

− →

  • vj · cj ∈ Sq.

(Change of basis, analogous to homomorphic DFT.)

3 Batch-round: homom’ly apply ⌊·⌉ on all Zq-slots at once [SV’11]:

  • vj · cj ∈ Sq

− →

  • ⌊vj⌉ · cj ∈ S2.

14 / 21

slide-64
SLIDE 64

Bootstrapping Packed Ciphertexts: Overview

1 Prepare: as before, view c as a “noiseless” encryption of plaintext

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. Recall: µ = ⌊v⌉ =

j⌊vj⌉ · bj ∈ R2 (where bj = ζj). 2 Homomorphically map coeffs vj to “Zq-slots” of certain ring Sq:

  • vj · bj ∈ Rq

− →

  • vj · cj ∈ Sq.

(Change of basis, analogous to homomorphic DFT.)

3 Batch-round: homom’ly apply ⌊·⌉ on all Zq-slots at once [SV’11]:

  • vj · cj ∈ Sq

− →

  • ⌊vj⌉ · cj ∈ S2.

4 Homomorphically reverse-map Z2-slots back to B-coeffs:

  • ⌊vj⌉ · cj ∈ S2

− →

  • ⌊vj⌉ · bj = µ ∈ R2.

(Akin to homomorphic DFT−1.)

14 / 21

slide-65
SLIDE 65

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. Identifying ζℓi/ℓi−1

ℓi

= ζℓi−1, we get a tower S(i)/S(i−1)/ · · · /Z.

15 / 21

slide-66
SLIDE 66

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. Identifying ζℓi/ℓi−1

ℓi

= ζℓi−1, we get a tower S(i)/S(i−1)/ · · · /Z. ◮ In S = S(i), 2 factors into distinct prime ideals, like so: 2 p1 p1,1 p1,2 p1,3 p2 p2,1 p2,2 p2,3 Z = O1 S(1) = O7 S(2) = O91

15 / 21

slide-67
SLIDE 67

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. Identifying ζℓi/ℓi−1

ℓi

= ζℓi−1, we get a tower S(i)/S(i−1)/ · · · /Z. ◮ In S = S(i), 2 factors into distinct prime ideals, like so: 2 p1 p1,1 p1,2 p1,3 p2 p2,1 p2,2 p2,3 Z = O1 S(1) = O7 S(2) = O91 ◮ By Chinese Rem Thm, S2 ∼ =

j (S/pj) via natural homomorphism.

15 / 21

slide-68
SLIDE 68

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. Identifying ζℓi/ℓi−1

ℓi

= ζℓi−1, we get a tower S(i)/S(i−1)/ · · · /Z. ◮ In S = S(i), 2 factors into distinct prime ideals, like so: 2 p1 p1,1 p1,2 p1,3 p2 p2,1 p2,2 p2,3 Z = O1 S(1) = O7 S(2) = O91 ◮ By Chinese Rem Thm, S2 ∼ =

j (S/pj) via natural homomorphism.

“CRT set:” C = {cj} ⊂ S s.t. cj = 1 (mod pj), = 0 (mod p=j). Mapping vj ∈ Z2 → vj · cj ∈ S2 embeds Z2 into jth “slot” of S2.

15 / 21

slide-69
SLIDE 69

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. Identifying ζℓi/ℓi−1

ℓi

= ζℓi−1, we get a tower S(i)/S(i−1)/ · · · /Z. ◮ In S = S(i), 2 factors into distinct prime ideals, like so: 2 p1 p1,1 p1,2 p1,3 p2 p2,1 p2,2 p2,3 Z = O1 S(1) = O7 S(2) = O91 ◮ By Chinese Rem Thm, S2 ∼ =

j (S/pj) via natural homomorphism.

“CRT set:” C = {cj} ⊂ S s.t. cj = 1 (mod pj), = 0 (mod p=j). Mapping vj ∈ Z2 → vj · cj ∈ S2 embeds Z2 into jth “slot” of S2. ◮ Can factor Ci = C′

i · Ci−1: let c′ k = 1 (mod p⋆,k), = 0 (mod p⋆,=k).

15 / 21

slide-70
SLIDE 70

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. Identifying ζℓi/ℓi−1

ℓi

= ζℓi−1, we get a tower S(i)/S(i−1)/ · · · /Z. ◮ In S = S(i), 2 factors into distinct prime ideals, like so: 2 p1 p1,1 p1,2 p1,3 p2 p2,1 p2,2 p2,3 Z = O1 S(1) = O7 S(2) = O91 ◮ By Chinese Rem Thm, S2 ∼ =

j (S/pj) via natural homomorphism.

“CRT set:” C = {cj} ⊂ S s.t. cj = 1 (mod pj), = 0 (mod p=j). Mapping vj ∈ Z2 → vj · cj ∈ S2 embeds Z2 into jth “slot” of S2. ◮ Can factor Ci = C′

i · Ci−1: let c′ k = 1 (mod p⋆,k), = 0 (mod p⋆,=k).

◮ Similarly for Sq ∼ =

j (S/plg q j

).

15 / 21

slide-71
SLIDE 71

Mapping Coeffs to Slots: Overview

◮ Choose S so that Sq has ≥ deg(R/Z) Zq-slots, via: (vj) ∈ Zk/2

q

− →

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size k/2.

16 / 21

slide-72
SLIDE 72

Mapping Coeffs to Slots: Overview

◮ Choose S so that Sq has ≥ deg(R/Z) Zq-slots, via: (vj) ∈ Zk/2

q

− →

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size k/2. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq.

16 / 21

slide-73
SLIDE 73

Mapping Coeffs to Slots: Overview

◮ Choose S so that Sq has ≥ deg(R/Z) Zq-slots, via: (vj) ∈ Zk/2

q

− →

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size k/2. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear∗ map L: R → S defined by L(bj) = cj.

∗Z-linear: L(b + b′) = L(b) + L(b′), L(v · b) = v · L(b) for any b, b′ ∈ R, v ∈ Z. 16 / 21

slide-74
SLIDE 74

Mapping Coeffs to Slots: Overview

◮ Choose S so that Sq has ≥ deg(R/Z) Zq-slots, via: (vj) ∈ Zk/2

q

− →

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size k/2. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear∗ map L: R → S defined by L(bj) = cj.

∗Z-linear: L(b + b′) = L(b) + L(b′), L(v · b) = v · L(b) for any b, b′ ∈ R, v ∈ Z.

◮ Ring-switching [GHPS’12] lets us eval any R′-linear map L: R → R′

16 / 21

slide-75
SLIDE 75

Mapping Coeffs to Slots: Overview

◮ Choose S so that Sq has ≥ deg(R/Z) Zq-slots, via: (vj) ∈ Zk/2

q

− →

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size k/2. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear∗ map L: R → S defined by L(bj) = cj.

∗Z-linear: L(b + b′) = L(b) + L(b′), L(v · b) = v · L(b) for any b, b′ ∈ R, v ∈ Z.

◮ Ring-switching [GHPS’12] lets us eval any R′-linear map L: R → R′ . . . but only for a subring R′ ⊆ R.

16 / 21

slide-76
SLIDE 76

Mapping Coeffs to Slots: Overview

◮ Choose S so that Sq has ≥ deg(R/Z) Zq-slots, via: (vj) ∈ Zk/2

q

− →

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size k/2. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear∗ map L: R → S defined by L(bj) = cj.

∗Z-linear: L(b + b′) = L(b) + L(b′), L(v · b) = v · L(b) for any b, b′ ∈ R, v ∈ Z.

◮ Ring-switching [GHPS’12] lets us eval any R′-linear map L: R → R′ . . . but only for a subring R′ ⊆ R.

Goal for Remainder of Talk

◮ Extend ring-switching to (efficiently) handle Z-linear maps L: R → S.

16 / 21

slide-77
SLIDE 77

Algebra: Combining Cyclotomic Rings

◮ Let R = Ok, S = Oℓ. Let d = gcd(k, ℓ) and m = lcm(k, ℓ).

17 / 21

slide-78
SLIDE 78

Algebra: Combining Cyclotomic Rings

◮ Let R = Ok, S = Oℓ. Let d = gcd(k, ℓ) and m = lcm(k, ℓ). R T = R + S = Om E = R ∩ S = Od S (“compositum”)

17 / 21

slide-79
SLIDE 79

Algebra: Combining Cyclotomic Rings

◮ Let R = Ok, S = Oℓ. Let d = gcd(k, ℓ) and m = lcm(k, ℓ). R T = R + S = Om E = R ∩ S = Od S (“compositum”) ◮ Compositum T as a tensor product of R, S, where ⊗ is E-bilinear: T ∼ = (R/E) ⊗ (S/E) :=

  • ei,j(ri ⊗ sj) : ei,j ∈ E, ri ∈ R, sj ∈ S
  • .

17 / 21

slide-80
SLIDE 80

Algebra: Combining Cyclotomic Rings

◮ Let R = Ok, S = Oℓ. Let d = gcd(k, ℓ) and m = lcm(k, ℓ). R T = R + S = Om E = R ∩ S = Od S (“compositum”) ◮ Compositum T as a tensor product of R, S, where ⊗ is E-bilinear: T ∼ = (R/E) ⊗ (S/E) :=

  • ei,j(ri ⊗ sj) : ei,j ∈ E, ri ∈ R, sj ∈ S
  • .

Easy Lemma

◮ For any E-linear L: R → S, there is an S-linear ¯ L: T → S that agrees with L on R.

17 / 21

slide-81
SLIDE 81

Algebra: Combining Cyclotomic Rings

◮ Let R = Ok, S = Oℓ. Let d = gcd(k, ℓ) and m = lcm(k, ℓ). R T = R + S = Om E = R ∩ S = Od S (“compositum”) ◮ Compositum T as a tensor product of R, S, where ⊗ is E-bilinear: T ∼ = (R/E) ⊗ (S/E) :=

  • ei,j(ri ⊗ sj) : ei,j ∈ E, ri ∈ R, sj ∈ S
  • .

Easy Lemma

◮ For any E-linear L: R → S, there is an S-linear ¯ L: T → S that agrees with L on R. ◮ Proof: define ¯ L by ¯ L(r ⊗ s) = L(r) · s ∈ S.

17 / 21

slide-82
SLIDE 82

Enhanced Ring-Switching: First Attempt

◮ Let R = Ok, S = Oℓ be s.t. gcd(k, ℓ) = 1, lcm(k, ℓ) = kℓ.

18 / 21

slide-83
SLIDE 83

Enhanced Ring-Switching: First Attempt

◮ Let R = Ok, S = Oℓ be s.t. gcd(k, ℓ) = 1, lcm(k, ℓ) = kℓ. R T = Okℓ E = Z S embed ¯ L L (induced)

18 / 21

slide-84
SLIDE 84

Enhanced Ring-Switching: First Attempt

◮ Let R = Ok, S = Oℓ be s.t. gcd(k, ℓ) = 1, lcm(k, ℓ) = kℓ. R T = Okℓ E = Z S embed ¯ L L (induced) ◮ To homom’ly eval. Z-linear L: R → S on an encryption of v ∈ Rq,

18 / 21

slide-85
SLIDE 85

Enhanced Ring-Switching: First Attempt

◮ Let R = Ok, S = Oℓ be s.t. gcd(k, ℓ) = 1, lcm(k, ℓ) = kℓ. R T = Okℓ E = Z S embed ¯ L L (induced) ◮ To homom’ly eval. Z-linear L: R → S on an encryption of v ∈ Rq,

1 Trivially embed ciphertext R → T (still encrypts v). 2 Homomorphically apply S-linear ¯

L: T → S using ring-switching. ✔ We now have an encryption of ¯ L(v) = L(v) !

18 / 21

slide-86
SLIDE 86

Enhanced Ring-Switching: First Attempt

◮ Let R = Ok, S = Oℓ be s.t. gcd(k, ℓ) = 1, lcm(k, ℓ) = kℓ. R T = Okℓ E = Z S embed ¯ L L (induced) ◮ To homom’ly eval. Z-linear L: R → S on an encryption of v ∈ Rq,

1 Trivially embed ciphertext R → T (still encrypts v). 2 Homomorphically apply S-linear ¯

L: T → S using ring-switching. ✔ We now have an encryption of ¯ L(v) = L(v) !

✗✗ Problem: degree of T is quadratic, therefore so is runtime & space.

18 / 21

slide-87
SLIDE 87

Enhanced Ring-Switching: First Attempt

◮ Let R = Ok, S = Oℓ be s.t. gcd(k, ℓ) = 1, lcm(k, ℓ) = kℓ. R T = Okℓ E = Z S embed ¯ L L (induced) ◮ To homom’ly eval. Z-linear L: R → S on an encryption of v ∈ Rq,

1 Trivially embed ciphertext R → T (still encrypts v). 2 Homomorphically apply S-linear ¯

L: T → S using ring-switching. ✔ We now have an encryption of ¯ L(v) = L(v) !

✗✗ Problem: degree of T is quadratic, therefore so is runtime & space. This is inherent if we treat L as a generic Z-linear map!

18 / 21

slide-88
SLIDE 88

Enhanced Ring-Switching, Efficiently

Key Ideas

◮ The Z-linear L: R → S given by L(B) = C is “highly structured,” because B, C are product sets.

19 / 21

slide-89
SLIDE 89

Enhanced Ring-Switching, Efficiently

Key Ideas

◮ The Z-linear L: R → S given by L(B) = C is “highly structured,” because B, C are product sets. ◮ Gradually map B to C through a sequence of “hybrid rings” H(i), via E(i)-linear functions that each send a factor of B to one of C. B ⊂ R = H(0) T (1) E(1) H(1) T (2) E(2) H(2) = S ⊃ C embed E(1)-linear (induced) e m b e d E(2)-linear (induced)

19 / 21

slide-90
SLIDE 90

Enhanced Ring-Switching, Efficiently

Key Ideas

◮ The Z-linear L: R → S given by L(B) = C is “highly structured,” because B, C are product sets. ◮ Gradually map B to C through a sequence of “hybrid rings” H(i), via E(i)-linear functions that each send a factor of B to one of C. ◮ Ensure small compositums T (i) = H(i−1) + H(i) via large gcd’s: replace prime factors of k with those of ℓ, one at a time. B ⊂ R = H(0) T (1) E(1) H(1) T (2) E(2) H(2) = S ⊃ C embed E(1)-linear (induced) e m b e d E(2)-linear (induced)

19 / 21

slide-91
SLIDE 91

Toy Example

◮ R = O8, basis B = B′

8 · B′ 4 = {1, ζ8} · {1, ζ4}.

20 / 21

slide-92
SLIDE 92

Toy Example

◮ R = O8, basis B = B′

8 · B′ 4 = {1, ζ8} · {1, ζ4}.

◮ S = O7·13, CRT set C = C′

7 · C′ 91 = {c1, c2} · {c′ 1, c′ 2, c′ 3}.

20 / 21

slide-93
SLIDE 93

Toy Example

◮ R = O8, basis B = B′

8 · B′ 4 = {1, ζ8} · {1, ζ4}.

◮ S = O7·13, CRT set C = C′

7 · C′ 91 = {c1, c2} · {c′ 1, c′ 2, c′ 3}.

B′

8 · B′ 4

⊂ O8 O4 B′

4 · C′ 7

⊂ O4·7 O7 C′

7 · C′ 91

⊂ O7·13 fix B′

4

B′

8 → C′ 7

fix C′

7

B′

4 → C′ 91

20 / 21

slide-94
SLIDE 94

Toy Example

◮ R = O8, basis B = B′

8 · B′ 4 = {1, ζ8} · {1, ζ4}.

◮ S = O7·13, CRT set C = C′

7 · C′ 91 = {c1, c2} · {c′ 1, c′ 2, c′ 3}.

B′

8 · B′ 4

⊂ O8 O4 B′

4 · C′ 7

⊂ O4·7 O7 C′

7 · C′ 91

⊂ O7·13 fix B′

4

B′

8 → C′ 7

fix C′

7

B′

4 → C′ 91

◮ In general, switch through ≤ log(deg(R/Z)) = log(λ) hybrid rings,

  • ne for each prime factor of k.

20 / 21

slide-95
SLIDE 95

Final Thoughts

◮ Gradually converting B to C via hybrid rings is roughly analogous to a log-depth FFT butterfly network.

21 / 21

slide-96
SLIDE 96

Final Thoughts

◮ Gradually converting B to C via hybrid rings is roughly analogous to a log-depth FFT butterfly network. ◮ Technique should also be useful for homomorphically evaluating other signal-processing transforms having “sparse decompositions.”

21 / 21

slide-97
SLIDE 97

Final Thoughts

◮ Gradually converting B to C via hybrid rings is roughly analogous to a log-depth FFT butterfly network. ◮ Technique should also be useful for homomorphically evaluating other signal-processing transforms having “sparse decompositions.” ◮ Practical implementation and evaluation are underway.

21 / 21

slide-98
SLIDE 98

Final Thoughts

◮ Gradually converting B to C via hybrid rings is roughly analogous to a log-depth FFT butterfly network. ◮ Technique should also be useful for homomorphically evaluating other signal-processing transforms having “sparse decompositions.” ◮ Practical implementation and evaluation are underway.

Thanks!

21 / 21