Paper 2016/888

Finding closest lattice vectors using approximate Voronoi cells

Emmanouil Doulgerakis, Thijs Laarhoven, and Benne de Weger


The two traditional hard problems underlying the security of lattice-based cryptography are the shortest vector problem (SVP) and the closest vector problem (CVP). For a long time, lattice enumeration was considered the fastest method for solving these problems in high dimensions, but recent work on memory-intensive methods has resulted in lattice sieving overtaking enumeration both in theory and in practice. Some of the recent improvements [Ducas, Eurocrypt 2018; Laarhoven-Mariano, PQCrypto 2018; Albrecht-Ducas-Herold-Kirshanova-Postlethwaite-Stevens, Eurocrypt 2019] are based on the fact that these methods find more than just one short lattice vector, and this additional data can be reused effectively later on to solve other, closely related problems faster. Similarly, results for the preprocessing version of CVP (CVPP) have demonstrated that once this initial data has been generated, instances of CVP can be solved faster than when solving them directly, albeit with worse memory complexities [Laarhoven, SAC 2016]. In this work we study CVPP in terms of approximate Voronoi cells, and obtain better time and space complexities using randomized slicing, which is similar in spirit to using randomized bases in lattice enumeration [Gama-Nguyen-Regev, Eurocrypt 2010]. With this approach, we improve upon the state-of-the-art complexities for CVPP, both theoretically and experimentally, with a practical speedup of several orders of magnitude compared to non-preprocessed SVP or CVP. Such a fast CVPP solver may give rise to faster enumeration methods, where the CVPP solver is used to replace the bottom part of the enumeration tree, consisting of a batch of CVP instances in the same lattice. Asymptotically, we further show that we can solve an exponential number of instances of CVP in a lattice in essentially the same amount of time and space as the fastest method for solving just one CVP instance. This is in line with various recent results, showing that perhaps the biggest strength of memory-intensive methods lies in being able to reuse the generated data several times. Similar to [Ducas, Eurocrypt 2018], this further means that we can achieve a ``few dimensions for free'' for sieving for SVP or CVP, by doing $\Theta(d/\log d)$ levels of enumeration on top of a CVPP solver based on approximate Voronoi cells.

Note: The first 20 pages appeared at PQCrypto 2019. Note that the previous, single-author version of this paper with the same title (i.e. version 20161219:141310 of this report) was phrased as an extended version of, which appeared at SAC 2016. After revising the paper, two new authors have joined, and this paper is now an independent follow-up paper, treating the results from SAC 2016 as previous work.

Available format(s)
Publication info
Published elsewhere. MAJOR revision.PQCrypto 2019
latticespreprocessingVoronoi cellssieving algorithmsshortest vector problem (SVP)closest vector problem (CVP)
Contact author(s)
mail @ thijs com
2019-02-16: last of 5 revisions
2016-09-14: received
See all versions
Short URL
Creative Commons Attribution


      author = {Emmanouil Doulgerakis and Thijs Laarhoven and Benne de Weger},
      title = {Finding closest lattice vectors using approximate Voronoi cells},
      howpublished = {Cryptology ePrint Archive, Paper 2016/888},
      year = {2016},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.