Session #10: (More) Trapdoors and Applications Chris Peikert - - PowerPoint PPT Presentation

session 10 more trapdoors and applications chris peikert
SMART_READER_LITE
LIVE PREVIEW

Session #10: (More) Trapdoors and Applications Chris Peikert - - PowerPoint PPT Presentation

Session #10: (More) Trapdoors and Applications Chris Peikert Georgia Institute of Technology Winter School on Lattice-Based Cryptography and Applications Bar-Ilan University, Israel 19 Feb 2012 22 Feb 2012 Lattice-Based Crypto &


slide-1
SLIDE 1

Session #10: (More) Trapdoors and Applications Chris Peikert

Georgia Institute of Technology Winter School on Lattice-Based Cryptography and Applications Bar-Ilan University, Israel 19 Feb 2012 – 22 Feb 2012

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 1/16

slide-2
SLIDE 2

Lattice-Based One-Way Functions

◮ Public key

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

q

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 2/16

slide-3
SLIDE 3

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,. . . ]

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 2/16

slide-4
SLIDE 4

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-Based Crypto & Applications, Bar-Ilan University, Israel 2012 2/16

slide-5
SLIDE 5

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)

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 2/16

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,. . . ] gA(s, e) = stA + et mod q ∈ Zm

q

(“short” e, injective) OWF if LWE hard [Regev’05,P’09] ◮ Lattice interpretation: Λ⊥

u (A) = {x ∈ Zm : fA(x) = Ax = u mod q}

O (0, q) (q, 0) x

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 2/16

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] ◮ fA, gA in forward direction yield CRHFs, CPA security (w/FHE!) . . . but not much else.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 2/16

slide-8
SLIDE 8

Trapdoor Inversion

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 3/16

slide-9
SLIDE 9

Trapdoor Inversion

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 3/16

slide-10
SLIDE 10

Trapdoor Inversion

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

A (u)

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 3/16

slide-11
SLIDE 11

Trapdoor Inversion

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

A (u)

with prob ∝ exp(−x2/s2). Invert gA(s, e) = stA + et: 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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 3/16

slide-12
SLIDE 12

Applications of Strong Trapdoors

Canonical App: [GPV’08] Signatures

◮ pk = A, sk = short basis for A, random oracle H : {0, 1}∗ → Zn

q .

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

slide-13
SLIDE 13

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)

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

slide-14
SLIDE 14

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”

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

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 .

◮ 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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

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)

◮ 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 (no RO) signatures [CHKP’10,R’10,B’10] ◮ SM CCA-secure encryption [PW’08,P’09] ◮ SM (Hierarchical) IBE [GPV’08,CHKP’10,ABB’10a,ABB’10b] ◮ Many more: OT, NISZK, homom enc/sigs, deniable enc, func enc, . . .

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

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

Some Drawbacks. . .

✗ Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09] ✗ Known inversion algorithms trade quality for efficiency

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

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

Some Drawbacks. . .

✗ Generating A w/ short basis is complicated and slow [Ajtai’99,AP’09] ✗ Known inversion algorithms trade quality for efficiency tight, iterative, fp looser, parallel, offline g−1

A

[Babai’86] [Babai’86]

f−1

A

[Klein’01,GPV’08] [P’10]

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 4/16

slide-20
SLIDE 20

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 5/16

slide-21
SLIDE 21

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor generator yields some lattice dim m ≥ Cn log q.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 5/16

slide-22
SLIDE 22

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor generator yields some lattice dim m ≥ Cn log q. 2 Basis “quality” ≈ lengths of basis vectors ≈ Gaussian std dev s.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 5/16

slide-23
SLIDE 23

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor generator yields some lattice dim m ≥ Cn log q. 2 Basis “quality” ≈ lengths of basis vectors ≈ Gaussian std dev s. 3 Dimension m, std dev s =

⇒ preimage length β = x ≈ s√m.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 5/16

slide-24
SLIDE 24

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor generator yields some lattice dim m ≥ Cn 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 Security: choose n, q so that finding β-bounded preimages is hard.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 5/16

slide-25
SLIDE 25

Taming the Parameters

n

  • · · ·

A · · ·

  • m

fA(x) = Ax

O

