Improved Low-Memory Subset Sum and LPN Algorithms via Multiple - - PowerPoint PPT Presentation

improved low memory subset sum and lpn algorithms via
SMART_READER_LITE
LIVE PREVIEW

Improved Low-Memory Subset Sum and LPN Algorithms via Multiple - - PowerPoint PPT Presentation

Improved Low-Memory Subset Sum and LPN Algorithms via Multiple Collision January 2019 , Nancy Claire Delaplace, Andre Esser and Alexander May About Me Claire Delaplace: Postdoc researcher Ruhr University Bochum, Germany Team: Cryptology


slide-1
SLIDE 1

Improved Low-Memory Subset Sum and LPN Algorithms via Multiple Collision

January 2019, Nancy Claire Delaplace, Andre Esser and Alexander May

slide-2
SLIDE 2

About Me

Claire Delaplace: Postdoc researcher

  • Ruhr University Bochum, Germany
  • Team: Cryptology and IT-Security
  • Scientific supervisor: Alexander May

2

slide-3
SLIDE 3

About Me

Claire Delaplace: Postdoc researcher

  • Ruhr University Bochum, Germany
  • Team: Cryptology and IT-Security
  • Scientific supervisor: Alexander May

Before that...

  • University of Rennes, IRISA. Team EMSEC
  • University of Lille, CRIStAL. Team CFHP
  • PhD supervisors: Pierre-Alain Fouque & Charles Bouillaguet
  • Thesis: Linear Algebra Algorithm for Cryptography

2

slide-4
SLIDE 4

Research Topic

Attacking Underlying Cryptographic Problems

3

slide-5
SLIDE 5

Research Topic

Attacking Underlying Cryptographic Problems

  • Generalised Birthday Problem ([BDF2018] + 2 in submission)
  • ECDLP ([DM19] + 1 in submission)
  • LWE variants ([BDFK17,BDEFT18])
  • Sparse Linear Algebra ([BD16,BDV17])
  • Subset Sum & LPN ([DEM19])

3

slide-6
SLIDE 6

Research Topic

Attacking Underlying Cryptographic Problems

  • Generalised Birthday Problem ([BDF2018] + 2 in submission)
  • ECDLP ([DM19] + 1 in submission)
  • LWE variants ([BDFK17,BDEFT18])
  • Sparse Linear Algebra ([BD16,BDV17])
  • Subset Sum & LPN ([DEM19])

3

slide-7
SLIDE 7

Motivations

Post-Quantum Cryptography

  • Popular families of schemes: Lattices & Codes based
  • Subset-sum & LPN related to Lattices & Codes
  • Better algo for subset-sum & LPN

?

= ⇒ Better algo for Lattices & Codes

4

slide-8
SLIDE 8

Motivations

Post-Quantum Cryptography

  • Popular families of schemes: Lattices & Codes based
  • Subset-sum & LPN related to Lattices & Codes
  • Better algo for subset-sum & LPN

?

= ⇒ Better algo for Lattices & Codes

Main drawback

HUGE amount of memory these attacks require ⇒ Need for time-memory trade-offs

4

slide-9
SLIDE 9

Motivations

Post-Quantum Cryptography

  • Popular families of schemes: Lattices & Codes based
  • Subset-sum & LPN related to Lattices & Codes
  • Better algo for subset-sum & LPN

?

= ⇒ Better algo for Lattices & Codes

Main drawback

HUGE amount of memory these attacks require ⇒ Need for time-memory trade-offs

This work

New time-memory trade-offs for subset-sum & LPN Main tool: Parallel Collision Search algorithm [vOW99]

4

slide-10
SLIDE 10

Collisions Search

Given: F, G : Fn

2 → Fn 2 with uniformly random outputs

Goal: Find x, y ∈ Fn

2 s.t. F(x) = G(y) F x G y F(x) = G(y)

Birthday Paradox

Recovering one collision: Time: O

  • 2

n 2 5

slide-11
SLIDE 11

Collisions Search

Given: F, G : Fn

2 → Fn 2 with uniformly random outputs

Goal: Find x, y ∈ Fn

2 s.t. F(x) = G(y) F x G y F(x) = G(y)

