Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet...

31
Small Finite Small Finite Fields computation Fields computation Abstract: This note describes how Abstract: This note describes how to use the GF(p^{n}).xls worksheet to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. to compute Small Finite Fields. © César Bravo, 2009. © César Bravo, 2009.

Transcript of Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet...

Page 1: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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.

Page 2: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

InterfaceInterface

Page 3: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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.

Page 4: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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.

Page 5: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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.

Page 6: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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.

Page 7: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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.

Page 8: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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

Page 9: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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”

Page 10: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

Example: 2^{5} Irreducible polynomialsExample: 2^{5} Irreducible polynomials

Page 11: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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

Page 12: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

Example: p_{35} root powersExample: p_{35} root powers

Page 13: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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”

Page 14: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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).

Page 15: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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.

Page 16: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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).

Page 17: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““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”

Page 18: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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).

Page 19: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““(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

Page 20: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

Example: (GF(2^{5}), +)Example: (GF(2^{5}), +)

Page 21: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

““(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

Page 22: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

Example: p_{37} (GF(2^{5}), x)Example: p_{37} (GF(2^{5}), x)

Page 23: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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

Page 24: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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

Page 25: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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.

Page 26: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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

Page 27: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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

Page 28: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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?

Page 29: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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.

Page 30: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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).

Page 31: Small Finite Fields computation Abstract: This note describes how to use the GF(p^{n}).xls worksheet to compute Small Finite Fields. © César Bravo, 2009.

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