Lattice-Based Cryptography: Short Integer Solution (SIS) and - - PowerPoint PPT Presentation

lattice based cryptography short integer solution sis and
SMART_READER_LITE
LIVE PREVIEW

Lattice-Based Cryptography: Short Integer Solution (SIS) and - - PowerPoint PPT Presentation

Lattice-Based Cryptography: Short Integer Solution (SIS) and Learning With Errors (LWE) Chris Peikert Georgia Institute of Technology crypt@b-it 2013 1 / 17 Recall: Lattices Full-rank additive subgroup in Z m . O 2 / 17 Recall:


slide-1
SLIDE 1

Lattice-Based Cryptography: Short Integer Solution (SIS) and Learning With Errors (LWE) Chris Peikert

Georgia Institute of Technology crypt@b-it 2013

1 / 17

slide-2
SLIDE 2

Recall: Lattices

◮ Full-rank additive subgroup in Zm.

O 2 / 17

slide-3
SLIDE 3

Recall: Lattices

◮ Full-rank additive subgroup in Zm. ◮ Basis B = (b1, . . . , bm) : L(B) = B · Zm =

m

  • i=1

(Z · bi)

O b1 b2 2 / 17

slide-4
SLIDE 4

Recall: Lattices

◮ Full-rank additive subgroup in Zm. ◮ Basis B = (b1, . . . , bm) : L(B) = B · Zm =

m

  • i=1

(Z · bi)

O b1 b2 2 / 17

slide-5
SLIDE 5

Recall: Lattices

◮ Full-rank additive subgroup in Zm. ◮ Basis B = (b1, . . . , bm) : L(B) = B · Zm =

m

  • i=1

(Z · bi)

(Other representations too . . . )

O b1 b2 2 / 17

slide-6
SLIDE 6

Recall: Lattices

◮ Full-rank additive subgroup in Zm. ◮ Basis B = (b1, . . . , bm) : L(B) = B · Zm =

m

  • i=1

(Z · bi)

(Other representations too . . . )

O b1 b2

Hard Problems

◮ Find/detect short nonzero lattice vector(s): SVP, GapSVP, SIVP ◮ Decode under small amount of error: BDD

2 / 17

slide-7
SLIDE 7

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3)

3 / 17

slide-8
SLIDE 8

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3)   | a1 |     | a2 |   · · ·   | am |   ∈ Zn

q

3 / 17

slide-9
SLIDE 9

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3) ◮ Goal: find nontrivial small z1, . . . , zm ∈ Z such that: z1 ·   | a1 |   + z2 ·   | a2 |   + · · · + zm ·   | am |   =   | |   ∈ Zn

q

3 / 17

slide-10
SLIDE 10

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3) ◮ Goal: find nontrivial short z ∈ Zm such that:  · · · · A · · · ·  

  • m

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

q

3 / 17

slide-11
SLIDE 11

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3) ◮ Goal: find nontrivial short z ∈ Zm such that:  · · · · A · · · ·  

  • m

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

q

One-Way & Collision-Resistant Hash Function

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

q as

fA(x) = Ax.

3 / 17

slide-12
SLIDE 12

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3) ◮ Goal: find nontrivial short z ∈ Zm such that:  · · · · A · · · ·  

  • m

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

q

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

3 / 17

slide-13
SLIDE 13

A Hard Problem: Short Integer Solution

◮ Zn

q = n-dimensional vectors modulo q

(e.g., q ≈ n3) ◮ Goal: find nontrivial short z ∈ Zm such that:  · · · · A · · · ·  

  • m

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

q

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 / 17

slide-14
SLIDE 14

Cool!

(but what does this have to do with lattices?)

4 / 17

slide-15
SLIDE 15

Cool!

(but what does this have to do with lattices?)

◮ Parity-check matrix A = (a1, . . . , am) ∈ Zn×m

q

defines the ‘q-ary’ integer lattice L⊥(A) = {z ∈ Zm : Az = 0}.

O 4 / 17

slide-16
SLIDE 16

Cool!

(but what does this have to do with lattices?)

◮ Parity-check matrix A = (a1, . . . , am) ∈ Zn×m

q

defines the ‘q-ary’ integer lattice L⊥(A) = {z ∈ Zm : Az = 0}.

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

