Ring Switching and Bootstrapping FHE Chris Peikert School of - - PowerPoint PPT Presentation

ring switching and bootstrapping fhe chris peikert
SMART_READER_LITE
LIVE PREVIEW

Ring Switching and Bootstrapping FHE Chris Peikert School of - - PowerPoint PPT Presentation

Ring Switching and Bootstrapping FHE Chris Peikert School of Computer Science Georgia Tech Oberwolfach Crypto Workshop 29 July 2014 1 / 22 Agenda 1 A homomorphic encryption tool: ring switching 2 An application: (practical!) bootstrapping


slide-1
SLIDE 1

Ring Switching and Bootstrapping FHE Chris Peikert

School of Computer Science Georgia Tech

Oberwolfach Crypto Workshop 29 July 2014

1 / 22

slide-2
SLIDE 2

Agenda

1 A homomorphic encryption tool: ring switching 2 An application: (practical!) bootstrapping FHE in ˜

O(λ) time Bibliography:

GHPS’12 C. Gentry, S. Halevi, C. Peikert, N. Smart, “Ring Switching in BGV-Style Homomorphic Encryption,” SCN’12 / JCS’13. AP’13 J. Alperin-Sheriff, C. Peikert, “Practical Bootstrapping in Quasilinear Time,” CRYPTO’13.

2 / 22

slide-3
SLIDE 3

Part 1: Ring Switching

3 / 22

slide-4
SLIDE 4

Notation

◮ Let R(ℓ)/ · · · /R(2)/R(1)/Z be a tower of cyclotomic ring extensions.

4 / 22

slide-5
SLIDE 5

Notation

◮ Let R(ℓ)/ · · · /R(2)/R(1)/Z be a tower of cyclotomic ring extensions. ◮ Let’s go slower.

4 / 22

slide-6
SLIDE 6

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

5 / 22

slide-7
SLIDE 7

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

5 / 22

slide-8
SLIDE 8

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. 5 / 22

slide-9
SLIDE 9

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. ⋆ O4 ∼

= Z[i] ∼ = Z[X]/(1 + X2), Z-basis {1, ζ4}.

5 / 22

slide-10
SLIDE 10

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. ⋆ O4 ∼

= Z[i] ∼ = Z[X]/(1 + X2), Z-basis {1, ζ4}.

⋆ O3 = Z[ζ3] ∼

= Z[X]/(1 + X + X2), Z-basis {1, ζ3}.

5 / 22

slide-11
SLIDE 11

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. ⋆ O4 ∼

= Z[i] ∼ = Z[X]/(1 + X2), Z-basis {1, ζ4}.

⋆ O3 = Z[ζ3] ∼

= Z[X]/(1 + X + X2), Z-basis {1, ζ3}.

⋆ O5 = Z[ζ5] ∼

= Z[X]/(1 + X + X2 + X3 + X4), Z-basis {1, ζ, ζ2, ζ3}.

5 / 22

slide-12
SLIDE 12

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. ⋆ O4 ∼

= Z[i] ∼ = Z[X]/(1 + X2), Z-basis {1, ζ4}.

⋆ O3 = Z[ζ3] ∼

= Z[X]/(1 + X + X2), Z-basis {1, ζ3}.

⋆ O5 = Z[ζ5] ∼

= Z[X]/(1 + X + X2 + X3 + X4), Z-basis {1, ζ, ζ2, ζ3}.

Facts

1 For prime p, Op ∼

= Z[X]/(1 + X + · · · + Xp−1

  • Φp(X)

); {1, ζ, . . . , ζp−2}.

5 / 22

slide-13
SLIDE 13

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. ⋆ O4 ∼

= Z[i] ∼ = Z[X]/(1 + X2), Z-basis {1, ζ4}.

⋆ O3 = Z[ζ3] ∼

= Z[X]/(1 + X + X2), Z-basis {1, ζ3}.

⋆ O5 = Z[ζ5] ∼

= Z[X]/(1 + X + X2 + X3 + X4), Z-basis {1, ζ, ζ2, ζ3}.

Facts

1 For prime p, Op ∼

= Z[X]/(1 + X + · · · + Xp−1

  • Φp(X)

); {1, ζ, . . . , ζp−2}.

2 For prime power pe, Ope ∼

= Z[X]/(Φp(Xpe−1)); {1, ζ, . . . , ζϕ(pe)−1}.

5 / 22

slide-14
SLIDE 14

Cyclotomic Rings

◮ Define Ok = Z[ζk], where ζk has order k (so ζk

k = 1).

⋆ O1 = Z[1] = Z.

