Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller Daniele - - PowerPoint PPT Presentation

trapdoors for lattices simpler tighter faster smaller
SMART_READER_LITE
LIVE PREVIEW

Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller Daniele - - PowerPoint PPT Presentation

Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller Daniele Micciancio 1 Chris Peikert 2 1 UC San Diego 2 Georgia Tech IBM Research 8 September 2011 1 / 17 Lattice-Based Cryptography p d o m x g = y N = = p m e mod N


slide-1
SLIDE 1

Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller Daniele Micciancio1 Chris Peikert2

1UC San Diego 2Georgia Tech

IBM Research 8 September 2011

1 / 17

slide-2
SLIDE 2

Lattice-Based Cryptography

N = p · q

y = g

x

m

  • d

p

me mod N

e(ga, gb)

= ⇒

(Images courtesy xkcd.org) 2 / 17

slide-3
SLIDE 3

Lattice-Based Cryptography

= ⇒

(Images courtesy xkcd.org) 2 / 17

slide-4
SLIDE 4

Lattice-Based Cryptography

= ⇒ Why? ◮ Simple & efficient: linear, highly parallel operations ◮ Resist quantum attacks (so far) ◮ Secure under worst-case hardness assumptions [Ajtai’96,. . . ] ◮ Solve ‘holy grail’ problems like FHE [Gentry’09,. . . ]

(Images courtesy xkcd.org) 2 / 17

slide-5
SLIDE 5

Lattice-Based One-Way Functions

◮ Public key

  • · · · A · · ·
  • ∈ Zn×m

q

for q = poly(n), m = Ω(n log q).

3 / 17

slide-6
SLIDE 6

Lattice-Based One-Way Functions

◮ Public key

  • · · · A · · ·
  • ∈ Zn×m

q

for q = poly(n), m = Ω(n log q). fA(x) = Ax mod q ∈ Zn

q

(“short” x, surjective) CRHF if SIS hard [Ajtai’96,. . . ]

3 / 17

slide-7
SLIDE 7

Lattice-Based One-Way Functions

◮ Public key

  • · · · A · · ·
  • ∈ Zn×m

q

for q = poly(n), m = Ω(n log q). fA(x) = Ax mod q ∈ Zn

q

(“short” x, surjective) CRHF if SIS hard [Ajtai’96,. . . ] gA(s, e) = stA + et mod q ∈ Zm

q

(“short” e, injective) OWF if LWE hard [Regev’05,P’09]

3 / 17

slide-8
SLIDE 8

Lattice-Based One-Way Functions

◮ Public key

  • · · · A · · ·
  • ∈ Zn×m

q

for q = poly(n), m = Ω(n log q). fA(x) = Ax mod q ∈ Zn

q

(“short” x, surjective) CRHF if SIS hard [Ajtai’96,. . . ] gA(s, e) = stA + et mod q ∈ Zm

q

(“short” e, injective) OWF if LWE hard [Regev’05,P’09] ◮ Lattice interpretation: Λ⊥(A) = {x ∈ Zm : fA(x) = Ax = 0 mod q}

O (0, q) (q, 0) 3 / 17

slide-9
SLIDE 9

Lattice-Based One-Way Functions

◮ Public key

  • · · · A · · ·
  • ∈ Zn×m

q

for q = poly(n), m = Ω(n log q). fA(x) = Ax mod q ∈ Zn

q

(“short” x, surjective) CRHF if SIS hard [Ajtai’96,. . . ] gA(s, e) = stA + et mod q ∈ Zm

q

(“short” e, injective) OWF if LWE hard [Regev’05,P’09] ◮ Lattice interpretation: Λ⊥(A) = {x ∈ Zm : fA(x) = Ax = 0 mod q}

O (0, q) (q, 0) x 3 / 17

slide-10
SLIDE 10

Lattice-Based One-Way Functions

◮ Public key

  • · · · A · · ·
  • ∈ Zn×m

q

for q = poly(n), m = Ω(n log q). fA(x) = Ax mod q ∈ Zn

