Lattices: . . . to Cryptography Chris Peikert Georgia Institute of - - PowerPoint PPT Presentation

lattices to cryptography chris peikert
SMART_READER_LITE
LIVE PREVIEW

Lattices: . . . to Cryptography Chris Peikert Georgia Institute of - - PowerPoint PPT Presentation

Lattices: . . . to Cryptography Chris Peikert Georgia Institute of Technology Visions of Cryptography 10 December 2013 1 / 12 Agenda 1 The two one main lattice-based OWF 2 Two simple tricks that yield all of lattice cryptography 3 Lots of


slide-1
SLIDE 1

Lattices: . . . to Cryptography Chris Peikert

Georgia Institute of Technology Visions of Cryptography 10 December 2013

1 / 12

slide-2
SLIDE 2

Agenda

1 The two one main lattice-based OWF 2 Two simple tricks that yield all∗ of lattice cryptography 3 Lots of applications

2 / 12

slide-3
SLIDE 3

A Hard Problem: Short Integer Solution

◮ Goal: given uniform A ∈ Zn×m

q

, find short nonzero z ∈ Zm such that:  · · · · A · · · ·  

  • m

      z       = 0 ∈ Zn

q

(When m ≥ n log q, short solutions are guaranteed to exist.)

3 / 12

slide-4
SLIDE 4

A Hard Problem: Short Integer Solution

◮ Goal: given uniform A ∈ Zn×m

q

, find short nonzero z ∈ Zm such that:  · · · · A · · · ·  

  • m

      z       = 0 ∈ Zn

q

(When m ≥ n log q, short solutions are guaranteed to exist.) ◮ Just SVP on random ‘q-ary’ lattice L⊥(A) = {z ∈ Zm : Az = 0}.

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

slide-5
SLIDE 5

A Hard Problem: Short Integer Solution

◮ Goal: given uniform A ∈ Zn×m

q

, find short nonzero z ∈ Zm such that:  · · · · A · · · ·  

  • m

      z       = 0 ∈ Zn

q

(When m ≥ n log q, short solutions are guaranteed to exist.) ◮ Just SVP on random ‘q-ary’ lattice L⊥(A) = {z ∈ Zm : Az = 0}. ◮ x → Ax reduces x modulo L⊥(A).

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

slide-6
SLIDE 6

A Hard Problem: Short Integer Solution

◮ Goal: given uniform A ∈ Zn×m

q

, find short nonzero z ∈ Zm such that:  · · · · A · · · ·  

  • m

      z       = 0 ∈ Zn

q

(When m ≥ n log q, short solutions are guaranteed to exist.)

Worst-Case/Average-Case Connection [Ajtai’96,. . . ,MR’04,GPV’08,MP’13]

Finding solution z with z ≤ β ≪ q

(for uniformly random A)

⇓ solving GapSVPβ√n and SIVPβ√n on any n-dim lattice.

3 / 12

slide-7
SLIDE 7

A Hard Problem: Short Integer Solution

◮ Goal: given uniform A ∈ Zn×m

q

, find short nonzero z ∈ Zm such that:  · · · · A · · · ·  

  • m

      z       = 0 ∈ Zn

q

(When m ≥ n log q, short solutions are guaranteed to exist.)

One-Way & Collision-Resistant Hash Function

◮ Set m > n lg q. Define fA : {0, 1}m → Zn

q as

fA(x) = Ax.

3 / 12

slide-8
SLIDE 8

A Hard Problem: Short Integer Solution

◮ Goal: given uniform A ∈ Zn×m

q

, find short nonzero z ∈ Zm such that:  · · · · A · · · ·  

  • m

      z       = 0 ∈ Zn

q

(When m ≥ n log q, short solutions are guaranteed to exist.)

One-Way & Collision-Resistant Hash Function

◮ Set m > n lg q. Define fA : {0, 1}m → Zn

q as

fA(x) = Ax. ◮ Collision x, x′ ∈ {0, 1}m where Ax = Ax′ . . . . . . yields solution z = x − x′ ∈ {0, ±1}m, of norm z ≤ √m.

3 / 12

