Korkine–Zolotarev lattice basis reduction algorithm

The Korkine–Zolotarev (KZ) lattice basis reduction algorithm or Hermite–Korkine–Zolotarev (HKZ) algorithm is a lattice reduction algorithm.

For lattices in $$\mathbb{R}^n$$ it yields a lattice basis with orthogonality defect at most $$n^n$$, unlike the $$2^{n^2/2}$$ bound of the LLL reduction. KZ has exponential complexity versus the polynomial complexity of the LLL reduction algorithm, however it may still be preferred for solving multiple closest vector problems (CVPs) in the same lattice, where it can be more efficient.

History
The definition of a KZ-reduced basis was given by Aleksandr Korkin and Yegor Ivanovich Zolotarev in 1877, a strengthened version of Hermite reduction. The first algorithm for constructing a KZ-reduced basis was given in 1983 by Kannan.

The block Korkine-Zolotarev (BKZ) algorithm was introduced in 1987.

Definition
A KZ-reduced basis for a lattice is defined as follows:

Given a basis


 * $$\mathbf{B}=\{ \mathbf{b}_1,\mathbf{b}_2, \dots, \mathbf{b}_n \},$$

define its Gram–Schmidt process orthogonal basis


 * $$\mathbf{B}^*=\{ \mathbf{b}^*_1, \mathbf{b}^*_2, \dots, \mathbf{b}^*_n \},$$

and the Gram-Schmidt coefficients
 * $$\mu_{i,j}=\frac{\langle\mathbf{b}_i,\mathbf{b}^*_j\rangle}{\langle\mathbf{b}^*_j,\mathbf{b}^*_j\rangle}$$, for any $$1 \le j < i \le n$$.

Also define projection functions


 * $$\pi_i(\mathbf{x}) = \sum_{j \geq i} \frac{\langle\mathbf{x},\mathbf{b}^*_j\rangle}{\langle\mathbf{b}^*_j,\mathbf{b}^*_j\rangle} \mathbf{b}^*_j$$

which project $$\mathbf{x}$$ orthogonally onto the span of $$\mathbf{b}^*_i, \cdots, \mathbf{b}^*_n$$.

Then the basis $$B$$ is KZ-reduced if the following holds:


 * 1) $$\mathbf{b}^*_i$$ is the shortest nonzero vector in $$\pi_i(\mathcal{L}(\mathbf{B}))$$
 * 2) For all $$j < i$$, $$\left|\mu_{i,j}\right| \leq 1/2$$

Note that the first condition can be reformulated recursively as stating that $$\mathbf{b}_1$$ is a shortest vector in the lattice, and $$\{\pi_2(\mathbf{b}_2), \cdots \pi_2(\mathbf{b}_n)\}$$ is a KZ-reduced basis for the lattice $$\pi_2(\mathcal{L}(\mathbf{B}))$$.

Also note that the second condition guarantees that the reduced basis is length-reduced (adding an integer multiple of one basis vector to another will not decrease its length); the same condition is used in the LLL reduction.