q

(“short” x, surjective) CRHF if SIS hard [Ajtai’96,. . . ] gA(s, e) = stA + et mod q ∈ Zm

q

(“short” e, injective) OWF if LWE hard [Regev’05,P’09] ◮ fA, gA in forward direction yield CRHFs, CPA-secure encryption . . . and not much else.

3 / 17

slide-11
SLIDE 11

Trapdoor Inversion

◮ Many cryptographic applications need to invert fA and/or gA.

4 / 17

slide-12
SLIDE 12

Trapdoor Inversion

◮ Many cryptographic applications need to invert fA and/or gA. Invert gA(s, e) = stA + et mod q: find the unique preimage s (equivalently, e)

4 / 17

slide-13
SLIDE 13

Trapdoor Inversion

◮ Many cryptographic applications need to invert fA and/or gA. Invert u = fA(x′) = Ax′ mod q: sample random x ← f −1

A (u)

with prob ∝ exp(−x2/s2). Invert gA(s, e) = stA + et mod q: find the unique preimage s (equivalently, e)

4 / 17

slide-14
SLIDE 14

Trapdoor Inversion

◮ Many cryptographic applications need to invert fA and/or gA. Invert u = fA(x′) = Ax′ mod q: sample random x ← f −1

A (u)

with prob ∝ exp(−x2/s2). Invert gA(s, e) = stA + et mod q: find the unique preimage s (equivalently, e) ◮ How? Use a “strong trapdoor” for A: a short basis of Λ⊥(A)

[Babai’86,GGH’97,Klein’01,GPV’08,P’10]

O 4 / 17

slide-15
SLIDE 15

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

5 / 17

slide-16
SLIDE 16

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

5 / 17

slide-17
SLIDE 17

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

◮ Verify(m, x): check fA(x) = Ax = H(m) and x “short enough”

5 / 17

slide-18
SLIDE 18

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

◮ Verify(m, x): check fA(x) = Ax = H(m) and x “short enough” ◮ Security: finding “short enough” preimages in fA must be hard

5 / 17

slide-19
SLIDE 19

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

◮ Verify(m, x): check fA(x) = Ax = H(m) and x “short enough” ◮ Security: finding “short enough” preimages in fA must be hard Other “Black-Box” Applications of f −1, g−1 ◮ Standard model signatures [CHKP’10,R’10,B’10] ◮ CCA-secure encryption [PW’08,P’09] ◮ (Hierarchical) ID-based encryption [GPV’08,CHKP’10,ABB’10a,ABB’10b] ◮ Much more:

[PVW’08,PV’08,GHV’10,GKV’10,BF’10a,BF’10b,OPW’11,AFV’11,ABVVW’11,. . . ]

5 / 17

slide-20
SLIDE 20

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

◮ Verify(m, x): check fA(x) = Ax = H(m) and x “short enough” ◮ Security: finding “short enough” preimages in fA must be hard Some Drawbacks. . . ✗ Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09]

5 / 17

slide-21
SLIDE 21

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

◮ Verify(m, x): check fA(x) = Ax = H(m) and x “short enough” ◮ Security: finding “short enough” preimages in fA must be hard Some Drawbacks. . . ✗ Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09] ✗ Known algorithms trade quality for efficiency

5 / 17

slide-22
SLIDE 22

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures ◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q.

◮ Sign(m): let u = H(m) and output Gaussian x ← f −1

A (u)

◮ Verify(m, x): check fA(x) = Ax = H(m) and x “short enough” ◮ Security: finding “short enough” preimages in fA must be hard Some Drawbacks. . . ✗ Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09] ✗ Known algorithms trade quality for efficiency

g−1

A : [Babai’86] (tight,iterative,fp) vs [Babai’86] (looser,parallel,offline)

f −1

A : [Klein’01,GPV’08] (ditto) vs [P’10] (ditto)

5 / 17

slide-23
SLIDE 23

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O 6 / 17

slide-24
SLIDE 24

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor construction yields some lattice dim m = Ω(n log q).

6 / 17