Z-basis {1}.

⋆ O2 = Z[−1] = Z. ⋆ O4 ∼

= Z[i] ∼ = Z[X]/(1 + X2), Z-basis {1, ζ4}.

⋆ O3 = Z[ζ3] ∼

= Z[X]/(1 + X + X2), Z-basis {1, ζ3}.

⋆ O5 = Z[ζ5] ∼

= Z[X]/(1 + X + X2 + X3 + X4), Z-basis {1, ζ, ζ2, ζ3}.

Facts

1 For prime p, Op ∼

= Z[X]/(1 + X + · · · + Xp−1

  • Φp(X)

); {1, ζ, . . . , ζp−2}.

2 For prime power pe, Ope ∼

= Z[X]/(Φp(Xpe−1)); {1, ζ, . . . , ζϕ(pe)−1}.

3 For distinct primes p1, p2, . . .,

Ope1

1 pe2 2 ··· ∼

= Z[X1, X2, . . .]/(Φp1(Xpe1−1

1

1

), Φp2(Xpe2−1

2

2

), . . .).

5 / 22

slide-15
SLIDE 15

Cyclotomic Extensions

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

6 / 22

slide-16
SLIDE 16

Cyclotomic Extensions

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ Example: tower of quadratic extensions Ok/Ok/2/ · · · /O4/Z:

6 / 22

slide-17
SLIDE 17

Cyclotomic Extensions

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ Example: 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}

6 / 22

slide-18
SLIDE 18

Cyclotomic Extensions

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ Example: 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

6 / 22

slide-19
SLIDE 19

Cyclotomic Extensions

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ Example: 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}.

6 / 22

slide-20
SLIDE 20

Cyclotomic Extensions: Trace

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

7 / 22

slide-21
SLIDE 21

Cyclotomic Extensions: Trace

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ The trace Tr = TrR′/R : R′ → R is a “universal” R-linear function:

7 / 22

slide-22
SLIDE 22

Cyclotomic Extensions: Trace

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ The trace Tr = TrR′/R : R′ → R is a “universal” R-linear function:

1 R-linear: for any rj ∈ R and r′

j ∈ R′,

Tr(r1 · r′

1 + r2 · r′ 2) = r1 · Tr(r′ 1) + r2 · Tr(r′ 2).

7 / 22

slide-23
SLIDE 23

Cyclotomic Extensions: Trace

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ The trace Tr = TrR′/R : R′ → R is a “universal” R-linear function:

1 R-linear: for any rj ∈ R and r′

j ∈ R′,

Tr(r1 · r′

1 + r2 · r′ 2) = r1 · Tr(r′ 1) + r2 · Tr(r′ 2).

2 Universal: any R-linear function L: R′ → R can be written as

L(x) = Tr(r′

L · x)

for some r′

L depending only on L.

7 / 22

slide-24
SLIDE 24

Cyclotomic Extensions: Trace

◮ If k | k′, can view R = Z[ζk] as a subring of R′ = Z[ζk′], via ζk → ζ(k′/k)

k′

.

(still has order k)

◮ The trace Tr = TrR′/R : R′ → R is a “universal” R-linear function:

1 R-linear: for any rj ∈ R and r′

j ∈ R′,

Tr(r1 · r′

1 + r2 · r′ 2) = r1 · Tr(r′ 1) + r2 · Tr(r′ 2).

2 Universal: any R-linear function L: R′ → R can be written as

L(x) = Tr(r′

L · x)

for some r′

L depending only on L.

◮ Any R-linear function is uniquely defined by its values on an R-basis {b′

j} of R′, and vice versa:

Tr

  • j

rj · b′

j

  • =
  • j

rj · Tr(b′

j).

7 / 22

slide-25
SLIDE 25

Homomorphic Encryption over Rings [LPR’10,BV’11,BGV’12]

◮ Let R := Ok, e.g., Z[X]/(1 + Xk/2) for k a power of 2.

8 / 22

slide-26
SLIDE 26

Homomorphic Encryption over Rings [LPR’10,BV’11,BGV’12]

◮ Let R := Ok, e.g., Z[X]/(1 + Xk/2) for k a power of 2. Denote Rq := R/qR = Zq[X]/(1 + Xk/2) for any integer q.

8 / 22

slide-27
SLIDE 27

Homomorphic Encryption over Rings [LPR’10,BV’11,BGV’12]

◮ Let R := Ok, e.g., Z[X]/(1 + Xk/2) for k a power of 2. Denote Rq := R/qR = Zq[X]/(1 + Xk/2) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for some q ≫ 2.

