Jump to content

Algebraic geometry code: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m More footnotes|
m link coding theory
 
(10 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Short description|Mathematical linear code}}
{{multiple issues|
'''Algebraic geometry codes''', often abbreviated AG codes, are a type of [[linear code]] that generalize [[Reed–Solomon error correction|Reed–Solomon codes]]. The Russian mathematician [[Valery Goppa|V. D. Goppa]] constructed these codes for the first time in 1982.<ref>{{Cite journal |last=Goppa |first=Valerii Denisovich |author-link=Valery Goppa |date=1982 |title=Algebraico-geometric codes |url=https://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=im&paperid=1646&option_lang=eng |journal=Izvestiya Rossiiskoi Akademii Nauk. Seriya Matematicheskaya |volume=46 |issue=4 |pages=726–781 |via=Russian Academy of Sciences, Steklov Mathematical Institute of Russian}}</ref>
{{Confusing|date=February 2009}}
{{More footnotes|date=April 2009}}
}}


== History ==
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]] <math>X</math> over a [[finite field]] <math>\mathbb{F}_q</math>. Such codes were introduced by [[Valerii Denisovich Goppa]]. In particular cases, they can have interesting [[extremal property|extremal properties]], making them useful for a variety of [[error detection and correction]] problems.<ref>{{Cite web |date=2022-09-19 |title=How Mathematical Curves Power Cryptography |url=https://www.quantamagazine.org/how-mathematical-curves-power-cryptography-20220919/ |access-date=2022-10-10 |website=Quanta Magazine |language=en}}</ref>
The name of these codes has evolved since the publication of Goppa's paper describing them. Historically these codes have also been referred to as geometric Goppa codes;<ref name=":0">{{Cite journal |last=Stichtenoth |first=Henning |date=1988 |title=A note on Hermitian codes over GF(q^2) |url=https://ieeexplore.ieee.org/abstract/document/21267 |journal=IEEE Transactions on Information Theory |volume=34 |issue=5 |pages=1345–1348 |via=IEEE}}</ref> however, this is no longer the standard term used in [[coding theory]] literature. This is due to the fact that [[Binary Goppa code|Goppa codes]] are a distinct class of codes which were also constructed by Goppa in the early 1970s.<ref>{{Cite journal |last=Goppa |first=Valery Denisovich |author-link=Valery Goppa |date=1970 |title=A new class of linear error-correcting codes |url=https://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=1748&option_lang=eng |journal=Probl. Inf. Transm. |volume=6 |pages=300–304}}</ref><ref>{{Cite journal |last=Goppa |first=Valerii Denisovich |author-link=Valery Goppa |date=1972 |title=Codes Constructed on the Base of (L,g)-Codes |url=https://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=791&option_lang=eng |journal=Problemy Peredachi Informatsii |volume=8 |issue=2 |pages=107–109 |via=Russian Academy of Sciences, Branch of Informatics, Computer Equipment and}}</ref><ref>{{Cite journal |last=Berlekamp |first=Elwyn |author-link=Elwyn Berlekamp |date=1973 |title=Goppa codes |url=https://ieeexplore.ieee.org/abstract/document/1055088 |journal=IEEE Transactions on Information Theory |volume=19 |issue=5 |pages=590–592 |via=IEEE}}</ref>


These codes attracted interest in the coding theory community because they have the ability to surpass the [[Gilbert–Varshamov bound]]; at the time this was discovered, the Gilbert–Varshamov bound had not been broken in the 30 years since its discovery.<ref name=":1">{{Cite book |last=Walker |first=Judy L. |title=Codes and Curves |publisher=American Mathematical Society |year=2000 |isbn=0-8218-2628-X |location= |pages=15}}</ref> This was demonstrated by Tfasman, Vladut, and Zink in the same year as the code construction was published, in their paper "Modular curves, Shimura curves, and Goppa codes, better than Varshamov-Gilbert bound".<ref>{{Cite journal |last=Tsfasman |first=Michael |last2=Vladut |first2=Serge |last3=Zink |first3=Thomas |author-link3=Thomas Zink |date=1982 |title=Modular curves, Shimura curves, and Goppa codes better than the Varshamov-Gilbert bound |url=https://onlinelibrary.wiley.com/doi/abs/10.1002/mana.19821090103 |journal=Mathematische Nachrichten}}</ref> The name of this paper may be one source of confusion affecting references to algebraic geometry codes throughout 1980s and 1990s coding theory literature.
They should not be confused with [[binary Goppa code]]s that are used, for instance, in the [[McEliece cryptosystem]].


==Construction==
==Construction==
In this section the construction of algebraic geometry codes is described. The section starts with the ideas behind Reed–Solomon codes, which are used to motivate the construction of algebraic geometry codes.


=== Reed–Solomon codes ===
Traditionally, an AG-code is constructed from a [[non-singular]] [[projective curve]] '''X''' over a finite field <math>\mathbb{F}_q</math> by using a number of fixed distinct <math>\mathbb{F}_q</math>-[[rational points]] on <math>\mathbf{X}</math>:
Algebraic geometry codes are a generalization of [[Reed–Solomon error correction|Reed–Solomon codes]]. Constructed by [[Irving S. Reed|Irving Reed]] and [[Gustave Solomon]] in 1960, Reed–Solomon codes use univariate polynomials to form codewords, by evaluating polynomials of sufficiently small degree at the points in a [[finite field]] <math>\mathbb{F}_q</math>.<ref>{{Cite journal |last=Reed |first=Irving |author-link=Irving S. Reed |last2=Solomon |first2=Gustave |author-link2=Gustave Solomon |date=1960 |title=Polynomial codes over certain finite fields |url=https://epubs.siam.org/doi/abs/10.1137/0108018?journalCode=smjmap.1 |journal=Journal of the Society for Industrial and Applied Mathematics |volume=8 |issue=2 |pages=300–304 |via=SIAM}}</ref>


Formally, Reed–Solomon codes are defined in the following way. Let <math>\mathbb{F}_q=\{\alpha_1, \dots, \alpha_q\}</math>. Set positive integers <math>k \leq n \leq q</math>. Let <math display="block">\mathbb{F}_{q}[x]_{<k} := \left\{ f \in \mathbb{F}_q[x]: \deg f < k \right\}</math>The Reed–Solomon code <math>RS(q,n,k)</math> is the evaluation code<math display="block">RS(q,n,k) = \left\{ \left( f(\alpha_1), f(\alpha_2), \dots, f(\alpha_n) \right) : f \in \mathbb{F}_{q}[x]_{<k} \right\} \subseteq \mathbb{F}_q^{n}.</math>
:<math>\mathcal{P}:= \{P_1, \ldots, P_n \} \subset \mathbf{X} (\mathbb{F}_q).</math>


=== Codes from algebraic curves ===
Let <math>G</math> be a [[divisor (algebraic geometry)|divisor]] on '''X''', with a [[Support (mathematics)|support]] that consists of only rational points and that is disjoint from the <math>P_i</math> (i.e., <math>\mathcal{P} \cap \operatorname{supp}(G) = \varnothing</math>).
Goppa observed that <math>\mathbb{F}_q</math> can be considered as an affine line, with corresponding [[projective line]] <math>\mathbb{P}^1_{\mathbb{F}_q}</math>. Then, the polynomials in <math>\mathbb{F}_{q}[x]_{<k}</math> (i.e. the polynomials of degree less than <math>k</math> over <math>\mathbb{F}_q</math>) can be thought of as polynomials with [[Zeros and poles|pole]] allowance no more than <math>k</math> at the [[point at infinity]] in <math>\mathbb{P}^1_{\mathbb{F}_q}</math>.<ref name=":1" />


With this idea in mind, Goppa looked toward the [[Riemann–Roch theorem]]. The elements of a Riemann–Roch space are exactly those functions with pole order restricted below a given threshold,<ref name=":2">{{Cite journal |last=Hoholdt |first=Tom |last2=van Lint |first2=Jacobus |author-link2=J. H. van Lint |last3=Pellikaan |first3=Ruud |date=1998 |title=Algebraic geometry codes |url=https://www.researchgate.net/profile/R-Pellikaan/publication/293123965_Algebraic_geometry_of_codes_handbook_of_coding_theory/links/56c59cc708ae7fd4625baa21/Algebraic-geometry-of-codes-handbook-of-coding-theory.pdf |journal=Handbook of coding theory |volume=1 |issue=Part 1 |pages=871–961 |via=Elsevier Amsterdam}}</ref> with the restriction being encoded in the coefficients of a corresponding [[Divisor (algebraic geometry)|divisor]]. Evaluating those functions at the [[rational point]]s on an algebraic curve <math>X</math> over <math>\mathbb{F}_q</math> (that is, the points in <math>\mathbb{F}_q^2</math> on the curve <math>X</math>) gives a code in the same sense as the Reed-Solomon construction.
By the [[Riemann–Roch theorem]], there is a unique finite-dimensional vector space, <math>L(G)</math>, with respect to the divisor <math>G</math>. The vector space is a subspace of the [[function field of an algebraic variety|function field]] of '''X'''.


However, because the parameters of algebraic geometry codes are connected to [[algebraic function field]]s, the definitions of the codes are often given in the language of algebraic function fields over finite fields.<ref name=":3">{{Cite book |last=Stichtenoth |first=Henning |title=Algebraic function fields and codes |publisher=Springer Science & Business Media |year=2009 |isbn=978-3-540-76878-4 |edition=2nd |pages=45–65}}</ref> Nevertheless, it is important to remember the connection to algebraic curves, as this provides a more geometrically intuitive method of thinking about AG codes as extensions of Reed-Solomon codes.<ref name=":2" />
There are two main types of AG-codes that can be constructed using the above information.


Formally, algebraic geometry codes are defined in the following way.<ref name=":3" /> Let <math>F / \mathbb{F}_q</math> be an algebraic function field, <math>D = P_1 + \dots + P_n</math> be the sum of <math>n</math> distinct places of <math>F / \mathbb{F}_q</math> of degree one, and <math>G</math> be a divisor with disjoint [[Support (mathematics)|support]] from <math>D</math>. The algebraic geometry code <math>C_{\mathcal{L}}(D,G)</math> associated with divisors <math>D</math> and <math>G</math> is defined as <math display="block">C_{\mathcal{L}}(D,G) := \lbrace (f(P_1),\dots,f(P_n)) : f \in \mathcal{L}(G) \rbrace \subseteq \mathbb{F}_q^n.</math>More information on these codes may be found in both introductory texts<ref name=":1" /> as well as advanced texts on coding theory.<ref name=":3" /><ref>{{Cite book |last=van Lint |first=Jacobus |title=Introduction to coding theory |publisher=Springer |year=1999 |isbn=978-3-642-63653-0 |edition=3rd |pages=148–166}}</ref>
== Function code ==
The function code (or [[dual code]]) with respect to a curve '''X''', a divisor <math>G</math> and the set <math>\mathcal{P}</math> is constructed as follows.


== Examples ==
Let <math>D = P_1 + \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'''). We now know all we need to define the Goppa code:


=== Reed-Solomon codes ===
:<math>C(D, G) = \left \{ \left (f(P_1), \ldots, f(P_n) \right ) \ : \ f \in L(G) \right \} \subset \mathbb{F}_q^n</math>
One can see that


<math>RS(q,n,k) = \mathcal{C}_\mathcal{L}(D,(k-1)P_\infty)</math>
For a fixed basis <math>f_1, \ldots, f_k</math> 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


where <math>P_\infty</math> is the point at infinity on the projective line <math>\mathbb{P}^1_{\mathbb{F}_q}</math> and <math>D = P_1 + \dots + P_q</math> is the sum of the other <math>\mathbb{F}_q</math>-rational points.
:<math>\left (f_i(P_1), \ldots, f_i(P_n) \right ) </math>


=== One-point Hermitian codes ===
Therefore,
The Hermitian curve is given by the equation<math display="block">x^{q+1} = y^q + y</math>considered over the field <math>\mathbb{F}_{q^2}</math>.<ref name=":0" /> This curve is of particular importance because it meets the [[Hasse's theorem on elliptic curves|Hasse–Weil bound]] with equality, and thus has the maximal number of affine points over <math>\mathbb{F}_{q^2}</math>.<ref>{{Cite journal |last=Garcia |first=Arnoldo |author-link=Arnaldo Garcia |last2=Viana |first2=Paulo |date=1986 |title=Weierstrass points on certain non-classical curves |url=https://link.springer.com/article/10.1007/BF01200462 |journal=Archiv der Mathematik |volume=46 |pages=315–322 |via=Springer}}</ref> With respect to algebraic geometry codes, this means that Hermitian codes are long relative to the alphabet they are defined over.<ref>{{Cite journal |last=Tiersma |first=H.J. |date=1987 |title=Remarks on codes from Hermitian curves |url=https://ieeexplore.ieee.org/abstract/document/1057327 |journal=IEEE Transactions on Information Theory |volume=33 |issue=4 |pages=605–609 |via=IEEE}}</ref>


The Riemann–Roch space of the Hermitian function field is given in the following statement.<ref name=":0" /> For the Hermitian function field <math>\mathbb{F}_{q^2}(x,y)</math> given by <math>x^{q+1} = y^q + y</math> and for <math>m \in \mathbb{Z}^+</math>, the Riemann–Roch space <math>\mathcal{L}(mP_\infty)</math> is<math display="block">\mathcal{L}(mP_\infty) = \left\langle x^a y^b : 0 \leq b \leq q-1, aq + b(q+1) \leq m \right\rangle ,</math>where <math>P_\infty</math> is the point at infinity on <math>\mathcal{H}_q(\mathbb{F}_{q^2})</math>.
: <math> \begin{bmatrix} f_1(P_1) & \cdots & f_1(P_n) \\ \vdots & & \vdots \\ f_k(P_1) & \cdots & f_k(P_n) \end{bmatrix} </math>


With that, the one-point Hermitian code can be defined in the following way. Let <math>\mathcal{H}_q</math> be the Hermitian curve defined over <math>\mathbb{F}_{q^2}</math>.
is a generator matrix for <math>C(D, G).</math>


Let <math>P_\infty</math> be the point at infinity on <math>\mathcal{H}_q(\mathbb{F}_{q^2})</math>, and <math display="block">D = P_1 + \cdots + P_n</math>be a divisor supported by the <math>n := q^3</math> distinct <math>\mathbb{F}_{q^2}</math>-rational points on <math>\mathcal{H}_q</math> other than <math>P_\infty</math>.
Equivalently, it is defined as the image of


The one-point Hermitian code <math>C(D,mP_\infty)</math> is
:<math>\begin{cases} \alpha : L(G) \to \mathbb{F}^n \\ f \mapsto (f(P_1), \ldots ,f(P_n)) \end{cases}</math>


<math>C(D,mP_\infty) := \left\lbrace (f(P_1),\dots,f(P_n)) : f \in \mathcal{L}(mP_\infty) \right\rbrace \subseteq \mathbb{F}_{q^2}^n.</math>
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 <math>C(D, G)</math> is <math>k = \ell(G) - \ell(G-D).</math>

'''Proof.''' Since <math>C(D,G) \cong L(G)/\ker(\alpha),</math> we must show that

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

Let <math>f \in \ker(\alpha)</math> then <math>f(P_1)=\cdots=f(P_n) =0</math> so <math>\operatorname{div}(f) > D </math>. Thus, <math>f \in L(G-D).</math> Conversely, suppose <math>f \in L(G-D),</math> then <math>\operatorname{div}(f)> D</math> since

:<math>P_i < G, \quad i=1, \ldots ,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_1)=\cdots = f(P_n) = 0.</math>

:'''Proposition B.''' The minimal distance between two code words is <math>d \geqslant n - \deg(G).</math>

'''Proof.''' Suppose the [[Hamming weight]] of <math>\alpha(f)</math> is ''d''. That means that for <math>n-d</math> indices <math> i_1, \ldots, i_{n-d}</math> we have<math>f(P_{i_k})=0</math> for <math>k \in \{1, \ldots, n-d\}.</math> Then <math>f \in L(G-P_{i_1} - \cdots - P_{i_{n-d}})</math>, and

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

Taking degrees on both sides and noting that

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

we get

:<math>\deg(G)-(n-d) \geqslant 0.</math>

so

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

== 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.


== References ==
== References ==
{{Reflist}}
{{Reflist}}
* Key One Chung, ''Goppa Codes'', December 2004, Department of Mathematics, Iowa State University.

==External links==
* [http://commons.wikimedia.org/wiki/File:Algebraic_Geometric_Coding_Theory.pdf An undergraduate thesis on Algebraic Geometric Coding Theory]
* [http://orion.math.iastate.edu/linglong/Math690F04/Goppa%20codes.pdf Goppa Codes by Key One Chung]


[[Category:Coding theory]]
[[Category:Coding theory]]

Latest revision as of 10:17, 2 November 2024

Algebraic geometry codes, often abbreviated AG codes, are a type of linear code that generalize Reed–Solomon codes. The Russian mathematician V. D. Goppa constructed these codes for the first time in 1982.[1]

History

[edit]

The name of these codes has evolved since the publication of Goppa's paper describing them. Historically these codes have also been referred to as geometric Goppa codes;[2] however, this is no longer the standard term used in coding theory literature. This is due to the fact that Goppa codes are a distinct class of codes which were also constructed by Goppa in the early 1970s.[3][4][5]

These codes attracted interest in the coding theory community because they have the ability to surpass the Gilbert–Varshamov bound; at the time this was discovered, the Gilbert–Varshamov bound had not been broken in the 30 years since its discovery.[6] This was demonstrated by Tfasman, Vladut, and Zink in the same year as the code construction was published, in their paper "Modular curves, Shimura curves, and Goppa codes, better than Varshamov-Gilbert bound".[7] The name of this paper may be one source of confusion affecting references to algebraic geometry codes throughout 1980s and 1990s coding theory literature.

Construction

[edit]

In this section the construction of algebraic geometry codes is described. The section starts with the ideas behind Reed–Solomon codes, which are used to motivate the construction of algebraic geometry codes.

Reed–Solomon codes

[edit]

Algebraic geometry codes are a generalization of Reed–Solomon codes. Constructed by Irving Reed and Gustave Solomon in 1960, Reed–Solomon codes use univariate polynomials to form codewords, by evaluating polynomials of sufficiently small degree at the points in a finite field .[8]

Formally, Reed–Solomon codes are defined in the following way. Let . Set positive integers . Let The Reed–Solomon code is the evaluation code

Codes from algebraic curves

[edit]

Goppa observed that can be considered as an affine line, with corresponding projective line . Then, the polynomials in (i.e. the polynomials of degree less than over ) can be thought of as polynomials with pole allowance no more than at the point at infinity in .[6]

With this idea in mind, Goppa looked toward the Riemann–Roch theorem. The elements of a Riemann–Roch space are exactly those functions with pole order restricted below a given threshold,[9] with the restriction being encoded in the coefficients of a corresponding divisor. Evaluating those functions at the rational points on an algebraic curve over (that is, the points in on the curve ) gives a code in the same sense as the Reed-Solomon construction.

However, because the parameters of algebraic geometry codes are connected to algebraic function fields, the definitions of the codes are often given in the language of algebraic function fields over finite fields.[10] Nevertheless, it is important to remember the connection to algebraic curves, as this provides a more geometrically intuitive method of thinking about AG codes as extensions of Reed-Solomon codes.[9]

Formally, algebraic geometry codes are defined in the following way.[10] Let be an algebraic function field, be the sum of distinct places of of degree one, and be a divisor with disjoint support from . The algebraic geometry code associated with divisors and is defined as More information on these codes may be found in both introductory texts[6] as well as advanced texts on coding theory.[10][11]

Examples

[edit]

Reed-Solomon codes

[edit]

One can see that

where is the point at infinity on the projective line and is the sum of the other -rational points.

One-point Hermitian codes

[edit]

The Hermitian curve is given by the equationconsidered over the field .[2] This curve is of particular importance because it meets the Hasse–Weil bound with equality, and thus has the maximal number of affine points over .[12] With respect to algebraic geometry codes, this means that Hermitian codes are long relative to the alphabet they are defined over.[13]

The Riemann–Roch space of the Hermitian function field is given in the following statement.[2] For the Hermitian function field given by and for , the Riemann–Roch space iswhere is the point at infinity on .

With that, the one-point Hermitian code can be defined in the following way. Let be the Hermitian curve defined over .

Let be the point at infinity on , and be a divisor supported by the distinct -rational points on other than .

The one-point Hermitian code is

References

[edit]
  1. ^ Goppa, Valerii Denisovich (1982). "Algebraico-geometric codes". Izvestiya Rossiiskoi Akademii Nauk. Seriya Matematicheskaya. 46 (4): 726–781 – via Russian Academy of Sciences, Steklov Mathematical Institute of Russian.
  2. ^ a b c Stichtenoth, Henning (1988). "A note on Hermitian codes over GF(q^2)". IEEE Transactions on Information Theory. 34 (5): 1345–1348 – via IEEE.
  3. ^ Goppa, Valery Denisovich (1970). "A new class of linear error-correcting codes". Probl. Inf. Transm. 6: 300–304.
  4. ^ Goppa, Valerii Denisovich (1972). "Codes Constructed on the Base of (L,g)-Codes". Problemy Peredachi Informatsii. 8 (2): 107–109 – via Russian Academy of Sciences, Branch of Informatics, Computer Equipment and.
  5. ^ Berlekamp, Elwyn (1973). "Goppa codes". IEEE Transactions on Information Theory. 19 (5): 590–592 – via IEEE.
  6. ^ a b c Walker, Judy L. (2000). Codes and Curves. American Mathematical Society. p. 15. ISBN 0-8218-2628-X.
  7. ^ Tsfasman, Michael; Vladut, Serge; Zink, Thomas (1982). "Modular curves, Shimura curves, and Goppa codes better than the Varshamov-Gilbert bound". Mathematische Nachrichten.
  8. ^ Reed, Irving; Solomon, Gustave (1960). "Polynomial codes over certain finite fields". Journal of the Society for Industrial and Applied Mathematics. 8 (2): 300–304 – via SIAM.
  9. ^ a b Hoholdt, Tom; van Lint, Jacobus; Pellikaan, Ruud (1998). "Algebraic geometry codes" (PDF). Handbook of coding theory. 1 (Part 1): 871–961 – via Elsevier Amsterdam.
  10. ^ a b c Stichtenoth, Henning (2009). Algebraic function fields and codes (2nd ed.). Springer Science & Business Media. pp. 45–65. ISBN 978-3-540-76878-4.
  11. ^ van Lint, Jacobus (1999). Introduction to coding theory (3rd ed.). Springer. pp. 148–166. ISBN 978-3-642-63653-0.
  12. ^ Garcia, Arnoldo; Viana, Paulo (1986). "Weierstrass points on certain non-classical curves". Archiv der Mathematik. 46: 315–322 – via Springer.
  13. ^ Tiersma, H.J. (1987). "Remarks on codes from Hermitian curves". IEEE Transactions on Information Theory. 33 (4): 605–609 – via IEEE.