slide-9
SLIDE 9

Another (?) Hard (?) Problem: Learning With Errors

◮ Wlog, A = [ ¯ A | In] ∈ Zn×(m+n)

q

. For m ≥ n log q, function x → Ax is regular (⇒ many preimages).

4 / 12

slide-10
SLIDE 10

Another (?) Hard (?) Problem: Learning With Errors

◮ Wlog, A = [ ¯ A | In] ∈ Zn×(m+n)

q

. For m ≥ n log q, function x → Ax is regular (⇒ many preimages). ◮ What about m ≪ n log q? E.g., m = n? m = 100? Map x → Ax = Ax1 + x2 is highly injective (whp).

4 / 12

slide-11
SLIDE 11

Another (?) Hard (?) Problem: Learning With Errors

◮ Wlog, A = [ ¯ A | In] ∈ Zn×(m+n)

q

. For m ≥ n log q, function x → Ax is regular (⇒ many preimages). ◮ What about m ≪ n log q? E.g., m = n? m = 100? Map x → Ax = Ax1 + x2 is highly injective (whp). Is it one-way? Pseudorandom?

4 / 12

slide-12
SLIDE 12

Another (?) Hard (?) Problem: Learning With Errors

◮ Wlog, A = [ ¯ A | In] ∈ Zn×(m+n)

q

. For m ≥ n log q, function x → Ax is regular (⇒ many preimages). ◮ What about m ≪ n log q? E.g., m = n? m = 100? Map x → Ax = Ax1 + x2 is highly injective (whp). Is it one-way? Pseudorandom? ◮ Lattice interpretation: BDD on L( ¯ A) = {v ≡ ¯ Ax1 mod q}. ◮ Search ⇔ decision: Ax is pseudorandom.

b b

4 / 12

slide-13
SLIDE 13

Another (?) Hard (?) Problem: Learning With Errors

◮ Wlog, A = [ ¯ A | In] ∈ Zn×(m+n)

q

. For m ≥ n log q, function x → Ax is regular (⇒ many preimages). ◮ What about m ≪ n log q? E.g., m = n? m = 100? Map x → Ax = Ax1 + x2 is highly injective (whp). Is it one-way? Pseudorandom? ◮ Lattice interpretation: BDD on L( ¯ A) = {v ≡ ¯ Ax1 mod q}. ◮ Search ⇔ decision: Ax is pseudorandom. ◮ As hard as worst case problems on m-dim lattices [Regev’05,P’09].

b b

4 / 12

slide-14
SLIDE 14

The two amazingly simple tricks behind all of lattice cryptography...

5 / 12

slide-15
SLIDE 15

Trick #1: Generate Random Instance with Solution(s)

◮ Generate (pseudo)random A′ with a short solution:

6 / 12

slide-16
SLIDE 16

Trick #1: Generate Random Instance with Solution(s)

◮ Generate (pseudo)random A′ with a short solution:

1 Choose A ← Zn×m

q

and short x.

6 / 12

slide-17
SLIDE 17

Trick #1: Generate Random Instance with Solution(s)

◮ Generate (pseudo)random A′ with a short solution:

1 Choose A ← Zn×m

q

and short x.

2 Let u = −[A | In] · x and A′ = [u | A].

Then [A′ | In] 1 x

  • = u + [A | In] · x = 0.

6 / 12

slide-18
SLIDE 18

Trick #1: Generate Random Instance with Solution(s)

◮ Generate (pseudo)random A′ with a short solution:

1 Choose A ← Zn×m

q

and short x.

2 Let u = −[A | In] · x and A′ = [u | A].

Then [A′ | In] 1 x

  • = u + [A | In] · x = 0.

◮ For many solutions, let U = −[A | In] · X and A′ = [U | A]. Then [A′ | In] · Ik

X

  • = 0.

6 / 12

slide-19
SLIDE 19

Trick #1: Generate Random Instance with Solution(s)

◮ Generate (pseudo)random A′ with a short solution:

1 Choose A ← Zn×m

q

and short x.

2 Let u = −[A | In] · x and A′ = [u | A].