1 Trapdoor generator yields some lattice dim m ≥ Cn 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 Security: choose n, q so that finding β-bounded preimages is hard.

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 5/16

slide-26
SLIDE 26

This Talk [MP’12]

“Strong” trapdoor generation and inversion algorithms:

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 6/16

slide-27
SLIDE 27

This Talk [MP’12]

“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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 6/16

slide-28
SLIDE 28

This Talk [MP’12]

“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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 6/16

slide-29
SLIDE 29

This Talk [MP’12]

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 6/16

slide-30
SLIDE 30

This Talk [MP’12]

“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.) ✔ More efficient applications: CCA, (H)IBE in standard model

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 6/16

slide-31
SLIDE 31

Overview of Methods

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

Give fast, parallel, offline algorithms for f−1

G , g−1 G .

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 7/16

slide-32
SLIDE 32

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” matrix 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!)

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 7/16

slide-33
SLIDE 33

Overview of Methods

1 Design a fixed, public lattice defined by “gadget” matrix 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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 7/16

slide-34
SLIDE 34

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

.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

slide-35
SLIDE 35

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

. ◮ To invert LWE function gg : Zq × Zk → Zk

q:

s · g + e =

  • s + e0

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

  • mod q.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

slide-36
SLIDE 36

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

. ◮ To invert LWE function gg : Zq × Zk → Zk

q:

s · g + e =

  • s + e0

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

  • mod q.

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

Works exactly when every ei ∈ [− q

4, q 4).

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

slide-37
SLIDE 37

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

. ◮ To invert LWE function gg : Zq × Zk → Zk

q:

s · g + e =

  • s + e0

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

  • mod q.

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

Works exactly when every ei ∈ [− q

4, q 4).

⋆ OR round entries and look up in table.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

slide-38
SLIDE 38

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

. ◮ To invert LWE function gg : Zq × Zk → Zk

q:

s · g + e =

  • s + e0

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

  • mod q.

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

Works exactly when every ei ∈ [− q

4, q 4).

⋆ OR round entries and look up in table.

◮ To sample Gaussian preimage for u = fg(x) := g, x:

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

slide-39
SLIDE 39

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

. ◮ To invert LWE function gg : Zq × Zk → Zk

q:

s · g + e =

  • s + e0

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

  • mod q.

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

Works exactly when every ei ∈ [− q

4, q 4).

⋆ OR round entries and look up in table.

◮ To sample Gaussian preimage for u = fg(x) := g, x:

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

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

. ◮ To invert LWE function gg : Zq × Zk → Zk

q:

s · g + e =

  • s + e0

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

  • mod q.

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

Works exactly when every ei ∈ [− q

4, q 4).

⋆ OR round entries and look up in table.

◮ To sample Gaussian preimage for u = fg(x) := g, x:

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 8/16

slide-41
SLIDE 41

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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 9/16

slide-42
SLIDE 42

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 9/16

slide-43
SLIDE 43

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

.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 9/16

slide-44
SLIDE 44

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 .

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 9/16

slide-45
SLIDE 45

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

.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 9/16

slide-46
SLIDE 46

Step 2: Randomize G ↔ A

1 Define semi-random [ ¯

A | G] for uniform ¯ A ∈ Zn× ¯

m q

. (Note: f−1

[ ¯ A|G], g−1 [ ¯ A|G] easily reduce to f−1 G , g−1 G

[CHKP’10].)

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 10/16

slide-47
SLIDE 47

Step 2: Randomize G ↔ A

1 Define semi-random [ ¯

A | G] for uniform ¯ A ∈ Zn× ¯

m q

. (Note: f−1

[ ¯ A|G], g−1 [ ¯ A|G] easily reduce to f−1 G , g−1 G

[CHKP’10].)

2 Choose “short” (Gaussian) R ← Z ¯ m×n log q and let

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

  • unimodular

= [ ¯ A | G − ¯ AR].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 10/16

slide-48
SLIDE 48

Step 2: Randomize G ↔ A

1 Define semi-random [ ¯

A | G] for uniform ¯ A ∈ Zn× ¯

m q

. (Note: f−1

[ ¯ A|G], g−1 [ ¯ A|G] easily reduce to f−1 G , g−1 G

[CHKP’10].)

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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 10/16

slide-49
SLIDE 49