slide-25
SLIDE 25

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor construction yields some lattice dim m = Ω(n log q). 2 Basis “quality” ≈ lengths of basis vectors ≈ Gaussian std dev s.

6 / 17

slide-26
SLIDE 26

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor construction yields some lattice dim m = Ω(n log q). 2 Basis “quality” ≈ lengths of basis vectors ≈ Gaussian std dev s. 3 Dimension m, std dev s =

⇒ preimage length β = x ≈ s√m.

6 / 17

slide-27
SLIDE 27

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor construction yields some lattice dim m = Ω(n log q). 2 Basis “quality” ≈ lengths of basis vectors ≈ Gaussian std dev s. 3 Dimension m, std dev s =

⇒ preimage length β = x ≈ s√m.

4 Choose n, q so that finding β-bounded preimages is hard.

6 / 17

slide-28
SLIDE 28

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor construction yields some lattice dim m = Ω(n log q). 2 Basis “quality” ≈ lengths of basis vectors ≈ Gaussian std dev s. 3 Dimension m, std dev s =

⇒ preimage length β = x ≈ s√m.

4 Choose n, q so that finding β-bounded preimages is hard.

✔ Better dimension m & quality s = ⇒ “win-win-win” in security-keysize-runtime

6 / 17

slide-29
SLIDE 29

Our Contributions

New “strong” trapdoor generation and inversion algorithms:

7 / 17

slide-30
SLIDE 30

Our Contributions

New “strong” trapdoor generation and inversion algorithms: ✔ Very simple & fast

⋆ Generation: one matrix mult. No HNF or inverses (cf. [A’99,AP’09]) ⋆ Inversion: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff 7 / 17

slide-31
SLIDE 31

Our Contributions

New “strong” trapdoor generation and inversion algorithms: ✔ Very simple & fast

⋆ Generation: one matrix mult. No HNF or inverses (cf. [A’99,AP’09]) ⋆ Inversion: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff

✔ Tighter parameters m and s

⋆ Asymptotically optimal with small constant factors ⋆ Ex improvement: 32x in dim m, 25x in quality s ⇒ 67x in keysize 7 / 17

slide-32
SLIDE 32

Our Contributions

New “strong” trapdoor generation and inversion algorithms: ✔ Very simple & fast

⋆ Generation: one matrix mult. No HNF or inverses (cf. [A’99,AP’09]) ⋆ Inversion: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff

✔ Tighter parameters m and s

⋆ Asymptotically optimal with small constant factors ⋆ Ex improvement: 32x in dim m, 25x in quality s ⇒ 67x in keysize

✔ New kind of trapdoor — not a basis! (But just as powerful.)

⋆ Half the dimension of a basis ⇒ 4x size improvement ⋆ Delegation: size grows as O(dim), versus O(dim2) [CHKP’10] 7 / 17

slide-33
SLIDE 33

Our Contributions

New “strong” trapdoor generation and inversion algorithms: ✔ Very simple & fast

⋆ Generation: one matrix mult. No HNF or inverses (cf. [A’99,AP’09]) ⋆ Inversion: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff

✔ Tighter parameters m and s

⋆ Asymptotically optimal with small constant factors ⋆ Ex improvement: 32x in dim m, 25x in quality s ⇒ 67x in keysize

✔ New kind of trapdoor — not a basis! (But just as powerful.)

⋆ Half the dimension of a basis ⇒ 4x size improvement ⋆ Delegation: size grows as O(dim), versus O(dim2) [CHKP’10]

✔ More efficient applications (beyond “black-box” improvements)

7 / 17

slide-34
SLIDE 34

Concrete Parameter Improvements

Before [AP’09] Now (fast f −1) Improvement Dim m

slow f −1: > 5n log q

2n log q (

s

≈)

2.5 – log q

fast f −1: > n log2 q

n(1 + log q) (

c

≈)

8 / 17

slide-35
SLIDE 35

Concrete Parameter Improvements

Before [AP’09] Now (fast f −1) Improvement Dim m