Then [A′ | In] 1 x

  • = u + [A | In] · x = 0.

◮ For many solutions, let U = −[A | In] · X and A′ = [U | A]. Then [A′ | In] · Ik

X

  • = 0.

◮ Of course, we can also multiply on the left: Let ut = xt A

Im

  • and A′ =

ut

A

  • .

6 / 12

slide-20
SLIDE 20

Key Agreement/Encryption

s A ∈ Zn×m

q

r

7 / 12

slide-21
SLIDE 21

Key Agreement/Encryption

s A ∈ Zn×m

q

r u = [ A In ]r vt = st A

Im

  • 7 / 12
slide-22
SLIDE 22

Key Agreement/Encryption

s A ∈ Zn×m

q

r u = [ A In ]r vt = st A

Im

  • ka = st

1 · u + err

kb = vt · r1 + err ≈ st

1Ar1

≈ st

1Ar1

7 / 12

slide-23
SLIDE 23

Key Agreement/Encryption

s A ∈ Zn×m

q

r u = [ A In ]r vt = st A

Im

  • ka = st

1 · u + err

kb = vt · r1 + err ≈ st

1Ar1

≈ st

1Ar1

(A, u, v, ka)

7 / 12

slide-24
SLIDE 24

Key Agreement/Encryption

s A ∈ Zn×m

q

u vt = st A

Im

  • ka = st

1 · u + err

(A, u, v, ka)

7 / 12

slide-25
SLIDE 25

Key Agreement/Encryption

A ∈ Zn×m

q

u vt (A, u, v, ka)

7 / 12

slide-26
SLIDE 26

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

.

8 / 12

slide-27
SLIDE 27

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

. ◮ Invert SIS: given u ∈ Zn

q , can compute x ∈ {0, 1}nk s.t. Gx = u.

8 / 12

slide-28
SLIDE 28

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

. ◮ Invert SIS: given u ∈ Zn

q , can compute x ∈ {0, 1}nk s.t. Gx = u.

More generally, can sample a Gaussian x ← G−1(u).

8 / 12

slide-29
SLIDE 29

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

. ◮ Invert SIS: given u ∈ Zn

q , can compute x ∈ {0, 1}nk s.t. Gx = u.

More generally, can sample a Gaussian x ← G−1(u). Can generate (x, u) in two equivalent ways: Gauss → x u

G

≡ u ← Zn

q

x

G−1

8 / 12

slide-30
SLIDE 30

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

. ◮ Invert LWE: given v = xt G

I

  • ≈ [x1 2x1 · · · 2k−1x1 · · · ], find x.

8 / 12

slide-31
SLIDE 31

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

. ◮ Invert LWE: given v = xt G

I

  • ≈ [x1 2x1 · · · 2k−1x1 · · · ], find x.

Say q = 2k. Can recover bits of x1 with errors, then x2, etc.

8 / 12

slide-32
SLIDE 32

Trick #2: Inverting an Easy Function

◮ A special parity-check matrix: let gt = [1 2 4 · · · 2k−1 ≥ q

2] and

G =      · · · gt · · · · · · gt · · · ... · · · gt · · ·      ∈ Zn×nk

q

. ◮ Invert LWE: given v = xt G

I

  • ≈ [x1 2x1 · · · 2k−1x1 · · · ], find x.

Say q = 2k. Can recover bits of x1 with errors, then x2, etc.

(Something similar works for any q.)

8 / 12

slide-33
SLIDE 33

Put G in Public Key ⇒ TDF, Signatures, IBE [GPV’08,MP’12]

◮ Let A′ = [A | G − AR], so A′ R

I

  • = G. Trapdoor = R.

9 / 12

slide-34
SLIDE 34

Put G in Public Key ⇒ TDF, Signatures, IBE [GPV’08,MP’12]

◮ Let A′ = [A | G − AR], so A′ R

I

  • = G. Trapdoor = R.

◮ Invert LWE: given vt = st A′

I

  • , recover s from

vt R

I

  • = st G

R I

  • ≈ st

1G.

9 / 12

slide-35
SLIDE 35

