Wiedemann Algorithm - an algorithm that allows you to obtain a solution of a system of linear equations over the final field . It was proposed by Douglas Wiedemann ( born Douglas Wiedemann ) in 1986. For some time after the publication of the article, the algorithm did not receive much support and was considered suitable only for obtaining the best estimates of complexity [1] . But later Wiedemann's algorithms were implemented on a computer and were used, for example, to search for factoring polynomials over finite fields.
History
Wiedemann's algorithms were presented to the public in the last century. In 1986, a January issue of IEEE Transactions on Information Theory published an article by Douglas Wiedemann entitled Solving sparse linear equations over finite fields . It described algorithms for solving a system of linear equations over a finite field in the case when the matrix of the system is sparse . Moreover, the article examined cases with different sparse matrices. Also, the rationale of the algorithms and the assessment of the complexity of their work were published in the article [2] .
Task
The algorithm is needed to solve a system of linear equations . Matrix
has dimension
and is assumed to be sparse , the number of nonzero elements in it is equal to
[1] .
Theory
Using matrix a non-degenerate linear map (which is also denoted by
) in space
. Space considered
generated by many vectors
and is determined
- linear display
on
.
We denote - minimal polynomial
, i.e., a nonzero polynomial of the least degree, such that
is a null mapping
, moreover, normalized so that its free term is equal to unity. Note that if
then
- zero mapping if and only if
. Besides,
divides polynomial
, and therefore
.
We denote where
- coefficients
. If you can find then system solution also located: since and then
Let be is any fixed vector from . Denote the standard bilinear mapping at as , i.e .
Because then the sequence
satisfies a linear recurrence relation whose characteristic polynomial is . Let be is the characteristic polynomial of the shortest recurrence relation. Then . Indeed, if divided by the remainder
{\ displaystyle f (z) = q (z) f_ {u} (z) + r (z)} ,
then from the equalities
,
and minimality will follow that . Since a free member equal to one, then we can assume that the free term equal to one.
Minimal polynomial for sequence can be obtained using the Berlekamp-Messi algorithm [3] by its first members. There are two methods for solving the original system.
First method. Random Vector Selected . Under construction and under the assumption that , located according to the formula
In this way, with a fairly high probability, a solution can be found [2] .
Second method. Let be for some vector . If the vector equals 0 then it is according to the formula
(since then )
If , then the procedure is repeated, that is, a random vector is selected and the minimal polynomial is constructed for sequence . If a then and you can find a solution x by the formula
,
otherwise selected and so on.
We prove that if done iterations then divides . It was shown above that . Further, assuming that divides , since - minimum polynomial for sequence , and the polynomial cancels it then , as required.
Now it’s obvious that if then . That is, as soon as the zero vector is found , then you can find a solution to the original system by the formula
[4] .
Algorithm 1
In the original article, the algorithm has such a name. Based on it, a deterministic algorithm is constructed, which is called algorithm 2 in the original article [5] .
Algorithm Description
Stage 1. Equated .
2 stage. If a then the solution is , and the algorithm stops working.
3 stage. Random Vector Selected .
4th stage. Calculate first sequence members .
5 stage. Calculate the minimum polynomial sequences from the 4th stage, and to normalize it so that its free term is equal to one. This can be done using the Berlekamp-Messi algorithm .
6 stage. Assign
where
,
.
7th stage. Assign and return to the second stage [5] .
Justification of the correctness of the algorithm using the method of mathematical induction
matches the right side of the formula unsigned minus sign. At is selected being considered sequence members and is located according to the Berlekamp-Messi algorithm . Then .
Let after pass algorithm performed equality
Then after passage
,
That is, the formulas for and saved. Now the correctness of the algorithm follows from the theory section [6] .
Deterministic Algorithm
Algorithm Description
Stage 1. Find value .
2 stage. Equate to zero , but unit.
3 stage. Assign (unit is on location).
4th stage. Find sequence using the first step.
5 stage. Find sequence , you can use the discrete Fourier transform [5] .
6 stage. Find the minimal polynomial with a free term equal to unity using the Berlekamp-Messi algorithm .
7th stage. Assign .
8 stage. Click to enlarge per unit. If a and then return to stage 3.
9th stage. For polynomial using the values found in the first stage find a solution systems using the formula
[5] .
Justification of algorithm correctness
Note that in fact the algorithm works the same as Algorithm 1, only vectors are not chosen randomly, but there is an enumeration of unit vectors . It's obvious that where - minimum polynomial for sequence
.
The algorithm terminated with a certain parameter value . Let's pretend that . Because and then . It follows that at step 9, the solution to the original system will be exactly found.
Now consider the case . Since all unit vectors have been enumerated then vector orthogonal . Consequently, . Because and is the minimal polynomial then . Therefore, in this case, the correctness of the algorithm [7] was confirmed.
Algorithm Estimation
For the deterministic algorithm, Wiedemann obtained the following complexity estimate : [5] . The resulting difficulty score is the best known. Thanks to the Wiedemann algorithm, it is possible to improve the complexity estimate in other algorithms using methods for solving linear systems [1] .
Similar Algorithms
Where can a solution of a system of linear equations over a finite field come in handy? The need for their solution arises when using factorization algorithms and when solving discrete logarithm problems using factor bases [8] . There are a large number of algorithms for obtaining a solution of a system of linear equations over finite fields [9] . In addition to Wiedemann's algorithms, one can use Gaussian and structural Gaussian exceptions, the Lanczos algorithm , and the conjugate gradient method [10] . Algorithms based on fast matrix multiplication are also known, for example, the Strassen and Koppersmit-Vinograd algorithms [11] . Their own algorithms were proposed by Konovaltsev [12] and Brillhart [13] [14] .
In the general case (the matrix of the system is not sparse), the Lanczos algorithm has been used more often lately (probably, together with a structured Gaussian exception to obtain a denser matrix of the subsystem) [14] . But in the case of a sparse matrix, it is most efficient to use Wiedemann algorithms, since estimates of their complexity are the best known. Wiedemann's algorithms were not immediately recognized, but later they were nevertheless implemented on a computer. Algorithms were used, for example, to factor polynomials over finite fields [1] .
Later various modifications of the original algorithm appeared, for example, the Wiedemann block algorithm [1] .
Notes
- ↑ 1 2 3 4 5 Vasilenko O.N., 2003 , p. 287.
- ↑ 1 2 Wiedemann DH, 1986 , p. 54-62.
- ↑ Massey JL, 1969 , p. 122-127.
- ↑ Vasilenko O.N., 2003 , p. 287-288.
- ↑ 1 2 3 4 5 Wiedemann DH, 1986 , p. 55.
- ↑ Vasilenko O.N., 2003 , p. 289-290.
- ↑ Vasilenko O.N., 2003 , p. 290-291.
- ↑ Vasilenko O.N., 2003 , p. 274-275.
- ↑ LaMacchia B., Odlyzko A., 1990 , p. 109-133.
- ↑ Coppersmith D., Odlyzko A., Schroeppel R., 1986 , p. 1-15.
- ↑ Alekseev V. B., 1988 , p. 189-236.
- ↑ Konovaltsev I.V., 1967 , p. 269-274.
- ↑ Brillhart J., 1989 , p. 211-213.
- ↑ 1 2 Vasilenko O.N., 2003 , p. 291.
Literature
- Vasilenko O. N. Number-theoretic algorithms in cryptography . - M .: ICMMO, 2003 .-- 328 p. - ISBN 5-94057-103-4 .
- Wiedemann DH Solving sparce linear equations over finite fields. - 1986. - January ( t. 32 , No. 1 ). - S. 54-62 .
- Kaltofen E., Lobo A. Factoring high-degree polynomials by the black box Berlekamp algorithm (Eng.) // Proceedings of ISSAC'94. - 1994. - S. 90-98 .
- Massey JL Shift-register synthesis and BCH decoding (English) // IEEE Trans. Inform. Theory. - 1969. - T. 15 . - S. 122-127 .
- Alekseev V. B. Complexity of matrix multiplication. Review (Russian) // Cybernetich. team .. - 1988. - T. 25 . - S. 189-236 .
- Konovaltsev I.V. On an algorithm for solving systems of linear equations in finite fields (Russian) // Problems of Cybernetics. - 1967 .-- T. 16 . - S. 269-274 .
- Brillhart J. A note on finding depencensies over GF (2) (Eng.) // Utilitas Math. - 1989 .-- T. 36 . - S. 211-213 .
- LaMacchia B., Odlyzko A. Solving large sparse linear systems over finite fields (English) // Advances in Cryptology — CRYPTO'90. - 1990 .-- T. 537 . - S. 109-113 .
- Coppersmith D., Odlyzko A., Schroeppel R. Discrete logarithms in GF (p) (English) // Algorithmica. - 1986.- T. 1 . - S. 1-15 .