slide-17
SLIDE 17

Cool!

(but what does this have to do with lattices?)

◮ Parity-check matrix A = (a1, . . . , am) ∈ Zn×m

q

defines the ‘q-ary’ integer lattice L⊥(A) = {z ∈ Zm : Az = 0}. ◮ SIS is SVP on random lattices L⊥(A)!

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

slide-18
SLIDE 18

Cool!

(but what does this have to do with lattices?)

◮ Parity-check matrix A = (a1, . . . , am) ∈ Zn×m

q

defines the ‘q-ary’ integer lattice L⊥(A) = {z ∈ Zm : Az = 0}. ◮ SIS is SVP on random lattices L⊥(A)! ◮ Syndrome u ∈ Zn

q defines coset

L⊥

u (A) = {x : Ax = u},

x → Ax reduces x modulo L⊥(A).

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

slide-19
SLIDE 19

Cool!

(but what does this have to do with lattices?)

◮ Parity-check matrix A = (a1, . . . , am) ∈ Zn×m

q

defines the ‘q-ary’ integer lattice L⊥(A) = {z ∈ Zm : Az = 0}. ◮ SIS is SVP on random lattices L⊥(A)! ◮ Syndrome u ∈ Zn

q defines coset

L⊥

u (A) = {x : Ax = u},

x → Ax reduces x modulo L⊥(A).

O (0, q) (q, 0)

Worst-Case/Average-Case Connection [Ajtai’96,. . . ]

Finding short (z ≤ β ≪ q) nonzero z ∈ L⊥(A)

for uniformly random A ∈ Zn×m

q

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

4 / 17

slide-20
SLIDE 20

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

5 / 17

slide-21
SLIDE 21

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

1 Choose ¯

A ← Zn× ¯

m q

and ¯ x ← {0, 1} ¯

m for (say) ¯

m ≥ 2n lg q.

5 / 17

slide-22
SLIDE 22

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

1 Choose ¯

A ← Zn× ¯

m q

and ¯ x ← {0, 1} ¯

m for (say) ¯

m ≥ 2n lg q.

2 Let A = [ ¯

A | − ¯ A¯ x] and x = [ ¯

x 1 ]. (We just reduced −¯

x modulo L⊥( ¯ A).)

5 / 17

slide-23
SLIDE 23

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

1 Choose ¯

A ← Zn× ¯

m q

and ¯ x ← {0, 1} ¯

m for (say) ¯

m ≥ 2n lg q.

2 Let A = [ ¯

A | − ¯ A¯ x] and x = [ ¯

x 1 ]. (We just reduced −¯

x modulo L⊥( ¯ A).)

◮ For many short solutions, let A = [ ¯ A | − ¯ A ¯ X] and X = ¯

X I

  • .

5 / 17

slide-24
SLIDE 24

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

1 Choose ¯

A ← Zn× ¯

m q

and ¯ x ← {0, 1} ¯

m for (say) ¯

m ≥ 2n lg q.

2 Let A = [ ¯

A | − ¯ A¯ x] and x = [ ¯

x 1 ]. (We just reduced −¯

x modulo L⊥( ¯ A).)

◮ For many short solutions, let A = [ ¯ A | − ¯ A ¯ X] and X = ¯

X I

  • .

◮ Nothing special about {0, 1} ¯

m: enough entropy suffices (essentially).

5 / 17

slide-25
SLIDE 25

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

1 Choose ¯

A ← Zn× ¯

m q

and ¯ x ← {0, 1} ¯

m for (say) ¯

m ≥ 2n lg q.

2 Let A = [ ¯

A | − ¯ A¯ x] and x = [ ¯

x 1 ]. (We just reduced −¯

x modulo L⊥( ¯ A).)

◮ For many short solutions, let A = [ ¯ A | − ¯ A ¯ X] and X = ¯

X I

  • .

◮ Nothing special about {0, 1} ¯

m: enough entropy suffices (essentially).

‘Leftover Hash’ Lemma

◮ Over choice of ¯ A and ¯ x, matrix A = [ ¯ A | − ¯ A¯ x]

s

≈ uniform. ◮ Proof: family

  • f ¯

A : {0, 1} ¯ m → Zn q

  • is pairwise independent;