Put G in Public Key ⇒ TDF, Signatures, IBE [GPV’08,MP’12]

◮ Let A′ = [A | G − AR], so A′ R

I

  • = G. Trapdoor = R.

◮ Invert LWE: given vt = st A′

I

  • , recover s from

vt R

I

  • = st G

R I

  • ≈ st

1G.

◮ Invert SIS: given target u, output x = R

I

  • · G−1(u). Then

A′x = G · G−1(u) = u.

9 / 12

slide-36
SLIDE 36

Put G in Public Key ⇒ TDF, Signatures, IBE [GPV’08,MP’12]

◮ Let A′ = [A | G − AR], so A′ R

I

  • = G. Trapdoor = R.

◮ Invert LWE: given vt = st A′

I

  • , recover s from

vt R

I

  • = st G

R I

  • ≈ st

1G.

◮ Invert SIS: given target u, output x = R

I

  • · G−1(u). Then

A′x = G · G−1(u) = u. Problem: x is ‘skewed,’ leaks trapdoor R!

9 / 12

slide-37
SLIDE 37

Put G in Public Key ⇒ TDF, Signatures, IBE [GPV’08,MP’12]

◮ Let A′ = [A | G − AR], so A′ R

I

  • = G. Trapdoor = R.

◮ Invert LWE: given vt = st A′

I

  • , recover s from

vt R

I

  • = st G

R I

  • ≈ st

1G.

◮ Invert SIS: given target u, output x = R

I

  • · G−1(u). Then

A′x = G · G−1(u) = u. Problem: x is ‘skewed,’ leaks trapdoor R! Solution: output x = p + R

I

  • · G−1(u − A′p) for ‘perturbation’ p.

9 / 12

slide-38
SLIDE 38

Put G in Public Key ⇒ TDF, Signatures, IBE [GPV’08,MP’12]

◮ Let A′ = [A | G − AR], so A′ R

I

  • = G. Trapdoor = R.

◮ Invert LWE: given vt = st A′

I

  • , recover s from

vt R

I

  • = st G

R I

  • ≈ st

1G.

◮ Invert SIS: given target u, output x = R

I

  • · G−1(u). Then

A′x = G · G−1(u) = u. Problem: x is ‘skewed,’ leaks trapdoor R! Solution: output x = p + R

I

  • · G−1(u − A′p) for ‘perturbation’ p.

Gauss → x u

A′

≡ u ← Zn

q

x

A′−1

9 / 12

slide-39
SLIDE 39

Put G in Evaluation Key ⇒ FHE

[BV’11]

◮ Secret key s ∈ Zn, ciphertext c ∈ Zn

q is s.t. st · c ≈ q+1 2

· µ.

10 / 12

slide-40
SLIDE 40

Put G in Evaluation Key ⇒ FHE

[BV’11]

◮ Secret key s ∈ Zn, ciphertext c ∈ Zn

q is s.t. st · c ≈ q+1 2

· µ. ◮ Homomorphic mult: (s ⊗ s)t · (2c1 ⊗ c2)

≈ q+1

2

· µ1µ2. Problem: c× has dimension n2!

10 / 12

slide-41
SLIDE 41

Put G in Evaluation Key ⇒ FHE

[BV’11]

◮ Secret key s ∈ Zn, ciphertext c ∈ Zn

q is s.t. st · c ≈ q+1 2

· µ. ◮ Homomorphic mult: (s ⊗ s)t · (2c1 ⊗ c2)

≈ q+1

2

· µ1µ2. Problem: c× has dimension n2! ◮ “Compress” c× by “recrypting:”

1 Rewrite decryption expression as (s ⊗ s)tG · G−1(c×).

10 / 12

slide-42
SLIDE 42

Put G in Evaluation Key ⇒ FHE

[BV’11]

◮ Secret key s ∈ Zn, ciphertext c ∈ Zn

q is s.t. st · c ≈ q+1 2

· µ. ◮ Homomorphic mult: (s ⊗ s)t · (2c1 ⊗ c2)

≈ q+1

2

· µ1µ2. Problem: c× has dimension n2! ◮ “Compress” c× by “recrypting:”