Birthday Paradox

Recovering one collision: Time: O

  • 2

n 2

Searching for 2m collisions

  • 2m Birthday method: Time O
  • 2m+ n

2

  • Parallel Collision Search [vOW99]: Time ˜

O

  • 2

m+n 2

  • 5
slide-12
SLIDE 12

PCS: High level Idea

Search for cycle F F F F Collision Collision

6

slide-13
SLIDE 13

PCS: High level Idea

F Search for cycle F F F F F F F F Collision Collision

6

slide-14
SLIDE 14

PCS: High level Idea

Search for cycle F F F F Collision Collision

6

slide-15
SLIDE 15

PCS: High level Idea

Search for cycle Search for cycle F F F F Collision Collision Collision Collision

6

slide-16
SLIDE 16

PCS: High level Idea

Search for cycle Search for cycle F Collision Collision

6

slide-17
SLIDE 17

PCS in a Nutshell

Given: F, G : Fn

2 → Fn 2 with uniformly random outputs

Goal: Find 2m (x, y) ∈ (Fn

2)2 s.t. F(x) = G(y)

F G PCS (x, y) F(x) = G(y) 2m T = ˜ O

  • 2

n+m 2

  • M = ˜

O (2m)

7

slide-18
SLIDE 18

1 Application 1: Random Subset-Sum Problem 2 Application 2: LPN

8

slide-19
SLIDE 19

1 Application 1: Random Subset-Sum Problem 2 Application 2: LPN

9

slide-20
SLIDE 20

Random Subset-Sum (RSS) Problem Definition

  • a = (a1 . . . an) ∈ (Z2n)n
  • e = (e1 . . . en) ∈ {0, 1}n

wt(e) = n

2

unknown

  • t = a, e mod 2n

GOAL: Given (a, t) find e ∈ {0, 1}n such that a, e = t

10

slide-21
SLIDE 21

Random Subset-Sum (RSS) Problem Definition

  • a = (a1 . . . an) ∈ (Z2n)n
  • e = (e1 . . . en) ∈ {0, 1}n

wt(e) = n

2

unknown

  • t = a, e mod 2n

GOAL: Given (a, t) find e ∈ {0, 1}n such that a, e = t

Our Work

Two new algorithms

  • SS-PCS Better than previous work for M < 20.02n
  • SS-PCS4 Better than previous work for 20.13n < M < 20.2n

10

slide-22
SLIDE 22

Previous Work

  • MitM (Folklore algorithm): T = M = 2

n 2 11

slide-23
SLIDE 23

Previous Work

  • MitM (Folklore algorithm): T = M = 2

n 2

  • [SS81] Schroeppel-Shamir 4-list Algorithm: T = 2

n 2 , M = 2 n 4 11

slide-24
SLIDE 24

Previous Work

  • MitM (Folklore algorithm): T = M = 2

n 2

  • [SS81] Schroeppel-Shamir 4-list Algorithm: T = 2

n 2 , M = 2 n 4

  • [H-GJ10] Representation Technique. T = M ≃ 20.337n

11

slide-25
SLIDE 25

Previous Work

  • MitM (Folklore algorithm): T = M = 2

n 2

  • [SS81] Schroeppel-Shamir 4-list Algorithm: T = 2

n 2 , M = 2 n 4

  • [H-GJ10] Representation Technique. T = M ≃ 20.337n
  • [BCJ11]
  • Improvement of [H-GJ10]: T = M ≃ 20.291n
  • Memoryless algorithm: T ≃ 20.71n

11

slide-26
SLIDE 26

Previous Work

  • MitM (Folklore algorithm): T = M = 2

n 2

  • [SS81] Schroeppel-Shamir 4-list Algorithm: T = 2

n 2 , M = 2 n 4

  • [H-GJ10] Representation Technique. T = M ≃ 20.337n
  • [BCJ11]
  • Improvement of [H-GJ10]: T = M ≃ 20.291n
  • Memoryless algorithm: T ≃ 20.71n
  • [DDKS12] Best 20.01n ≤ M < 20.17n

11

slide-27
SLIDE 27

MitM Algorithm

