Namespaces
Variants
Actions

Goppa code

From Encyclopedia of Mathematics
Jump to: navigation, search

Let $g(z)$ be a monic polynomial over the finite field $\mathbf{F}_{q^m}$ and let $L = \{\gamma_0,\ldots,\gamma_{n-1} \}$ be a set of $n$ elements of $\mathbf{F}_{q^m}$ such that $g(\gamma_i) \ne 0$ for $0 \le i < n$. The classical Goppa code $\Gamma(L,g)$ with Goppa polynomial $g(z)$ is the set of all words $(c_0,\ldots,c_{n-1})$ in $\mathbf{F}_q^n$ for which $\sum_{i=0}^{n-1} (z-\gamma_i)^{-1} c_i = 0 \pmod {g(z)}$. Here $(z-\gamma)^{-1}$ is to be interpreted as $-g(\gamma)^{-1} f(z)$ where $f(z)$ is the unique polynomial of degree ${}< \deg g(z)$ such that $(z-\gamma) f(z) \equiv 1 \pmod{g(z)}$.

The basic idea of this construction can be generalized as follows. Let $X$ be a non-singular projective curve (in the sense of algebraic geometry) defined over the finite field $\mathbf{F}_q$. Let $\{P_1,\ldots,P_n\}$ be a set of rational points of $X$. Let $D$ be the divisor $P_1+\cdots+ P_n$. Let $G$ be another divisor with support disjoint from $D$. Let $L(G)$ be the linear system associated to the divisor $G$, i.e. $L(G) = \{ f \in f(X)^* : D+(f) \ge 0 \}$, where $k(X)^*$ is the set of non-zero rational functions on $X$ and $(f)$ is the divisor of zeros and poles defined by $f \in k(X)^*$. The geometric Goppa code $C(D,G)$ of length $n$ associated to the pair $(D,G)$ is the image of the linear mapping $\alpha : L(G) \rightarrow \mathbf{F}_q^n$ defined by $\alpha : f \mapsto \left({ f(P_1),\ldots,f(P_n) }\right)$. If the supports of $D$ and $G$ are not disjoint, there is still a code associated to the pair $(D,G)$, but not a canonical one; however, all the codes so obtained are equivalent in a suitable sense. A second code associated to the pair $(D,G)$ is the following. Let $\Omega(D)$ be the vector space of rational differential forms $\omega$ on $X$ with $(\omega) + D \ge 0$, together with the zero form. The second linear code $C^*(D,G)$ associated to the pair $(D,G)$ is the image of the linear mapping $\alpha^* : \Omega(G-D) \rightarrow \mathbf{F}_q^n$ defined by $\alpha^* : \omega \mapsto \left({ \mathrm{res}_{P_1}(\omega),\ldots,\mathrm{res}_{P_n}(\omega) }\right)$. This is the construction which more directly generalizes the classical Goppa codes mentioned above. The codes $C(D,G)$ and $C^*(D,G)$ are dual to each other. For fixed $D$ and varying $G$ the codes $C(D,G)$ and $C^*(D,G)$ yield the same family.

At present (1989) one approach to finding good codes is to find curves with large numbers of rational points compared to their genus. This brings in advanced algebraic geometry. Using Shimura curves (modular curves) one now can find a sequence of codes which beats the Gilbert–Varshamov bound for $q\ge49$. For more details cf. [a4], [a7][a9].

References

[a1] J.H. van Lint, "Introduction to coding theory" , Springer (1982) MR1540511 Zbl 0485.94015
[a2] A. Tietäväinen, "On the non-existence of perfect codes over finite fields" SIAM J. Appl. Math. , 24 (1973) pp. 88–96 MR325260
[a3] R.J. McEliece, E.R. Rodemich, H. Rumsey, L.R. Welch, "New upper bounds on the rate of a code via the Delsarte–MacWilliams inequalities" IEEE Trans. Inform. Theory , 23 (1977) pp. 157–166 MR439403
[a4] M.A. Tsfasman, S.G. Vladuts, T. Zink, "Modular curves, Shimura curves and Goppa codes, better than Varshamov–Gilbert bound" Math. Nachr. , 109 (1982) pp. 21–28 MR0705893 Zbl 0574.94013
[a5] P.M. Gruber, C.G. Lekkerkerker, "Geometry of numbers" , North-Holland (1987) (Updated reprint) MR0893813 Zbl 0611.10017
[a6] R. Hill, "A first course in coding theory" , Clarendon Press (1986) MR0853914 Zbl 0616.94006
[a7] J.H. van Lint, G. van der Geer, "Introduction to coding theory and algebraic geometry" , Birkhäuser (1988) Zbl 0648.94011 Zbl 0639.00048
[a8] V.D. Goppa, "Geometry and codes" , Kluwer (1988) MR1029027 Zbl 1097.14502
[a9] M.A. Tsfasman, S.G. Vlăduts, "Algebraic geometric codes" , Kluwer (1989) MR1003354 Zbl 0674.94012
How to Cite This Entry:
Goppa code. Encyclopedia of Mathematics. URL: http://encyclopediaofmath.org/index.php?title=Goppa_code&oldid=42792