¯ x has sufficient (min-)entropy.

5 / 17

slide-26
SLIDE 26

A “Key” Trick

◮ Generate uniform A with a short solution x (s.t. Ax = 0):

1 Choose ¯

A ← Zn× ¯

m q

and ¯ x ← {0, 1} ¯

m for (say) ¯

m ≥ 2n lg q.

2 Let A = [ ¯

A | − ¯ A¯ x] and x = [ ¯

x 1 ]. (We just reduced −¯

x modulo L⊥( ¯ A).)

◮ For many short solutions, let A = [ ¯ A | − ¯ A ¯ X] and X = ¯

X I

  • .

◮ Nothing special about {0, 1} ¯

m: enough entropy suffices (essentially).

‘Leftover Hash’ Lemma

◮ Over choice of ¯ A and ¯ x, matrix A = [ ¯ A | − ¯ A¯ x]

s

≈ uniform. ◮ Proof: family

  • f ¯

A : {0, 1} ¯ m → Zn q

  • is pairwise independent;

¯ x has sufficient (min-)entropy.

Dirty Little Secret

◮ This trick — reducing a short vector modulo a lattice — is the

  • nly one-way function used in all of lattice crypto!

5 / 17

slide-27
SLIDE 27

Another Hard Problem: Learning With Errors

[Regev’05]

◮ As before, dimension n and modulus q ≥ 2

6 / 17

slide-28
SLIDE 28

Another Hard Problem: Learning With Errors

[Regev’05]

◮ As before, dimension n and modulus q ≥ 2 ◮ Search: find s ∈ Zn

q given ‘noisy random inner products’

a1 ← Zn

q , b1 = s , a1 + e1

a2 ← Zn

q , b2 = s , a2 + e2

. . .

6 / 17

slide-29
SLIDE 29

Another Hard Problem: Learning With Errors

[Regev’05]

◮ As before, dimension n and modulus q ≥ 2, error rate α ≪ 1 ◮ Search: find s ∈ Zn

q given ‘noisy random inner products’

a1 ← Zn

q , b1 = s , a1 + e1

a2 ← Zn

q , b2 = s , a2 + e2

. . . Errors ei ← χ = Gaussian over Z, width αq. αq > √n

6 / 17

slide-30
SLIDE 30

Another Hard Problem: Learning With Errors

[Regev’05]

◮ As before, dimension n and modulus q ≥ 2, error rate α ≪ 1 ◮ Search: find s ∈ Zn

q given ‘noisy random inner products’

A =   | | a1 · · · am | |   , bt = stA + et Errors ei ← χ = Gaussian over Z, width αq. αq > √n

6 / 17

slide-31
SLIDE 31

Another Hard Problem: Learning With Errors

[Regev’05]

◮ As before, dimension n and modulus q ≥ 2, error rate α ≪ 1 ◮ Search: find s ∈ Zn

q given ‘noisy random inner products’

A =   | | a1 · · · am | |   , bt = stA + et Errors ei ← χ = Gaussian over Z, width αq. αq > √n ◮ Decision: distinguish (A, bt = stA + et) from uniform (A, bt).

6 / 17

slide-32
SLIDE 32

Another Hard Problem: Learning With Errors

[Regev’05]

◮ As before, dimension n and modulus q ≥ 2, error rate α ≪ 1 ◮ Search: find s ∈ Zn

q given ‘noisy random inner products’

A =   | | a1 · · · am | |   , bt = stA + et Errors ei ← χ = Gaussian over Z, width αq. αq > √n ◮ Decision: distinguish (A, bt = stA + et) from uniform (A, bt). ◮ Foundation for a huge amount of crypto

[R’05,PW’08,GPV’08,PVW’08,CDMW’08,AGV’09,ACPS’09,CHKP’10,ABB’10a,ABB’10b,GKV’10,BV’11,BGV’12,. . . ] 6 / 17

slide-33
SLIDE 33

LWE as a Lattice Problem

 · · · · A · · · ·  

  • m

∈ Zn×m

q

, bt = stA + et vs. b ← Zm

q

◮ Lattice interpretation: L(A) = {zt ≡ stA mod q} Finding s, e: BDD on L(A)! Distinguishing b vs. b: decision-BDD.

b b

7 / 17

