Cantor–Zassenhaus Algorithm
   HOME

TheInfoList



OR:

In
computational A computation is any type of arithmetic or non-arithmetic calculation that is well-defined. Common examples of computation are mathematical equation solving and the execution of computer algorithms. Mechanical or electronic devices (or, historic ...
algebra Algebra is a branch of mathematics that deals with abstract systems, known as algebraic structures, and the manipulation of expressions within those systems. It is a generalization of arithmetic that introduces variables and algebraic ope ...
, the Cantor–Zassenhaus algorithm is a method for factoring
polynomial In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
s over
finite field In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
s (also called Galois fields). The algorithm consists mainly of exponentiation and polynomial GCD computations. It was invented by David G. Cantor and
Hans Zassenhaus Hans Julius Zassenhaus (28 May 1912 – 21 November 1991) was a German mathematician, known for work in many parts of abstract algebra, and as a pioneer of computer algebra. Biography He was born in Koblenz in 1912. His father was a historian and ...
in 1981. It is arguably the dominant algorithm for solving the problem, having replaced the earlier
Berlekamp's algorithm In mathematics, particularly computational algebra, Berlekamp's algorithm is a well-known method for factoring polynomials over finite fields (also known as ''Galois fields''). The algorithm consists mainly of matrix reduction and polynomial ...
of 1967. It is currently implemented in many
computer algebra system A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The de ...
s like
PARI/GP PARI/GP is a computer algebra system with the main aim of facilitating number theory computations. Versions 2.1.0 and higher are distributed under the GNU General Public License. It runs on most common operating systems. System overview The P ...
.


Overview


Background

The Cantor–Zassenhaus algorithm takes as input a
square-free polynomial In mathematics, a square-free polynomial is a univariate polynomial (over a field or an integral domain) that has no multiple root in an algebraically closed field containing its coefficients. In characteristic 0, or over a finite field, a univar ...
f(x) (i.e. one with no repeated factors) of degree ''n'' with coefficients in a finite field \mathbb_q whose
irreducible polynomial In mathematics, an irreducible polynomial is, roughly speaking, a polynomial that cannot be factored into the product of two non-constant polynomials. The property of irreducibility depends on the nature of the coefficients that are accepted f ...
factors are all of equal degree (algorithms exist for efficiently factoring arbitrary polynomials into a product of polynomials satisfying these conditions, for instance, f(x)/\gcd(f(x),f'(x)) is a squarefree polynomial with the same factors as f(x), so that the Cantor–Zassenhaus algorithm can be used to factor arbitrary polynomials). It gives as output a polynomial g(x) with coefficients in the same field such that g(x) divides f(x). The algorithm may then be applied recursively to these and subsequent divisors, until we find the decomposition of f(x) into powers of irreducible polynomials (recalling that the
ring (The) Ring(s) may refer to: * Ring (jewellery), a round band, usually made of metal, worn as ornamental jewelry * To make a sound with a bell, and the sound made by a bell Arts, entertainment, and media Film and TV * ''The Ring'' (franchise), a ...
of polynomials over any field is a unique factorisation domain). All possible factors of f(x) are contained within the
factor ring In ring theory, a branch of abstract algebra, a quotient ring, also known as factor ring, difference ring or residue class ring, is a construction quite similar to the quotient group in group theory and to the quotient space (linear algebra), quo ...
R = \frac. If we suppose that f(x) has irreducible factors p_1(x), p_2(x), \ldots, p_s(x), all of degree ''d'', then this factor ring is isomorphic to the
direct product In mathematics, a direct product of objects already known can often be defined by giving a new one. That induces a structure on the Cartesian product of the underlying sets from that of the contributing objects. The categorical product is an abs ...
of factor rings S = \prod_^s \frac. The isomorphism from ''R'' to ''S'', say \phi, maps a polynomial g(x) \in R to the ''s''-tuple of its reductions modulo each of the p_i(x), i.e. if: : \begin g(x) & \equiv g_1(x) \pmod, \\ g(x) & \equiv g_2(x) \pmod, \\ & \ \ \vdots \\ g(x) & \equiv g_s(x) \pmod, \end then \phi(g(x) + \langle f(x) \rangle) = (g_1(x) + \langle p_1(x) \rangle, \ldots, g_s(x) + \langle p_s(x) \rangle). It is important to note the following at this point, as it shall be of critical importance later in the algorithm: Since the p_i(x) are each irreducible, each of the factor rings in this direct sum is in fact a field. These fields each have degree q^d.


Core result

The core result underlying the Cantor–Zassenhaus algorithm is the following: If a(x) \in R is a polynomial satisfying: : a(x) \neq 0, \pm 1 : a_i(x) \in \\texti=1,2,\ldots, s, where a_i(x) is the reduction of a(x) modulo p_i(x) as before, and if any two of the following three sets is non-empty: : A = \, : B = \, : C = \, then there exist the following non-trivial factors of f(x): : \gcd(f(x),a(x)) = \prod_ p_i(x), : \gcd(f(x),a(x)+1) = \prod_ p_i(x), : \gcd(f(x),a(x)-1) = \prod_ p_i(x).


Algorithm

The Cantor–Zassenhaus algorithm computes polynomials of the same type as a(x) above using the isomorphism discussed in the Background section. It proceeds as follows, in the case where the field \mathbb_q is of odd-characteristic (the process can be generalised to characteristic 2 fields in a fairly straightforward way. Select a random polynomial b(x) \in R such that b(x) \neq 0, \pm 1 . Set m=(q^d-1)/2 and compute b(x)^m. Since \phi is an isomorphism, we have (using our now-established notation): :\phi(b(x)^m) = (b_1^m(x) + \langle p_1(x) \rangle, \ldots, b^m_s(x) + \langle p_s(x) \rangle). Now, each b_i(x) + \langle p_i(x)\rangle is an element of a field of order q^d, as noted earlier. The multiplicative subgroup of this field has order q^d-1 and so, unless b_i(x)=0, we have b_i(x)^=1 for each ''i'' and hence b_i(x)^m = \pm 1 for each ''i''. If b_i(x)=0, then of course b_i(x)^m=0. Hence b(x)^m is a polynomial of the same type as a(x) above. Further, since b(x) \neq 0, \pm1, at least two of the sets A,B and ''C'' are non-empty and by computing the above GCDs we may obtain non-trivial factors. Since the ring of polynomials over a field is a
Euclidean domain In mathematics, more specifically in ring theory, a Euclidean domain (also called a Euclidean ring) is an integral domain that can be endowed with a Euclidean function which allows a suitable generalization of Euclidean division of integers. Th ...
, we may compute these GCDs using the
Euclidean algorithm In mathematics, the Euclidean algorithm,Some widely used textbooks, such as I. N. Herstein's ''Topics in Algebra'' and Serge Lang's ''Algebra'', use the term "Euclidean algorithm" to refer to Euclidean division or Euclid's algorithm, is a ...
.


Applications

One important application of the Cantor–Zassenhaus algorithm is in computing
discrete logarithm In mathematics, for given real numbers a and b, the logarithm \log_b(a) is a number x such that b^x=a. Analogously, in any group G, powers b^k can be defined for all integers k, and the discrete logarithm \log_b(a) is an integer k such that b^k=a ...
s over finite fields of prime-power order. Computing discrete logarithms is an important problem in
public key cryptography Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic al ...
. For a field of prime-power order, the fastest known method is the index calculus method, which involves the factorisation of field elements. If we represent the prime-power order field in the usual way – that is, as polynomials over the prime order base field, reduced modulo an irreducible polynomial of appropriate degree – then this is simply polynomial factorisation, as provided by the Cantor–Zassenhaus algorithm.


Implementation in computer algebra systems

The Cantor–Zassenhaus algorithm is implemented in the PARI/GP computer algebra system as th
factormod()
function (formerl

.


See also

*
Polynomial factorization In mathematics and computer algebra, factorization of polynomials or polynomial factorization expresses a polynomial with coefficients in a given field or in the integers as the product of irreducible factors with coefficients in the same doma ...
*
Factorization of polynomials over finite fields In mathematics and computer algebra the factorization of polynomials, factorization of a polynomial consists of decomposing it into a product (mathematics), product of irreducible polynomial, irreducible factors. This decomposition is theoretically ...


References


External links

*https://web.archive.org/web/20200301213349/http://blog.fkraiem.org/2013/12/01/polynomial-factorisation-over-finite-fields-part-3-final-splitting-cantor-zassenhaus-in-odd-characteristic/ {{DEFAULTSORT:Cantor-Zassenhaus algorithm Computer algebra Finite fields Polynomial factorization algorithms