Cantor–Zassenhaus algorithm

Cantor–Zassenhaus algorithm

In mathematics, particularly computational algebra, the Cantor–Zassenhaus algorithm is a well known method for factorising polynomials over finite fields (also called Galois fields).

The algorithm consists mainly of exponentiation and polynomial GCD computations. It was invented by D. Cantor and Hans Zassenhaus in 1981.

It is arguably the dominant algorithm for solving the problem, having replaced the earlier Berlekamp's algorithm of 1967. It is currently implemented in many well-known computer algebra systems, including PARI/GP.

Overview

Background

The Cantor–Zassenhaus algorithm takes as input a squarefree polynomial f(x) (i.e. one with no repeated factors) of degree n with coefficients in a finite field mathbb{F}_q whose irreducible polynomial factors are all of equal degree (algorithms exist for efficiently factorising arbitrary polynomials into a product of polynomials satisfying these conditions, so that the Cantor–Zassenhaus algorithm can be used to factorise 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 of polynomials over a finite field is a unique factorisation domain.

All possible factors of f(x) are contained within the factor ringR = frac{mathbb{F}_q [x] }{langle f(x) angle}. 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 sum of factor rings S = igoplus_{i=1}^s frac{mathbb{F}_q [x] }{langle p_i(x) angle}. 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:

:egin{align}g(x) & {} equiv g_1(x) pmod{p_1(x)}, \g(x) & {} equiv g_2(x) pmod{p_2(x)}, \& {} vdots \g(x) & {} equiv g_s(x) pmod{p_s(x)},end{align}

then phi(g(x) + langle f(x) angle) = (g_1(x) + langle p_1(x) angle, ldots, g_s(x) + langle p_s(x) angle). 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) eq 0, pm 1

: a_i(x) in {0,-1,1} for i=1,2,ldots, n,

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 = { i | a_i(x) = 0 },

: B = { i | a_i(x) = -1 },

: C = { i | a_i(x) = 1 },

then there exist the following non-trivial factors of f(x):

: gcd(f(x),a(x)) = prod_{i in A} p_i(x),

: gcd(f(x),a(x)-1) = prod_{i in B} p_i(x),

: gcd(f(x),a(x)+1) = prod_{i in C} 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{F}_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) eq 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) angle, ldots, b^m_s(x) + langle p_s(x) angle).

Now, each b_i(x) + langle p_i(x) angle 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)^{q^d-1}=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) eq 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, we may compute these GCDs using the Euclidean algorithm.

Applications

One important application of the Cantor–Zassenhaus algorithm is in computing discrete logarithms over finite fields of prime-power order. Computing discrete logarithms is an important problem in public key cryptography. 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 may be accessed in the PARI/GP package using the [http://pari.math.u-bordeaux.fr/dochtml/html.stable/Arithmetic_functions.html#factorcantor factorcantor] command.

ee also

*Polynomial factorisation
*Berlekamp's algorithm

References

* David G. Cantor and Hans Zassenhaus. "A New Algorithm for Factoring Polynomials Over Finite Fields". Mathematics of Computation, 36:587-592, 1981.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Hans Julius Zassenhaus — (28 May 1912 ndash;21 November 1991) was a German mathematician, known for work in many parts of abstract algebra, and as a pioneer of computer algebra.He was born in Koblenz ndash;Moselweiss, and became a student and then assistant of Emil Artin …   Wikipedia

  • 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 GCD… …   Wikipedia

  • Hans Julius Zassenhaus — en 1987 Hans Julius Zassenhaus (né le 28 mai 1912 à Coblence, mort le 21 novembre 1991 à Columbus, dans l’Ohio, aux États Unis) est un …   Wikipédia en Français

  • List of mathematics articles (C) — NOTOC C C closed subgroup C minimal theory C normal subgroup C number C semiring C space C symmetry C* algebra C0 semigroup CA group Cabal (set theory) Cabibbo Kobayashi Maskawa matrix Cabinet projection Cable knot Cabri Geometry Cabtaxi number… …   Wikipedia

  • Computer algebra system — A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form. Contents 1 Symbolic manipulations 2 Additional capabilities …   Wikipedia

  • Polynomial factorization — In mathematics and computer algebra, polynomial factorization typically refers to factoring a polynomial into irreducible polynomials over a given field. Formulation of the questionOther factorizations, such as square free factorization exist,… …   Wikipedia

  • Corps fini — Les défauts de gravure, l usure, la poussière que l on observe à la surface d un disque compact nécessitent un codage redondant de l information, qui permet de corriger les erreurs de lecture. Ce code correcteur d erreur utilise des codes de Reed …   Wikipédia en Français

  • List of mathematics articles (S) — NOTOC S S duality S matrix S plane S transform S unit S.O.S. Mathematics SA subgroup Saccheri quadrilateral Sacks spiral Sacred geometry Saddle node bifurcation Saddle point Saddle surface Sadleirian Professor of Pure Mathematics Safe prime Safe… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”