slide-34
SLIDE 34

LWE as a Lattice Problem

 · · · · A · · · ·  

  • m

∈ Zn×m

q

, bt = stA + et vs. b ← Zm

q

◮ Lattice interpretation: L(A) = {zt ≡ stA mod q} Finding s, e: BDD on L(A)! Distinguishing b vs. b: decision-BDD. ◮ Also enjoys worst-case hardness [R’05,P’09] . . . but results are more subtle.

b b

7 / 17

slide-35
SLIDE 35

Overview of LWE Hardness

GapSVP, SIVP ≤

quantum [R’05]

search-LWE ≤

[BFKL’94,R’05, P’09,. . . ]

decision-LWE ≤ crypto ≤

classical (q ≥ 2n) [P’09]

GapSVP ◮ Dim-modulus tradeoff [BLPRS’13]: e.g., n, q = 2n for n2, q = poly(n). ◮ Why error αq > √n?

⋆ Required by worst-case hardness proofs ⋆ There’s an exp((αq)2)-time attack! [AG’11] 8 / 17

slide-36
SLIDE 36

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 LWE (A, bt = stA + et) vs. (A, bt)

9 / 17

slide-37
SLIDE 37

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH LWE (A, bt = stA + et) vs. (A, bt)

9 / 17

slide-38
SLIDE 38

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH

9 / 17

slide-39
SLIDE 39

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH

9 / 17

slide-40
SLIDE 40

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e

9 / 17

slide-41
SLIDE 41

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z ◮ LWE ≤ SIS: if Az = 0, then bt z = et z is small, but bt z is ‘well-spread’ LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e

9 / 17

slide-42
SLIDE 42

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z ◮ LWE ≤ SIS: if Az = 0, then bt z = et z is small, but bt z is ‘well-spread’ LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e ◮ SIS ≤ LWE quantumly [R’05]

9 / 17

slide-43
SLIDE 43

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z ◮ LWE ≤ SIS: if Az = 0, then bt z = et z is small, but bt z is ‘well-spread’ ◮ Applications: OWF / CRHF, signatures, ID schemes LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e ◮ SIS ≤ LWE quantumly [R’05]

9 / 17

slide-44
SLIDE 44

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z ◮ LWE ≤ SIS: if Az = 0, then bt z = et z is small, but bt z is ‘well-spread’ ◮ Applications: OWF / CRHF, signatures, ID schemes ‘minicrypt’ LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e ◮ SIS ≤ LWE quantumly [R’05]

9 / 17

slide-45
SLIDE 45

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z ◮ LWE ≤ SIS: if Az = 0, then bt z = et z is small, but bt z is ‘well-spread’ ◮ Applications: OWF / CRHF, signatures, ID schemes ‘minicrypt’ LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e ◮ SIS ≤ LWE quantumly [R’05] ◮ Applications: PKE, OT, ID-based encryption, FHE, . . .

9 / 17

slide-46
SLIDE 46

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 ◮ ‘Computational’ (search) problem a la factoring, CDH ◮ Many valid solutions z ◮ LWE ≤ SIS: if Az = 0, then bt z = et z is small, but bt z is ‘well-spread’ ◮ Applications: OWF / CRHF, signatures, ID schemes ‘minicrypt’ LWE (A, bt = stA + et) vs. (A, bt) ◮ ‘Decisional’ problem a la QR, DCR, DDH ◮ Unique solution s, e ◮ SIS ≤ LWE quantumly [R’05] ◮ Applications: PKE, OT, ID-based encryption, FHE, . . . ‘CRYPTOMANIA’

9 / 17

slide-47
SLIDE 47

SIS versus LWE

SIS Az = 0, ‘short’ z = 0 Average-case SVP: L⊥(A) = {z ∈ Zm : Az = 0}

O (0, q) (q, 0)

LWE (A, bt = stA + et) vs. (A, bt) Average-case BDD: L(A) = {zt ≡ stA mod q}

10 / 17

slide-48
SLIDE 48

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-49
SLIDE 49

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-50
SLIDE 50

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-51
SLIDE 51

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-52
SLIDE 52

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-53
SLIDE 53

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-54
SLIDE 54

Warm-Up: Simple Properties of LWE

1 Check a candidate solution s′ ∈ Zn q :