Step 2: Randomize G ↔ A

1 Define semi-random [ ¯

A | G] for uniform ¯ A ∈ Zn× ¯

m q

. (Note: f−1

[ ¯ A|G], g−1 [ ¯ A|G] easily reduce to f−1 G , g−1 G

[CHKP’10].)

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 10/16

slide-50
SLIDE 50

Step 2: Randomize G ↔ A

1 Define semi-random [ ¯

A | G] for uniform ¯ A ∈ Zn× ¯

m q

. (Note: f−1

[ ¯ A|G], g−1 [ ¯ A|G] easily reduce to f−1 G , g−1 G

[CHKP’10].)

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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 10/16

slide-51
SLIDE 51

A New Trapdoor Notion

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-52
SLIDE 52

A New Trapdoor Notion

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

Definition

◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(H invertible) if A · R

I

  • = H · G.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-53
SLIDE 53

A New Trapdoor Notion

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

Definition

◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(H invertible) if A · R

I

  • = H · G.

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

u=1Ru.

(smaller is better.)

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-54
SLIDE 54

A New Trapdoor Notion

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

Definition

◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(H 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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-55
SLIDE 55

A New Trapdoor Notion

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

Definition

◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(H 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].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-56
SLIDE 56

A New Trapdoor Notion

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

Definition

◮ R is a trapdoor for A with tag H ∈ Zn×n

q

(H 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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-57
SLIDE 57

A New Trapdoor Notion

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

Definition

◮ R is a trapdoor for A with tag H ∈ Zn×n

q

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 11/16

slide-58
SLIDE 58

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.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 12/16

slide-59
SLIDE 59

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 < q/(4s1(

R

I

  • )).

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 12/16

slide-60
SLIDE 60

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 < q/(4s1(

R

I

  • )).

Sampling Gaussian Preimages

Given u, sample z ← f−1

G (u) and output x =

R

I

  • z ∈ f−1

A (u) ?

◮ We have Ax = Gz = u as desired.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 12/16

slide-61
SLIDE 61

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 < q/(4s1(

R

I

  • )).

Sampling Gaussian Preimages

Given u, sample z ← f−1

G (u) and output x =

R

I

  • z ∈ f−1

A (u) ?

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

I

  • z is non-spherical Gaussian, leaks R !

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 12/16

slide-62
SLIDE 62

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 < q/(4s1(

R

I

  • )).

Sampling Gaussian Preimages

Given u, sample z ← f−1

G (u) and output x =

R

I

  • z ∈ f−1

A (u) ?

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 12/16

slide-63
SLIDE 63

Application: Efficient IBE a la [ABB’10]

◮ Setup: choose A = [ ¯ A | − ¯ AR]. Let mpk = (A, u), msk = R. (A has trapdoor R with tag 0.)

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 13/16

slide-64
SLIDE 64

Application: Efficient IBE a la [ABB’10]

◮ Setup: choose A = [ ¯ A | − ¯ AR]. Let mpk = (A, u), msk = R. (A has trapdoor R with tag 0.) ◮ Extract(R, id): map id → invertible Hid ∈ Zn×n

q

.

[DF’94,. . . ,ABB’10]

Using R, choose skid = x ← f−1

Aid(u), where

Aid = A + [0 | Hid · G] = [ ¯ A | Hid · G − ¯ AR].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 13/16

slide-65
SLIDE 65

Application: Efficient IBE a la [ABB’10]

◮ Setup: choose A = [ ¯ A | − ¯ AR]. Let mpk = (A, u), msk = R. (A has trapdoor R with tag 0.) ◮ Extract(R, id): map id → invertible Hid ∈ Zn×n

q

.

[DF’94,. . . ,ABB’10]

Using R, choose skid = x ← f−1

Aid(u), where

Aid = A + [0 | Hid · G] = [ ¯ A | Hid · G − ¯ AR]. ◮ Encrypt to Aid, decrypt using skid as in ‘dual’ system [GPV’08].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 13/16

slide-66
SLIDE 66

Application: Efficient IBE a la [ABB’10]

◮ Setup: choose A = [ ¯ A | − ¯ AR]. Let mpk = (A, u), msk = R. (A has trapdoor R with tag 0.) ◮ Extract(R, id): map id → invertible Hid ∈ Zn×n

q

.

[DF’94,. . . ,ABB’10]

Using R, choose skid = x ← f−1

Aid(u), where

Aid = A + [0 | Hid · G] = [ ¯ A | Hid · G − ¯ AR]. ◮ Encrypt to Aid, decrypt using skid as in ‘dual’ system [GPV’08]. ◮ Security (“puncturing”): Given target id∗ (selective security), set up A = [ ¯ A | −Hid∗ · G − ¯ AR] = ⇒ Aid = [ ¯ A | (Hid − Hid∗)G − ¯ AR].

⋆ Hid − Hid∗ is invertible for all id = id∗, so can extract skid using R. ⋆ Aid∗ = [ ¯

A | − ¯ AR], so can embed an LWE challenge at id∗.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 13/16

slide-67
SLIDE 67

Trapdoor Delegation [CHKP’10]

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

I

  • = H · G.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 14/16

slide-68
SLIDE 68

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 14/16

slide-69
SLIDE 69

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′. ◮ One-way: R′ reveals nothing about R. Useful for HIBE & IB-TDFs [CHKP’10,ABB’10,BKPW’12].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 14/16

slide-70
SLIDE 70

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′. ◮ One-way: R′ reveals nothing about R. Useful for HIBE & IB-TDFs [CHKP’10,ABB’10,BKPW’12]. ◮ Note: R′ is only width(A) × width(G) = m × n log q. So size of R′ grows only as O(m), not Ω(m2) like a basis does Also computationally efficient: n log q samples, no HNF or ToBasis.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 14/16

slide-71
SLIDE 71

Hierarchical IBE [CHKP’10,ABB’10]

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

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 15/16

slide-72
SLIDE 72

Hierarchical IBE [CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}. ◮ Extract(id): map id = (id1, . . . , idt) → (Hid1, . . . Hidt) (invertible). Let Aid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 15/16

slide-73
SLIDE 73

Hierarchical IBE [CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}. ◮ Extract(id): map id = (id1, . . . , idt) → (Hid1, . . . Hidt) (invertible). Let Aid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1]. Delegate skid = trapdoor Rid for Aid with tag 0. Using skid, can delegate any skid′ for any nontrivial extension id′.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 15/16

slide-74
SLIDE 74

Hierarchical IBE [CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}. ◮ Extract(id): map id = (id1, . . . , idt) → (Hid1, . . . Hidt) (invertible). Let Aid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1]. Delegate skid = trapdoor Rid for Aid with tag 0. Using skid, can delegate any skid′ for any nontrivial extension id′. ◮ Encrypt to Aid, decrypt using Rid as in [GPV’08].

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 15/16