Goal: Find e s.t. a, e = t e = e1 e2 + a, e1 t − a, e2 2n/2 2n/2 Collision ⇒ a, e1 + e2 = t

12

slide-28
SLIDE 28

Schroeppel-Shamir [SS81]

Goal: Find e s.t. a, e = t

e = + + +

13

slide-29
SLIDE 29

Schroeppel-Shamir [SS81]

Goal: Find e s.t. a, e = t

e = + + + a, e1 a, e4 a, e2 a, e3 2n/4 2n/4

13

slide-30
SLIDE 30

Schroeppel-Shamir [SS81]

Goal: Find e s.t. a, e = t

e = + + + a, e1 a, e4 a, e2 a, e3 2n/4 2n/4

t1 ∈ L1, . . . t4 ∈ L4 s.t.

i ti = t

⇒ a, e1 + · · · + e4 = t

13

slide-31
SLIDE 31

Schroeppel-Shamir 4-list Algorithm

2n/4

14

slide-32
SLIDE 32

Schroeppel-Shamir 4-list Algorithm

2n/4 R R′

R′ = t − R mod 2

n 4

2n/4

n/4

14

slide-33
SLIDE 33

Schroeppel-Shamir 4-list Algorithm

2n/4 R R′

R′ = t − R mod 2

n 4

2n/4

n/4

Collision ⇒

  • i ti = t

14

slide-34
SLIDE 34

Schroeppel-Shamir 4-list Algorithm

2n/4 R R′

R′ = t − R mod 2

n 4

2n/4

n/4

Collision ⇒

  • i ti = t

∀R ∈ Z2n/4

14

slide-35
SLIDE 35

Schroeppel-Shamir 4-list Algorithm

2n/4 R R′

R′ = t − R mod 2

n 4

2n/4

n/4

Collision ⇒

  • i ti = t

∀R ∈ Z2n/4 T = O

  • 2n/2

M = O

  • 2n/4

14

slide-36
SLIDE 36

Representations

Representation of e: (e1 . . . ek) wt(ei) =

n 2k ∀i

ei = e Example e1 = (10001000) e2 = (01000001) e′

1 = (10000001)

e′

2 = (01001000)

(e1, e2) and (e′

1, e′ 2): representations of e = (11001001)

15

slide-37
SLIDE 37

Representations

Representation of e: (e1 . . . ek) wt(ei) =

n 2k ∀i

ei = e Example e1 = (10001000) e2 = (01000001) e′

1 = (10000001)

e′

2 = (01001000)

(e1, e2) and (e′

1, e′ 2): representations of e = (11001001)

Important remark

e ∈ {0, 1}n, wt(e) = n/2 There are n/2

n/4

  • ≈ 2n/2 representations (e1, e2) of e

15

slide-38
SLIDE 38

Representation Technique: Needles and Haystack Subset-sum

Find e ∈ {0, 1}n s.t. a, e = t mod 2n

16

slide-39
SLIDE 39

Representation Technique: Needles and Haystack Representation Technique [H-GJ10]

Find (e1, e2) ∈ {0, 1}n × {0, 1}n s.t. a, e1 + e2 = t mod 2n

16

slide-40
SLIDE 40

Representation Technique: Needles and Haystack Representation Technique [H-GJ10]

Find (e1, e2) ∈ {0, 1}n × {0, 1}n s.t. a, e1 + e2 = t mod 2n Without Rep. # search space: n

n/2

  • ≈ 2n

# solutions: 1 With Rep. # search space: n

n/4

2 ≈ 21.623n

  • # solutions:

n/2

n/4

  • ≈ 2n/2
  • 16
slide-41
SLIDE 41

BCJ Memoryless Algorithm [BCJ11]

  • wt(x) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(x) = t − g(x) mod 2r

17

slide-42
SLIDE 42

BCJ Memoryless Algorithm [BCJ11]

  • wt(x) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(x) = t − g(x) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

17

slide-43
SLIDE 43

BCJ Memoryless Algorithm [BCJ11]

  • wt(x) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(x) = t − g(x) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

BCJ Memoryless Algorithm

g x gt y g(x) = gt(y)

  • Search a collision between