test if all b − s′, a small. If s′ = s, then b − s′, a = s − s′, a + e is ‘well-spread’ in Zq.

2 Shift the secret by any t ∈ Zn q : given (a, b = s, a + e), output

a , b′ = b + t, a = s + t, a + e. Random t’s (with fresh samples) ⇒ random self-reduction. Lets us amplify success probabilities (both search & decision): non-negl on uniform s ← Zn

q

= ⇒ ≈ 1 on any s ∈ Zn

q 3 Multiple secrets: (a, b1 ≈ s1, a, . . . , bt ≈ st, a) vs. (a, b1, . . . , bt).

Simple hybrid argument, since a’s are public.

11 / 17

slide-55
SLIDE 55

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b).

12 / 17

slide-56
SLIDE 56

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s.

12 / 17

slide-57
SLIDE 57

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s. ◮ If q = poly(n) , to find s1 ∈ Zq it suffices to test whether s1

?

= 0, because we can shift s1 by 0, 1, . . . , q − 1. Same for s2, s3, . . . , sn.

12 / 17

slide-58
SLIDE 58

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s. ◮ If q = poly(n) , to find s1 ∈ Zq it suffices to test whether s1

?

= 0, because we can shift s1 by 0, 1, . . . , q − 1. Same for s2, s3, . . . , sn. The test: for each (a, b), choose fresh r ← Zq. Invoke D on pairs (a′ = a − (r, 0, . . . , 0) , b).

12 / 17

slide-59
SLIDE 59

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s. ◮ If q = poly(n) , to find s1 ∈ Zq it suffices to test whether s1

?

= 0, because we can shift s1 by 0, 1, . . . , q − 1. Same for s2, s3, . . . , sn. The test: for each (a, b), choose fresh r ← Zq. Invoke D on pairs (a′ = a − (r, 0, . . . , 0) , b). ◮ Notice: b = s, a′ + s1 · r + e.

12 / 17

slide-60
SLIDE 60

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s. ◮ If q = poly(n) , to find s1 ∈ Zq it suffices to test whether s1

?

= 0, because we can shift s1 by 0, 1, . . . , q − 1. Same for s2, s3, . . . , sn. The test: for each (a, b), choose fresh r ← Zq. Invoke D on pairs (a′ = a − (r, 0, . . . , 0) , b). ◮ Notice: b = s, a′ + s1 · r + e.

⋆ If s1 = 0, then b = s, a′ + e ⇒ D accepts. 12 / 17

slide-61
SLIDE 61

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s. ◮ If q = poly(n) , to find s1 ∈ Zq it suffices to test whether s1

?

= 0, because we can shift s1 by 0, 1, . . . , q − 1. Same for s2, s3, . . . , sn. The test: for each (a, b), choose fresh r ← Zq. Invoke D on pairs (a′ = a − (r, 0, . . . , 0) , b). ◮ Notice: b = s, a′ + s1 · r + e.

⋆ If s1 = 0, then b = s, a′ + e ⇒ D accepts. ⋆ If s1 = 0 and q prime then b = uniform ⇒ D rejects. 12 / 17

slide-62
SLIDE 62

Search/Decision Equivalence [BFKL’94,R’05]

◮ Suppose D solves decision-LWE: it perfectly∗ distinguishes between pairs (a, b = s, a + e) and (a, b). We want to solve search-LWE: given pairs (a, b), find s. ◮ If q = poly(n) , to find s1 ∈ Zq it suffices to test whether s1

?

= 0, because we can shift s1 by 0, 1, . . . , q − 1. Same for s2, s3, . . . , sn. The test: for each (a, b), choose fresh r ← Zq. Invoke D on pairs (a′ = a − (r, 0, . . . , 0) , b). ◮ Notice: b = s, a′ + s1 · r + e.

⋆ If s1 = 0, then b = s, a′ + e ⇒ D accepts. ⋆ If s1 = 0 and q prime then b = uniform ⇒ D rejects.

◮ (Don’t actually need prime q = poly(n) .)

[P’09,ACPS’09,MM’11,MP’12,BGV’12] 12 / 17

slide-63
SLIDE 63

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn.

13 / 17

slide-64
SLIDE 64

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.)

13 / 17