slide-75
SLIDE 75

Hierarchical IBE [CHKP’10,ABB’10]

◮ Setup(d): choose A0, . . . , Ad where Aε = [A0 | A1] has trapdoor Rε for tag 0. Let msk = skε = Rε and mpk = {Ai}. ◮ Extract(id): map id = (id1, . . . , idt) → (Hid1, . . . Hidt) (invertible). Let Aid = [A0 | A1 + Hid1G | · · · | At + HidtG | At+1]. Delegate skid = trapdoor Rid for Aid with tag 0. Using skid, can delegate any skid′ for any nontrivial extension id′. ◮ Encrypt to Aid, decrypt using Rid as in [GPV’08]. ◮ Security (“puncturing”): Set up mpk, trapdoor R with tags = −id∗.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 15/16

slide-76
SLIDE 76

Conclusions

◮ A simple trapdoor that’s easy to generate, use, and understand: Applications made easy, end-to-end! ◮ Key sizes and algorithms for “strong” trapdoors are now realistic Selected bibliography for this talk:

CHKP’10 D. Cash, D. Hofheinz, E. Kiltz, C. Peikert, “Bonsai Trees, or How to Delegate a Lattice Basis,” Eurocrypt’10 / J. Crypt’11. ABB’10 S. Agrawal, D. Boneh, X. Boyen, “Efficient Lattice (H)IBE in the Standard Model,” Eurocrypt’10. MP’12 D. Micciancio, C. Peikert, “Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller,” Eurocrypt’12.

Lattice-Based Crypto & Applications, Bar-Ilan University, Israel 2012 16/16