Zech's logarithm

Zech logarithms are used to implement addition in finite fields when elements are represented as powers of a generator \alpha.

Zech logarithms are named after Julius Zech, and are also called Jacobi logarithms,[1] after C. G. J. Jacobi who used them for number theoretic investigations (C. G. J. Jacoby, "Über die Kreistheilung und ihre Anwendung auf die Zahlentheorie", in Gesammelte Werke, Vol.6, pp. 254–274).

Definition

If \alpha is a primitive element of a finite field, then the Zech logarithm relative to the base \alpha is defined by the equation

Z_\alpha(n) = \log_\alpha(1 + \alpha^n),

or equivalently by

\alpha^{Z_\alpha(n)} = 1 + \alpha^n.

The choice of base \alpha is usually dropped from the notation when it's clear from context.

To be more precise, Z_\alpha is a function on the integers modulo the multiplicative order of \alpha, and takes values in the same set. In order to describe every element, it is convenient to formally add a new symbol -\infty, along with the definitions

\alpha^{-\infty} = 0
n + (-\infty) = -\infty
Z_\alpha(-\infty) = 0
Z_\alpha(e) = -\infty

where e is an integer satisfying \alpha^e = -1, that is e=0 for a field of characteristic 2, and e=\frac{q-1}{2} for a field of odd characteristic with q elements.

Using the Zech logarithm, finite field arithmetic can be done in the exponential representation:

\alpha^m + \alpha^n = \alpha^m \cdot (1 + \alpha^{n-m}) = \alpha^m \cdot \alpha^{Z(n-m)} = \alpha^{m + Z(n-m)}
-\alpha^n = (-1) \cdot \alpha^n = \alpha^e \cdot \alpha^n = \alpha^{e+n}
\alpha^m - \alpha^n = \alpha^m + (-\alpha^n) = \alpha^{m + Z(e+n-m)}
\alpha^m \cdot \alpha^n = \alpha^{m+n}
\left( \alpha^m \right)^{-1} = \alpha^{-m}
\alpha^m / \alpha^n = \alpha^m \cdot \left( \alpha^n \right)^{-1} = \alpha^{m - n}

These formulas remain true with our conventions with the symbol -\infty, with the caveat that subtraction of -\infty is undefined. In particular, the addition and subtraction formulas need to treat m = -\infty as a special case.

This can be extended to arithmetic of the projective line by introducing another symbol +\infty satisfying \alpha^{+\infty} = \infty and other rules as appropriate.

Notice that for fields of characteristic two,

Z_\alpha(n) = mZ_\alpha(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.

A table of Zech logarithms for this field are Z(−∞) = 0, Z(0) = −∞, Z(1) = 5, Z(2) = 3, Z(3) = 2, Z(4) = 6, Z(5) = 1, and 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


\alpha^3 = \alpha^2 + 1 (as shown above)

\alpha^4 = \alpha^3 \alpha = (\alpha^2 + 1)\alpha = \alpha^3 + \alpha = \alpha^2 + \alpha + 1

\alpha^5 = \alpha^4 \alpha = (\alpha^2 + \alpha + 1)\alpha = \alpha^3 + \alpha^2 + \alpha = \alpha^2 + 1 + \alpha^2 + \alpha = \alpha + 1

\alpha^6 = \alpha^5 \alpha = (\alpha + 1)\alpha = \alpha^2 + \alpha

Using Zech logarithms to compute α6 + α3:

\alpha^6 + \alpha^3 = \alpha^{6 + Z(-3)} = \alpha^{6 + Z(4)} = \alpha^{6 + 6} = \alpha^{12} = \alpha^5,

or, more efficiently,

\alpha^6 + \alpha^3 = \alpha^{3 + Z(3)} = \alpha^{3 + 2} = \alpha^5,

and verifying it in the polynomial representation:

\alpha^6 + \alpha^3 = (\alpha^2 + \alpha) + (\alpha^2 + 1) = \alpha + 1 = \alpha^5.

References

  1. Lidl, Rudolf; Niederreiter, Harald (1997), Finite fields, Cambridge University Press, ISBN 978-0-521-39231-0
This article is issued from Wikipedia - version of the Sunday, July 19, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.