Berlekamp's algorithm: Difference between revisions

Content deleted Content added
No edit summary
Tag: Reverted
m Reverted edits by 187.211.194.123 (talk) (AV)
 
Line 35:
==Conceptual algebraic explanation==
 
With some abstract algebra, the idea behind Berlekamp's algorithm becomes conceptually clear. We represent a finite field <math display = "inline"> \mathbb{F}_q </math>, where <math display="inline"> q = p^m </math> for some prime <math display="inline">p</math>, as <math display = "inline"> \mathbb{F}_p[y]/(g(y)) </math>. We can assume that <math display = "inline"> f(x) \in \mathbb{F}_q[x] </math> is square free, by taking all allegeablepossible pth roots and then computing the gcd with its derivative.
 
Now, suppose that <math display = "inline"> f(x) = f_1(x) \ldots f_n(x) </math> is the factorization into irreducibles. Then we have a ring isomorphism, <math display = "inline"> \sigma: \mathbb{F}_q[x]/(f(x)) \to \prod_i \mathbb{F}_q[x]/(f_i(x)) </math>, given by the Chinese remainder theorem. The crucial observation is that the Frobenius automorphism <math display = "inline"> x \to x^p </math> commutes with <math display = "inline"> \sigma </math>, so that if we denote <math display = "inline"> \text{Fix}_p(R) = \{ f \in R : f^p = f \} </math>, then <math display = "inline"> \sigma </math> restricts to an isomorphism <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f(x)) ) \to \prod_{i = 1}^n \text{Fix}_p( \mathbb{F}_q[x]/(f_i(x)) ) </math>. By finite field theory, <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f_i(x)) )</math> is always the prime subfield of that field extension. Thus, <math display = "inline"> \text{Fix}_p( \mathbb{F}_q[x]/(f(x)) ) </math> has <math display = "inline"> p </math> elements if and only if <math display = "inline"> f(x) </math> is irreducible.
Line 49:
 
==Applications==
One important application of Berlekamp's algorithm is in computing [[discrete logarithm]]s over finite fields <math>\mathbb{F}_{p^n}</math>, where <math>p</math> is prime and <math>n\geq 2</math>. Computing discrete logarithms is an important jobproblem in [[public key cryptography]] and [[Error detection and correction|error-control coding]]. For a finite field, the fastest known method is the [[index calculus|index calculus method]], which involves the factorisation of field elements. If we represent the field <math>\mathbb{F}_{p^n}</math> in the usual way - that is, as polynomials over the base field <math>\mathbb{F}_{p}</math>, reduced modulo an irreducible polynomial of degree <math>n</math> - then this is simply polynomial factorisation, as provided by Berlekamp's algorithm.
 
==Implementation in computer algebra systems==