hashsieve: theory and practice 0.2cmpart 1: theorythijs.com/docs/crypto15-darmstadt2.pdf ·...

113
HashSieve: Theory and Practice Part 1: Theory Artur Mariano, Thijs Laarhoven , Christian Bischof [email protected] http://www.thijs.com/ CROSSING seminar, Darmstadt, Germany (October 15, 2015)

Upload: others

Post on 12-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

HashSieve: Theory and PracticePart 1: Theory

Artur Mariano, Thijs Laarhoven, Christian Bischof

[email protected]://www.thijs.com/

CROSSING seminar, Darmstadt, Germany(October 15, 2015)

Page 2: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

LatticesWhat is a lattice?

Page 3: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

b1

b2

LatticesWhat is a lattice?

Page 4: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

b1

b2

LatticesWhat is a lattice?

Page 5: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

b1

b2t

LatticesClosest Vector Problem (CVP)

Page 6: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

b1

b2t

v

LatticesClosest Vector Problem (CVP)

Page 7: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

b1

b2

s

LatticesShortest Vector Problem (SVP)

Page 8: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

LatticesApplications

• “Constructive cryptography”: Lattice-based cryptosystemsI Based on hard lattice problems (SVP, CVP, LWE, SIS)I NTRU cryptosystem [HPS98, . . . , HPSSWZ15]I HIMMO key pre-distribution scheme [GMGPGRST14]I Fully Homomorphic Encryption [Gen09, . . . , CM15]I Candidate for “post-quantum cryptography”

• “Destructive cryptography”: Lattice cryptanalysis

I Attack knapsack-based cryptosystems [Sha82, LO85, . . . ]I Attack RSA with Coppersmith’s method [Cop97, . . . ]I Attack lattice-based cryptosystems [Ngu99, JJ00, . . . ]

How hard are hard lattice problems such as SVP?

Page 9: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

LatticesApplications

• “Constructive cryptography”: Lattice-based cryptosystemsI Based on hard lattice problems (SVP, CVP, LWE, SIS)I NTRU cryptosystem [HPS98, . . . , HPSSWZ15]I HIMMO key pre-distribution scheme [GMGPGRST14]I Fully Homomorphic Encryption [Gen09, . . . , CM15]I Candidate for “post-quantum cryptography”

• “Destructive cryptography”: Lattice cryptanalysisI Attack knapsack-based cryptosystems [Sha82, LO85, . . . ]I Attack RSA with Coppersmith’s method [Cop97, . . . ]I Attack lattice-based cryptosystems [Ngu99, JJ00, . . . ]

How hard are hard lattice problems such as SVP?

Page 10: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

LatticesApplications

• “Constructive cryptography”: Lattice-based cryptosystemsI Based on hard lattice problems (SVP, CVP, LWE, SIS)I NTRU cryptosystem [HPS98, . . . , HPSSWZ15]I HIMMO key pre-distribution scheme [GMGPGRST14]I Fully Homomorphic Encryption [Gen09, . . . , CM15]I Candidate for “post-quantum cryptography”

• “Destructive cryptography”: Lattice cryptanalysisI Attack knapsack-based cryptosystems [Sha82, LO85, . . . ]I Attack RSA with Coppersmith’s method [Cop97, . . . ]I Attack lattice-based cryptosystems [Ngu99, JJ00, . . . ]

How hard are hard lattice problems such as SVP?

Page 11: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

LatticesExact SVP algorithms

Algorithm log2(Time) log2(Space)

Provable

SVP

Enumeration [Poh81, Kan83, . . . , MW15] Ω(n log n) O(log n)AKS-sieve [AKS01, NV08, MV10, HPS11] 3.398n 1.985nListSieve [MV10, MDB14] 3.199n 1.327nAKS-sieve-birthday [PS09, HPS11] 2.648n 1.324nListSieve-birthday [PS09] 2.465n 1.233nVoronoi cell algorithm [AEVZ02, MV10b] 2.000n 1.000nDiscrete Gaussians [ADRS15, ADS15, Ste16] 1.000n 1.000n

Heuristic

SVP Nguyen-Vidick sieve [NV08] 0.415n 0.208n