slow f −1: > 5n log q

2n log q (

s

≈)

2.5 – log q

fast f −1: > n log2 q

n(1 + log q) (

c

≈)

Quality s

slow f −1: 20√n log q

1.6√n log q 12.5 – 10√log q

fast f −1: 16

  • n log2 q

8 / 17

slide-36
SLIDE 36

Concrete Parameter Improvements

Before [AP’09] Now (fast f −1) Improvement Dim m

slow f −1: > 5n log q

2n log q (

s

≈)

2.5 – log q

fast f −1: > n log2 q

n(1 + log q) (

c

≈)

Quality s

slow f −1: 20√n log q

1.6√n log q 12.5 – 10√log q

fast f −1: 16

  • n log2 q

Example parameters for (ring-based) GPV signatures: n q δ to break pk size (bits) Before (fast f −1) 436 232 1.007 ≈ 17 × 106 Now 284 224 1.007 ≈ 360 × 103 Bottom line: ≈ 45-fold improvement in key size.

8 / 17

slide-37
SLIDE 37

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” G.

Give fast, parallel, offline algorithms for f −1

G , g−1 G .

9 / 17

slide-38
SLIDE 38

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” G.

Give fast, parallel, offline algorithms for f −1

G , g−1 G . 2 Randomize G ↔ A via a “nice” unimodular transformation.

(The transformation is the trapdoor!)

9 / 17

slide-39
SLIDE 39

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” G.

Give fast, parallel, offline algorithms for f −1

G , g−1 G . 2 Randomize G ↔ A via a “nice” unimodular transformation.

(The transformation is the trapdoor!)

3 Reduce f −1 A , g−1 A

to f −1

G , g−1 G

plus pre-/post-processing.

9 / 17

slide-40
SLIDE 40

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

.

10 / 17

slide-41
SLIDE 41

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

10 / 17

slide-42
SLIDE 42

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

10 / 17

slide-43
SLIDE 43

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

⋆ OR round to q

8-multiple and lookup in size-q3 table.

10 / 17

slide-44
SLIDE 44

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

⋆ OR round to q

8-multiple and lookup in size-q3 table.

⋆ OR a hybrid of the two approaches. 10 / 17

slide-45
SLIDE 45

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

⋆ OR round to q

8-multiple and lookup in size-q3 table.

⋆ OR a hybrid of the two approaches.

◮ Sample Gaussian preimage for u = fg(x) := g, x mod q.

10 / 17

slide-46
SLIDE 46

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

⋆ OR round to q

8-multiple and lookup in size-q3 table.

⋆ OR a hybrid of the two approaches.

◮ Sample Gaussian preimage for u = fg(x) := g, x mod q.

⋆ For i ← 0, . . . , k − 1: choose xi ← (2Z + u), let u ← (u − xi)/2 ∈ Z. 10 / 17

slide-47
SLIDE 47

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

⋆ OR round to q

8-multiple and lookup in size-q3 table.

⋆ OR a hybrid of the two approaches.

◮ Sample Gaussian preimage for u = fg(x) := g, x mod q.

⋆ For i ← 0, . . . , k − 1: choose xi ← (2Z + u), let u ← (u − xi)/2 ∈ Z. ⋆ OR presample many x ← Zk and store in ‘buckets’ fg(x) for later. 10 / 17

slide-48
SLIDE 48

Step 1: Gadget G and Inversion Algorithms

◮ Let q = 2k. Define 1-by-k “parity check” vector g :=

  • 1

2 4 · · · 2k−1 ∈ Z1×k

q

. ◮ Invert LWE function gg : Zq × Zk → Zk

q

gg(s, e) := s · g + e =

  • s + e0

2s + e1 · · · 2k−1s + ek−1

  • mod q.

⋆ Get lsb(s), ek−1 from 2k−1s + ek−1. Then get next bit of s, etc.

Works exactly when e ∈ [− q

4, q 4)k.

⋆ OR round to q

8-multiple and lookup in size-q3 table.

⋆ OR a hybrid of the two approaches.