slide-65
SLIDE 65

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.) ◮ Intuition: finding e ⇔ finding s: take bt − et = stA, solve for s.

13 / 17

slide-66
SLIDE 66

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.) ◮ Intuition: finding e ⇔ finding s: take bt − et = stA, solve for s. Transformation from secret s ∈ Zn

q to secret ¯

e ← χn:

13 / 17

slide-67
SLIDE 67

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.) ◮ Intuition: finding e ⇔ finding s: take bt − et = stA, solve for s. Transformation from secret s ∈ Zn

q to secret ¯

e ← χn:

1 Draw samples to get ( ¯

A, ¯ bt = st ¯ A + ¯ et) for square, invertible ¯ A.

13 / 17

slide-68
SLIDE 68

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.) ◮ Intuition: finding e ⇔ finding s: take bt − et = stA, solve for s. Transformation from secret s ∈ Zn

q to secret ¯

e ← χn:

1 Draw samples to get ( ¯

A, ¯ bt = st ¯ A + ¯ et) for square, invertible ¯ A.

2 Transform each additional sample (a, b = s, a + e) to

a′ = − ¯ A−1a , b′ = b + ¯ b, a′

13 / 17

slide-69
SLIDE 69

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.) ◮ Intuition: finding e ⇔ finding s: take bt − et = stA, solve for s. Transformation from secret s ∈ Zn

q to secret ¯

e ← χn:

1 Draw samples to get ( ¯

A, ¯ bt = st ¯ A + ¯ et) for square, invertible ¯ A.

2 Transform each additional sample (a, b = s, a + e) to

a′ = − ¯ A−1a , b′ = b + ¯ b, a′ = ¯ e, a′ + e.

13 / 17

slide-70
SLIDE 70

Decision-LWE with ‘Short’ Secret

Theorem [M’01,ACPS’09]

◮ LWE is no easier if the secret is drawn from the error distribution χn. (This is called the “Hermite normal form” of LWE.) ◮ Intuition: finding e ⇔ finding s: take bt − et = stA, solve for s. Transformation from secret s ∈ Zn

q to secret ¯

e ← χn:

1 Draw samples to get ( ¯

A, ¯ bt = st ¯ A + ¯ et) for square, invertible ¯ A.

2 Transform each additional sample (a, b = s, a + e) to

a′ = − ¯ A−1a , b′ = b + ¯ b, a′ = ¯ e, a′ + e. ◮ This maps (a, b) to (a′, b′), so it applies to decision-LWE too.

13 / 17

slide-71
SLIDE 71

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

(Images courtesy xkcd.org) 14 / 17

slide-72
SLIDE 72

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

bt = stA + et

(public key) (Images courtesy xkcd.org) 14 / 17

slide-73
SLIDE 73

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

x ← {0, 1}m bt = stA + et

(public key)

u = Ax

(ciphertext ‘preamble’) (Images courtesy xkcd.org) 14 / 17

slide-74
SLIDE 74

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

x ← {0, 1}m bt = stA + et

(public key)

u = Ax

(ciphertext ‘preamble’)

u′ = bt x + bit · q

2

(‘payload’) (Images courtesy xkcd.org) 14 / 17

slide-75
SLIDE 75

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

x ← {0, 1}m bt = stA + et

(public key)

u = Ax

(ciphertext ‘preamble’)

u′ − st u ≈ bit · q

2

u′ = bt x + bit · q

2

(‘payload’) (Images courtesy xkcd.org) 14 / 17

slide-76
SLIDE 76

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

x ← {0, 1}m bt = stA + et

(public key)

u = Ax

(ciphertext ‘preamble’)

u′ − st u ≈ bit · q

2

u′ = bt x + bit · q

2

(‘payload’)

(A, bt), (u, u′)

(Images courtesy xkcd.org) 14 / 17

slide-77
SLIDE 77

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

x ← {0, 1}m bt = stA + et

(public key)

u = Ax

(ciphertext ‘preamble’)

u′ − st u ≈ bit · q

2

u′ = bt x + bit · q

2

(‘payload’)

(A, bt), (u, u′)

by LWE

(Images courtesy xkcd.org) 14 / 17

slide-78
SLIDE 78

Public-Key Cryptosystem using LWE

