Zech's logarithm

From testwiki
Jump to navigation Jump to search

Template:Short description Template:Use dmy dates Zech logarithms are used to implement addition in finite fields when elements are represented as powers of a generator α.

Zech logarithms are named after Julius Zech,[1][2][3][4] and are also called Jacobi logarithms,[5] after Carl G. J. Jacobi who used them for number theoretic investigations.[6]

Definition

Given a primitive element α of a finite field, the Zech logarithm relative to the base α is defined by the equation αZα(n)=1+αn, which is often rewritten as Zα(n)=logα(1+αn). The choice of base α is usually dropped from the notation when it is clear from the context.

To be more precise, Zα is a function on the integers modulo the multiplicative order of α, and takes values in the same set. In order to describe every element, it is convenient to formally add a new symbol −∞, along with the definitions α−∞=0 n+(−∞)=−∞ Zα(−∞)=0 Zα(e)=−∞ where e is an integer satisfying αe=−1, that is e=0 for a field of characteristic 2, and e=q−12 for a field of odd characteristic with q elements.

Using the Zech logarithm, finite field arithmetic can be done in the exponential representation: αm+αn=αm⋅(1+αn−m)=αm⋅αZ(n−m)=αm+Z(n−m) −αn=(−1)⋅αn=αe⋅αn=αe+n αm−αn=αm+(−αn)=αm+Z(e+n−m) αm⋅αn=αm+n (αm)−1=α−m αm/αn=αm⋅(αn)−1=αm−n These formulas remain true with our conventions with the symbol −∞, with the caveat that subtraction of −∞ is undefined. In particular, the addition and subtraction formulas need to treat m=−∞ as a special case.

This can be extended to arithmetic of the projective line by introducing another symbol +∞ satisfying α+∞=∞ and other rules as appropriate.

For fields of characteristic 2, Zα(n)=m⟺Zα(m)=n.

Uses

For sufficiently small finite fields, a table of Zech logarithms allows an especially efficient implementation of all finite field arithmetic in terms of a small number of integer addition/subtractions and table look-ups.

The utility of this method diminishes for large fields where one cannot efficiently store the table. This method is also inefficient when doing very few operations in the finite field, because one spends more time computing the table than one does in actual calculation.

Examples

Let α∈GF(23) be a root of the primitive polynomial x3+x2+1. The traditional representation of elements of this field is as polynomials in α of degree 2 or less.

Here is a table of Zech logarithms for this field.

Zα(−∞)=0 Zα(0)=−∞ Zα(1)=5 Zα(2)=3 Zα(3)=2 Zα(4)=6 Zα(5)=1 Zα(6)=4

The multiplicative order of α is 7, so the exponential representation works with integers modulo 7.

Since α is a root of x3+x2+1 then that means α3+α2+1=0, or if we recall that since all coefficients are in GF(2), subtraction is the same as addition, we obtain α3=α2+1.

The conversion from exponential to polynomial representations is given by α3=α2+1 (as shown above) α4=α3α=(α2+1)α=α3+α=α2+α+1 α5=α4α=(α2+α+1)α=α3+α2+α=α2+1+α2+α=α+1 α6=α5α=(α+1)α=α2+α

Using Zech logarithms to compute α6+α3: α6+α3=α6+Z(−3)=α6+Z(4)=α6+6=α12=α5, or, more efficiently, α6+α3=α3+Z(3)=α3+2=α5, and verifying it in the polynomial representation: α6+α3=(α2+α)+(α2+1)=α+1=α5.

Visualization

Given a prime power q=pn and a primitive element α of GF(q), one can visualize the Zech logarithm Zα by plotting all elements of GF(q) in a directed graph, Gα(q):

  • Place the element 0 at the center.
  • Arrange the non-zero elements α,α2,…,αq−1=1 sequentially as equally spaced nodes around a circle, with 1 at the top.
  • Draw a directed edge x→x+1 for every x in GF(q).

The edges in Gα(q) correspond to the mappings in the Zech logarithm function: since αZ(n)=αn+1, an edge connecting node αn to αn+1 effectively connects the exponent n to the exponent Z(n).

Here is Gα(8), where α is a root of x3+x2+1=0, and the powers of α are placed in counterclockwise order:

Visualization of Zech's logarithm for GF(8). α is a root of x3+x2+1=0.

If one draws an edge x→x+c instead of x→x+1 for every x in GF(q), where c is any fixed element, one obtains a graph Gα(q;c). The standard graph corresponds to c=1. The graph Gα(q;0) consists of q self-loops. For any c≠0, the graph Gα(q;c) appears identical to Gα(q), except that all edges are rotated by logα(c)q−1×360∘ around the center node.

Here is Gα(8;α2), which differs from Gα(8) by a rotation of 27×360∘:

Visualization of x→x+α2 for every x in GF(8). α is a root of x3+x2+1=0. A rotation of Zech's logarithm for GF(8).

Each graph Gα(q;c) visualizes the permutation σc(x)=x+c. The set of these q permutations {σc∣c∈GF(q)} forms an Elementary abelian group of order q (isomorphic to the additive group of the field). The rotational symmetry of the graphs Gα(q;c) for c≠0 elegantly captures the algebraic indistinguishability of the non-zero elements in an elementary abelian group.

If α and β are both primitive elements of GF(q), then the graphs Gα(q) and Gβ(q) are identical if and only if α and β are roots of the same primitive polynomial in GF(p)[X]. Therefore, the number of distinct graphs Gα(q) equals ϕ(q−1)n, where ϕ is Euler's totient function. Equivalently, there exist ϕ(q−1)n distinct Zech logarithm tables for a given field size.

If α and β are multiplicative inverses of each other, then Gα(q) and Gβ(q) are reflections of each other.

When q is odd, Gα(q) contains a "diagonal" edge that connects the node −1/2 to 1/2 (where 2−1 denotes the multiplicative inverse of 1+1).

Here are the graphs Gα(q) for all q such that the graph remains invariant (up to reflection) across all primitive elements α:

Finite fields with unique visualization graph of Zech's logarithm up to reflection. Node labels omitted. Diagonal edges in fields of odd order omitted. Row 1: fields of order 2, 3, 4 and 5. Row 2: fields of order 7, 8 and 9. Row 3: field of order 16.

See also

References

Template:Reflist

Further reading

  1. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named "Zech_1849".
  2. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named "Zech_1863".
  3. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named "Zech_1892".
  4. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named "Zech_1910".
  5. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named "Lidl_1997".
  6. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named "Jacoby_1846".