We introduce a new class of algorithms for finding a short vector in lattices defined by codes of co-dimension over , where is prime. The co-dimension case is solved by exploiting the packing properties of the projections mod of an initial set of non-lattice vectors onto a single dual codeword. The technical tools we introduce are sorting of the projections followed by single-step pairwise Euclidean reduction of the projections, resulting in monotonic convergence of the positive-valued projections to zero. The length of vectors grows by a geometric factor each iteration. For fixed and , and large enough user-defined input sets, we show that it is possible to minimize the number of iterations, and thus the overall length expansion factor, to obtain a short lattice vector. Thus we obtain a novel approach for controlling the output length, which resolves an open problem posed by Noah Stephens-Davidowitz (the possibility of an approximation scheme for the shortest-vector problem (SVP) which does not reduce to near-exact SVP). In our approach, one may obtain short vectors even when the lattice dimension is quite large, e.g., 8000. For fixed , the algorithm yields shorter vectors for larger . We additionally present a number of extensions and generalizations of our fundamental co-dimension method. These include a method for obtaining many different lattice vectors by multiplying the dual codeword by an integer and then modding by ; a co-dimension generalization; a large input set generalization; and finally, a "block" generalization, which involves the replacement of pairwise (Euclidean) reduction by a -party (non-Euclidean) reduction. The -block generalization of our algorithm constitutes a class of polynomial-time algorithms indexed by , which yield successively improved approximations for the short vector problem.
View on arXiv