We describe how an index table for a finite field can be constructed easily by hand, provided that a primitive polynomial for that field is given. Let q be a prime number and let n be a positive integer. Addition in the finite field Fqn of qn elements is very easy if one views it as an n-dimensional vector space over Fq (the integers modulo q). Likewise, multiplication in Fqn is very easy as its multiplicative group F*n is cyclic. In order to illustrate arithmetic in Fqn, involving both operations, most undergraduate algebra texts use the representation of Fqn as the factor ring of Fq [x] modulo the principal ideal generated by the minimal polynomial of Fqn over Fq. Certainly, this illuminates the concept of factor rings, but actual computations can become tedious, as reduction modulo the ideal requires long division. A very useful tool for finite field arithmetic is an index table. Before we explain this, let us briefly recall some theory of finite fields. As F*n is cyclic, every nonzero b E Fqn can be written as a power b = ai of a generator a of that group, with a unique integer exponent 0 < i < qn _ 1. This exponent is called the index of the element b, denoted by i = ind,, (b). Such a generator a is a called a primitive element of Fqnl; it is a root (in Fqn) of a primitive polynomial f (x) E Fq [x]. Conversely, every root of a primitive polynomial is a primitive element. Suppose that we are given a primitive polynomial f (x) for Fqn over Fq. Then we can tie together the multiplicative structure of Fqn with its additive structure. We fix a root a of f, and the former is just the cyclic group generated by a. The latter is a vector space, having a basis B = I 1, a, ... ., an-l1 . So every nonzero field element can be viewed as a power of a and as a linear combination of powers of a with coefficients in Fq, The index table establishes the correspondence, listing for every exponent 0 < i < qn _ 1 (as a column) the coordinates of the vector ai with respect to B. It works like a logarithm table, as the exponentiation laws for rings imply that ind,x (b . c) = ind,x (b) + ind,x (c). Hence, all arithmetic in Fqnl becomes easy: addition is vector addition modulo q, and multiplication is carried out using the table. But where do we get the index table from? For example, the standard reference for finite fields conveniently contains nearly four pages of index tables [3, pp. 546-549]. However, we can construct our own tables very easily by hand (if n and q are not too large), provided that we know a primitive polynomial f of Fqn over Fq. This construction is the aim of this Note. The reference [3] contains many primitive polynomials, too. Before we illustrate the method, let us make the notion of an index table precise:
Read full abstract