Code de Goppa

Un article de Wikipédia, l'encyclopédie libre.

En mathématiques et en théorie des codes correcteurs d'erreur, les codes de Goppa, aussi appelé codes de géométrie algébrique, sont une généralisation des codes de Reed-Solomon. Les codes de Goppa sont construits à partir d'une courbe algébrique sur un corps fini . Dans le cas des codes de Reed-Solomon, la courbe en question est la droite projective, alors que les codes de Goppa généraux utilisent des courbes de genre plus élevé. De tels codes ont été proposés par V. D. Goppa. Parmi la famille des codes de Goppa, les codes dits hermitiens peuvent remplacer avantageusement les codes de Reed-Solomon.

Il ne faut pas confondre les codes de Goppa géométriques avec les codes de Goppa classiques, qui ne reposent pas sur la théorie des courbes algébriques sur les corps finis.

Codes géométriques[modifier | modifier le code]

Notions préliminaires[modifier | modifier le code]

Posons une courbe algébrique projective non-singulière irréductible. Fixons points rationnels de :

et soit , un diviseur de , sur , dont le support ne contient aucun des .

Il existe un sous-espace vectoriel de dimension finie du corps de fonctions de , qui est constitué des fonctions rationnelles sur avec des zéros et pôles sujets à . Autrement dit, qui est une somme formelle de points de sur la clôture algébrique de , donne une borne inférieure pour l'ordre des zéros et une borne supérieure pour l'ordre des pôles de .

Définition du code de Goppa[modifier | modifier le code]

Alors, pour une base fixe:

pour sur , le code de Goppa correspondant dans est généré sur par les vecteurs

De façon équivalente, on peut définir le code de Goppa comme l'ensemble de tous les vecteurs

est dans .

Codes de Goppa classiques[modifier | modifier le code]

Définition[modifier | modifier le code]

Utilisation[modifier | modifier le code]

Les codes de Goppa ont fait une apparition marginale en cryptographie dans le cryptosystème de McEliece.

Généralement, les codes de Goppa sont considérés comme de « bons » codes linéaires puisqu'ils permettent de corriger jusqu'à erreurs. Aussi, ils se décodent efficacement, par les algorithmes d'Euclide et de Berlekamp-Massey, en particulier.

Bibliographie[modifier | modifier le code]

  • V.D. Goppa. Codes associated with divisors, Problems of Information Transmission, 12(1):22--27, 1977.