  We introduce a new class of algorithms for finding a short vector in lattices
defined by codes of co-dimension $k$ over $\mathbb{Z}_P^d$, where $P$ is prime.
The co-dimension $1$ case is solved by exploiting the packing properties of the
projections mod $P$ 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 $P$
and $d$, 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 $P$, the algorithm yields shorter vectors for
larger $d$. We additionally present a number of extensions and generalizations
of our fundamental co-dimension $1$ method. These include a method for
obtaining many different lattice vectors by multiplying the dual codeword by an
integer and then modding by $P$; a co-dimension $k$ generalization; a large
input set generalization; and finally, a "block" generalization, which involves
the replacement of pairwise (Euclidean) reduction by a $k$-party
(non-Euclidean) reduction. The $k$-block generalization of our algorithm
constitutes a class of polynomial-time algorithms indexed by $k\geq 2$, which
yield successively improved approximations for the short vector problem.