g and gt

  • If x + y ∈ {0, 1}n and

a, x+y = t mod 2n re- turn x + y

  • Else restart

17

slide-44
SLIDE 44

BCJ Memoryless Algorithm [BCJ11]

  • wt(x) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(x) = t − g(x) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

BCJ Memoryless Algorithm

g x gt y g(x) = gt(y)

  • Search a collision between

g and gt

  • If x + y ∈ {0, 1}n and

a, x+y = t mod 2n re- turn x + y

  • Else restart

#coll. #rep. ≈ 2r−n/2

17

slide-45
SLIDE 45

BCJ Memoryless Algorithm [BCJ11]

  • wt(x) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(x) = t − g(x) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

BCJ Memoryless Algorithm

g x gt y g(x) = gt(y)

  • Search a collision between

g and gt

  • If x + y ∈ {0, 1}n and

a, x+y = t mod 2n re- turn x + y

  • Else restart

#coll. #rep. ≈ 2r−n/2

T = ˜ O

  • 20.717n

17

slide-46
SLIDE 46

First Contribution: SS-PCS

  • wt(x) = wt(y) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(y) = t − g(y) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

18

slide-47
SLIDE 47

First Contribution: SS-PCS

  • wt(x) = wt(y) = n

4

  • g(x) = a, x mod 2r,

2r ≈ n

n/4

  • gt(y) = t − g(y) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

g x gt y g(x) = gt(y) (x, y) PCS 2m

  • Generate 2m collisions
  • If ∃ x + y ∈ {0, 1}n and

a, x+y = t mod 2n re- turn x + y

  • Else Restart

18

slide-48
SLIDE 48

SS-PCS: Complexity

  • wt(x) = wt(y) = n

4

  • g(x) = a, x mod 2r,

r ≈ 0.811n

  • gt(y) = t − g(y) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

g x gt y PCS 2m

  • Generate 2m collisions
  • If ∃ x + y ∈ {0, 1}n and

a, x + y = t mod 2r return x + y

  • Else Restart

19

slide-49
SLIDE 49

SS-PCS: Complexity

  • wt(x) = wt(y) = n

4

  • g(x) = a, x mod 2r,

r ≈ 0.811n

  • gt(y) = t − g(y) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

g x gt y PCS 2m

  • Generate 2m collisions

˜ O

  • 2

r+m 2

  • If ∃ x + y ∈ {0, 1}n and

a, x + y = t mod 2r return x + y

  • Else Restart

19

slide-50
SLIDE 50

SS-PCS: Complexity

  • wt(x) = wt(y) = n

4

  • g(x) = a, x mod 2r,

r ≈ 0.811n

  • gt(y) = t − g(y) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

g x gt y PCS 2m

  • Generate 2m collisions

˜ O

  • 2

r+m 2

  • If ∃ x + y ∈ {0, 1}n and

a, x + y = t mod 2r return x + y

  • Else Restart

˜ O

  • 2r− n

2 −m 19

slide-51
SLIDE 51

SS-PCS: Complexity

  • wt(x) = wt(y) = n

4

  • g(x) = a, x mod 2r,

r ≈ 0.811n

  • gt(y) = t − g(y) mod 2r

g(x) = gt(y)

  • a, x + y = t mod 2r

g x gt y PCS 2m

  • Generate 2m collisions

˜ O

  • 2

r+m 2

  • If ∃ x + y ∈ {0, 1}n and

a, x + y = t mod 2r return x + y

  • Else Restart

˜ O

  • 2r− n

2 −m

Time: ˜ O

  • 20.717n− m

2

Space: ˜ O (2m)

19

slide-52
SLIDE 52

SS-PCS in a Nutshell Assumptions

  • PCS behaves with g, gt as with independent random functions
  • PCS returns uniformly random collisions

Experimentally checked

SS-PCS...

  • requires ˜

O(2m) space

  • takes times ˜

O

  • 20.717n− m

2

  • is better than previous work when m ≤ 0.0174n
  • is the BCJ memoryless algorithm when m = 0

20

slide-53
SLIDE 53

SS-PCS trade-off

