PRIMITIVE POLYNOMIAL
In field theory, a branch of mathematics, a 'primitive polynomial' is the minimal polynomial of a primitive element of the extension field GF(''p''''m''). In other words, a polynomial with coefficients in GF(''p'') = 'Z'/''p'''Z' is a primitive polynomial if it has a root in GF(''p''''m'') such that the linear span of over GF(''p'') is the entire field GF(''p''''m''), and moreover, is the smallest degree polynomial having as root.
This definition can be generalized by replacing GF(''p'') with a general field and GF(''p''''m'') with an extension of
In ring theory, the term 'primitive polynomial' is used for a different purpose, to mean a polynomial over a unique factorization domain (such as the integers) whose greatest common divisor of its coefficients is a unit. This article will not be concerned with the ring theory usage.
Because all minimal polynomials are irreducible, all primitive polynomials are also irreducible.
A primitive polynomial must have a non-zero constant term, for otherwise it will be divisible by ''x''. Over the field of two elements, all primitive polynomials have an odd number of terms, otherwise they are divisible by ''x''+''1''.
An irreducible polynomial of degree ''m'', ''F''(''x'') over GF(''p'') for prime ''p'', is a primitive polynomial if the smallest positive integer ''n'' such that ''F''(''x'') divides ''x''n - 1 is ''n'' = ''p''''m'' − 1.
Over GF(p''m'') there are exactly φ(p''m'' − 1)/''m'' primitive polynomials of degree ''m'', where φ is Euler's totient function.
The roots of a primitive polynomial all have order ''p''''m'' − 1.
Primitive polynomials are used in the representation of elements of a finite field. If α in GF(''p''''m'') is a root of a primitive polynomial ''F''(''x'') then since the order of α is ''p''''m'' − 1 that means that all elements of GF(''p''''m'') can be represented as successive powers of α:
:
When these elements are reduced modulo ''F''(''x'') they provide the polynomial basis representation of all the elements of the field.
Since the multiplicative group of a field is always a cyclic group, a primitive polynomials ''f'' is a polynomial such that ''x'' is a generator of the multiplicative group in GF(p)[x]/f(x)
Primitive polynomials define a recurrence relation that can be used to generate pseudorandom bits, like a linear feedback shift register does.
For example, given the primitive polynomial ''x''10 + ''x''3 + 1, we start with a user-specified bit seed (it need not randomly be chosen, but it can be). We then take the 10th, 3rd, and 0th bits of it, starting from the least significant bit, and xor them together, obtaining a new bit. The seed is then shifted left and the new bit is made the least significant bit of the seed. This process can be repeated to generate 210-1 = 1023 random bits.
In general, for a primitive polynomial of degree ''m'', this process will generate 2''m'' random bits before repeating the same sequence
The most useful kind of primitive polynomials are primitive trinomials, those having only three nonzero terms, because they are the simplest and result in the most efficient random number generators. A number of results give techniques for locating and testing primitiveness of trinomials. One simple test is the following: for every ''r'' such that 2''r''−1 is a Mersenne prime, a trinomial of degree ''r'' is primitive if and only if it is irreducible. Recent algorithms invented by Richard Brent have enabled the discovery of primitive trinomials of very large degree, such as ''x''6972593 + ''x''3037958 + 1. This can be used to create a random number generator of the huge period 26972593−1, or roughly 102098959.[1]
★ MathWorld entry on primitive polynomial
★ PlanetMath entry on primitive polynomial
This definition can be generalized by replacing GF(''p'') with a general field and GF(''p''''m'') with an extension of
In ring theory, the term 'primitive polynomial' is used for a different purpose, to mean a polynomial over a unique factorization domain (such as the integers) whose greatest common divisor of its coefficients is a unit. This article will not be concerned with the ring theory usage.
| Contents |
| Properties |
| Usage |
| Field element representation |
| Random bit generation |
| Primitive trinomials |
| External links |
Properties
Because all minimal polynomials are irreducible, all primitive polynomials are also irreducible.
A primitive polynomial must have a non-zero constant term, for otherwise it will be divisible by ''x''. Over the field of two elements, all primitive polynomials have an odd number of terms, otherwise they are divisible by ''x''+''1''.
An irreducible polynomial of degree ''m'', ''F''(''x'') over GF(''p'') for prime ''p'', is a primitive polynomial if the smallest positive integer ''n'' such that ''F''(''x'') divides ''x''n - 1 is ''n'' = ''p''''m'' − 1.
Over GF(p''m'') there are exactly φ(p''m'' − 1)/''m'' primitive polynomials of degree ''m'', where φ is Euler's totient function.
The roots of a primitive polynomial all have order ''p''''m'' − 1.
Usage
Field element representation
Primitive polynomials are used in the representation of elements of a finite field. If α in GF(''p''''m'') is a root of a primitive polynomial ''F''(''x'') then since the order of α is ''p''''m'' − 1 that means that all elements of GF(''p''''m'') can be represented as successive powers of α:
:
When these elements are reduced modulo ''F''(''x'') they provide the polynomial basis representation of all the elements of the field.
Since the multiplicative group of a field is always a cyclic group, a primitive polynomials ''f'' is a polynomial such that ''x'' is a generator of the multiplicative group in GF(p)[x]/f(x)
Random bit generation
Primitive polynomials define a recurrence relation that can be used to generate pseudorandom bits, like a linear feedback shift register does.
For example, given the primitive polynomial ''x''10 + ''x''3 + 1, we start with a user-specified bit seed (it need not randomly be chosen, but it can be). We then take the 10th, 3rd, and 0th bits of it, starting from the least significant bit, and xor them together, obtaining a new bit. The seed is then shifted left and the new bit is made the least significant bit of the seed. This process can be repeated to generate 210-1 = 1023 random bits.
In general, for a primitive polynomial of degree ''m'', this process will generate 2''m'' random bits before repeating the same sequence
Primitive trinomials
The most useful kind of primitive polynomials are primitive trinomials, those having only three nonzero terms, because they are the simplest and result in the most efficient random number generators. A number of results give techniques for locating and testing primitiveness of trinomials. One simple test is the following: for every ''r'' such that 2''r''−1 is a Mersenne prime, a trinomial of degree ''r'' is primitive if and only if it is irreducible. Recent algorithms invented by Richard Brent have enabled the discovery of primitive trinomials of very large degree, such as ''x''6972593 + ''x''3037958 + 1. This can be used to create a random number generator of the huge period 26972593−1, or roughly 102098959.[1]
External links
★ MathWorld entry on primitive polynomial
★ PlanetMath entry on primitive polynomial
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español