GaussSieve [MV10, . . . , IKMT14, BNvdP14] 0.415n? 0.208nTwo-level sieve [WLTB11] 0.384n 0.256nThree-level sieve [ZPH13] 0.3778n 0.283nOverlattice sieve [BGJ14] 0.3774n 0.293nHyperplane LSH [Laa15, MLB15] 0.337n 0.208n

Page 12: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

Nguyen-Vidick sieve

Page 13: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

Nguyen-Vidick sieve1. Sample a list L of random lattice vectors

Page 14: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Nguyen-Vidick sieve1. Sample a list L of random lattice vectors

Page 15: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 16: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

O

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 17: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1v1

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 18: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v2

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 19: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3v3

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 20: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4v4

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 21: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5v5

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 22: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6v6

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 23: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7v7

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 24: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8v8

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 25: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9v9Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 26: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v10

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 27: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11v11

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 28: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12v12Nguyen-Vidick sieve

2. Split L into centers C and short vectors R

Page 29: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13v13

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 30: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14v14

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 31: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15v15

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 32: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16v16

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 33: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Nguyen-Vidick sieve2. Split L into centers C and short vectors R

Page 34: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Nguyen-Vidick sieve3. Repeat with L← R until we find a shortest vector

Page 35: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Nguyen-Vidick sieve3. Repeat with L← R until we find a shortest vector

Page 36: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Nguyen-Vidick sieve3. Repeat with L← R until we find a shortest vector

Page 37: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

v7

Nguyen-Vidick sieve3. Repeat with L← R until we find a shortest vector

Page 38: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

v7

Nguyen-Vidick sieveOverview

Page 39: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

v7

Nguyen-Vidick sieveOverview

• Space complexity:√4/3n ≈ 20.21n+o(n) vectors

I Need√4/3n vectors to cover all corners of Rn

• Time complexity: (4/3)n ≈ 20.42n+o(n)

I Comparing a target vector to all centers: 20.21n+o(n)

I Repeating this for each list vector: 20.21n+o(n)

I Repeating the whole sieving procedure: poly(n)

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The NV-sieve runs in time 20.42n+o(n) and space 20.21n+o(n).

Page 40: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

v7

Nguyen-Vidick sieveOverview

• Space complexity:√4/3n ≈ 20.21n+o(n) vectors

I Need√4/3n vectors to cover all corners of Rn

• Time complexity: (4/3)n ≈ 20.42n+o(n)

I Comparing a target vector to all centers: 20.21n+o(n)

I Repeating this for each list vector: 20.21n+o(n)

I Repeating the whole sieving procedure: poly(n)

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The NV-sieve runs in time 20.42n+o(n) and space 20.21n+o(n).

Page 41: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

v7

Nguyen-Vidick sieveOverview

• Space complexity:√4/3n ≈ 20.21n+o(n) vectors

I Need√4/3n vectors to cover all corners of Rn

• Time complexity: (4/3)n ≈ 20.42n+o(n)

I Comparing a target vector to all centers: 20.21n+o(n)

I Repeating this for each list vector: 20.21n+o(n)

I Repeating the whole sieving procedure: poly(n)

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The NV-sieve runs in time 20.42n+o(n) and space 20.21n+o(n).

Page 42: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Nguyen-Vidick sieveSpace/time trade-off

Time=

Spac

e

NV'08

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 43: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

GaussSieveSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 44: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

Two-level sieve1. Sample a list L of random lattice vectors

Page 45: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Two-level sieve1. Sample a list L of random lattice vectors

Page 46: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 47: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

O

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 48: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1v1

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 49: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v2

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 50: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3v3

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 51: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4v4

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 52: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5v5

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 53: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6v6

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 54: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7v7

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 55: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8v8

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 56: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9v9Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 57: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v10

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 58: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11v11

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 59: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12v12Two-level sieve

2. Split L into centers C1, C2 and short vectors R

Page 60: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13v13

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 61: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14v14

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 62: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15v15

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 63: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16v16

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 64: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Two-level sieve2. Split L into centers C1, C2 and short vectors R

Page 65: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Two-level sieve3. Repeat with L← R until we find a shortest vector

Page 66: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Two-level sieve3. Repeat with L← R until we find a shortest vector

