Discover

GOPPA CODE

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 mathbb{F}_q. 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 mathbb{F}_q, and let ''G'' be a divisor on ''X'' with a support that consists of only rational points and that is disjoint from the P_i's. By the Riemann-Roch theorem, there is a unique finite-dimensional vector space, L(G), with respect to the divisor 'G'. 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

Contents
Function Code
Residue Code
Applications
External Links

Function Code


The function code (or dual code) with respect to a curve 'X', a divisor 'G' and the P_i's is constructed as follows.
For a fixed basis
:''f''1, ''f''2, ..., ''f''k
for ''L''(''G'') over mathbb{F}_q, the corresponding Goppa code in mathbb{F}_q^n is spanned over mathbb{F}_q by the vectors
:(''f''''i''(''P''1), ''f''''i''(''P''2), ..., ''f''''i''(''P''n)).
Equivalently, it is defined as the image of
:lpha : L(G) longrightarrow mathbb{F}^n,
where ''f'' is defined by f longmapsto (f(P_1), dots ,f(P_n)).
Let D = P_1 + P_2 + cdots + P_n be a divisor, with the P_i 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
:k = l(G) - l(G-D),
and the minimal distance between two code words is
:d geq n - deg(G).
'Proof'
Since
:C(D,G) cong L(G)/ker(lpha),
we must show that
:ker(lpha)=L(G-D) .
Suppose f in ker(lpha). Then f(P_i)=0,
i=1, dots ,n, so mathrm{div}(f) > D . Thus, f in
L(G-D). Conversely, suppose f in L(G-D). Then
:mathrm{div}(f)> D
since
:P_i < G, i=1, dots ,n.
(''G'' doesn't “fixâ€
the problems with the -D, so ''f'' must do that instead.) It follows
that
:f(P_i)=0, i=1, dots ,n.
To show that d geq n - deg(G), suppose the Hamming weight of
lpha(f) is ''d''. That means that f(P_i)=0 for n-d P_is, say
P_{i_1}, dots ,P_{i_{n-d}}. Then f in L(G-P_{i_1} - dots
- P_{i_{n-d}}), and
:mathrm{div}(f)+G-P_{i_1} - dots - P_{i_{n-d}}> 0.
Taking degrees on both sides and noting that
:deg(mathrm{div}(f))=0,
we get
:deg(G)-(n-d) geq 0,
so
:d geq n - deg(G). 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 P_i'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
: {n^k} choose {log_2 n}
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

This article provided by Wikipedia. To edit the contents of this article, click here for original source.

psst.. try this: add to faves