◮ Sample Gaussian preimage for u = fg(x) := g, x mod q.

⋆ For i ← 0, . . . , k − 1: choose xi ← (2Z + u), let u ← (u − xi)/2 ∈ Z. ⋆ OR presample many x ← Zk and store in ‘buckets’ fg(x) for later. ⋆ OR a hybrid of the two approaches. 10 / 17

slide-49
SLIDE 49

Step 1: Gadget G and Inversion Algorithms

◮ Another view: for g =

  • 1

2 · · · 2k−1 the lattice Λ⊥(g) has basis S =     

2 −1 2 −1 ... 2 −1 2

     ∈ Zk×k, with S = 2 · Ik.

11 / 17

slide-50
SLIDE 50

Step 1: Gadget G and Inversion Algorithms

◮ Another view: for g =

  • 1

2 · · · 2k−1 the lattice Λ⊥(g) has basis S =     

2 −1 2 −1 ... 2 −1 2

     ∈ Zk×k, with S = 2 · Ik. The iterative inversion algorithms for fg, gg are special cases of the (randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08].

11 / 17

slide-51
SLIDE 51

Step 1: Gadget G and Inversion Algorithms

◮ Another view: for g =

  • 1

2 · · · 2k−1 the lattice Λ⊥(g) has basis S =     

2 −1 2 −1 ... 2 −1 2

     ∈ Zk×k, with S = 2 · Ik. The iterative inversion algorithms for fg, gg are special cases of the (randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08]. ◮ Define G = In ⊗ g =      · · · g · · · · · · g · · · ... · · · g · · ·      ∈ Zn×nk

q

.

11 / 17

slide-52
SLIDE 52

Step 1: Gadget G and Inversion Algorithms

◮ Another view: for g =

  • 1

2 · · · 2k−1 the lattice Λ⊥(g) has basis S =     

2 −1 2 −1 ... 2 −1 2

     ∈ Zk×k, with S = 2 · Ik. The iterative inversion algorithms for fg, gg are special cases of the (randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08]. ◮ Define G = In ⊗ g =      · · · g · · · · · · g · · · ... · · · g · · ·      ∈ Zn×nk

q

. Now f −1

G , g−1 G reduce to n parallel (and offline) calls to f −1 g , g−1 g .

11 / 17

slide-53
SLIDE 53

Step 1: Gadget G and Inversion Algorithms

◮ Another view: for g =

  • 1

2 · · · 2k−1 the lattice Λ⊥(g) has basis S =     

2 −1 2 −1 ... 2 −1 2

     ∈ Zk×k, with S = 2 · Ik. The iterative inversion algorithms for fg, gg are special cases of the (randomized) “nearest-plane” algorithm [Babai’86,Klein’01,GPV’08]. ◮ Define G = In ⊗ g =      · · · g · · · · · · g · · · ... · · · g · · ·      ∈ Zn×nk

q

. Now f −1

G , g−1 G reduce to n parallel (and offline) calls to f −1 g , g−1 g .

Also applies to H · G for any invertible H ∈ Zn×n

q

.

11 / 17

slide-54
SLIDE 54

Step 2: Randomize G ↔ A

1 Define semi-random [¯

A | G] for uniform (universal) ¯ A ∈ Znׯ

m q

. (Computing f −1, g−1 easily reduce to f −1

G , g−1 G .)

12 / 17

slide-55
SLIDE 55

Step 2: Randomize G ↔ A

1 Define semi-random [¯

A | G] for uniform (universal) ¯ A ∈ Znׯ

m q

. (Computing f −1, g−1 easily reduce to f −1

G , g−1 G .) 2 Choose “short” (Gaussian) R ← Z¯ m×n log q and let

A := [¯ A | G] I −R I

  • unimodular

= [¯ A | G − ¯ AR].

12 / 17

slide-56
SLIDE 56

Step 2: Randomize G ↔ A

1 Define semi-random [¯

A | G] for uniform (universal) ¯ A ∈ Znׯ

m q