Page 67: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Two-level sieve3. Repeat with L← R until we find a shortest vector

Page 68: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

Two-level sieve3. Repeat with L← R until we find a shortest vector

Page 69: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Two-level sieveSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 70: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Two-level sieveSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 71: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Three-level sieveOverview

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The one-level sieve runs in time 20.4150n and space 20.2075n.

Heuristic (Wang et al., ASIACCS’11)The two-level sieve runs in time 20.3836n and space 20.2557n.

Heuristic (Zhang et al., SAC’13)The three-level sieve runs in time 20.3778n and space 20.2833n.

ConjectureThe four-level sieve runs in time 20.3774n and space 20.2925n, andhigher-level sieves are not faster than this.

Page 72: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Three-level sieveOverview

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The one-level sieve runs in time 20.4150n and space 20.2075n.

Heuristic (Wang et al., ASIACCS’11)The two-level sieve runs in time 20.3836n and space 20.2557n.

Heuristic (Zhang et al., SAC’13)The three-level sieve runs in time 20.3778n and space 20.2833n.

ConjectureThe four-level sieve runs in time 20.3774n and space 20.2925n, andhigher-level sieves are not faster than this.

Page 73: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Three-level sieveOverview

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The one-level sieve runs in time 20.4150n and space 20.2075n.

Heuristic (Wang et al., ASIACCS’11)The two-level sieve runs in time 20.3836n and space 20.2557n.

Heuristic (Zhang et al., SAC’13)The three-level sieve runs in time 20.3778n and space 20.2833n.

ConjectureThe four-level sieve runs in time 20.3774n and space 20.2925n, andhigher-level sieves are not faster than this.

Page 74: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Three-level sieveOverview

Heuristic (Nguyen and Vidick, J. Math. Crypt. ’08)The one-level sieve runs in time 20.4150n and space 20.2075n.

Heuristic (Wang et al., ASIACCS’11)The two-level sieve runs in time 20.3836n and space 20.2557n.

Heuristic (Zhang et al., SAC’13)The three-level sieve runs in time 20.3778n and space 20.2833n.

ConjectureThe four-level sieve runs in time 20.3774n and space 20.2925n, andhigher-level sieves are not faster than this.

Page 75: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Three-level sieveSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 76: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Three-level sieveSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

ZPH'13

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 77: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Decomposition approachSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

ZPH'13

BGJ'14BGJ'14

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 78: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

Hyperplane LSH1. Sample a list L of random lattice vectors

Page 79: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH1. Sample a list L of random lattice vectors

Page 80: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH2. Partition the space using random hyperplanes

Page 81: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH2. Partition the space using random hyperplanes

Page 82: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH3. Split L into C and R within each region

Page 83: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

O

Hyperplane LSH3. Split L into C and R within each region

Page 84: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1v1

Hyperplane LSH3. Split L into C and R within each region

Page 85: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v2

Hyperplane LSH3. Split L into C and R within each region

Page 86: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3v3

Hyperplane LSH3. Split L into C and R within each region

Page 87: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4v4

Hyperplane LSH3. Split L into C and R within each region

Page 88: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5v5

Hyperplane LSH3. Split L into C and R within each region

Page 89: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6v6

Hyperplane LSH3. Split L into C and R within each region

Page 90: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7v7

Hyperplane LSH3. Split L into C and R within each region

Page 91: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8v8

Hyperplane LSH3. Split L into C and R within each region

Page 92: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9v9Hyperplane LSH3. Split L into C and R within each region

Page 93: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v10

Hyperplane LSH3. Split L into C and R within each region

Page 94: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11v11

Hyperplane LSH3. Split L into C and R within each region

Page 95: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12v12Hyperplane LSH

3. Split L into C and R within each region

Page 96: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13v13

Hyperplane LSH3. Split L into C and R within each region

Page 97: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14v14

Hyperplane LSH3. Split L into C and R within each region

Page 98: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15v15

Hyperplane LSH3. Split L into C and R within each region

Page 99: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16v16

Hyperplane LSH3. Split L into C and R within each region

Page 100: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH3. Split L into C and R within each region

Page 101: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH4. Repeat with L← R until we find a shortest vector

Page 102: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH4. Repeat with L← R until we find a shortest vector

