2

Hi I am currently working on a problem regarding different bases and their respective lattices. I am a physicist, so maybe the question might be trivial (I don't know), but I was not able to find anything regarding this problem yet.

The Question

Basically my question is, whether there is a clever way to determine if two bases form the same lattice.

Some Context and Definitions

Definition: Let $B=\{b_1,\dots,b_n\}$ be linearly independent vectors in $\mathbb{R}^n$. The lattice $\mathcal{L}(B)$ generated by $B$ is the set $$\mathcal{L}(B) = \left\{\sum_{i=1}^n x_i b_i : x_i\in \mathbb{Z} \right\}$$ of all the integer linear combinations of the vectors in $B$, and the set $B$ is called a basis for $\mathcal{L}(B)$.

It is now fairly easy to find statements of the form if $B$ and $B^\prime$ are a basis of the same lattice e.g. $\mathcal{L}(B)=\mathcal{L}(B^\prime)$, then ... .

An example would be the determinants of the bases which are the same.

It is now of interest to me, if there is a simple way/algorithm to check if two bases for the same lattice.

jan0155
  • 133
  • 6
  • 2
    I don't know about this particular case, but if you want to search for an answer, the term "canonical base (for integer lattice)" should help. – JonathanZ Apr 25 '22 at 14:29

2 Answers2

5

From chapter 1 of Micciancio & Goldwasser1:

Equivalent bases (i.e., bases that generate the same lattice) can be algebraically characterized as follows. Two bases ${\bf B}, {\bf B}' \in \Bbb R^{m \times n}$ are equivalent if and only if there exists a unimodular matrix ${\bf U} \in \Bbb Z^{n \times n}$ (i.e., an integral matrix with determinant $\det({\bf U}) = \pm 1$) such that ${\bf B}' = {\bf B} {\bf U}$.


From chapter 2 of Peikert's survey2:

A lattice basis $\bf B$ is not unique: for any unimodular matrix ${\bf U} \in \Bbb Z^{n \times n}$ (i.e., one having determinant $\pm 1$), ${\bf B} \cdot {\bf U}$ is also a basis of $\mathcal L({\bf B})$, because ${\bf U} \cdot \Bbb Z^n = \Bbb Z^n$.


  1. Daniele Micciancio, Shafi Goldwasser, Complexity of Lattice Problems — a Cryptographic Perspective, Springer, 2002.

  2. Chris Peikert, A Decade of Lattice Cryptography [PDF], February 17, 2016.

3

Adding to the previous answer, if you want an exact algorithm:

Suppose you have two integer matrices $A$ and $B$ of full column rank, and you want to see if the lattice generated by the $\Bbb Z$-linear combinations of the columns is the same for the two matrices.

As above, this is true iff there is some unimodular matrix $U$ such that $AU = B$. A unimodular matrix has only integer coordinates and determinant equal to ±1. Furthermore, if this matrix exists, it will be unique.

In order to see efficiently if the two matrices generate the same lattice, we can simply solve for $U$. We can use the pseudoinverse to do this easily. Simply compute the pseudoinverse $A^+$ and then you have $U = A^+ B$ is your matrix. Then all you need to do is check that the product $AU$ really does equal $B$, and that $U$ has only integer coefficients and that the determinant of $U$ is ±1.

The pseudoinverse is particularly easy to compute in this situation because we've specified that the columns are of full rank, meaning they are linearly independent. In this situation, the pseudoinverse has a nice closed form:

$A^+ = (A^* A)^{-1} A^*$

where $A^*$ is the conjugate transpose of $A$. Since your matrix is only made of integers, the conjugate transpose is the same as the regular transpose, and thus we have as our answer

$U = (A^T A)^{-1} A^T B$

If we have $AU=B$, and that $U$ has integer coordinates and determinant equal to ±1, then $A$ and $B$ generate the same column lattice.

Edit: Corrected formula for the pseudoinverse.

D.D.
  • 15