. (Computing f −1, g−1 easily reduce to f −1

G , g−1 G .) 2 Choose “short” (Gaussian) R ← Z¯ m×n log q and let

A := [¯ A | G] I −R I

  • unimodular

= [¯ A | G − ¯ AR].

⋆ A is uniform if [¯

A | ¯ AR] is: leftover hash lemma for ¯ m ≈ n log q.

12 / 17

slide-57
SLIDE 57

Step 2: Randomize G ↔ A

1 Define semi-random [¯

A | G] for uniform (universal) ¯ A ∈ Znׯ

m q

. (Computing f −1, g−1 easily reduce to f −1

G , g−1 G .) 2 Choose “short” (Gaussian) R ← Z¯ m×n log q and let

A := [¯ A | G] I −R I

  • unimodular

= [¯ A | G − ¯ AR].

⋆ A is uniform if [¯

A | ¯ AR] is: leftover hash lemma for ¯ m ≈ n log q. With G = 0, we get Ajtai’s original method for constructing A with a “weak” trapdoor of ≥ 1 short vector (but not a full basis).

12 / 17

slide-58
SLIDE 58

Step 2: Randomize G ↔ A

1 Define semi-random [¯

A | G] for uniform (universal) ¯ A ∈ Znׯ

m q

. (Computing f −1, g−1 easily reduce to f −1

G , g−1 G .) 2 Choose “short” (Gaussian) R ← Z¯ m×n log q and let

A := [¯ A | G] I −R I

  • unimodular

= [¯ A | G − ¯ AR].

⋆ A is uniform if [¯

A | ¯ AR] is: leftover hash lemma for ¯ m ≈ n log q. With G = 0, we get Ajtai’s original method for constructing A with a “weak” trapdoor of ≥ 1 short vector (but not a full basis).

⋆ [I | ¯

A | −(¯ AR1 + R2)] is pseudorandom (under LWE) for ¯ m = n.

12 / 17

slide-59
SLIDE 59

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR].

13 / 17

slide-60
SLIDE 60

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR]. Definition ◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(invertible) if A · R

I

  • = H · G.

13 / 17

slide-61
SLIDE 61

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR]. Definition ◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(invertible) if A · R

I

  • = H · G.

◮ The quality of R is s1(R) := max

u=1Ru.

(smaller is better.)

13 / 17

slide-62
SLIDE 62

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR]. Definition ◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(invertible) if A · R

I

  • = H · G.

◮ The quality of R is s1(R) := max

u=1Ru.

(smaller is better.)

◮ Fact: s1(R) ≈ (√rows+ √ cols)·r for Gaussian entries w/ std dev r.

13 / 17

slide-63
SLIDE 63

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR]. Definition ◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(invertible) if A · R

I

  • = H · G.

◮ The quality of R is s1(R) := max

u=1Ru.

(smaller is better.)

◮ Fact: s1(R) ≈ (√rows+ √ cols)·r for Gaussian entries w/ std dev r. ◮ Note: R is a trapdoor for A − [0 | H′ · G] w/ tag (H − H′)

[ABB’10].

13 / 17

slide-64
SLIDE 64

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR]. Definition ◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(invertible) if A · R

I

  • = H · G.

◮ The quality of R is s1(R) := max

u=1Ru.

(smaller is better.)

◮ Fact: s1(R) ≈ (√rows+ √ cols)·r for Gaussian entries w/ std dev r. ◮ Note: R is a trapdoor for A − [0 | H′ · G] w/ tag (H − H′)

[ABB’10].

Relating New and Old Trapdoors Given a basis S for Λ⊥(G) and a trapdoor R for A, we can efficiently construct a basis SA for Λ⊥(A) where SA ≤ (s1(R) + 1) · S.

13 / 17

slide-65
SLIDE 65

A New Trapdoor Notion

◮ We constructed A = [¯ A | G − ¯ AR]. Definition ◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(invertible) if A · R

I

  • = H · G.

◮ The quality of R is s1(R) := max

u=1Ru.

(smaller is better.)

