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 ''X'' over a
finite field . Such codes were introduced by
V. D. Goppa. In particular cases, they can have interesting
extremal properties.
Traditionally, an AG-code can be constructed from a
non-singular projective curve ''X'' by using a number of fixed
rational points
:''P''
1, ''P''
2, ..., ''P''
n
of 'X' defined over
, and let ''G'' be a
divisor on ''X'' with a support that consists of only rational points and that is disjoint from the
's. By the
Riemann-Roch theorem, there is a unique finite-dimensional vector space,
, with respect to the divisor 'G'. The vector space is a subspace of the
function field of
.
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 'G' and the
's is constructed as follows.
For a fixed basis
:''f''
1, ''f''
2, ..., ''f''
k
for ''L''(''G'') over
, the corresponding Goppa code in
is spanned over
by the vectors
:(''f''
''i''(''P''
1), ''f''
''i''(''P''
2), ..., ''f''
''i''(''P''
n)).
Equivalently, it is defined as the image of
:
,
where ''f'' is defined by
.
Let
be a divisor, with the
defined as above. We usually denote a Goppa code by ''C''(''D'',''G'').
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 ''l''(''D'') means the dimension of ''L''(''D'').
'Proposition' The dimension of the Goppa code ''C''(''D'',''G'') is
:
,
and the minimal distance between two code words is
:
.
'Proof'
Since
:
we must show that
:
.
Suppose
. Then
, so
. Thus,
. Conversely, suppose
. Then
:
since
:
.
(''G'' doesn't “fixâ€
the problems with the
, so ''f'' must do that instead.) It follows
that
:
.
To show that
, suppose the
Hamming weight of
is ''d''. That means that
for
s, say
. Then
, and
:
.
Taking degrees on both sides and noting that
:
,
we get
:
,
so
:
. Q.E.D.
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.
Applications
In
cryptography, Goppa codes are used in the
McEliece cryptosystem.
In general, Goppa codes are considered 'good' linear codes, in that they permit the correction of
:
errors. Also their decoding is easy, using the
Euclidean algorithm and
Berlekamp-Massey algorithm, in particular.
External Links
An undergraduate thesis on Algebraic Geometric Coding Theory