Berlekamp–Rabin algorithm explained
with
elements. The method was discovered by
Elwyn Berlekamp in 1970
[1] as an auxiliary to the
algorithm for polynomial factorization over finite fields. The algorithm was later modified by
Rabin for arbitrary finite fields in 1979.
[2] The method was also independently discovered before Berlekamp by other researchers.
[3] History
The method was proposed by Elwyn Berlekamp in his 1970 work on polynomial factorization over finite fields. His original work lacked a formal correctness proof and was later refined and modified for arbitrary finite fields by Michael Rabin. In 1986 René Peralta proposed a similar algorithm[4] for finding square roots in
.
[5] In 2000 Peralta's method was generalized for
cubic equations.
[6] Statement of problem
Let
be an odd prime number. Consider the polynomial
over the field
of remainders modulo
. The algorithm should find all
in
such that
in
.
[7] Algorithm
Randomization
Let . Finding all roots of this polynomial is equivalent to finding its factorization into linear factors. To find such factorization it is sufficient to split the polynomial into any two non-trivial divisors and factorize them recursively. To do this, consider the polynomial where
is some element of
. If one can represent this polynomial as the product
then in terms of the initial polynomial it means that
, which provides needed factorization of
.
Classification of
elements
exactly one of following properties holds:
- The monomial is equal to
if
,
- The monomial divides if
is
quadratic residue modulo
,
- The monomial divides if
is quadratic non-residual modulo
.
Thus if
is not divisible by
, which may be checked separately, then
is equal to the product of
greatest common divisors
and
.
Berlekamp's method
The property above leads to the following algorithm:
- Explicitly calculate coefficients of
,
- Calculate remainders of modulo
by squaring the current polynomial and taking remainder modulo
,
- Using exponentiation by squaring and polynomials calculated on the previous steps calculate the remainder of modulo ,
- If then
mentioned below provide a non-trivial factorization of
,
- Otherwise all roots of
are either residues or non-residues simultaneously and one has to choose another
.
If
is divisible by some non-linear
primitive polynomial
over
then when calculating
with
and
one will obtain a non-trivial factorization of
, thus algorithm allows to find all roots of arbitrary polynomials over
.
Modular square root
Consider equation having elements
and
as its roots. Solution of this equation is equivalent to factorization of polynomial
over
. In this particular case problem it is sufficient to calculate only
. For this polynomial exactly one of the following properties will hold:
- GCD is equal to
which means that
and
are both quadratic non-residues,
- GCD is equal to
which means that both numbers are quadratic residues,
- GCD is equal to
which means that exactly one of these numbers is quadratic residue.
In the third case GCD is equal to either
or
. It allows to write the solution as
.
Example
Assume we need to solve the equation . For this we need to factorize
f(x)=x2-5=(x-\beta)(x+\beta)
. Consider some possible values of
:
- Let
. Then
, thus
. Both numbers
are quadratic non-residues, so we need to take some other
.
- Let
. Then
, thus
. From this follows
, so
and
.
A manual check shows that, indeed, and .
Correctness proof
The algorithm finds factorization of
in all cases except for ones when all numbers
are quadratic residues or non-residues simultaneously. According to theory of cyclotomy,
[8] the probability of such an event for the case when
are all residues or non-residues simultaneously (that is, when
would fail) may be estimated as
where
is the number of distinct values in
. In this way even for the worst case of
and
, the probability of error may be estimated as
and for modular square root case error probability is at most
.
Complexity
Let a polynomial have degree
. We derive the algorithm's complexity as follows:
- Due to the binomial theorem , we may transition from
to
in
time.
- Polynomial multiplication and taking remainder of one polynomial modulo another one may be done in , thus calculation of is done in .
- Binary exponentiation works in
.
- Taking the
of two polynomials via
Euclidean algorithm works in
.
Thus the whole procedure may be done in
. Using the
fast Fourier transform and Half-GCD algorithm,
[9] the algorithm's complexity may be improved to
. For the modular square root case, the degree is
, thus the whole complexity of algorithm in such case is bounded by
per iteration.
Notes and References
- Factoring polynomials over large finite fields . Mathematics of Computation . 1970 . 24 . 111 . 713–735 . 0025-5718 . 10.1090/S0025-5718-1970-0276200-X . en . Berlekamp. E. R.. free.
- M. Rabin . Probabilistic Algorithms in Finite Fields . SIAM Journal on Computing . 1980 . 9 . 2 . 273–280 . 0097-5397 . 10.1137/0209024 . 10.1.1.17.5653 .
- Book: Donald E Knuth . Donald E Knuth . The art of computer programming. Vol. 2 Vol. 2 . 1998 . 978-0201896848. 900627019 .
- Tsz-Wo Sze . On taking square roots without quadratic nonresidues over finite fields . Mathematics of Computation. 2011 . 80 . 275 . 1797–1811 . 0025-5718 . 10.1090/s0025-5718-2011-02419-1 . 0812.2591 . 10249895 .
- R. Peralta . A simple and fast probabilistic algorithm for computing square roots modulo a prime number (Corresp.) . IEEE Transactions on Information Theory . November 1986 . 32 . 6 . 846–847 . 0018-9448 . 10.1109/TIT.1986.1057236 .
- C Padró, G Sáez . Taking cube roots in Zm . Applied Mathematics Letters . August 2002 . 15 . 6 . 703–708 . 0893-9659 . 10.1016/s0893-9659(02)00031-9 .
- Book: Alfred J. Menezes, Ian F. Blake, XuHong Gao, Ronald C. Mullin, Scott A. Vanstone . Applications of Finite Fields . 1993 . Springer US . The Springer International Series in Engineering and Computer Science . 9780792392828.
- Book: Marshall Hall . Combinatorial Theory . 1998 . John Wiley & Sons . 9780471315186.
- Book: Aho, Alfred V. . The design and analysis of computer algorithms . 1974 . Addison-Wesley Pub. Co . 0201000296 . registration .