Appearance
Solving SVP in Dimension 2
Reduced Basis
Definition 2.1 - Let
Intuition Behind
Consider constructing a triangle with known two edges
Lemma 2.1 - Consider three vectors on a line,

Explanation
Intutively, given
Similarly, if
IMPORTANT
So what is the relationship between reduced basis and the successive minima of the lattice?
Theorem 2.2 - Let

Explanation
From the definition of reduced basis, we know that whether
- if
have the same direction, then . - if
have the opposite direction, then . put them together, we need to ensure . Therefore,
In general, we have
namely, basis
Gauss Algorithm
Definition 2.2 - For a lattice basis
Algorithm

Explanation
For the line-1 and line-2, we are trying to ensure
- lattice vector
is the smaller one, i.e., - both lattice vectors
and are in the same direction, i.e., .
After then we will consider following cases :
For the line-3, it is the simplest case where
, in this case, we must have : then the basis
is strictly reduced, and they are in the same direction, return . For the rest of lines, it is the case of
, there are two subcases to consider: (2.1) for the line-4,
, then basis is a typical well-ordered basis, and they are in the same direction. (2.2) for line-5 and line-6,
, then there are two subcases to consider : (2.2.1) for the line-5,
, this is a very special case, and ensure that vectors and are in the same direction, in this case, . Since , thus the basis is reduced, and they are in the same direction, return . (2.2.2) from line-6,
, we do not know the whether and are in the same direction or not, but and ensures that vectors and are in the same direction, so . Therefore, the basis is well-ordered basis.
The remaining problem is how to find the reduced basis through well-ordered basis in the loop :
Since
is a well-ordered basis, there are other lattice vectors that can be fit between , what we need to do is finding the smallest one. This is achieved by find the integer such that is minimal, then replace with . Now we can check that if the updated basis
is reduced, but before checking we need to make sure that , if not, swap and . repeat the above steps until the basis
is reduced.
Next, we will focus on how to find the minimal vector between two well-ordered basis vectors in the Gauss loop.
Minimal Vector in Gauss Loop
Lemma 2.3 - Let

Explanation
Note that, in Gauss algorithm, before entering the loop, we have ensured that the basis
For better understanding Gauss algorithm, we will specially consider the l2 norm, and explain why we are able to find the minimal vector between
Condition
- vectors
are in the same direction. - projection scalar of
onto , i.e., . - the minimal distance between
and is .
Two cases involved in finding the optimal integer
- If
, then increases as moves away from the minimal value . In this case, is the optimal integer choice. - If
, then increases in the range , and decreases in the range . In this case, the optimal integer choice must come from either or .
Additionally, we will simply explain why

Why Gauss Loop Works
For now, we have only illustrated how Gauss loop works, and more specially how to find the minimal vector between two well-ordered basis vectors in the Gauss loop. But we have not touched why the loop works? or why we are able to eventually reach a reduced basis through repeated iterations from a well-ordered basis.
We know that the first step of Gauss loop is to find the minimal vector between the two basis vectors
, .
For the condition (1), since
implies implies
Thus, if
For the condition (2), we know that step two of Gauss loop ensures that
Then the Gauss loop will continue with the new well-ordered basis
Running Time Analysis
By analysing the Gauss loop, we know that given input well-ordered basis
Suppose the first input basis vector is
Lemma 2.4 - For
Explanation
Let
As we know,
We omit the details proof here.
Given the input basis
Since before entering the Gauss loop, we may have swapping, negation, or substrating operations, but :
always holds. It is clear that the number of iterations is bounded :
If the number of bits of one vector entry is
So we have :
As