Francais | English | Espanõl

Goppa code

From Wikipedia, the free encyclopedia

Jump to: navigation, search

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 <math>\mathbb{F}_q</math>. 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

P1, P2, ..., Pn

of X defined over <math>\mathbb{F}_q</math>, and let G be a divisor on X with a support that consists of only rational points and that is disjoint from the <math>P_i</math>'s. By the Riemann-Roch theorem, there is a unique finite-dimensional vector space, <math>L(G)</math>, with respect to the divisor G. The vector space is a subspace of the function field of <math>X</math>.

There are two main types of AG-codes that can be constructed using the above information


Contents

[edit] Function Code

The function code (or dual code) with respect to a curve X, a divisor G and the <math>P_i</math>'s is constructed as follows.

For a fixed basis

f1, f2, ..., fk

for L(G) over <math>\mathbb{F}_q</math>, the corresponding Goppa code in <math>\mathbb{F}_q^n</math> is spanned over <math>\mathbb{F}_q</math> by the vectors

(fi(P1), fi(P2), ..., fi(Pn)).

Equivalently, it is defined as the image of

<math>\alpha : L(G) \longrightarrow \mathbb{F}^n</math>,

where f is defined by <math>f \longmapsto (f(P_1), \dots ,f(P_n))</math>.

Let <math>D = P_1 + P_2 + \cdots + P_n</math> be a divisor, with the <math> P_i </math> 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

<math>k = l(G) - l(G-D)</math>,

and the minimal distance between two code words is

<math>d \geq n - \deg(G)</math>.

Proof

Since

<math>C(D,G) \cong L(G)/\ker(\alpha), </math>

we must show that

<math>\ker(\alpha)=L(G-D) </math>.

Suppose <math>f \in \ker(\alpha)</math>. Then <math>f(P_i)=0, i=1, \dots ,n</math>, so <math>\mathrm{div}(f) > D </math>. Thus, <math>f \in L(G-D)</math>. Conversely, suppose <math>f \in L(G-D)</math>. Then

<math>\mathrm{div}(f)> D</math>

since

<math>P_i < G, i=1, \dots ,n</math>.

(G doesn't “fix” the problems with the <math>-D</math>, so f must do that instead.) It follows that

<math>f(P_i)=0, i=1, \dots ,n</math>.

To show that <math>d \geq n - \deg(G)</math>, suppose the Hamming weight of <math>\alpha(f)</math> is d. That means that <math>f(P_i)=0</math> for <math>n-d</math> <math>P_i</math>s, say <math>P_{i_1}, \dots ,P_{i_{n-d}}</math>. Then <math>f \in L(G-P_{i_1} - \dots - P_{i_{n-d}})</math>, and

<math>\mathrm{div}(f)+G-P_{i_1} - \dots - P_{i_{n-d}}> 0</math>.

Taking degrees on both sides and noting that

<math>\deg(\mathrm{div}(f))=0</math>,

we get

<math>\deg(G)-(n-d) \geq 0</math>,

so

<math>d \geq n - \deg(G)</math>. Q.E.D.

[edit] Residue Code

The residue code can be defined as the dual of the function code, or as the residue of some functions at the <math>P_i</math>'s.

[edit] 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

<math> {n^k} \choose {\log_2 n}</math>

errors. Also their decoding is easy, using the Euclidean algorithm and Berlekamp-Massey algorithm, in particular.

[edit] Links

An undergraduate thesis on Algebraic Geometric Coding Theoryfr:Code de Goppa no:Goppa-kode

Personal tools