Page 103: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

v1

v2v3

v4

v5

v6

v7

v8

v9

v10v11

v12

v13

v14

v15

v16

Hyperplane LSH4. Repeat with L← R until we find a shortest vector

Page 104: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

Hyperplane LSH4. Repeat with L← R until we find a shortest vector

Page 105: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

Hyperplane LSHOverview

Page 106: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

Hyperplane LSHOverview

• Two parameters to tuneI k = O(n): Number of hyperplanes, leading to 2k regionsI t = 2O(n): Number of different, independent “hash tables”

• Space complexity: 20.337n+o(n)

I Number of vectors: 20.208n+o(n)

I Number of hash tables: 20.129n+o(n)

I Each hash table contains all vectors

• Time complexity: 20.337n+o(n)

I Cost of computing hashes: 20.129n+o(n)

I Candidate nearest vectors: 20.129n+o(n)

I Repeat this for each list vector: 20.208n+o(n)

TheoremSieving with hyperplane LSH heuristically solves SVP in time andspace 20.337n+o(n).

Page 107: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

Hyperplane LSHOverview

• Two parameters to tuneI k = O(n): Number of hyperplanes, leading to 2k regionsI t = 2O(n): Number of different, independent “hash tables”

• Space complexity: 20.337n+o(n)

I Number of vectors: 20.208n+o(n)

I Number of hash tables: 20.129n+o(n)

I Each hash table contains all vectors

• Time complexity: 20.337n+o(n)

I Cost of computing hashes: 20.129n+o(n)

I Candidate nearest vectors: 20.129n+o(n)

I Repeat this for each list vector: 20.208n+o(n)

TheoremSieving with hyperplane LSH heuristically solves SVP in time andspace 20.337n+o(n).

Page 108: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

Hyperplane LSHOverview

• Two parameters to tuneI k = O(n): Number of hyperplanes, leading to 2k regionsI t = 2O(n): Number of different, independent “hash tables”

• Space complexity: 20.337n+o(n)

I Number of vectors: 20.208n+o(n)

I Number of hash tables: 20.129n+o(n)

I Each hash table contains all vectors• Time complexity: 20.337n+o(n)

I Cost of computing hashes: 20.129n+o(n)

I Candidate nearest vectors: 20.129n+o(n)

I Repeat this for each list vector: 20.208n+o(n)

TheoremSieving with hyperplane LSH heuristically solves SVP in time andspace 20.337n+o(n).

Page 109: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

O

v1

v2v3

v4

v5

v6

v7

v9

v10v11

v12

v13

v14

v15

v16

v1

v2

v3

v4

v5

v6

Hyperplane LSHOverview

• Two parameters to tuneI k = O(n): Number of hyperplanes, leading to 2k regionsI t = 2O(n): Number of different, independent “hash tables”

• Space complexity: 20.337n+o(n)

I Number of vectors: 20.208n+o(n)

I Number of hash tables: 20.129n+o(n)

I Each hash table contains all vectors• Time complexity: 20.337n+o(n)

I Cost of computing hashes: 20.129n+o(n)

I Candidate nearest vectors: 20.129n+o(n)

I Repeat this for each list vector: 20.208n+o(n)

TheoremSieving with hyperplane LSH heuristically solves SVP in time andspace 20.337n+o(n).

Page 110: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Hyperplane LSHSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

ZPH'13

BGJ'14BGJ'14

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 111: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Hyperplane LSHSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

ZPH'13

BGJ'14BGJ'14

Laa'15

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 112: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Hyperplane LSHSpace/time trade-off

Time=

Spac

e

NV'08

MV'10

WLT

B'11

ZPH'13

BGJ'14BGJ'14

Laa'15

Laa'15

20.20 n 20.25 n 20.30 n 20.35 n 20.40 n

20.25 n

20.30 n

20.35 n

20.40 n

20.45 n

Space complexity

Tim

eco

mpl

exit

y

Page 113: HashSieve: Theory and Practice 0.2cmPart 1: Theorythijs.com/docs/crypto15-darmstadt2.pdf · Lattices ExactSVPalgorithms Algorithm log 2(Time) log 2(Space) SVP Enumeration[Poh81, Kan83,

Questions[vdP’12]