8 / 22

slide-28
SLIDE 28

Homomorphic Encryption over Rings [LPR’10,BV’11,BGV’12]

◮ Let R := Ok, e.g., Z[X]/(1 + Xk/2) for k a power of 2. Denote Rq := R/qR = Zq[X]/(1 + Xk/2) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for some q ≫ 2. ◮ Encryption of µ ∈ R2 under s ∈ R is some c = (c0, c1) ∈ R2

q satisfying

c0 + c1 · s ≈ q

(mod qR).

⋆ Thanks to this relation we can do + and × homomorphically. ⋆ Semantic security follows from hardness of ring-LWE over R

⇐ (quantum) worst-case hardness of approx-SVP on ideal lattices in R.

8 / 22

slide-29
SLIDE 29

Homomorphic Encryption over Rings [LPR’10,BV’11,BGV’12]

◮ Let R := Ok, e.g., Z[X]/(1 + Xk/2) for k a power of 2. Denote Rq := R/qR = Zq[X]/(1 + Xk/2) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for some q ≫ 2. ◮ Encryption of µ ∈ R2 under s ∈ R is some c = (c0, c1) ∈ R2

q satisfying

c0 + c1 · s ≈ q

(mod qR).

⋆ Thanks to this relation we can do + and × homomorphically. ⋆ Semantic security follows from hardness of ring-LWE over R

⇐ (quantum) worst-case hardness of approx-SVP on ideal lattices in R.

◮ “Unpacked” plaintext µ ∈ Z2 ⊆ R2 (just a constant polynomial).

8 / 22

slide-30
SLIDE 30

Homomorphic Encryption over Rings [LPR’10,BV’11,BGV’12]

◮ Let R := Ok, e.g., Z[X]/(1 + Xk/2) for k a power of 2. Denote Rq := R/qR = Zq[X]/(1 + Xk/2) for any integer q. ◮ Plaintext ring is R2, ciphertext ring is Rq for some q ≫ 2. ◮ Encryption of µ ∈ R2 under s ∈ R is some c = (c0, c1) ∈ R2

q satisfying

c0 + c1 · s ≈ q

(mod qR).

⋆ Thanks to this relation we can do + and × homomorphically. ⋆ Semantic security follows from hardness of ring-LWE over R

⇐ (quantum) worst-case hardness of approx-SVP on ideal lattices in R.

◮ “Unpacked” plaintext µ ∈ Z2 ⊆ R2 (just a constant polynomial). “Packed” plaintext uses more of R2, e.g., multiple “slots” [SV’11].

8 / 22

slide-31
SLIDE 31

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

9 / 22

slide-32
SLIDE 32

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

9 / 22

slide-33
SLIDE 33

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, 9 / 22

slide-34
SLIDE 34

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, ⋆ assuming hardness of R-LWE. 9 / 22

slide-35
SLIDE 35

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, ⋆ assuming hardness of R-LWE.

So What?

◮ “Fresh” ciphertexts need small noise ⇒ large ring degree for security. ◮ Noise increases as we do homomorphic operations, so we can securely switch to smaller ring dimension, yielding smaller ciphertexts and faster operations. ◮ Also important for minimizing complexity of decryption for bootstrapping (cf. “dimension reduction” [BV’11]). ◮ We’ll see another cool application later...

9 / 22

slide-36
SLIDE 36

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, ⋆ assuming hardness of R-LWE.

◮ Proof: Given c′ = (c′

0, c′ 1), let ci = Tr(r′ L · c′ i).

9 / 22

slide-37
SLIDE 37

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, ⋆ assuming hardness of R-LWE.

◮ Proof: Given c′ = (c′

0, c′ 1), let ci = Tr(r′ L · c′ i).

c′

0 + s′ · c′ 1 ≈ q 2 · µ′ (mod qR′)

= ⇒ Tr(r′

L · c′ 0) + Tr(s′ · r′ L · c′ 1) ≈ q 2 · Tr(r′ L · µ′) (mod qR)

?? = ⇒ c0 + s′ · c1 ≈ q

2 · µ (mod qR).

9 / 22

slide-38
SLIDE 38

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, ⋆ assuming hardness of R-LWE.

◮ Proof: Given c′ = (c′

0, c′ 1), let ci = Tr(r′ L · c′ i).

c′

0 + s · c′ 1 ≈ q 2 · µ′ (mod qR′)

= ⇒ Tr(r′

L · c′ 0) + Tr(s · r′ L · c′ 1) ≈ q 2 · Tr(r′ L · µ′) (mod qR)