1 Rewrite decryption expression as (s ⊗ s)tG · G−1(c×). 2 Hide (s ⊗ s)tG in an evaluation key K (having n rows):

st · K ≈ (s ⊗ s)tG.

10 / 12

slide-43
SLIDE 43

Put G in Evaluation Key ⇒ FHE

[BV’11]

◮ Secret key s ∈ Zn, ciphertext c ∈ Zn

q is s.t. st · c ≈ q+1 2

· µ. ◮ Homomorphic mult: (s ⊗ s)t · (2c1 ⊗ c2)

≈ q+1

2

· µ1µ2. Problem: c× has dimension n2! ◮ “Compress” c× by “recrypting:”

1 Rewrite decryption expression as (s ⊗ s)tG · G−1(c×). 2 Hide (s ⊗ s)tG in an evaluation key K (having n rows):

st · K ≈ (s ⊗ s)tG.

3 Then

st · K · G−1(c×)

  • c′

≈ (s ⊗ s)tG · G−1(c×) ≈ µ1µ2 · q + 1 2 .

10 / 12

slide-44
SLIDE 44

Put G in Ciphertext ⇒ FHE

[GSW’13]

◮ Secret key s ∈ Zn, public key A satisfies stA ≈ 0.

11 / 12

slide-45
SLIDE 45

Put G in Ciphertext ⇒ FHE

[GSW’13]

◮ Secret key s ∈ Zn, public key A satisfies stA ≈ 0. ◮ Encrypt µ ∈ {0, 1} as C = AR + µG. Decryption relation is stC ≈ µ · stG.

11 / 12

slide-46
SLIDE 46

Put G in Ciphertext ⇒ FHE

[GSW’13]

◮ Secret key s ∈ Zn, public key A satisfies stA ≈ 0. ◮ Encrypt µ ∈ {0, 1} as C = AR + µG. Decryption relation is stC ≈ µ · stG. ◮ Homomorphic mult: C× = C1 · G−1(C2).

11 / 12

slide-47
SLIDE 47

Put G in Ciphertext ⇒ FHE

[GSW’13]

◮ Secret key s ∈ Zn, public key A satisfies stA ≈ 0. ◮ Encrypt µ ∈ {0, 1} as C = AR + µG. Decryption relation is stC ≈ µ · stG. ◮ Homomorphic mult: C× = C1 · G−1(C2). stC× = stC1 · G−1(C2) ≈ µ1 · stG · G−1(C2) ≈ µ1µ2 · stG

11 / 12

slide-48
SLIDE 48

Put G in Ciphertext ⇒ FHE

[GSW’13]

◮ Secret key s ∈ Zn, public key A satisfies stA ≈ 0. ◮ Encrypt µ ∈ {0, 1} as C = AR + µG. Decryption relation is stC ≈ µ · stG. ◮ Homomorphic mult: C× = C1 · G−1(C2). stC× = stC1 · G−1(C2) ≈ µ1 · stG · G−1(C2) ≈ µ1µ2 · stG Error in C× is et

1 · G−1(C2) + µ1 · et 2.

Asymmetry allows homom mult with additive noise growth. [BV’13]

11 / 12

slide-49
SLIDE 49

Concluding Thoughts

◮ Many more applications: PRFs [BPR’12,BLMR’13], ABE [GVW’13,GGHSW’13], Obf & FE

[GGHRSW’13], . . .

12 / 12

slide-50
SLIDE 50

Concluding Thoughts

◮ Many more applications: PRFs [BPR’12,BLMR’13], ABE [GVW’13,GGHSW’13], Obf & FE

[GGHRSW’13], . . .

◮ Amazing amount of magic from such a small bag of tricks! A true case of making strength out of ‘weakness.’

12 / 12

slide-51
SLIDE 51

Concluding Thoughts

◮ Many more applications: PRFs [BPR’12,BLMR’13], ABE [GVW’13,GGHSW’13], Obf & FE

[GGHRSW’13], . . .

◮ Amazing amount of magic from such a small bag of tricks! A true case of making strength out of ‘weakness.’

Thanks!

12 / 12