0.01 0.02 0.03 0.04 0.05 0.06 0.66 0.68 0.7 0.72 0.74 log T = 0.717n 0.0174 log M/n log T/n

21

slide-54
SLIDE 54

Second Contribution: Set-up

  • wt(x) = wt(y) = n

16

  • Random R1, R2, R3 ∈ Z2s and R4 = t − (R1 + R2 + R3)

2s ≈

  • n

n/16

  • f(x) = a, x mod 2s
  • fRi(y) = Ri − f(y) mod 2s

f(xi) = fRi(yi) ⇐ ⇒ a, xi + yi = Ri a, x1 + y1 + · · · + x4 + y4 = t mod 2s ⇓

22

slide-55
SLIDE 55

Second Contribution: Set-up

  • wt(x) = wt(y) = n

16

  • Random R1, R2, R3 ∈ Z2s and R4 = t − (R1 + R2 + R3)

2s ≈

  • n

n/16

  • f(x) = a, x mod 2s
  • fRi(y) = Ri − f(y) mod 2s

f(xi) = fRi(yi) ⇐ ⇒ a, xi + yi = Ri a, x1 + y1 + · · · + x4 + y4 = t mod 2s ⇓ f(xi) = fRi(yi) ⇐ ⇒ a, xi + yi = Ri mod 2s

22

slide-56
SLIDE 56

Second Contribution: Set-up

  • wt(x) = wt(y) = n

16

  • Random R1, R2, R3 ∈ Z2s and R4 = t − (R1 + R2 + R3)

2s ≈

  • n

n/16

  • f(x) = a, x mod 2s
  • fRi(y) = Ri − f(y) mod 2s

f(xi) = fRi(yi) ⇐ ⇒ a, xi + yi = Ri a, x1 + y1 + · · · + x4 + y4 = t mod 2s ⇓ f(xi) = fRi(yi) ⇐ ⇒ a, xi + yi = Ri mod 2s a, x1 + y1 + · · · + x4 + y4 = t mod 2s ⇓

22

slide-57
SLIDE 57

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

f fR1 f fR2 f fR3 f fR4 Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

23

slide-58
SLIDE 58

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

f fR1 PCS

a, x1 + y1 R1

f fR2 PCS

a, x2 + y2 R2

f fR3 PCS

a, x3 + y3 R3

f fR4 PCS

a, x4 + y4 R4

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between

f and fRi

23

slide-59
SLIDE 59

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between

f and fRi

  • Discard inconsistent ones

23

slide-60
SLIDE 60

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between

f and fRi

  • Discard inconsistent ones
  • Search for t1 + t2 + t3 +

t4 = t

23

slide-61
SLIDE 61

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between

f and fRi

  • Discard inconsistent ones
  • Search for t1 + t2 + t3 +

t4 = t

  • If ∃ e = xi + yi ∈

{0, 1}n return e

23

slide-62
SLIDE 62

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between

f and fRi

  • Discard inconsistent ones
  • Search for t1 + t2 + t3 +

t4 = t

  • If ∃ e = xi + yi ∈

{0, 1}n return e

  • Else restart
  • with same Ri

23

slide-63
SLIDE 63

Second Contribution: SS-PCS4

f(x) = a, x mod 2s fRi(x) = Ri − f(x) mod 2s

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between

f and fRi

  • Discard inconsistent ones
  • Search for t1 + t2 + t3 +

t4 = t

  • If ∃ e = xi + yi ∈

{0, 1}n return e

  • Else restart
  • with same Ri
  • with different Ri

23

slide-64
SLIDE 64

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi
  • Discard inconsistent ones
  • Search for t1+t2+t3+t4 = t
  • If ∃ e ∈ {0, 1}n return e
  • Else restart
  • Same Ri
  • New Ri

24

slide-65
SLIDE 65

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi

˜ O

  • 2

s+m 2

  • Discard inconsistent ones
  • Search for t1+t2+t3+t4 = t
  • If ∃ e ∈ {0, 1}n return e
  • Else restart
  • Same Ri
  • New Ri

24

slide-66
SLIDE 66

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi

˜ O

  • 2

s+m 2

  • Discard inconsistent ones