= ⇒ c0 + s · c1 ≈ q

2 · µ (mod qR).

◮ First “key-switch” from s′ ∈ R′ to s ∈ R.

9 / 22

slide-39
SLIDE 39

Ring Switching

Theorem [GHPS’12]

◮ For any cyclotomic rings R′/R, we can homomorphically evaluate

⋆ any R-linear L: R′

2 → R2

(i.e., map µ′ ∈ R′

2 to µ = L(µ′) ∈ R2)

⋆ by mapping the ciphertext c′ over R′ to some c over R, ⋆ assuming hardness of R-LWE.

◮ Proof: Given c′ = (c′

0, c′ 1), let ci = Tr(r′ L · c′ i).

c′

0 + s · c′ 1 ≈ q 2 · µ′ (mod qR′)

= ⇒ Tr(r′

L · c′ 0) + Tr(s · r′ L · c′ 1) ≈ q 2 · Tr(r′ L · µ′) (mod qR)

= ⇒ c0 + s · c1 ≈ q

2 · µ (mod qR).

◮ First “key-switch” from s′ ∈ R′ to s ∈ R. Theorem: R′-LWE with secret in R is as hard as R-LWE.

9 / 22

slide-40
SLIDE 40

Part 2: Bootstrapping

10 / 22

slide-41
SLIDE 41

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.”

11 / 22

slide-42
SLIDE 42

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.” ◮ 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(µ))

11 / 22

slide-43
SLIDE 43

Bootstrapping: SHE → FHE [Gen’09]

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

  • f(·) = Dec( · , µ )
  • µ

12 / 22

slide-44
SLIDE 44

Bootstrapping: SHE → FHE [Gen’09]

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

  • f(·) = Dec( · , µ )
  • µ

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

O(d · s · λ).

12 / 22

slide-45
SLIDE 45

Bootstrapping: SHE → FHE [Gen’09]

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

  • f(·) = Dec( · , µ )
  • µ

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

O(d · s · λ).

◮ Intensive study, many techniques

[G’09,GH’11a,GH’11b,GHS’12b,AP’13,BV’14,AP’14], but

still very inefficient – the main bottleneck in FHE, by far.

12 / 22

slide-46
SLIDE 46

Bootstrapping: SHE → FHE [Gen’09]

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

  • f(·) = Dec( · , µ )
  • µ

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

O(d · s · λ).

◮ Intensive study, many techniques

[G’09,GH’11a,GH’11b,GHS’12b,AP’13,BV’14,AP’14], but

still very inefficient – the main bottleneck in FHE, by far. ◮ Prior asymptotically efficient methods on “packed” ciphertexts

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

asymptotically slower methods.

12 / 22

slide-47
SLIDE 47

Milestones in Bootstrapping

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

13 / 22

slide-48
SLIDE 48

Milestones in Bootstrapping

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

13 / 22

slide-49
SLIDE 49

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” rings, emulating Z2 arithmetic in Zp.

13 / 22

slide-50
SLIDE 50

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” rings, emulating Z2 arithmetic in Zp. [GHS’12b]: ˜ O(λ) runtime, for “packed” plaintexts. Declare victory?

13 / 22

slide-51
SLIDE 51

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” 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

13 / 22

slide-52
SLIDE 52

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” 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.

13 / 22

slide-53
SLIDE 53

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” 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.

13 / 22

slide-54
SLIDE 54

Our Results

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

14 / 22

slide-55
SLIDE 55

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).

14 / 22

slide-56
SLIDE 56

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.

14 / 22

slide-57
SLIDE 57

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:

14 / 22

slide-58
SLIDE 58

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 an enhancement of ring-switching to non-subrings. 14 / 22

slide-59
SLIDE 59

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 an enhancement of ring-switching to non-subrings.

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

14 / 22

slide-60
SLIDE 60

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 an enhancement of ring-switching to non-subrings.

✔ Seems 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.”

14 / 22

slide-61
SLIDE 61

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 an enhancement of ring-switching to non-subrings.

✔ Seems 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.” ✔ Decouples the algebraic structure of SHE plaintext ring from the ring structure needed for bootstrapping.

14 / 22

slide-62
SLIDE 62

Bootstrapping Packed Ciphertexts: Overview

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

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. (Z-basis {bj} of R) Recall: v ≈ q

2 · µ, so µ = ⌊v⌉ := j⌊vj⌉ · bj ∈ R2.

15 / 22

slide-63
SLIDE 63

Bootstrapping Packed Ciphertexts: Overview

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

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. (Z-basis {bj} of R) Recall: v ≈ q