◮ Fact: s1(R) ≈ (√rows+ √ cols)·r for Gaussian entries w/ std dev r. ◮ Note: R is a trapdoor for A − [0 | H′ · G] w/ tag (H − H′)

[ABB’10].

Relating New and Old Trapdoors Given a basis S for Λ⊥(G) and a trapdoor R for A, we can efficiently construct a basis SA for Λ⊥(A) where SA ≤ (s1(R) + 1) · S.

(But we’ll never need to.)

13 / 17

slide-66
SLIDE 66

Step 3: Reduce f −1

A , g−1 A to f −1 G , g−1 G

◮ Suppose R is a trapdoor for A (w/ tag H = I): A R

I

  • = G.

14 / 17

slide-67
SLIDE 67

Step 3: Reduce f −1

A , g−1 A to f −1 G , g−1 G

◮ Suppose R is a trapdoor for A (w/ tag H = I): A R

I

  • = G.

Inverting LWE Function Given bt = stA + et, recover s from bt R

I

  • = stG + et R

I

  • .

Works if each entry of et R

I

  • in [− q

4, q 4), e.g. if e < q/(4s1(

R

I

  • )).

14 / 17

slide-68
SLIDE 68

Step 3: Reduce f −1

A , g−1 A to f −1 G , g−1 G

◮ Suppose R is a trapdoor for A (w/ tag H = I): A R

I

  • = G.

Inverting LWE Function Given bt = stA + et, recover s from bt R

I

  • = stG + et R

I

  • .

Works if each entry of et R

I

  • in [− q

4, q 4), e.g. if e < q/(4s1(

R

I

  • )).

Sampling Gaussian Preimages Given u = fA(x′) = Ax′, sample z ← f −1

G (u) and output x =

R

I

  • z ?

◮ We have Ax = Gz = u as desired.

14 / 17

slide-69
SLIDE 69

Step 3: Reduce f −1

A , g−1 A to f −1 G , g−1 G

◮ Suppose R is a trapdoor for A (w/ tag H = I): A R

I

  • = G.

Inverting LWE Function Given bt = stA + et, recover s from bt R

I

  • = stG + et R

I

  • .

Works if each entry of et R

I

  • in [− q

4, q 4), e.g. if e < q/(4s1(

R

I

  • )).

Sampling Gaussian Preimages Given u = fA(x′) = Ax′, sample z ← f −1

G (u) and output x =

R

I

  • z ?

◮ We have Ax = Gz = u as desired. ◮ Problem: R

I

  • z is non-spherical Gaussian, leaks R !

14 / 17

slide-70
SLIDE 70

Step 3: Reduce f −1

A , g−1 A to f −1 G , g−1 G

◮ Suppose R is a trapdoor for A (w/ tag H = I): A R

I

  • = G.

Inverting LWE Function Given bt = stA + et, recover s from bt R

I

  • = stG + et R

I

  • .

Works if each entry of et R

I

  • in [− q

4, q 4), e.g. if e < q/(4s1(

R

I

  • )).

Sampling Gaussian Preimages Given u = fA(x′) = Ax′, sample z ← f −1

G (u) and output x =

R

I

  • z ?

◮ We have Ax = Gz = u as desired. ◮ Problem: R

I

  • z is non-spherical Gaussian, leaks R !

◮ Solution: use offline ‘perturbation’ [P’10] to get spherical Gaussian w/ std dev ≈ s1(R): output x = p + R

I

  • z.

14 / 17

slide-71
SLIDE 71

Trapdoor Delegation [CHKP’10]

◮ Suppose R is a trapdoor for A, i.e. A R

I

  • = H · G.

15 / 17

slide-72
SLIDE 72

Trapdoor Delegation [CHKP’10]

◮ Suppose R is a trapdoor for A, i.e. A R

I

  • = H · G.

◮ To delegate a trapdoor for an extension [A | A′] with tag H′, just sample Gaussian R′ s.t. [A | A′] R′

I

  • = H′ · G ⇐

⇒ AR′ = H′ · G − A′.