˜ O (2m)

  • Search for t1+t2+t3+t4 = t
  • If ∃ e ∈ {0, 1}n return e
  • Else restart
  • Same Ri
  • New Ri

24

slide-67
SLIDE 67

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi

˜ O

  • 2

s+m 2

  • Discard inconsistent ones

˜ O (2m)

  • Search for t1+t2+t3+t4 = t

˜ O

  • 22m′
  • If ∃ e ∈ {0, 1}n return e
  • Else restart
  • Same Ri
  • New Ri

24

slide-68
SLIDE 68

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi

˜ O

  • 2

s+m 2

  • Discard inconsistent ones

˜ O (2m)

  • Search for t1+t2+t3+t4 = t

˜ O

  • 22m′
  • If ∃ e ∈ {0, 1}n return e
  • Else restart
  • Same Ri

˜ O

  • 24s− 1

2 −4m

= P[Rep.|Ri good]−1

  • New Ri ˜

O

  • 23s−1

= P[Ri good]−1

24

slide-69
SLIDE 69

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi

˜ O

  • 2

s+m 2

  • Discard inconsistent ones

˜ O (2m)

  • Search for t1+t2+t3+t4 = t

˜ O

  • 22m′
  • If ∃ e ∈ {0, 1}n return e
  • Else restart

˜ O

  • 27s−4m−3 n

2

  • Same Ri
  • New Ri

24

slide-70
SLIDE 70

SS-PCS4: Complexity

Schroeppel-Shamir a, e = t f fR1 PCS f fR2 PCS f fR3 PCS f fR4 PCS

  • Find 2m collisions between f and fRi

˜ O

  • 2

s+m 2

  • Discard inconsistent ones

˜ O (2m)

  • Search for t1+t2+t3+t4 = t

˜ O

  • 22m′
  • If ∃ e ∈ {0, 1}n return e
  • Else restart

˜ O

  • 27s−4m−3 n

2

  • Same Ri
  • New Ri

s ≈ log

  • n

n/16

  • ≈ 0.337n, m < 0.21n,

m′ ≈ m − 0.006n Time: ˜ O

  • 20.849n−2m

Space: ˜ O (2m)

24

slide-71
SLIDE 71

In a Nutshell Assumptions

  • PCS behaves with f, fRi as with independent random functions
  • PCS returns uniformly random collisions
  • a, ei mod 2s are independently and uniformly distributed.

SS-PCS4...

  • requires ˜

O (2m) memory

  • find a solution in expected time ˜

O

  • 20.849n−2m

, m ≤ 0.21n.

  • is better than previous work for 0.132n ≤ m ≤ 0.2n

25

slide-72
SLIDE 72

New Trade-offs

5 · 10−2 0.1 0.15 0.2 0.4 0.5 0.6 0.7 log T = 0.717n 0.0174 0.132 log M/n log T/n

26

slide-73
SLIDE 73

1 Application 1: Random Subset-Sum Problem 2 Application 2: LPN

27

slide-74
SLIDE 74

Learning Parity with Noise

s Fk

2 $

← − a F2

Berp

← − − − e b ← s, a + e

(a, b = a, s + e) (a, b = a, s + e)

28

slide-75
SLIDE 75

Learning Parity with Noise

s Fk

2 $

← − a F2

Berp

← − − − e b ← s, a + e

(a, b = a, s + e) (a, b = a, s + e)

(Search)LPN

  • s

unknown

  • p < 1

2

e = 1 with probability p

  • GOAL: Recover s given access to LPN oracle

28

slide-76
SLIDE 76

c-sum Problem [EHKMS18]

L N ℓ

  • Single-solution: (x1, . . . , xc) ∈ Lc : x1 + · · · +

xc = 0

  • Solution: a set of N distinct single-solutions

29

slide-77
SLIDE 77

c-sum Problem [EHKMS18]

L N ℓ

  • Single-solution: (x1, . . . , xc) ∈ Lc : x1 + · · · +

xc = 0

  • Solution: a set of N distinct single-solutions

Reduction

  • ℓ =

k log c (1−ε) log k

  • log N ≥ ℓ+c log c+1

