Krylovbased algorithms have recently been used, in combination with other
methods, to solve systems of linear equations and to perform related matrix
computations over finite fields. For example, large and sparse systems of
linear equations over the finite field with two elements are formed during the
use of the number field sieve for integer factorization, and elements of the
null space of these systems are sampled. Block Lanczos algorithms have been
used to perform this computation with considerable success. However, the
algorithms that are currently in use do not appear to be reliable in the worst
case.
This report presents a block Lanczos algorithm that is somewhat simpler than
block algorithms that are presently in use and provably reliable for
computations over large fields. This can be implemented, using a field
extension, in order to produce several uniformly and independently selected
elements from the null space at once. The amortized cost to produce each vector
closely matches the cost to generate such a vector with the methods currently
in use.
An algorithm is also given to compute the rank of an mxn matrix over a small
finite field F. The expected number of matrixvector products by A or its
transpose used by this algorithm is at most linear in r, where r is the rank of
A. The expected number of additional field operations used by this algorithm is
within a polylog factor of r(n+m), and the expected storage space is within a
polynog factor of n+m. This is asymptotically more efficient than existing
black box algorithms to compute the rank of a matrix over a small field,
assuming that the cost of matrixvector products dominates the cost of other
operations.
