In
mathematics, an algebraic geometric code (AG-code), otherwise known as a Goppa code, is a general type of
linear code constructed by using an
algebraic curve
In mathematics, an affine algebraic plane curve is the zero set of a polynomial in two variables. A projective algebraic plane curve is the zero set in a projective plane of a homogeneous polynomial in three variables. An affine algebraic plane ...
over a
finite field
In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field that contains a finite number of elements. As with any field, a finite field is a set on which the operations of multiplication, addition, subt ...
. Such codes were introduced by
Valerii Denisovich Goppa. In particular cases, they can have interesting
extremal properties, making them useful for a variety of
error detection and correction problems.
They should not be confused with
binary Goppa codes that are used, for instance, in the
McEliece cryptosystem.
Construction
Traditionally, an AG-code is constructed from a
non-singular projective curve X over a finite field
by using a number of fixed distinct
-
rational points on
:
:
Let
be a
divisor
In mathematics, a divisor of an integer n, also called a factor of n, is an integer m that may be multiplied by some integer to produce n. In this case, one also says that n is a multiple of m. An integer n is divisible or evenly divisible by ...
on X, with a
support that consists of only rational points and that is disjoint from the
(i.e.,
).
By the
Riemann–Roch theorem, there is a unique finite-dimensional vector space,
, with respect to the divisor
. The vector space is a subspace of the
function field of X.
There are two main types of AG-codes that can be constructed using the above information.
Function code
The function code (or
dual code) with respect to a curve X, a divisor
and the set
is constructed as follows.
Let
, be a divisor, with the
defined as above. We usually denote a Goppa code by C(D,G). We now know all we need to define the Goppa code:
:
For a fixed basis
for ''L''(''G'') over
, the corresponding Goppa code in
is spanned over
by the vectors
:
Therefore,
:
is a generator matrix for
Equivalently, it is defined as the image of
:
The following shows how the parameters of the code relate to classical parameters of
linear systems of divisors ''D'' on ''C'' (cf.
Riemann–Roch theorem for more). The notation ''ℓ''(''D'') means the dimension of ''L''(''D'').
:Proposition A. The dimension of the Goppa code
is
Proof. Since
we must show that
:
Let
then
so
. Thus,
Conversely, suppose
then
since
:
(''G'' doesn't “fix” the problems with the
, so ''f'' must do that instead.) It follows that
:Proposition B. The minimal distance between two code words is
Proof. Suppose the
Hamming weight of
is ''d''. That means that for
indices
we have
for
Then
, and
:
Taking degrees on both sides and noting that
:
we get
:
so
:
Residue code
The residue code can be defined as the dual of the function code, or as the residue of some functions at the
's.
References
{{Reflist
* Key One Chung, ''Goppa Codes'', December 2004, Department of Mathematics, Iowa State University.
External links
An undergraduate thesis on Algebraic Geometric Coding TheoryGoppa Codes by Key One Chung
Coding theory
Algebraic curves
Finite fields
Articles containing proofs