c

  • Assuming c-sums behave as independent
  • c-sum Pb solved in time T and memory M

LPN solved in time T 1+o(1) and memory M 1+o(1) using N 1+o(1) samples

29

slide-78
SLIDE 78

Solving LPN with c-sum

GOAL: Solve As + e = b A b N

30

slide-79
SLIDE 79

Solving LPN with c-sum

GOAL: Solve As + e = b N ℓ

30

slide-80
SLIDE 80

Solving LPN with c-sum

GOAL: Solve As + e = b N a′

i=ai1+ · · · +aic

30

slide-81
SLIDE 81

Solving LPN with c-sum

GOAL: Solve As + e = b N

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

30

slide-82
SLIDE 82

Solving LPN with c-sum

GOAL: Solve As + e = b

  • e′

i = t j=1 eij

  • Pilling-up Lemma: e′

i = 1

w.p. p′ = 1

2 − 1 2(1 − 2p)t

1 sk + e′

i

= b′

i

30

slide-83
SLIDE 83

Solving LPN with c-sum

GOAL: Solve As + e = b

  • e′

i = t j=1 eij

  • Pilling-up Lemma: e′

i = 1

w.p. p′ = 1

2 − 1 2(1 − 2p)t

  • Majority vote

+ e′

i

= b′

i

sk

30

slide-84
SLIDE 84

Solving LPN with c-sum

GOAL: Solve As + e = b

  • e′

i = t j=1 eij

  • Pilling-up Lemma: e′

i = 1

w.p. p′ = 1

2 − 1 2(1 − 2p)t

  • Majority vote

A0 ak s0 sk + e′ = b′

30

slide-85
SLIDE 85

Solving LPN with c-sum

GOAL: Solve As + e = b

  • e′

i = t j=1 eij

  • Pilling-up Lemma: e′

i = 1

w.p. p′ = 1

2 − 1 2(1 − 2p)t

  • Majority vote
  • Re-iterate

A0 s0 + e′ = ˜ b

30

slide-86
SLIDE 86

Solving LPN with c-sum

GOAL: Solve As + e = b

  • e′

i = t j=1 eij

  • Pilling-up Lemma: e′

i = 1

w.p. p′ = 1

2 − 1 2(1 − 2p)t

  • Majority vote
  • Re-iterate

A0 s0 + e′ = ˜ b

Contribution

[EHKMS18]: c-sum via Dissection [DDKS12] Our work: c-sum via PCS

30

slide-87
SLIDE 87

New c-sum-PCS Algorithm

ℓ L N 22ℓ/c 22ℓ/c

31

slide-88
SLIDE 88

New c-sum-PCS Algorithm

ℓ Lc

. . .

L1 22ℓ/c 22ℓ/c f0, f1 : (Z22ℓ/c)c/2 → Fℓ

2

31

slide-89
SLIDE 89

New c-sum-PCS Algorithm

. . . . . .

22ℓ/c 22ℓ/c f0, f1 : (Z22ℓ/c)c/2 → Fℓ

2

  • f0(i1, . . . ic/2) = L1[i1] + · · · + Lc/2[ic/2]

31

slide-90
SLIDE 90

New c-sum-PCS Algorithm

. . . . . .

22ℓ/c 22ℓ/c f0, f1 : (Z22ℓ/c)c/2 → Fℓ

2

  • f0(i1, . . . ic/2) = L1[i1] + · · · + Lc/2[ic/2]
  • f1(i1+c/2, . . . , ic) = L1+c/2[ic/2+1] + · · · + Lc[ic]

31

slide-91
SLIDE 91

New c-sum-PCS Algorithm

ℓ Lc

. . .

L1 22ℓ/c 22ℓ/c f0, f1 : (Z22ℓ/c)c/2 → Fℓ

2

  • f0(i1, . . . ic/2) = L1[i1] + · · · + Lc/2[ic/2]
  • f1(i1+c/2, . . . , ic) = L1+c/2[ic/2+1] + · · · + Lc[ic]

f0(i1, . . . , ic/2) = f1(ic/2+1, . . . , ic) ⇓ L1[i1] + · · · + Lc[ic] = 0

31