[Regev’05]

s ← Zn

q

A ← Zn×m

q

x ← {0, 1}m bt = stA + et

(public key)

u = Ax

(ciphertext ‘preamble’)

u′ − st u ≈ bit · q

2

u′ = bt x + bit · q

2

(‘payload’)

(A, bt), (u, u′)

by LWE and by LHL when m ≥ n log q

(Images courtesy xkcd.org) 14 / 17

slide-79
SLIDE 79

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

15 / 17

slide-80
SLIDE 80

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

u = Ax

(public key, uniform when m ≥ n log q) 15 / 17

slide-81
SLIDE 81

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

s ← Zn

q

u = Ax

(public key, uniform when m ≥ n log q)

bt = stA + et

(ciphertext ‘preamble’) 15 / 17

slide-82
SLIDE 82

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

s ← Zn

q

u = Ax

(public key, uniform when m ≥ n log q)

bt = stA + et

(ciphertext ‘preamble’)

b′ = st u + e′ + bit · q

2

(‘payload’) 15 / 17

slide-83
SLIDE 83

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

s ← Zn

q

u = Ax

(public key, uniform when m ≥ n log q)

bt = stA + et

(ciphertext ‘preamble’)

b′ − bt x ≈ bit · q

2

b′ = st u + e′ + bit · q

2

(‘payload’) 15 / 17

slide-84
SLIDE 84

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

s ← Zn

q

u = Ax

(public key, uniform when m ≥ n log q)

bt = stA + et

(ciphertext ‘preamble’)

b′ − bt x ≈ bit · q

2

b′ = st u + e′ + bit · q

2

(‘payload’)

(A, u), (b, b′)

15 / 17

slide-85
SLIDE 85

“Dual” Cryptosystem [GPV’08]

x ← {0, 1}m A ← Zn×m

q

s ← Zn

q

u = Ax

(public key, uniform when m ≥ n log q)

bt = stA + et

(ciphertext ‘preamble’)

b′ − bt x ≈ bit · q

2

b′ = st u + e′ + bit · q

2

(‘payload’)

(A, u), (b, b′)

by LWE

15 / 17

slide-86
SLIDE 86

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

16 / 17

slide-87
SLIDE 87

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

ut = stA + et

(public key) 16 / 17

slide-88
SLIDE 88

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

r ← χn ut = stA + et

(public key)

b = Ar + x

(ciphertext ‘preamble’) 16 / 17

slide-89
SLIDE 89

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

r ← χn ut = stA + et

(public key)

b = Ar + x

(ciphertext ‘preamble’)

b′ = ut r + x′ + bit · q

2

(‘payload’) 16 / 17

slide-90
SLIDE 90

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

r ← χn ut = stA + et

(public key)

b = Ar + x

(ciphertext ‘preamble’)

b′−st b ≈ bit· q

2

b′ = ut r + x′ + bit · q

2

(‘payload’) 16 / 17

slide-91
SLIDE 91

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

r ← χn ut = stA + et

(public key)

b = Ar + x

(ciphertext ‘preamble’)

b′−st b ≈ bit· q

2

b′ = ut r + x′ + bit · q

2

(‘payload’)

(A, u, b, b′)

16 / 17

slide-92
SLIDE 92

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

r ← χn ut = stA + et

(public key)

b = Ar + x

(ciphertext ‘preamble’)

b′−st b ≈ bit· q

2

b′ = ut r + x′ + bit · q

2

(‘payload’)

(A, u, b, b′)

by LWE (HNF)

16 / 17

slide-93
SLIDE 93

Most Efficient Cryptosystem [A’03,LPS’10,LP’11]

s ← χn A ← Zn×n

q

r ← χn ut = stA + et

(public key)

b = Ar + x

(ciphertext ‘preamble’)

b′−st b ≈ bit· q

2

b′ = ut r + x′ + bit · q

2

(‘payload’)

(A, u, b, b′)

by LWE (HNF) by LWE (HNF)

16 / 17

slide-94
SLIDE 94

Wrapping Up

◮ Now you know all the basic techniques for working with SIS and LWE. ◮ We’ve covered a lot: do the exercises to reinforce your understanding! ◮ Tomorrow: more advanced applications, using “strong trapdoors.”

17 / 17