Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet...
-
Upload
gordon-stevens -
Category
Documents
-
view
217 -
download
1
Transcript of Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet...
Small Finite Fields Small Finite Fields computationcomputation
Abstract: This note describes how to use Abstract: This note describes how to use the GF(p^{n}).xls worksheet to the GF(p^{n}).xls worksheet to
compute Small Finite Fields. compute Small Finite Fields. © César Bravo, 2009.© César Bravo, 2009.
InterfaceInterface
Input DataInput Data
To compute the Finite Field GF(pTo compute the Finite Field GF(pnn), ), the user must provide:the user must provide:• A prime number A prime number pp at cell C1 at cell C1• An integer An integer nn at cell C2 at cell C2
OBS: No consistency check is made OBS: No consistency check is made on on pp, since a Finite Field’s user must , since a Finite Field’s user must be well aware that there is no Finite be well aware that there is no Finite Field GF(pField GF(pnn) when ) when pp is is NOTNOT prime. prime.
““GF(p)” buttonGF(p)” button
It computes the addition and It computes the addition and multiplication tables of the base field multiplication tables of the base field GF(p) as the usual “mod p” GF(p) as the usual “mod p” operations on the ring Zoperations on the ring Zpp..
The addition table is stored on the The addition table is stored on the “(GL(p), + )” plan.“(GL(p), + )” plan.
The multiplication table is stored on The multiplication table is stored on the “(GL(p), x )” plan.the “(GL(p), x )” plan.
Example: (GL(2), + )Example: (GL(2), + )
This is the usual Cayley table notation for This is the usual Cayley table notation for additive groups.additive groups.
The grid was added for readability: the The grid was added for readability: the routines does not provide any grid.routines does not provide any grid.
Example: (GL(2), x )Example: (GL(2), x )
This is the usual Cayley table notation for This is the usual Cayley table notation for multiplicative groups.multiplicative groups.
The grid was added for readability: the The grid was added for readability: the routines does not provide any grid.routines does not provide any grid.
““GF(p)[x] polynomials” buttonGF(p)[x] polynomials” button
The polynomials able to be checked for The polynomials able to be checked for irreducibility are computed by this buttonirreducibility are computed by this button
The polynomials are stored on the “p^{n} The polynomials are stored on the “p^{n} Able Monic Polynomials” plan.Able Monic Polynomials” plan.
Each row stores a polynomial:Each row stores a polynomial:• represented by its coefficients,represented by its coefficients,• With a name computed over its coefficients,With a name computed over its coefficients,• evaluated over each GF(p) element,evaluated over each GF(p) element,• With a flag for irreducibility. With a flag for irreducibility.
Example: 2^{5} polynomialsExample: 2^{5} polynomials
Row 8 stands forRow 8 stands for• 1.x1.x55 + 0.x + 0.x44 + 1.x + 1.x33 + 1.x + 1.x22 + 0.x + 1 + 0.x + 1
Row 8 name, p_{45}, is computed as:Row 8 name, p_{45}, is computed as:• 1.21.255 + 0.2 + 0.244 + 1.2 + 1.233 + 1.2 + 1.222 + 0.2 + 1 = 32 + 8 + 4 + 1 = 45 + 0.2 + 1 = 32 + 8 + 4 + 1 = 45
Cell I5=0 tell us that 1 is a root of p_{39}: p_{39}(1)=0.
So p_{39} is not irreducible and this is indicated storing 0 in the cell K5
In the case of p_{61} the cells H16=1 and I16=1 shown that p_{61} is irreducible and this is indicated storing 1 in the cell K16
““Irreducible polynomials” buttonIrreducible polynomials” button
Simply deletes, on the “p^{n} Able Simply deletes, on the “p^{n} Able Monic Polynomials” plan, each row Monic Polynomials” plan, each row with the irreducibility flag settled to with the irreducibility flag settled to zero.zero.
After that, the plan is renamed to After that, the plan is renamed to “p“p^{n} Irreducible polynomials”^{n} Irreducible polynomials”
Example: 2^{5} Irreducible polynomialsExample: 2^{5} Irreducible polynomials
““p(x) root powers” buttonp(x) root powers” button
Computes the powers of the root of Computes the powers of the root of the the firstfirst irreducible polynomial as irreducible polynomial as linear combinations of the basis:linear combinations of the basis:
{r{rn-1n-1, r, rn-2n-2, …, r, …, r11=r, r=r, r00=1}.=1}. The results are stored on the The results are stored on the
“p_{name} root powers” plan“p_{name} root powers” plan The first column is the logarithm of The first column is the logarithm of
the root’s powerthe root’s power
Example: p_{35} root powersExample: p_{35} root powers
““p-adic expansion” buttonp-adic expansion” button
Regards each linear combination Regards each linear combination representing a root power on representing a root power on “p_{name} root powers” plan as a p-“p_{name} root powers” plan as a p-adic expansion and convert it to a adic expansion and convert it to a decimal number.decimal number.
The results are stored on column “p-The results are stored on column “p-adic expansion”adic expansion”
Example: p-adic p_{35} root powersExample: p-adic p_{35} root powers
since 21st power is 1then, the roots of thep_{35} polynomial are notprimitive and so, they donot generate GF(25).
““Roots order” buttonRoots order” button
Computes, for each irreducible Computes, for each irreducible polynomial:polynomial:• Its root powersIts root powers• The corresponding p-adic expansionThe corresponding p-adic expansion
And, store in column “Root order” of And, store in column “Root order” of “p^{n} Irreducible Polynomials” plan “p^{n} Irreducible Polynomials” plan the logarithm of the power yielding the logarithm of the power yielding 1.1.
Example: 2^{5} Irreducible polynomials roots orderExample: 2^{5} Irreducible polynomials roots order
Cells M2=21 and M6=21 indicates that the polynomials p_{35} and p_{49} has not primitive roots, since their root's order is 21, not being able to generate the 25 = 32 elements of GF(25).
““Primitive roots” buttonPrimitive roots” button
Simply deletes, from “p^{n} Simply deletes, from “p^{n} Irreducible Polynomials” plan, any Irreducible Polynomials” plan, any polynomial whose root order is polynomial whose root order is different from pdifferent from pnn..
The plan is then renamed to “p^{n} The plan is then renamed to “p^{n} Generator Polynomials”Generator Polynomials”
Example: Primitive rootsExample: Primitive roots
All these six polynomials have primitive roots and so, any of them can be used to calculate the addition/multiplication tables of GF(25).
““(GF(p^{n}), +)” button(GF(p^{n}), +)” button Computes the addition table of GF(pComputes the addition table of GF(pnn), using the ), using the
linear combinations from the “p-adic p_{name} linear combinations from the “p-adic p_{name} root powers” plan to add (mod p) the root powers root powers” plan to add (mod p) the root powers on that plan.on that plan.
The result is stored on the “p_{name} The result is stored on the “p_{name} (GF(p^{n}), +)” plan but is NOT in Cayley table (GF(p^{n}), +)” plan but is NOT in Cayley table notation; the prefix indicates that this table was notation; the prefix indicates that this table was computed using the polynomial p_{name}computed using the polynomial p_{name}
On the right of each row index are stored its p-On the right of each row index are stored its p-adic coefficients adic coefficients
Below each column index are stored its p-adic Below each column index are stored its p-adic coefficientscoefficients
Example: (GF(2^{5}), +)Example: (GF(2^{5}), +)
““(GF(p^{n}), x)” button(GF(p^{n}), x)” button Computes the multiplication table of GF(pComputes the multiplication table of GF(pnn), using ), using
the logarithms from the “p-adic p_{name} root the logarithms from the “p-adic p_{name} root powers” plan to multiply (mod ppowers” plan to multiply (mod pnn) the root powers ) the root powers on that plan.on that plan.
The result is stored on “p_{name} (GF(p^{n}), The result is stored on “p_{name} (GF(p^{n}), x)” plan but is NOT in Cayley table notation; the x)” plan but is NOT in Cayley table notation; the prefix indicates that this table was computed prefix indicates that this table was computed using the polynomial p_{name}using the polynomial p_{name}
On the right of each row index is stored its On the right of each row index is stored its logarithm logarithm
Below each column index is stored its logarithmBelow each column index is stored its logarithm
Example: p_{37} (GF(2^{5}), x)Example: p_{37} (GF(2^{5}), x)
Computed parametersComputed parameters
The "GF(p)[x] polynomials" button The "GF(p)[x] polynomials" button stores the quantity of able monic stores the quantity of able monic polynomials on the C8 cell of Plan1polynomials on the C8 cell of Plan1
The “Irreducible polynomials" button The “Irreducible polynomials" button stores this quantity on the C16 cell of stores this quantity on the C16 cell of Plan1Plan1
The “Primitive roots" button stores The “Primitive roots" button stores the quantity of primitive roots on the the quantity of primitive roots on the C25 cell of Plan1C25 cell of Plan1
Example: Computed parametersExample: Computed parameters
There are 16 viable monic polynomials
Of them, only 8 are irreducible
And of those 8, only 6 have primitive roots
Which polynomial is used?Which polynomial is used? After “p(x) root powers” + “p-adic expansion”: After “p(x) root powers” + “p-adic expansion”:
the first.the first. After “Primitive roots” : the last.After “Primitive roots” : the last. If both have primitive roots you are done.If both have primitive roots you are done. Otherwise, to assure that the first (remaining) Otherwise, to assure that the first (remaining)
polynomial on the list has primitive roots:polynomial on the list has primitive roots:• execute “Primitive roots”,execute “Primitive roots”,• execute “p(x) root powers”,execute “p(x) root powers”,• execute “p-adic expansion”.execute “p-adic expansion”.
After that, the tables will be computed using the After that, the tables will be computed using the first irreducible polynomial with primitive roots.first irreducible polynomial with primitive roots.
Using another polynomialUsing another polynomial
Execute “Primitive roots”. Execute “Primitive roots”. Put the chosen polynomial on the top Put the chosen polynomial on the top
of the list.of the list. Execute Execute
• ““p(x) root powers” + “p-adic expansion” p(x) root powers” + “p-adic expansion” Compute the tablesCompute the tables
Example: Promoting p_{59} polynomialExample: Promoting p_{59} polynomial
The polynomial p_{45} was promoted to the topThe polynomial p_{45} was promoted to the top Now, the tables must be recomputed, executing:Now, the tables must be recomputed, executing:
• (GF(p^{n}), + ) button(GF(p^{n}), + ) button• (GF(p^{n}), x ) button(GF(p^{n}), x ) button
Example: p_{59} (GF(2^{5}), +)Example: p_{59} (GF(2^{5}), +)
Yes, this is the same as p_{37} (GF(2^{5}), +). Why?Yes, this is the same as p_{37} (GF(2^{5}), +). Why?
Example: p_{59} (GF(2^{5}), x)Example: p_{59} (GF(2^{5}), x)
Compare with p_{37} (GF(2^{5}), x). Look here.Compare with p_{37} (GF(2^{5}), x). Look here.
Implementation remarksImplementation remarks The algorithms implementations are The algorithms implementations are
straightforward and must allow the reader straightforward and must allow the reader to retargeted them to another to retargeted them to another programming language after some minor programming language after some minor modifications.modifications.
Use of synthetic division can speed-up Use of synthetic division can speed-up computation of irreducible polynomials computation of irreducible polynomials (not implemented).(not implemented).
Identification of primitive root can be Identification of primitive root can be speeded-up discarding additional power speeded-up discarding additional power computation after a non-primitive root was computation after a non-primitive root was identified (not implemented). identified (not implemented).
Galois Fields web textsGalois Fields web texts Leviathan. Leviathan. Galois Theory for Dummies – Part IGalois Theory for Dummies – Part I. url: . url:
http://yaniv.leviathanonline.com/blog/math/galois-theory-for-dumhttp://yaniv.leviathanonline.com/blog/math/galois-theory-for-dummies-part-i/mies-part-i/
Baker. Baker. An introduction to Galois TheoryAn introduction to Galois Theory. url: . url: http://www.maths.gla.ac.uk/~ajb/dvi-ps/Galois.pdfhttp://www.maths.gla.ac.uk/~ajb/dvi-ps/Galois.pdf
Milne. Milne. Fields and Galois TheoryFields and Galois Theory. url: . url: http://www.jmilne.org/math/CourseNotes/ft.htmlhttp://www.jmilne.org/math/CourseNotes/ft.html
Cherowitzo. Combinatorial Structures Lecture Notes, Math 6406 Cherowitzo. Combinatorial Structures Lecture Notes, Math 6406 spring 2006. url: spring 2006. url: http://math.ucdenver.edu/~wcherowi/courses/m6406/csln.htmlhttp://math.ucdenver.edu/~wcherowi/courses/m6406/csln.html
Goodman. Goodman. Algebra Abstract and ConcreteAlgebra Abstract and Concrete. url: . url: http://www.math.uiowa.edu/~goodman/algebrabook.dir/algebrabohttp://www.math.uiowa.edu/~goodman/algebrabook.dir/algebrabook.htmlok.html