15 / 17

slide-73
SLIDE 73

Trapdoor Delegation [CHKP’10]

◮ Suppose R is a trapdoor for A, i.e. A R

I

  • = H · G.

◮ To delegate a trapdoor for an extension [A | A′] with tag H′, just sample Gaussian R′ s.t. [A | A′] R′

I

  • = H′ · G ⇐

⇒ AR′ = H′ · G − A′. ◮ Note: R′ is only width(A) × width(G) = m × n log q. So size of R′ grows only as O(m), not Ω(m2) [CHKP’10]. Also computationally efficient: n log q samples, no HNF or ToBasis.

15 / 17

slide-74
SLIDE 74

Improved “Bonsai” Applications

Hierarchical IBE

[CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad (each dim n log q) where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}

(d + 1 vs ≥ 4d + 2)

16 / 17

slide-75
SLIDE 75

Improved “Bonsai” Applications

Hierarchical IBE

[CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad (each dim n log q) where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}

(d + 1 vs ≥ 4d + 2)

◮ For id = (H1, . . . , Ht) of nonzero (invertible) Hi ∈ H, let Aid = [A0 | A1 − H1G | · · · | At − HtG | At+1].

16 / 17

slide-76
SLIDE 76

Improved “Bonsai” Applications

Hierarchical IBE

[CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad (each dim n log q) where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}

(d + 1 vs ≥ 4d + 2)

◮ For id = (H1, . . . , Ht) of nonzero (invertible) Hi ∈ H, let Aid = [A0 | A1 − H1G | · · · | At − HtG | At+1]. and skid is a trapdoor Rid for Aid with tag 0. Using skid, can delegate any skid′ for any nontrivial extension id′.

16 / 17

slide-77
SLIDE 77

Improved “Bonsai” Applications

Hierarchical IBE

[CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad (each dim n log q) where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}

(d + 1 vs ≥ 4d + 2)

◮ For id = (H1, . . . , Ht) of nonzero (invertible) Hi ∈ H, let Aid = [A0 | A1 − H1G | · · · | At − HtG | At+1]. and skid is a trapdoor Rid for Aid with tag 0. Using skid, can delegate any skid′ for any nontrivial extension id′. ◮ Encrypt (up to n log q bits) to Aid, decrypt using Rid as in [GPV’08].

16 / 17

slide-78
SLIDE 78

Improved “Bonsai” Applications

Hierarchical IBE

[CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad (each dim n log q) where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}

(d + 1 vs ≥ 4d + 2)

◮ For id = (H1, . . . , Ht) of nonzero (invertible) Hi ∈ H, let Aid = [A0 | A1 − H1G | · · · | At − HtG | At+1]. and skid is a trapdoor Rid for Aid with tag 0. Using skid, can delegate any skid′ for any nontrivial extension id′. ◮ Encrypt (up to n log q bits) to Aid, decrypt using Rid as in [GPV’08]. ◮ Security (“puncturing”): Set up mpk, trapdoor R with tags = id∗. Family H with “invertible differences” from extension ring of Zq

[DF’94,Fehr’98,ABB’10]

16 / 17

slide-79
SLIDE 79

Conclusions

◮ A new, simpler, more efficient trapdoor notion and construction

17 / 17

slide-80
SLIDE 80

Conclusions

◮ A new, simpler, more efficient trapdoor notion and construction ◮ Exposing structure of trapdoor to applications yields further efficiency improvements

17 / 17

slide-81
SLIDE 81

Conclusions

◮ A new, simpler, more efficient trapdoor notion and construction ◮ Exposing structure of trapdoor to applications yields further efficiency improvements ◮ Key sizes and algorithms for “strong” trapdoors are now practical

17 / 17

slide-82
SLIDE 82

Conclusions

◮ A new, simpler, more efficient trapdoor notion and construction ◮ Exposing structure of trapdoor to applications yields further efficiency improvements ◮ Key sizes and algorithms for “strong” trapdoors are now practical

Questions?

17 / 17