slide-92
SLIDE 92

New c-sum-PCS Algorithm

ℓ Lc

. . .

L1 22ℓ/c 22ℓ/c f0, f1 : (Z22ℓ/c)c/2 → Fℓ

2

  • f0(i1, . . . ic/2) = L1[i1] + · · · + Lc/2[ic/2]
  • f1(i1+c/2, . . . , ic) = L1+c/2[ic/2+1] + · · · + Lc[ic]

f0(i1, . . . , ic/2) = f1(ic/2+1, . . . , ic) ⇓ L1[i1] + · · · + Lc[ic] = 0 Find N = c22ℓ/c collisions between f0 and f1 with PCS

31

slide-93
SLIDE 93

Complexity analysis Assumption

Given a list L the c-sums (x1, . . . , xc) ∈ Lc behave as independent

  • Proved for c = 2 [DRX17]
  • Experimentally checked for c = 4, c = 7 [EHKMS18]

32

slide-94
SLIDE 94

Complexity analysis Assumption

Given a list L the c-sums (x1, . . . , xc) ∈ Lc behave as independent

  • Proved for c = 2 [DRX17]
  • Experimentally checked for c = 4, c = 7 [EHKMS18]

c-sum-PCS...

  • Solves the c-sum problem in a list of size c22ℓ/c
  • Requires M = ˜

O

  • 22ℓ/c

memory and T = ˜ O

  • 2( 1

2 + 1 c )ℓ

time

32

slide-95
SLIDE 95

Complexity analysis Assumption

Given a list L the c-sums (x1, . . . , xc) ∈ Lc behave as independent

  • Proved for c = 2 [DRX17]
  • Experimentally checked for c = 4, c = 7 [EHKMS18]

c-sum-PCS...

  • Solves the c-sum problem in a list of size c22ℓ/c
  • Requires M = ˜

O

  • 22ℓ/c

memory and T = ˜ O

  • 2( 1

2 + 1 c )ℓ

time

PCS-BKW...

  • Solves LPN in time T = 2( 1

2 + 1 c ) log c k log k (1+ε) and memory

M = 2

2 c log c k log k (1+ε)

  • Is faster than [EHKMS18] for M < 20.35

k log k 32

slide-96
SLIDE 96

New Trade-offs

0.2 0.4 0.6 0.8 1 1 2 3 4 log M/

k log k

log T/

k log k

PCS − BKW Dissection-BKW Quantum − BKW

33

slide-97
SLIDE 97

Conclusion

This Work proposes

  • Two new low-memory algorithms for subset-sum using PCS
  • SS-PCS: Based on BCJ memoryless algorithm works best for M < 20.02n
  • SS-PCS4: works best for 20.13n < M < 20.2n
  • PCS-BKW: A new low-memory algorithm for LPN using PCS
  • Follows the idea of [EHKMS18]
  • Improve the c-sum routine
  • Works best for M < 20.35

k log k 34

slide-98
SLIDE 98

Conclusion

This Work proposes

  • Two new low-memory algorithms for subset-sum using PCS
  • SS-PCS: Based on BCJ memoryless algorithm works best for M < 20.02n
  • SS-PCS4: works best for 20.13n < M < 20.2n
  • PCS-BKW: A new low-memory algorithm for LPN using PCS
  • Follows the idea of [EHKMS18]
  • Improve the c-sum routine
  • Works best for M < 20.35

k log k

What’s next?

  • Improving these trade-offs
  • Applying similar ideas to other problem (e.g. Decoding, Lattice)?

34

slide-99
SLIDE 99

Conclusion

This Work proposes

  • Two new low-memory algorithms for subset-sum using PCS
  • SS-PCS: Based on BCJ memoryless algorithm works best for M < 20.02n
  • SS-PCS4: works best for 20.13n < M < 20.2n
  • PCS-BKW: A new low-memory algorithm for LPN using PCS
  • Follows the idea of [EHKMS18]
  • Improve the c-sum routine
  • Works best for M < 20.35

k log k

What’s next?

  • Improving these trade-offs
  • Applying similar ideas to other problem (e.g. Decoding, Lattice)?

Thank you for your time!

34