2 · µ, so µ = ⌊v⌉ := j⌊vj⌉ · bj ∈ R2. 2 Homomorphically map Zq-coeffs vj to “Zq-slots” of certain ring Sq:

  • vj · bj ∈ Rq

− →

  • vj · cj ∈ Sq.

(Change of basis, analogous to homomorphic DFT.)

15 / 22

slide-64
SLIDE 64

Bootstrapping Packed Ciphertexts: Overview

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

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. (Z-basis {bj} of R) Recall: v ≈ q

2 · µ, so µ = ⌊v⌉ := j⌊vj⌉ · bj ∈ R2. 2 Homomorphically map Zq-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.

15 / 22

slide-65
SLIDE 65

Bootstrapping Packed Ciphertexts: Overview

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

v = c0 + c1 · s =

  • j

vj · bj ∈ Rq. (Z-basis {bj} of R) Recall: v ≈ q

2 · µ, so µ = ⌊v⌉ := j⌊vj⌉ · bj ∈ R2. 2 Homomorphically map Zq-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.)

15 / 22

slide-66
SLIDE 66

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. So we have a cyclotomic tower S(i)/S(i−1)/ · · · /Z.

16 / 22

slide-67
SLIDE 67

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. So we have a cyclotomic 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

16 / 22

slide-68
SLIDE 68

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. So we have a cyclotomic 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.

16 / 22

slide-69
SLIDE 69

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. So we have a cyclotomic 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). Map vj ∈ Z2 → vj · cj ∈ S2 embeds Z2 into jth “slot” of S2.

16 / 22

slide-70
SLIDE 70

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. So we have a cyclotomic 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). Map 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).

16 / 22

slide-71
SLIDE 71

Algebra: Slots and CRT Sets

◮ Let 1 = ℓ0|ℓ1|ℓ2| · · · (all odd), and S(i) = Oℓi = Z[ζℓi]. So we have a cyclotomic 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). Map 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

).

16 / 22

slide-72
SLIDE 72

Mapping Coeffs to Slots: Overview

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

q −

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size n.

17 / 22

slide-73
SLIDE 73

Mapping Coeffs to Slots: Overview

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

q −

  • vj · cj mod q

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

17 / 22

slide-74
SLIDE 74

Mapping Coeffs to Slots: Overview

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

q −

  • vj · cj mod q

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

17 / 22

slide-75
SLIDE 75

Mapping Coeffs to Slots: Overview

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

q −

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size n. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear map L: R → S defined by L(bj) = cj. ◮ Ring-switching lets us evaluate any R′-linear map L: R → R′

17 / 22

slide-76
SLIDE 76

Mapping Coeffs to Slots: Overview

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

q −

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size n. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear map L: R → S defined by L(bj) = cj. ◮ Ring-switching lets us evaluate any R′-linear map L: R → R′ . . . but only for a subring R′ ⊆ R.

17 / 22

slide-77
SLIDE 77

Mapping Coeffs to Slots: Overview

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

q −

  • vj · cj mod q

for an appropriate CRT set C = {cj} ⊂ S of size n. ◮ Our goal: homomorphically map vj · bj ∈ Rq − → vj · cj ∈ Sq. Equivalently, evaluate the Z-linear map L: R → S defined by L(bj) = cj. ◮ Ring-switching lets us evaluate 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.

17 / 22

slide-78
SLIDE 78

Algebra: Combining Cyclotomic Rings

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

18 / 22

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”)

18 / 22

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”)

Easy Lemma

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

18 / 22

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”)

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.

18 / 22

slide-82
SLIDE 82

Enhanced Ring-Switching: First Attempt

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

19 / 22

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)

19 / 22

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,

19 / 22

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) !

19 / 22

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.

19 / 22

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!

19 / 22

slide-88
SLIDE 88

Enhanced Ring-Switching, Efficiently

Key Ideas

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

20 / 22

slide-89
SLIDE 89

Enhanced Ring-Switching, Efficiently

Key Ideas

◮ The Z-linear L: R → S given by L(bj) = cj 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)

20 / 22

slide-90
SLIDE 90

Enhanced Ring-Switching, Efficiently

Key Ideas

◮ The Z-linear L: R → S given by L(bj) = cj 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)

20 / 22

slide-91
SLIDE 91

Toy Example

◮ R = O8, basis B = B′

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

21 / 22

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}.

21 / 22

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

21 / 22

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.

21 / 22

slide-95
SLIDE 95

Final Thoughts

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

22 / 22

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.”

22 / 22

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.

22 / 22

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!

22 / 22