Décodage en liste des codes géométriques
Transcription
Décodage en liste des codes géométriques
Thèse de l’Université Pierre et Marie Curie, Paris 6 en vue de l’obtention du titre de : Docteur Spécialité : Informatique Présentée par : Lancelot Pecquet Sujet : Décodage en liste des codes géométriques Version du 27 novembre 2003 Soutenue le 18 décembre 2001 devant un jury composé de : Pascale Charpin : Daniel Augot : Claude Carlet : Tom Høholdt : Daniel Lazard : François Morain : Directrice de Thèse Co-directeur de Thèse Rapporteur Rapporteur Examinateur et Président du Jury Examinateur Résumé Les codes géométriques ont été introduits par Goppa en 1981 et sont construits à partir de courbes algébriques sur les corps finis. En 1982, Tsfasman, Vlǎduţ et Zink ont montré qu’on pouvait construire de tels codes dépassant la borne de Gilbert-Varshamov. En 1996, Sudan a proposé un algorithme de décodage en liste des codes de Reed-Solomon. Cet algorithme fut adapté, en 1997, aux codes fortement géométriques à un point par Shokrollahi et Wasserman, puis amélioré par Guruswami et Sudan. Dans cette thèse, nous étendons ces méthodes à tous les codes géométriques, à leurs sous-codes dans un sous-corps, et à une distance de Hamming généralisée qui nous permet de reformuler algébriquement le problème du décodage souple et de proposer un algorithme de décodage en liste à maximum de vraisemblance sur tout canal discret sans mémoire. Nous illustrons ces nouveaux résultats par une implantation dans le système de calcul formel Magma. Abstract1 Algebraic-geometric codes were introduced by Goppa in 1981 and are built using algebraic curves over finite fields. In 1982, Tsfasman, Vl ǎduţ and Zink showed that one could build a family of such codes that beats the Gilbert-Varshamov bound. In 1996, Sudan proposed a list decoding algorithm for Reed-Solomon codes. This algorithm was adapted in 1997 to one-point strongly algebraic-geometric codes by Shokrollahi and Wasserman, then improved by Guruswami and Sudan. In this thesis, we extend these methods to all algebraic-geometric codes and their subfield subcodes, and to a generalized Hamming distance that allows to reformulate algebraically the soft decision decoding problem and to propose a maximum likelihood list decoding algorithm over any discrete memoryless channel. We illustrate these new results with an implementation in the computer algebra system Magma. 1 This thesis is written in French, as required by French Law (article 11-I de la loi 94-665 du 4 août 1994). Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) iii iv Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Mots-clés et classification Mots-clés Décodage en liste, décodage souple à maximum de vraisemblance, codes géométriques, codes de Reed-Solomon, sous-codes dans un sous-corps, codes BCH, codes alternants, bornes sur les codes, algorithme de Guruswami-Sudan, géométrie algébrique effective, théorie algorithmique des nombres, désingularisation des courbes planes, théorie de Riemann-Roch effective, racines de polynômes sur un corps de fonctions de courbe sur un corps fini, implantation, calcul formel, Magma. Classification MSC 2000 La classification de cette thèse selon la Mathematics Subject Classification (MSC 2000) de l’American Mathematical Society (AMS) (disponible sur http://www.ams.org/msc/) est la suivante : 11-XX, 11-04, 11Gxx, 11G20, 11Txx, 11T71, 11Rxx, 11R09, 11Sxx, 11S05, 11Yxx, 11Y40, 13-XX, 13Pxx, 14-XX, 14-04, 14Bxx, 14B05, 14Exx, 14E15, 14Hxx, 14H05, 14H20, 14H25, 14H51, 14Qxx, 14Q05, 14Q20, 68-XX, 68Pxx, 68P30, 68Wxx, 68W30, 94-XX, 94-04, 94Bxx, 94B20, 94B27, 94B35, 94B65. Classification ACM La classification de cette thèse selon l’Association for Computing Machinery (ACM 1998) (disponible sur http://www.acm.org/class/1998/) est la suivante : E.4, G.4, I.1, I.1.2, I.1.3, I.1.4, I.6 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) v vi Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Remerciements Je voudrais ici exprimer ma gratitude à l’égard des très nombreuses personnes qui ont contribué à ce que cette thèse voie le jour. Je dois en particulier beaucoup à Pascale Charpin que j’ai eu la chance d’avoir comme directrice de thèse. Elle m’a soutenu et conseillé tout en me laissant beaucoup de liberté dans mon travail. Je souhaite lui faire part de ma reconnaissance et de mon affection. J’ai trouvé en Daniel Augot, qui a co-encadré ma thèse, un interlocuteur hors pair sur le terrain du calcul formel, le codage et la cryptologie et c’est à son intuition que je dois ce sujet de thèse qui m’a tellement passioné. Tom Høholdt a été pour moi une référence scientifique, un guide à la sincérité salutaire et à l’extrême gentillesse : kære Tom, tusind tak for dine vise og værdifulde råd, din ærlighed der fik mig til at indse mine tidligere fejltagelser, og din gavmildhed som hjalp mig i de svære øjeblikke. Je suis redevable à Claude Carlet d’avoir accepté d’être rapporteur de ma thèse et de s’être engouffré courageusement dans les premières — et, retrospectivement, particulièrement illisibles — versions de mon manuscrit. Ses conseils de rédaction m’ont énormément aidé. François Morain a eu une influence déterminante dans le déroulement de ma thèse. Je le remercie vivement de m’avoir fait bénéficier des remarques d’un grand spécialiste de l’algorithmique des courbes et de m’avoir fait la faveur de participer à mon jury. Je sais gré à Daniel Lazard de m’avoir fait l’honneur de présider mon jury de thèse et de fermer ainsi la boucle, ouverte quelques années auparavant, alors que je faisais mes premiers pas en Informatique dans l’amphithéâtre de Jussieu où il professait son cours. J’aimerais également dire combien j’ai apprécié de travailler au Projet CODES de l’INRIA et d’y cotoyer des chercheurs enthousiastes et disponibles auprès desquels j’ai beaucoup appris, scientifiquement mais aussi humainement. Je remercie, en particulier, Anne Canteaut, qui a été une intarissable source d’information et de conseils, Nicolas Sendrier, dont la franchise bienveillante et persévérante ainsi que la grande disponibilité, m’a permis de rectifier, à de nombreuses reprises, ma tortueuse trajectoire, mes camarades de labeur co-thésards de la premère heure : Grégoire Bommier, Matthieu Brunet, Eric Filiol, Caroline Fontaine, Pierre Loidreau, Antoine Valembois, mais aussi la relève : Matthieu Finiasz, Fabien Galand, Harold Ollivier, Emmanuel Prouff, Cédric Tavernier et Marion Videau. Je ne saurais oublier notre « membre adoptif » : Grisha Kabatyansky, ni nos deux hôtes de longue durée : Hervé Alavoine et Christine Pourcelot ainsi que le lointain Gaétan Hach é, qui m’a ouvert la voie de l’algorithmique des codes géométriques. Enfin, un grand merci à Christelle Guiziou-Cloitre pour son talent à alleger le poids administratif qui pèse sur nos épaules ainsi qu’à Virginie Chipault et Virginie Collette que j’ai mises à contribution en son absence. Je remercie chaleureusement le Projet ALGO qui a été mon lieu d’échouage privilégié et en particulier Bruno Salvy, Fréderick Chyzak et Philippe Flajolet qui ont Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) vii REMERCIEMENTS inlassablement écouté mes lamentations algorithmiques et m’ont si souvent éclairci les idées, ainsi que Cyril Banderier avec lequel j’ai eu le plaisir de travailler au sein de l’Association des Doctorants de l’INRIA-Rocquencourt. Je tiens à exprimer ma reconnaissance au groupe des administrateurs AFS : Edmonde Duteurtre, Jean-Paul Chieze et Bruno Verlyck, ainsi qu’à mes voisins Gérard Finet, Denis Joiret, Louis Audoire, François Peron et Philippe Sultan qui n’ont pas ménagé leurs efforts pour que « ça fonctionne ». Les personnes du service de documentation de l’INRIA se sont également donné beaucoup de mal pour me trouver les livres, articles et actes de conférences les plus exotiques et je les en remercie vivement. Enfin, j’adresse mes remerciements sincères à Jean-Pierre Ban âtre, Martine Cornélis, Dominique Poulicet, Françoise Feneck et Françoise Weber pour leur aide. Spasíbo à Alexander Barg dont la culture immense et la critique constructive m’ont fait découvrir et redécouvrir de nombreux aspects de la Théorie des codes lors de mon séjour aux Bell Labs. Je suis également très reconnaissant à Peter Winkler de l’accueil qu’il m’a réservé dans son équipe, à Amin Shokrollahi qui a été à l’origine de ma venue et à Carl Pomerance dont les nombreux conseils ont élargi mon horizon en Théorie algorithmique des nombres. Ce séjour a été l’occasion de nouer des amitiés : merci à Anupam Gupta, Roy Goodman, Kousha Etessami, Saswato et Sumana Das, sans lesquels la vie à New York aurait été bien moins agréable. Je sais gré à John Cannon de m’avoir une nouvelle fois fait la faveur de m’inviter à Sydney afin d’implanter les codes géométriques dans Magma. Travailler avec Florian Heß, David Kohel, et Allan Steel fut extrêmement positif et sympathique. Je remercie infiniment Joe Buhler, pour m’avoir donné l’opportunité fantastique de travailler quelques semaines au MSRI pour le semestre de recherche en théorie algorithmique des nombres. Merci à Thomas Jakobsen, Rasmus Nielsen et Agnes Heydtmann pour leur accueil chaleureux lors de mon séjour à Copenhague et la lecture attentive par Agnes d’une version précoce et indigeste de l’algorithme de Newton-Puiseux. ¡Muchas gracias ! à Antonio Campillo et Ignacio Farrán, pour m’avoir fait bénéficier de leur expérience en m’invitant à travailler avec eux sur le décodage des codes géométriques à l’Université de Valladolid. Je voudrais témoigner ma reconnaissance à Iwan Duursma, qui a fait partie de mes initiateurs aux codes géométriques. Ma gratitude va également à Ruud Pellikaan, Rene Schoof, Hendrik Lenstra et Vincent Cossart pour m’avoir consacré beaucoup de leur temps précieux pour m’éclairer les idées de leur savoir-faire, et à Joachim von zur Gathen, pour son extrême gentillesse et son incommensurable culture généreusement partagée. Je voudrais également exprimer les remierciements et mon amitié à Pawel Wocjan pour ces longues heures de discussion exaltantes et de débuggage nocturne. L’influence scientifique des personnes qui suivent commence avant le début de ma thèse mais je n’ai pas eu l’occasion de remercier auparavant Joseph Oesterl é qui m’a fait découvrir la beauté et la richesse des mathématiques, Bernard Ycart et Jean Diebolt auxquels je dois d’avoir perçu l’importance de l’humanité dans cette discipline, André Morel et Francis Bernardeau auprès desquels est né, au CEA, ma vocation pour la recherche et enfin MM. Boitel et Denoyer à qui je dois mes premières — mais décisives — exaltations mathématiques. Je termine cette longue liste de remerciements par quelques lignes pour ma famille et mes amis qui ont toujours été à mes côtés et en particulier à mes parents, ma sœur et Isabelle pour son soutien constant et pour avoir relu à plusieurs reprises ce manuscrit. viii Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Préface Cette thèse est divisée en trois parties. La première partie est une introduction aux codes correcteurs d’erreurs. Dans un chapitre d’introduction informelle, nous tentons de donner une idée au non-spécialiste de la problématique de cette thèse. Ce chapitre est suivi d’un autre donnant les définitions fondamentales et les conventions sur lesquelles s’appuieront le reste de la thèse. Dans la deuxième partie, nous présentons le problème du décodage en liste de façon plus technique et nous énoncerons les résultats théoriques du présent travail dans ce domaine. La troisième partie est, quant à elle, consacrée à l’étude des problèmes algorithmiques mis en jeu pour réaliser de manière effective la méthode développée dans la partie précédente. Des algorithmes concrets sont proposés, et illustrés par une implantation dans le système de calcul formel Magma. La perspective de cette thèse est celle du calcul formel qui est un domaine d’interface entre les mathématiques et l’informatique ; nous avons tenté, autant que possible, de rendre le texte lisible par ces deux communautés. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) ix x Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Table des matières Mots-clés et classification v Remerciements vii Preface I ix Contexte 1 1 Introduction informelle 1.1 Théorie des codes : historique et applications . . . . . . . . . . . . 1.2 Codes en blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Codes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Codes géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Correction des erreurs : le décodage . . . . . . . . . . . . . . . . . 1.5.1 Principe théorique sous-jacent . . . . . . . . . . . . . . . . . 1.5.2 Complexité du décodage . . . . . . . . . . . . . . . . . . . . 1.5.3 Décodage des codes de Reed-Solomon . . . . . . . . . . . 1.5.4 Décodage des codes de Goppa géométriques . . . . . . . . 1.6 Notion de décodage dans d’autres disciplines . . . . . . . . . . . . 1.6.1 Interpolation polynomiale et partage de secret . . . . . . . 1.6.2 Cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.3 Intelligence artificielle et estimation fonctionnelle statistique 1.6.4 Théorie de la complexité . . . . . . . . . . . . . . . . . . . . 1.7 Décodage en liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7.1 Idée du décodage en liste . . . . . . . . . . . . . . . . . . . 1.7.2 Lien avec les codes géométriques . . . . . . . . . . . . . . . 1.8 Contribution de cette thèse . . . . . . . . . . . . . . . . . . . . . . 1.8.1 Problématique au départ de la thèse . . . . . . . . . . . . . 1.8.2 Contributions de cette thèse . . . . . . . . . . . . . . . . . . 2 Codes correcteurs d’erreurs 2.1 Définition des canaux de communication 2.1.1 Introduction . . . . . . . . . . . 2.1.2 Codecs . . . . . . . . . . . . . . . 2.1.3 Canaux de communication . . . 2.2 Exemple de canaux . . . . . . . . . . . . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 5 7 7 8 8 8 9 9 10 10 10 10 11 11 11 11 12 12 12 . . . . . 15 15 15 15 17 19 xi TABLE DES MATIÈRES 2.3 2.4 2.5 2.2.1 Canal à bruit blanc gaussien additif . . . . . . . . . . . 2.2.2 Canal discret symétrique . . . . . . . . . . . . . . . . . 2.2.3 Canal à effacements . . . . . . . . . . . . . . . . . . . . Distance probabiliste . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Cadre de travail . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Définition formelle de la λ-distance et de la λ-similarité 2.3.3 Construction de l’espace métrique de travail . . . . . . . 2.3.4 Métrique de vraisemblance . . . . . . . . . . . . . . . . 2.3.5 Métrique de Koetter et Vardy . . . . . . . . . . . . . 2.3.6 Note sur la concaténation . . . . . . . . . . . . . . . . . Codes correcteurs d’erreurs . . . . . . . . . . . . . . . . . . . . 2.4.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Bornes supérieures sur les codes . . . . . . . . . . . . . 2.4.3 Codes linéaires . . . . . . . . . . . . . . . . . . . . . . . 2.4.4 Bornes inférieures sur les codes . . . . . . . . . . . . . . Codes de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . 2.5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Algorithme de décodage . . . . . . . . . . . . . . . . . . 3 Codes géométriques 3.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Petit rappel d’algèbre locale . . . . . . . . . . . . . . . 3.2.1 Anneaux locaux . . . . . . . . . . . . . . . . . 3.2.2 Anneaux de valuation discrète . . . . . . . . . 3.3 Courbes algébriques et leurs représentations effectives 3.3.1 Introduction . . . . . . . . . . . . . . . . . . . 3.3.2 Courbes sur un corps algébriquement clos . . . 3.3.3 Modèles plans sur un corps algébriquement clos 3.3.4 Corps de fonctions . . . . . . . . . . . . . . . . 3.3.5 Terminologie schématique . . . . . . . . . . . . 3.4 Désingularisation . . . . . . . . . . . . . . . . . . . . . 3.4.1 Introduction . . . . . . . . . . . . . . . . . . . 3.4.2 Désingularisation plongée . . . . . . . . . . . . 3.4.3 Principe d’exploitation d’un modèle plan . . . 3.5 Notre implantation dans Magma . . . . . . . . . . . . 3.5.1 Algorithme de désingularisation . . . . . . . . . 3.5.2 Algorithme de Brill-Noether . . . . . . . . 3.6 Quelques remarques . . . . . . . . . . . . . . . . . . . 3.6.1 Conventions . . . . . . . . . . . . . . . . . . . . 3.6.2 Programmes Magma . . . . . . . . . . . . . . . 3.7 Théorie de Riemann-Roch . . . . . . . . . . . . . . . 3.7.1 Introduction . . . . . . . . . . . . . . . . . . . 3.7.2 Diviseurs . . . . . . . . . . . . . . . . . . . . . 3.7.3 Genre et Théorème de Riemann-Roch . . . . 3.8 Nombres de points et genre . . . . . . . . . . . . . . . 3.8.1 Introduction . . . . . . . . . . . . . . . . . . . 3.8.2 Bornes pour un genre fixé . . . . . . . . . . . . xii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 20 21 21 22 23 24 28 28 31 31 32 35 36 37 37 38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 43 43 44 46 46 46 47 48 49 50 50 50 51 52 52 52 54 54 54 55 55 55 56 57 57 57 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) TABLE DES MATIÈRES 3.9 II 3.8.3 Codes 3.9.1 3.9.2 3.9.3 3.9.4 Bornes pour un corps fixé . . . . . . . . . . . . . . . . . . . . . . . de Goppa géométriques . . . . . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définitions et propriétés . . . . . . . . . . . . . . . . . . . . . . . . Codes géométriques dépassant la borne de Gilbert-Varshamov . Algorithme de décodage des codes géométriques . . . . . . . . . . . . . . . . . . . . . . Décodage en liste : théorie 58 59 59 60 62 63 67 4 Introduction 4.1 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Généralisations des algorithmes de décodage vus précédemment 4.2.1 Remarques sur les algorithmes de décodage . . . . . . . 4.2.2 Algorithme de Sudan . . . . . . . . . . . . . . . . . . . 4.2.3 Algorithme de Shokrollahi-Wasserman . . . . . . . 4.2.4 Algorithme de Sudan-Guruswami . . . . . . . . . . . . 4.3 Notre algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Généralisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 69 69 69 69 70 70 70 71 5 Décodage en liste des codes géométriques 5.1 Définition des polynômes reconstructeurs . . . . . . . . 5.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Définitions . . . . . . . . . . . . . . . . . . . . . 5.2 Condition d’existence d’un polynôme reconstructeur . . 5.3 Nombre de mots d’un code géométrique dans une boule 5.4 Comportement asymptotique . . . . . . . . . . . . . . . 5.5 Algorithme de décodage en liste . . . . . . . . . . . . . . 5.6 Interprétation géométrique dans R n . . . . . . . . . . . 5.7 Remarque dans le cas de l’algorithme de Sudan . . . . 5.7.1 Introduction . . . . . . . . . . . . . . . . . . . . 5.7.2 Théorème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 73 73 73 75 77 78 80 80 81 81 81 6 Décodage souple 6.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Décodage à distance ML minimale sur le q-SC . . . . . . . . . . . . . . . . . . 6.3 Décodage à distance KV minimale sur le q-SC . . . . . . . . . . . . . . . . . . 85 85 87 87 III 89 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Décodage en liste : algorithmes et implantation 7 Introduction 7.1 Géométrie algébrique effective . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Cadre de travail . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.2 Notre contribution . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Algorithmes associés aux divers décodeurs en liste cités . . . . . . . . 7.2.1 Notre contribution . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Autres algorithmes de recherche d’un polynôme reconstructeur Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) . . . . . . . . . . . . . . . . . . . . . . . . 91 91 91 91 91 91 92 xiii TABLE DES MATIÈRES 7.2.3 Autres méthodes de recherche des racines dans le corps de fonctions . 92 8 Principe des méthodes π-adiques 8.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Base de fonctions échelonnée et réduite . . . . . . . . . . . . . . . . . . . . . . 8.3 Reconstruction π-adique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 93 93 94 9 Algorithme de calcul d’un polynôme reconstructeur 9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1 Objectifs et conventions . . . . . . . . . . . . . . 9.1.2 Remarque d’implémentation . . . . . . . . . . . . 9.2 Construction de l’espace des polynômes reconstructeurs 9.2.1 Bases des espaces de coefficients . . . . . . . . . 9.2.2 Matrice d’interpolation en un point p j . . . . . . 9.2.3 Matrice globale d’interpolation . . . . . . . . . . 9.3 Algorithme de calcul d’un polynôme reconstructeur . . . . . . . . . . . 97 97 97 97 97 97 98 99 99 . . . . . . . . . . . . . . . . . . . 101 101 101 101 102 102 103 103 103 107 107 108 108 108 108 110 110 110 113 113 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Algorithmes de recherche de racines 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Convention et objectifs . . . . . . . . . . . . . . . . . . . . . . 10.1.2 Localisation des racines dans un espace de dimension finie . . . 10.1.3 Réduction à une recherche π-adique . . . . . . . . . . . . . . . 10.2 Approximations π-adiques successives . . . . . . . . . . . . . . . . . . 10.3 Méthode de Newton-Hensel . . . . . . . . . . . . . . . . . . . . . . 10.3.1 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2 Théorème de Newton-Hensel . . . . . . . . . . . . . . . . . . 10.3.3 Algorithme de Newton-Hensel . . . . . . . . . . . . . . . . . 10.3.4 Complexité de la méthode de Newton-Hensel . . . . . . . . 10.3.5 Complexité du décodage dans le cas de l’algorithme de Sudan 10.4 Méthode de Newton-Puiseux . . . . . . . . . . . . . . . . . . . . . . 10.4.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.2 Conventions et préliminaires . . . . . . . . . . . . . . . . . . . 10.4.3 Théorème de Newton-Puiseux . . . . . . . . . . . . . . . . . 10.4.4 Amélioration de la localisation des racines . . . . . . . . . . . . 10.4.5 Algorithme de Newton-Puiseux . . . . . . . . . . . . . . . . 10.4.6 Note sur les séries de Puiseux en caractéristique positive . . . 10.4.7 Complexité de la méthode de Newton-Puiseux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion 117 Notations et abréviations 119 Index 123 Bibliographie 131 xiv Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Table des figures 1.1 1.2 Photographie de Richard Hamming . . . . . . . . . . . . . . . . . . . . . . . Image de la sonde spatiale Mars Global Surveyor . . . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 Photographie de Claude E. Shannon . . . . Définition de span(x), Y et λ(y). . . . . . . . Décodage en liste pour la distance généralisée Cellules de Voronoı̈ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 24 30 32 3.1 3.2 3.3 3.4 3.5 Photographie de Bernhard Riemann . . . . . . . . Photographie d’Alexander von Brill . . . . . . . Photographie de Max Noether . . . . . . . . . . Modèle plan et normalisée d’une courbe . . . . . . Comparaisons des bornes TVZ, GV et Singleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 52 52 53 64 5.1 Visualisation des régions de décodage . . . . . . . . . . . . . . . . . . . . . . . 82 6.1 Définition de span(p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.1 Bloc de la matrice de contraintes d’interpolation . . . . . . . . . . . . . . . . 98 10.1 10.2 10.3 10.5 10.4 Portrait d’Isaac Newton . . . . . . . . . . . . . . . Photographie de Kurt Hensel . . . . . . . . . . . . Methodus Fluxionum : recherche itérative de racines Photographie d’Alexandre Puiseux . . . . . . . . . Methodus Fluxionum : polygone de Newton . . . . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6 102 103 105 113 114 xv xvi Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Liste des tableaux 1.1 1.2 1.3 Représentation binaire des chiffres décimaux en « little endian » . . . . . Code « deux-parmi-cinq » . . . . . . . . . . . . . . . . . . . . . . . . . . . Le code ASCII 7 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 3.1 Correspondance entre courbes et corps de fonctions . . . . . . . . . . . . . 50 Liste des algorithmes 1 2 3 4 5 6 7 8 Décodage des codes de Reed-Solomon . . . . . . . . Décodage des codes de Goppa géométriques . . . . . . Décodage en liste des codes géométriques . . . . . . . Échelonnage-réduction d’une famille de fonctions . . . Recontruction π-adique . . . . . . . . . . . . . . . . . Calcul d’un polynôme reconstructeur de degré minimal Raffinement de racines de Newton-Hensel . . . . . Recherche de racines de Newton-Puiseux . . . . . . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 . 65 . 80 . 94 . 95 . 99 . 107 . 112 xvii xviii Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Première partie Contexte Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1 Chapitre 1 Introduction informelle 1.1 Théorie des codes : historique et applications L’ OBJECTIF de la Théorie des codes est la détection et la correction des erreurs dans les systèmes d’information. Cette théorie fait partie du vaste ensemble appelé Théorie de l’Information, dont les fondements ont été établis [Sha48] par Claude Shannon en 1948. Prévenons tout d’abord le lecteur que, d’une part, le point de vue présenté ici ne peut être que partiel compte-tenu de la taille gigantesque des divers développements de cette théorie et de ses ramifications et que, d’autre part, il est personnel et ne prétend pas être la bonne façon d’exposer le sujet. Nous espérons que cette introduction facilitera la tâche du lecteur souhaitant comprendre la problématique du décodage en liste des codes géométriques. De manière informelle, un « système d’information » est un mécanisme par lequel des données sont « émises » puis « reçues ». Cela recouvre un grand nombre de situations, que ces données se déplacent physiquement (lettre, téléphone, fax ou Internet,. . .) ou pas (texte, disque dur, CD, . . .). Un tel système d’information est plus ou moins bien protégé contre les erreurs selon que le langage qu’on emploie dans ce système est structuré. La langue française, par exemple, est dotée, entre autres, de règles orthographiques auxquelles on peut se rapporter pour détecter, voire corriger une faute dans un mot. La théorie des codes donne un cadre mathématique à cette notion de structure et permet de protéger efficacement les systèmes Fig. 1.1 – Source [McT] Richard Hamming d’information numériques. On la retrouve dans les sous-marins, (1915–1998) les sondes spatiales et les satellites (cf. Fig. 1.2, p. 6), les ordinateurs [ZCM+ 96], les téléphones mobiles, les réseaux informatiques (codes CRC sur Ethernet, ATM, FDDI, Token Ring, PPP, etc.) en particulier sur Internet 1 . On utilise des codes dans les CD, les DVD, les disques durs RAID (cf. Fig. 1.2, p. 6) et, en fin de compte, dans quasiment tous les supports de stockage numérique. L’histoire de la théorie des codes a vraiment commencé en 1947. Le mathématicien Richard W. Hamming allait régulièrement aux Bell Labs pour utiliser un ordinateur à relais 1 La couche IP et la couche transport (TCP, UDP) ne disposent que d’une somme de contrôle optionnelle (IPv4, UDP) ou obligatoire (IPv6, TCP). Une détection/correction d’erreurs plus sophistiquée peut se faire dans la couche application, e.g. lors d’un streaming. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3 CHAPITRE 1. INTRODUCTION INFORMELLE mécaniques afin d’y lancer des calculs. Il ne pouvait utiliser ceux-là que durant le weekend et revenait le lundi pour récupérer les résultats. Cependant, bien souvent une erreur se produisait dans la machine qui la détectait lors de l’exécution du programme et s’arrêtait immédiatement. Dans [Tho83, p. vii], on trouve cet extrait d’une interview accordée par Hamming en février 1977 : « Two weekends in a row I came in and found that all my stuff had been dumped and nothing was done. . . And so I said, “Damn it, if the machine can detect an error, why can’t it locate the position of the error and correct it ?” 2 .» Dans les ordinateurs, on peut représenter tout chiffre décimal par une suite de 4 bits (les symboles « 0 » et « 1 »), par exemple selon la convention dite « little endian » illustrée par la Table3 1.1. 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 Tab. 1.1 – Représentation binaire des chiffres décimaux en « little endian » Cependant, si une erreur survient transformant par exemple le premier 0 en 1 dans la chaı̂ne binaire 0000, la machine se met à interpréter cette chaı̂ne, non plus comme un 0, mais comme un 8 (représenté par la chaı̂ne 1000), compromettant ainsi le calcul en cours. C’est pourquoi, dès 1940, les Bell Labs utilisaient, au lieu de la représentation précédente, une représentation différente, appelée « code deux-parmi-cinq » (two-out-of-five code). Cette convention consiste à représenter tout chiffre décimal par une chaı̂ne de 5 bits (noter le bit supplémentaire par rapport à la représentation « little endian », dû à la redondance) ayant exactement deux « 1 », selon la Table 1.2. 1 11000 2 10100 3 01100 4 10010 5 01010 6 00110 7 10001 8 01001 9 11000 0 00011 Tab. 1.2 – Code « deux-parmi-cinq » Si, avec la convention « deux-parmi-cinq », une erreur du même type se produit, le nombre de « 1 » présents devient un ou trois qui sont impairs. Le test de la parité du nombre de « 1 » d’une chaı̂ne permet donc de détecter une erreur dans celle-ci. Cette méthode fut généralisée pour transmettre les caractères ASCII, énumérés dans la Table 1.3, en assurant qu’il y ait toujours un nombre pair de 1 dans la chaı̂ne de 8 bits qui les représente. Hamming donna des fondements plus profonds et des méthodes plus efficaces en partant 2 « Deux week-end de suite, j’étais venu et j’avais retrouvé tous mes programmes plantés et rien n’était fait. . . Alors j’ai dit “Bon sang, si la machine peut détecter une erreur, pourquoi ne peut-elle pas localiser la position de l’erreur et la corriger ?”. » 3 Pourquoi prendre cette convention dans laquelle le coefficient terminant la chaı̂ne binaire représentant un entier n est ici celui du terme le plus petit du développement de n en base 2 (celui en 20 = 1) alors qu’on pourrait faire l’inverse ? Dans [Coh81], Danny Cohen s’interroge sur cette version informatique de la guerre civile de Lilliput [Swi26] opposant les résistants traditionalistes continuant de casser leurs œufs du côté le plus gros (les « Big-Endians »), aux fidèles respectueux de l’ordonnance de l’Empereur selon laquelle le seul côté légal pour casser son œuf était le petit (les « Little-Endians »). Merci à Anne Canteaut pour cette précision capitale. 4 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1.2. CODES EN BLOCS 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 @ P ‘ p ! 1 A Q a q " 2 B R b r # 3 C S c s $ 4 D T d t % 5 E U e u & 6 F V f v ’ 7 G W g w ( 8 H X h x ) 9 I Y i y * : J Z j z + ; K [ k { , < L \ l | = M ] m } . > N ^ n ~ / ? O o Tab. 1.3 – Le code ASCII original (ANSI X.3.4, 1968) n’utilisait que 7 bits, conservant le huitième pour faire un calcul de parité. Avec la fiabilisation du matériel informatique, il a été décidé que la version ISO-8859-1 (Latin1) utiliserait désormais ce huitième bit pour coder des caractères de langues spécifiques comme le français (en oubliant le œ, rajouté depuis, avec le symbole , dans la norme ISO-8859-15). La norme Unicode (ISO-10646) code désormais les milliers de symboles des langues du monde entier sur 16 bits. de la recette du test de parité. Dans un rapport interne de 1948, — publié [Ham50] en 1950, ce qui lui valut des problèmes de preuves d’antériorité pendant quelques temps avec le Russe Marcel Golay —, il définit ce qui s’appelle maintenant le code de Hamming. Bien que la théorie se soit fortement développée depuis les années 50 [PH98, MS88], le code de Hamming est encore utilisé aujourd’hui, par exemple dans les disques durs RAID de niveau 2. 1.2 Codes en blocs Une classe particulièrement importante de codes est celle des codes en blocs. Un code en blocs est un ensemble C de mots, tous de la même longueur, appelée longueur de C, souvent notée n. L’alphabet A auquel appartiennent les lettres des mots de C s’appelle l’alphabet de C. Le plus utilisé en informatique est l’alphabet binaire ne contenant que les symboles 0 et 1. Évoquons un exemple plus exotique : prenons pour alphabet A, l’alphabet usuel à 26 lettres et considérons le code C = {cassis, goyave, mangue, banane} dont les blocs sont de longueur n = 6. La Section 2.4 rappelle les définitions fondamentales sur les codes et en particulier les codes en blocs. Dans le contexte des codes correcteurs d’erreurs, on suppose que l’expéditeur et le destinataire sont convenus d’un tel code C. Sachant que l’expéditeur n’envoie que des mots de C, le destinataire recevant un mot y peut constater si celui-ci appartient ou non à C. Dans la négative, il saura qu’une erreur est survenue et pour cette raison, on dit que le code C est détecteur d’erreurs. Pour pouvoir prédire le nombre d’erreurs détectables, on utilise souvent la distance de Hamming, c’est-à-dire le nombre de lettres dont les mots diffèrent. Par exemple la distance entre cassis et goyave est 6 car aucune de leurs lettres ne coı̈ncide (nous soulignons les symboles différents). En revanche la distance entre mangue et banane est 3 puisque seules trois lettres diffèrent : c’est la plus petite distance qu’il peut y avoir entre deux mots distincts de C. On l’appelle la distance minimale de C et puisqu’en changeant moins de d lettres, on ne Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 5 CHAPITRE 1. INTRODUCTION INFORMELLE peut pas transformer un mot de C en un autre, le code permet donc de détecter d − 1 erreurs. Une distance minimale élevée dans un code est donc une qualité qui mesure à quel point les mots le constituant sont différents les uns des autres : cela garantit de pouvoir détecter sans se tromper le fait que beaucoup d’erreurs sont survenues. Fig. 1.2 – En juillet 1979, la sonde Mariner 9 a utilisé [Rom92, Example 4.2.2, p. 133] le [32, 6, 16]2 code de Reed-Muller d’ordre 1 et de longueur 2 5 pour coder les images de Mars prises en 64 = 26 niveaux de gris. Entre 1979 et 1981, la sonde Voyager a utilisé [Rom92, Example 4.2.3, p. 134] le [24, 12, 8] 2 code de Golay binaire étendu pour coder la palette de 4096 = 212 couleurs des photos prises de Jupiter et de Saturne. Parmi les codes suggérés dans le Livre Bleu du CCSDS [CCS99] se trouvent les codes de Reed-Solomon qui ont été largement utilisés par la NASA et l’ESA, comme par exemple pour la sonde Mars Global Surveyor , qui utilise un [250, 218, 33] 251 -code de Reed-Solomon (Figure ci-dessus, source NASA, image retouchée). Ces codes ont la propriété de corriger les rafales d’erreurs et sont également utilisés dans les lecteurs de CD, de DVD et dans les disques durs RAID de niveau 5. On voit cependant sans difficultés qu’à alphabet et longueur fixés, plus un code contient de mots, plus sa distance minimale diminue : par exemple, le code de longueur 4 sur l’alphabet A = {a, b}, constitué de C = {aaaa, bbbb} a pour distance minimale 4. Si l’on incorpore à C le mot aabb, la distance minimale de C chute à 2. Si en outre, on adjoint le mot abbb, la distance minimale de C devient 1. Un code est « bon » quand il réalise un compromis satisfaisant entre le nombre de mots qu’il contient et sa distance minimale. Ce n’est par exemple pas le cas du code « répétition » dont les mots sont la répétition n fois de la même lettre : il a certes une très grande distance minimale, puisqu’elle vaut n, mais il ne possède que q mots, où q est la taille de l’alphabet A. Le Théorème de Codage de Canal de Shan- 6 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1.3. CODES LINÉAIRES non [Sha48] décrit le compromis optimal, lorsque n tend vers l’infini, mais ne donne pas de moyen constructif pour fabriquer des codes le réalisant. En 1952, Edgar Gilbert localisa plus précisément cet optimum pour une longueur n finie [Gil52], sans pour autant qu’on puisse en déduire de construction praticable (voir Théorème 5, p. 36). 1.3 Codes linéaires Pour coder tous les mots à 256 lettres sur l’alphabet A = {0, 1} — c’est une situation qui arrive dans la pratique — on a besoin d’un code dont le nombre de mots est : 2256 = 115 792 089 237 316 195 423 570 985 008 687 907 853 269 984 665 640 564 039 457 584 007 913 129 639 936 ' 1.15792 × 1077 , ce qui est du même ordre que le nombre d’atomes estimé de tout l’Univers (matière sombre exclue). Ce qui veut dire que si, pour stocker un mot de code, il ne fallait qu’un atome, tout l’Univers y suffirait à peine ! Il est donc tout à fait hors de question de dresser une liste des mots de ce code : on le représente de manière compressée, à condition que ce code présente une structure mathématique adéquate. Comme on le verra dans la Section 2.4.3, le code C est dit linéaire quand il s’agit d’un sous-espace vectoriel C de dimension k de l’espace F nq . Il suffit donc d’une base de k vecteurs de C pour décrire C qui contient q k mots. Dans l’exemple précédent, q = 2 et k = 256 : on a seulement besoin de 256 mots pour caractériser les 2 256 mots formés par combinaison linéaire de ces mots de base. Les premiers codes linéaires furent décrits par Hamming et par David Slepian [Sle56] dès le début de la théorie, et Gilbert montra même que les bons codes vus précédemment pouvaient être choisis linéaires (cf. Théorème 5, p. 36). Cependant, une fois de plus, on ne pouvait déduire de ce théorème d’existence une construction praticable. 1.4 Codes géométriques En 1981, Valery Goppa [Gop81] proposa une famille de codes fabriqués à partir de courbes sur les corps finis et appelés en conséquence géométriques. Bien que la définition initiale soit relativement simple et explicite mathématiquement, celle-ci ne se prête pas aisément à l’implémentation. La fabrication explicite des codes géométriques nécessite une sophistication considérablement plus élevée (cf. Section 3.5). Ce n’est qu’en 1996 que le premier logiciel de construction de codes géométriques fut réalisé par Gaétan Hach é [Hac96]. Cette construction explicite est certes difficile, mais elle en vaut la peine car on sait que de très bons codes géométriques existent. Parmi ceux-là se trouve la famille découverte en 1982 par Michael Tsfasman, Serguei Vlǎduţ et Thomas Zink [TVZ82] dont les performances dépassent, dans certains cas, strictement la version asymptotique de la borne de Gilbert-Varshamov (cf. Théorème 10). Ce fut une surprise générale car on pensait, à ce moment là, que cette borne était optimale. La plupart des codes géométriques étudiés sont dits « à un point » mais des codes « à plusieurs points » peuvent s’avérer meilleurs [XC02]. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 7 CHAPITRE 1. INTRODUCTION INFORMELLE 1.5 1.5.1 Correction des erreurs : le décodage Principe théorique sous-jacent En y regardant de plus près, non seulement le destinataire d’un message peut détecter des erreurs, mais il est également en mesure, du moins théoriquement et sous certaines conditions, de les corriger. Le décodage d’un mot reçu y consiste en le recouvrement du message le plus plausiblement émis en choisissant le mot du code C le plus proche du mot reçu. Avec le code C = {cassis, goyave, mangue, banane}, imaginons, par exemple, qu’on reçoive un mot : y = bangue. En comparant les distances entre ce mot et les mots de C, on constate que le mot le plus proche est à distance 1 (seule une lettre — la première — diffère) : c’est le mot mangue. On peut donc le considérer comme le plus plausible ayant été émis (cela suppose des hypothèses sur la façon dont les mots sont émis et sur la façon dont les erreurs surviennent, comme cela est détaillé dans le Chapitre 2). Le décodage de bangue par rapport au code C est donc le mot mangue. En revanche, si l’on reçoit le mot y = bangie, il n’est pas possible d’être aussi catégorique : il y a deux mots de C plus proches, tous deux à distance 2 de bangie : il s’agit de banane et de mangue. On ne peut pas décider dans ce cas. On montre que si la distance d’un code est d (ici d = 3), on peut toujours décoder t = b(d − 1)/2c erreurs (donc ici t = 1). Si deux erreurs se produisent on ne pourra pas toujours décoder, comme on l’a vu dans l’exemple précédent. 1.5.2 Complexité du décodage Si la méthode consistant à comparer les distances d’un mot reçu à tous les éléments du code est satisfaisante d’un point de vue théorique, elle est totalement impraticable dès que la taille du code devient plus grande. Reprenons l’exemple du code binaire à 2 256 éléments de la Section 1.3. On estime que la Terre est constituée d’environ 10 51 atomes. Si chaque atome de la Terre était un ordinateur pouvant tester la distance de dix milliards de mots de code à y par seconde (ce serait vraisemblablement un ordinateur de puissance au moins égale à celle d’une machine 256 bit à 10 GHz), on pourrait donc tester 10 51 × 1010 = 1061 mots par seconde. Il faudrait donc 1077−61 = 1016 secondes, ce qui fait un peu plus de 317 millions d’années, pour tester tous les mots de code afin de trouver le plus proche de y. Il va sans dire que ce n’est pas la méthode qu’on utilise pour décoder. À nouveau, c’est grâce à la structure mathématique des codes qu’on va pouvoir, dans certains cas, calculer ce mot. En fait, même dans le cas des codes linéaires, le calcul du mot de code le plus proche d’un mot donné n’est pas toujours réalisable, comme l’ont montré, dès 1978, les travaux [BMvT78] d’Elwyn Berlekamp, Robert McEliece et Henk C. A. van Tilborg (sous la conjecture fondamentale de l’informatique : P 6= NP, cf. [Pap94, Chapter 14, p. 329–355]). Il est même impossible, toujours avec des hypothèses identiques, de calculer la distance minimale d’un code linéaire, ainsi que l’a prouvé [Var97], en 1997, Alexander Vardy. Cependant, plusieurs familles de codes bénéficient d’arguments théoriques permettant de calculer leur distance minimale ou d’en donner une approximation et certaines de ces familles disposent également d’algorithmes de décodage efficaces. Chaque avancée dans les performances, tant au niveau du nombre d’erreurs corrigées, que sur la vitesse de calcul a des conséquences très importantes dans les applications. 8 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1.5. CORRECTION DES ERREURS : LE DÉCODAGE 1.5.3 Décodage des codes de Parmi les codes les plus intéressants vis-à-vis des problèmes évoqués dans les sections précédentes, sont ceux inventés [RS60] en 1960 par Irving Reed et Gus Solomon (cf. Fig. 1.2, p. 6 et Section 2.5) dont on connaı̂t la distance minimale ainsi que des méthodes de décodage rapide. Étant donné un code de Reed-Solomon de distance minimale d, on peut déduire un souscode, sur un alphabet plus petit, dont la distance minimale est bornée inférieurement par d. Ces codes s’appellent les codes BCH du nom de leurs inventeurs : Raj Bose et Dwijendra Ray-Chaudhuri [BR60b, BR60a] et, indépendamment, Alexis Hocquenghem [Hoc59]. Les codes de Reed-Solomon de distance minimale d, ainsi que les sous-codes BCH qui s’en déduisent permettent de corriger jusqu’à t = b(d − 1)/2c erreurs en temps quadratique, grâce à l’algorithme introduit par Berlekamp [Ber65] et dont il existe de nombreuses variantes [Mas65, BW, Ber96]. James Massey a popularisé cet algorithme dans le contexte cryptologique par son application à la cryptanalyse des registres à décalage [Mas69]. On pourra consulter [vG99, Chapter 7, pp. 197–203] et [Bla] pour un traitement plus approfondi. Nous donnons dans la Section 2.5.2 un algorithme de décodage, corrigeant t erreurs pour les codes de Reed-Solomon, avec la perspective du décodage en liste. 1.5.4 Décodage des codes de géométriques Les codes géométriques constituent une généralisation des codes de Reed-Solomon et il n’est pas surprenant qu’ils bénéficient d’algorithmes de décodage similaires. Nous donnons dans la Section 3.9.4 un algorithme de décodage adapté de l’algorithme de décodage pour les codes de Reed-Solomon mentionné dans la section précédente, toujours avec la perspective du décodage de cette méthode élémentaire permettra de décoder d0 −1 en liste. La performance 0 τ = 2 − g − ε erreurs où d est la distance construite du code, g le genre de la courbe sur laquelle il est défini et ε un entier qui sera nul dans la plupart des cas. Historiquement, le décodage des codes géométriques semble commencer en 1985 lorsque Yves Driencourt a donné un premier algorithme de décodage pour les codes sur les courbes elliptiques [Dri86] en caractéristique 2 corrigeant b(d 0 − 1)/4c erreurs où d0 est la distance construite du code (cf. Section 3.9, p. 59). En généralisant les travaux de Suguru Arimoto [Ari61] et de Wesley Peterson [Pet60], sur l’utilisation d’un « polynôme localisateur » pour décoder les codes de Reed-Solomon, Jørn Justesen, Knud Larsen, Elbrønd Jensen, Allan Havemose et Tom Høholdt ont publié [JLJ + 89] en 1989 un algorithme de décodage pour une classe plus vaste de codes géométriques, pouvant corriger jusqu’à b(d0 − g − 1)/2c erreurs (puis b(d0 − g/2 − 1)/2c erreurs dans une version améliorée [JLJH92]), où g désigne le genre de la courbe. Cette méthode fut généralisée [SV90] à des courbes arbitraires par Alexei Skorobogatov et Serguei Vl ǎduţ, et indépendamment par Viktor Krachkovskii [Kra88], puis étendue par Iwan Duursma [Duu93a, Duu93b] pour corriger b(d0 − 1)/2c − σ erreurs, où σ désigne le défaut de Clifford [Duu93b, Definition 3.7, p. 37] de la courbe (il vaut approximativement g/4 en général). En 1993, Gui-Liang Feng et Thammavarapu Rao donnèrent [FR93] un schéma de vote majoritaire permettant de décoder les codes à un point jusqu’à b(d0 − 1)/2c erreurs. Duursma généralisa ce résultat à tous les codes géométriques [Duu93c]. Une algorithmique plus efficace fut décrite [SJM + 95] par Shojiro Sakata, Justesen, Y. Madelung, Jensen et Høholdt, en utilisant la généralisation multidimensionnelle de l’algorithme de Berlekamp-Massey faite par Sakata [Sak90]. Christoph Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 9 CHAPITRE 1. INTRODUCTION INFORMELLE Kirfel et Ruud Pellikaan remarquèrent par ailleurs [KP95] qu’on pouvait décoder au delà de b(d0 − 1)/2c erreurs pour les codes à un point en étudiant le semigroupe de Weierstrass de ce point. Le lecteur pourra se reporter à [HP95] et [HvP] pour de plus amples informations sur ces méthodes de décodage « classique ». 1.6 1.6.1 Notion de décodage dans d’autres disciplines Interpolation polynomiale et partage de secret Étant données deux points distincts du plan P 1 = (p1 , y1 ) et P2 = (p2 , y2 ), il existe une unique droite passant par ces deux points dont il est facile de trouver l’équation, c’està-dire une fonction affine f telle que f (p 1 ) = y1 et f (p2 ) = y2 . Ce processus est appelé l’interpolation de f à partir de l’échantillon de ses valeurs en les points p 1 et p2 . On sait depuis fort longtemps généraliser ce procédé à un ensemble plus grand de points distincts p 1 , . . . , pn et un ensemble de valeurs y1 , . . . , yn et retrouver l’unique polynôme f de degré plus petit que n tel que f (pj ) = yj pour 1 ≤ j ≤ n. Cette reconstruction peut se faire, par exemple, grâce à la formule de Lagrange [vG99, 5.2, pp. 93–95] ou par des méthodes algorithmiquement plus sophistiquées [vG99, Chapter 10, p. 279–294] (voir également [PTVF92, Chapter 3, pp. 105– 128] pour des méthodes plus « numériques »). Si l’on fixe un ensemble de fonctions, par exemple l’ensemble L k des polynômes de degré inférieur à k, avec k ≤ n, on peut se demander quelles sont les fonctions g ∈ L k qui vont être « proches » de la fonction f . Si f ∈ L k , alors la fonction de Lk la plus proche de f est f elle-même et il suffit de connaı̂tre y j = f (pj ) pour n’importe quel choix de k valeurs de j pour reconstruire le polynôme f (bien qu’au demeurant très élémentaire, cette remarque est le fondement du célèbre système cryptologique de partage de secret, inventé par Adi Shamir [Sha79]). 1.6.2 Cryptanalyse Certaines formes de cryptanalyse consistent à retrouver la fonction de chiffrement à partir de couples clairs-chiffrés connus. L’article de James Massey [Mas69] a montré comment on pouvait prévoir le fonctionnement d’un registre à décalage grâce à l’algorithme de Berlekamp. Thomas Jakobsen a utilisé le décodage en liste pour faire la cryptanalyse [Jak98] du système de Lars Knudsen et Kaisa Nyberg [NK95] prouvé immunisé contre la cryptanalyse linéaire et différentielle, en reconstituant une fonction approximant la fonction de chiffrement [Pec99]. De façon surprenante, le décodage en liste a également des applications dans le domaine de la factorisation et, en particulier, pour la cryptanalyse du système RSA (voir Section 4.4, p. 71). 1.6.3 Intelligence artificielle et estimation fonctionnelle statistique Le problème de l’apprentissage agnostique [KSS92] est un problème d’intelligence artificielle qui consiste à trouver l’interprétation la plus plausible d’un phénomène dont on observe des réalisations. On peut traduire mathématiquement ce qui précède en disant qu’on part d’un ensemble L de fonctions (les interprétations du phénomène), et d’un ensemble d’échantillons altérés (pj , yj ) (le phénomène f (pj ) se produit et on mesure yj ), l’objectif étant de retrouver f . 10 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1.7. DÉCODAGE EN LISTE Ce problème est au cœur de la Théorie de l’Estimation Fonctionnelle [BL87] qui dispose de méthodes efficaces pour les fonctions de variables réelles. 1.6.4 Théorie de la complexité Évoquons enfin brièvement la Théorie de la Complexité, par exemple dans le contexte du Théorème PCP [MPS97, Chapter 4, pp. 63–82]. Le problème de décodage s’énonce en disant qu’on dispose d’un oracle (une « boı̂te noire ») auquel on demande la valeur de la fonction f cherchée en un point p. On sait que l’oracle répond juste dans une certaine proportion des cas. Des connexions fortes entre la Théorie des Codes et la Théorie de la Complexité sont connues depuis longtemps [Fei95], et c’est en étudiant ce problème qu’en 1996, Madhu Sudan a proposé l’algorithme [Sud96] qui a servi de base pour la présente thèse. On pourra se rapporter à [Sud00] et à [Gur01] pour un survey récent. 1.7 1.7.1 Décodage en liste Idée du décodage en liste Si le nombre d’erreurs étant survenues dépasse t = b(d − 1)/2c, le décodage usuel peut ne pas être possible. Dans notre exemple favori, comme on l’a vu plus haut, la réception du mot y = bangie ne permet pas de trancher entre les deux mots de C les plus proches : c 1 = banane et c2 = mangue. Toutefois, il est plus intéressant de connaı̂tre la liste de ces deux candidats, plutôt que de se voir répondre « décodage impossible ». Le fait de donner la liste de tous les mots proches d’un mot y s’appelle le décodage en liste de y et a été envisagé dès 1957 par Peter Elias [Eli57, Eli91] et John Wozencraft [Woz58]. C’est le thème central de cette thèse. 1.7.2 Lien avec les codes géométriques L’algorithme permettant la reconstruction des polynômes de degré inférieur à k proches de F fonctionne en deux phases : 1. trouver un polynôme G à coefficients dans le corps des fonctions rationnelles F q (x), satisfaisant certaines contraintes ; 2. trouver les racines f (x) de G et en extraire les polynômes de degré inférieur à k proches de y, c’est-à-dire tels que f (pj ) = yj pour beaucoup de valeurs de j. Les codes de Reed-Solomon sont bien connus pour avoir une structure géométrique ; aussi, quelques mois après la découverte de Sudan, Amin Shokrollahi et Hal Wasserman généralisèrent-ils [SW99] cette reconstruction à celle des fonctions géométriques correspondant au décodage-liste des codes géométriques à un point : étant donnés p 1 , . . . , pn , p∞ des points Fq -rationnels d’une courbe X, deux à deux distincts, y = (y 1 , . . . , yn ) ∈ Fnq et D = r · p∞ , le problème des reconstructions des fonctions de L (D) devient : 1. trouver un polynôme G à coefficients dans le corps des fonctions de X, satisfaisant certaines contraintes ; 2. trouver les racines f de G et en extraire les fonctions de L (D) proches, c’est-à-dire telles que f (pj ) = yj pour beaucoup de valeurs de j. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 11 CHAPITRE 1. INTRODUCTION INFORMELLE On a une réécriture des problèmes selon le diagramme : probabiliste (canaux) ? métrique (codes) introduction des corps finis accroissement de structure ? algébrique (codes linéaires) codage effectif introduction des courbes algébriques sur les corps finis ? géométrique (codes géométriques) décodage effectif 1.8 1.8.1 ? Contribution de cette thèse Problématique au départ de la thèse Lorsque cette thèse à débuté, l’algorithme de Sudan pour le décodage dur des codes de Reed-Solomon de faible taux de transmission venait d’être étendu par Shokrollahi et Wasserman aux codes fortement géométriques à un point de faible taux de transmission. Les problèmes naturels à résoudre étaient • la généralisation de la méthode : – aux codes de taux de transmission quelconque 4 ; – aux codes géométriques quelconques ; • la possibilité de faire du décodage souple ; • l’élaboration d’algorithmes efficaces pour réaliser les différentes étapes de la méthode, en particulier la recherche des racines d’un polynôme à coefficient dans un corps de fonctions algébriques sur un corps fini. 1.8.2 Contributions de cette thèse La contribution théorique de cette thèse a consisté essentiellement en la démonstration que la méthode de Sudan s’étend aux codes géométriques quelconques et pour une métrique généralisant celle de Hamming, ce qui permet de faire du décodage souple maximisant la vraisemblance. Du point de vue algorithmique, nous donnons une description complète et détaillée des méthodes à mettre en œuvre pour réaliser les principes théoriques dont il est question. En particulier, un nouvel algorithme de recherche de racines de polynômes à coefficients dans un corps de fonctions algébriques (algorithme de Newton-Puiseux) est donné. 4 12 Sudan et Guruswami ont résolu ce point [GS99] quelques mois plus tard. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1.8. CONTRIBUTION DE CETTE THÈSE Nous nous sommes particulièrement attachés à la représentation interne des objets géométriques en présence (courbes, points,. . .) pour proposer des méthodes viables en pratique. Enfin, toutes ces structures de données et ces algorithmes ont été implantées dans le système de calcul formel Magma5 [BC01, Pec01b] qui a l’avantage d’inclure les nombreuses structures de données (corps finis, espaces vectoriels, polynômes, matrices, codes linéaires, etc.) et primitives algorithmiques (recherche de racines dans les corps finis, noyaux de matrices, etc.) auxquelles nous avons recouru pour la construction et le décodage en liste des codes géométriques. Les fonctions de création des codes géométriques sont désormais disponibles dans ce système et le décodage en liste devrait l’être prochainement. La page web de Magma est http://www.maths.usyd.edu.au:8000/u/magma/. 5 Son nom provient de la Définition 10 du § 1 du livre de Nicolas Bourbaki [Bou70]. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 13 CHAPITRE 1. INTRODUCTION INFORMELLE 14 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 2 Codes correcteurs d’erreurs 2.1 2.1.1 Définition des canaux de communication Introduction En 1948, Claude E. Shannon, donna un cadre théorique à la Théorie de l’Information dans son célèbre article A Mathematical Theory of Communications [Sha48]. Cet article définit la notion d’information en s’inspirant en partie des travaux de Ludwig Boltzmann en physique statistique et introduit un cadre mathématique pour décrire les canaux de communication, avec ou sans erreurs, et le concept de codage. Le Second Théorème de Shannon concerne le « codage de canal », c’est-à-dire la transformation d’un message destiné à être envoyé dans un canal de communication bruité. En théorie algébrique des codes, on assimile souvent le fait de décoder de façon optimale au fait de trouver le mot le plus proche au sens de la distance de Hamming. Fig. 2.1 – Source [McT] Claude E. Shannon Il y a en effet équivalence de ces objectifs dans le cas d’un canal (1916–2001) q-aire symétrique (voir Exemple 4, p. 26). Nous verrons dans la Section 2.3 comment on peut traduire le problème probabiliste en un problème métrique, sur un principe voisin de celui suggéré par David Forney [For66] dans le cas de canaux de communications plus généraux. Dans la seconde partie de la thèse, nous verrons comment on peut exploiter algébriquement ce formalisme pour faire du décodage en liste. 2.1.2 Codecs Nous commençons par une définition très générale : Définition 1 Un codec est un quadruplet K = (X, Y, cod, dec) où cod : X −→ Y est une injection appelée codage de X dans Y , dec : Y −→ X est une surjection appelée décodage de Y dans X, telles que dec ◦ cod = IdX . Un élément x ∈ X s’appelle une entrée et un élément y ∈ Y , une sortie et la partie cod(X) de Y s’appelle le code de K . La définition précédente s’applique à de nombreuses situations informatiques mais on peut déjà faire une remarque importante qui s’applique dans presque toutes ces situations : étant donné x, il est souvent très facile de calculer cod(x) car, la plupart du temps, X s’identifie Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 15 CHAPITRE 2. CODES CORRECTEURS D’ERREURS canoniquement à une partie de Y . Inversement, étant donné y ∈ Y , le calcul de dec(y) requiert de faire un choix parmi les valeurs de X et ce choix est, en général, non-trivial. Cette dissymétrie fondamentale est au cœur de la problématique du décodage. On construit typiquement un codec à partir de codecs élémentaires sur des alphabets. Définition 2 Soit M = (A, B, mod, dem) un codec appelé modem où A, B sont des ensembles, appelés respectivement alphabet d’entrée et alphabet de sortie, où le codage s’appelle modulation et le décodage, démodulation. Le code cod(A) s’appelle la constellation engendrée par A. Soit T un ensemble appelé temps, dit discret si T ⊆ N et continu si T est un intervalle de R,, on définit le codec sur M à temps T comme le codec K = T T (X, Y, cod, dec) avec X = A , Y = B , cod (xt )t∈T = mod(xt ) t∈T et dec (yt )t∈T = dem(yt ) t∈T . Considérons la situation où l’on doit transmettre B bits par seconde avec une puissance d’au plus W Watts. Plus B est élevé, plus la qualité du signal numérique est bonne, plus W est élevée, plus la consommation énergétique est importante. On dispose donc d’une √ énergie de E = W/B Joules/bit transmis, ce qui se traduit par un signal d’amplitude s = E. Définition 3 On appelle modem antipodal d’amplitude s le modem (A, B, mod, dem) où A = {0, 1}, B = R, l’application mod envoie 0 sur −s et 1 sur s et l’application dem envoie R∗− sur 0 et R+ sur 1. Dans la définition précédente, nous avons utilisé implicitement la distance euclidienne sur R pour définir l’application de démodulation, qui envoie l’ensemble de tous les éléments plus proches de −s (i.e. les éléments négatifs) sur 0 (dont le codé est −s) et l’ensemble de tous les éléments plus proches de s (i.e. les éléments positifs) sur 1 (dont le codé est s). Nous généralisons maintenant cette méthode. Définition 4 Soit (Y, d) un espace métrique et C ⊆ Y . Pour tout c ∈ C, la cellule de ouverte de centre c est l’ensemble Vor(c) def = {y ∈ Y | ∀c0 ∈ C d(c, y) < d(c0 , y)} des éléments de Y plus proches de c que de tout autre élément de C. Le complexe de engendré par C est l’ensemble Vor(C) def = {Vor(c) : c ∈ C}. Définition 5 Si (Y, d) est un espace métrique. Un décodeur à distance minimale associé à d est une application qui à y ∈ Y associe un x ∈ X tel que d cod(x), y est minimale lorsque x décrit X. Lorsque y ∈ Vor(C), il existe un unique x tel que c = cod(x) est le plus proche de y et c est le centre de la cellule de Vorono ı̈ à laquelle y appartient. C’est le cas dans le modem antipodal. Définition 6 Si Y = B T , où B est muni d’une distance dB , alors on peut munir Y de sa distance alphabétique, notée également d B définie pour tout y, y 0 ∈ Y par : X dB (y, y 0 ) = dB (yt , yt0 ) . t∈T β0 Si dB (β, β 0 ) = d̄β qui vaut 1 lorsque β 6= β 0 et 0 sinon, la distance dB s’appelle la distance de sur B T . Si X = AT , on appelle démodulateur un décodeur à distance minimale pour une distance alphabétique. 16 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.1. DÉFINITION DES CANAUX DE COMMUNICATION Exemple 1 Le diagramme suivant représente une situation classique : M⊂ cod - C ⊂ cod -X ⊂ cod -Y dec - X dec -C dec -M Souvent M = Fk2 est l’ensemble de tous les messages possibles de k bits, C est l’image de M par une application linéaire, calculable par un produit vecteur×matrice, à valeurs dans X = Fn2 pour rajouter aux messages de la redondance (n ≥ k). Ces messages sont émis traduits analogiquement dans Y = Rn par modulation antipodale. 1. Dans le cas du décodage dur, on utilise une démodulation antipodale pour envoyer tout mot y ∈ Y sur un mot x ∈ X, puis on trouve le mot c de C qui minimise la distance de Hamming de c avec x. 2. Dans le cas du décodage souple, on décode directement dans C sans démodulation dans X. On termine en résolvant un système linéaire pour trouver un message de M dont l’image vayt c. 2.1.3 Canaux de communication Nous définissons maintenant un canal de communications comme un codec bruité : Définition 7 Soit K = (X, Y, cod, dec) un codec dont on appellera les entrées, les mots émis, X l’espace d’émission, les sorties, les mots reçus et Y l’espace de réception. Un canal de communications sur K est un couple C de variables aléatoires 1 (X, Y) où X est à valeurs dans X, Y est à valeurs dans Y . Pour tout U ⊆ X et tout V ⊆ Y , on a 2 : Z pr[(X, Y) ∈ U × V ] pr[Y ∈ V | X ∈ U ] = = ϕ(y | x) dxdy , pr[X ∈ U ] (x,y)∈U ×V et pr[(X, Y) ∈ U × V ] pr[X ∈ U | Y ∈ V ] = = pr[Y ∈ V ] Z ϕ(x | y) dxdy . (x,y)∈U ×V Le réel ϕ(y | x) s’appelle la vraisemblance de recevoir y sachant qu’on a émis x. et le réel ϕ(x | y) s’appelle la probabilité a posteriori d’avoir émis x sachant qu’on a reçu y. Le canal est exploitable ssi ϕ cod(x) | x > ϕ(y | x) pour tout y 6= cod(x). Définition 8 Soit θ : X × Y −→ R+ , un décodeur maximisant θ est un décodeur dec θ : Y −→ X qui à tout y ∈ Y associe un élément x ∈ X tel que θ(x, y) est maximal. Soit s ≥ 0, on notera decθ (y, s) = {x ∈ X | θ(x, y) > s} la liste (ouverte) de décodage de seuil s. Pour θ(x, y) = ϕ(y | x) on a un décodeur à maximum de vraisemblance (ML=maximum likelihood) pour θ(x, y) = ϕ(x | y), on a un décodeur à maximum de probabilité a posteriori (MAP=maximum a posteriori probability), pour θ(x, y) = d(x, y) où d est une distance sur X = Y , on a un décodeur à distance minimale. Définition 9 La probabilité de décodage correct est pr[dec(Y) = X] et la probabilité d’erreur de décodage est pr[dec(Y) 6= X]. 1 ` ´ on peut aussi le voir comme une fonction aléatoire χ : X −→ Y telle que χω X(ω) = Y(ω) pour tout ω dans l’espace de probabilité Ω. 2 On supposera que les ensembles X et Y sont munis des structures qui conviennent Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 17 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Le formule de Bayes permet de montrer que : Proposition 1 Pour tout y ∈ Y , un décodeur MAP maximise la probabilité de décodage correct. En outre si le canal C est sans mémoire et que X suit la loi uniforme sur X, les densités a posteriori ϕ(x | y) et les vraisemblances ϕ(y | x) sont proportionnelles quand x décrit X et un décodeur ML maximise également la probabilité de décodage correct. Le cas typique de canal de communication est défini à partir de canaux élémentaires : Définition 10 Avec les notations de la Définition 2, soit (X t , Yt )t∈T une famille de canaux de communications sur M . Soit ϕ une fonction de (ψ t )t∈T , où ψt est la fonction de vraisemblance du canal (Xt , Yt ), on dit que C = (K , ϕ) est le canal sur M , à temps T , de vraisemblance ϕ. Le canal C est stationnaire ssi ψ t = ψ ne dépend pas de t et sans mémoire ssi : Y ϕ(y | x) = ψt (yt | xt ) , t∈T Si C est stationnaire et sans mémoire, et qu’en outre A = {α 1 , . . . , αq } et B = {β1 , . . . , βr } sont finis, on notera pr[y | x] au lieu de ϕ(y | x), pour tout x ∈ X et y ∈ Y et pr[β | α] au lieu de ψ(β | α) pour tout α ∈ A et β ∈ B. Le canal est alors caractérisé par la matrice de transitions à lignes stochastiques : pr[β1 | α1 ] · · · pr[βr | α1 ) .. .. .. TC def = . . . . pr[β1 | αq ] · · · pr[βr | αq ] Lorsque deux lignes (resp. colonnes) quelconques de T sont déductibles par permutation, on dit que le canal est à lignes (resp. colonnes) symétrique. Si un canal est à lignes et colonnesPsymétriques, il est dit symétrique. La probabilité de transition de α i est prtr (αi ) = rj=1 pr[dem(βj ) 6= αi | αi ]. Si le canal est à lignes symétriques, cette probabilité ne dépend pas de xi et on l’appelle la probabilité de transition de C . En pratique, on considère souvent des canaux sans mémoire dont l’alphabet d’entrée est fini. Bien souvent, on ne connaı̂t d’ailleurs pas la fonction de vraisemblance de ce canal mais on dispose de modèles statistiques de celui-ci. De même, on ne mesure pas directement y mais on l’apréhende par le truchement d’un estimateur de la matrice de vraisemblances qui lui est associée et que nous définissons ici : Définition 11 Si A = {α1 , . . . , αq } est fini, et que C est sans mémoire, alors, pour tout y ∈ Y , la fonction x 7−→ ϕ(y | x) est caractérisée par la matrice à colonnes stochastiques dite matrice de vraisemblances de y : ψ1 (y1 | α1 ) · · · ψn (yn | α1 ) .. .. .. LC (y) def = (2.1) . . . . ψ1 (y1 | αq ) · · · ψn (yn | αq ) Enfin dans beaucoup de situations, toutes les propriétés du canal sont déductibles d’une petite matrice de taille |A| × |B| : 18 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.2. EXEMPLE DE CANAUX Définition 12 Si, en outre, C est stationnaire et que B = {β 1 , . . . , βr } est fini, le canal est alors caractérisé par une matrice à lignes stochastiques de taille q × r dites de transitions alphabétiques : pr[β1 | α1 ] · · · pr[βr | α1 ] .. .. .. TA def = . . . . pr[β1 | αq ] · · · pr[βr | αq ] En pratique, on considère souvent le bruit comme étant un mot aléatoire ajouté au mot émis, on introduit donc naturellement : Définition 13 Soit C un canal de communications. Si l’espace de réception Y est un groupe additif, le canal est dit additif ssi ϕ(y | x) ne dépend que de la différence e = y − cod(x) et e s’appelle le bruit (additif ) de C . 2.2 Exemple de canaux Les canaux que nous donnons ici sont les plus fréquents. Nous donnons la définition des canaux au niveau alphabétique et nous construirons le plus souvent dans la suite, des canaux sans mémoire stationnaires à partir de ceux-ci. 2.2.1 Canal à bruit blanc gaussien additif On construit un canal sur le modem antipodal vu dans la Définition 3 en considérant le bruit comme une variable aléatoire gaussienne s’ajoutant au signal émis : Définition 14 Soit ε une variable aléatoire réelle de loi gaussienne N (0, σ 2 ), comme B est un groupe additif, on peut définir β = modA (α) + ε de telle sorte que, pour tout α > 0, 2 √ / 2πσ 2 qui ne dépend que de β − mod(α). On est donc en ψ(β | α) = exp −(β−mod(α)) 2σ 2 présence d’un bruit additif appelé bruit blanc gaussien de variance σ 2 . Par ailleurs, B est un espace métrique pour la distance euclidienne et on a deux cellules de Voronoı̈ ouvertes : V0 =] − ∞, 0[, de centre −s et V1 =]0, ∞[, de centre s. Pour le démodulateur de Voronoı̈, la probabilité de transition de α = 1 est : 2 Z ∞ Z Z 0 1 1 −(β − s)2 −y √ √ dy = dy ϕtr (α) = ϕ(β | α) dβ = exp exp 2 2 2 2σ 2σ 2 2πσ 2πσ s V0 −∞ Z ∞ √ √ 1 def 1 = Q( S) avec Q(x) = erfc(x/ 2) = √ exp(−y 2 /2) dy . 2 2π x et où S def = E/σ 2 s’appelle le rapport signal/bruit du canal. Cette probabilité de transition est identique pour α = 0. 2.2.2 Canal discret symétrique Le canal à bruit blanc gaussien additif peut être vu comme un canal symétrique dont les √ alphabets sont A = B = {0, 1} avec une probabilité de transition égale à Q( S) où S est le rapport signal/bruit vu dans la section précédente. Plus généralement, on considère en théorie algébrique des codes des canaux où A et B sont finis et ont q éléments. En général, on aura A = B = Fq . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 19 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Définition 15 Soit A = B, un ensemble à q éléments le canal défini par : ( 1 − p si β = α pour tout α, β ∈ A = B ψ(β | α) = p sinon q−1 s’appelle le canal q-aire symétrique de probabilité de transition p = pr[β 6= α | α], supposé dans l’intervalle [0, q−1 q [ pour que pr[β = α | α] > 1/2. Exemple 2 Nous prenons un corps fini F q à q = 9 éléments. Dans la syntaxe Magma, Fq<w> := GF(q) signifie : « soit Fq un corps fini à q éléments et w un générateur de Fq ». Ici, comme dans la plupart des exemples qui suivront, w est un élément primitif de F q ( cf. Definition 27, p. 37). Nous construisons le canal q = 9-aire symétrique C de probabilité de transition p = 21 q−1 q . Du fait qu’un corps fini n’est pas canoniquement ordonné, il est nécessaire de construire une bijection de {1, . . . , q} dans Fq . Une telle application est par exemple : i 7−→ w i pour tout i ∈ {0, . . . , q − 1} et q 7−→ 0. La bijection inverse requiert l’extraction d’un logarithme discret, qui est un problème difficile [DH76] quand le corps devient grand. Dans le propos présent, nous nous contenterons de construire un ensemble ordonné A explicite que Magma représente avec la {@ @}. Dans ce cas, B = A. Étant donné un vecteur x ∈ Fnq de longueur 10, nous construisons le vecteur xA ∈ An qui lui correspond. Nous envoyons ce dernier à travers le canal C et nous recevons un vecteur yB dont les symboles sont sur B = A. Nous lui associons canoniquement le vecteur y ∈ Fnq correspondant. > q := 9; Fq<w> := GF(q); A,ch := StandardInputAlphabet(Fq); A; {@ a_1, a_2, a_3, a_4, a_5, a_6, a_7, a_8, a_9 @} > p := 0.2; Ch := SymmetricDMC(A,p); Name(Ch); n := 10; Symmetric DMC on alphabet A={@ a_1, a_2, a_3, a_4, a_5, a_6, a_7, a_8, a_9 @}, with transition probability 0.2000. Transition Matrix: [ 0.8000 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500] [0.02500 0.8000 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500] [0.02500 0.02500 0.8000 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500] [0.02500 0.02500 0.02500 0.8000 0.02500 0.02500 0.02500 0.02500 0.02500] [0.02500 0.02500 0.02500 0.02500 0.8000 0.02500 0.02500 0.02500 0.02500] [0.02500 0.02500 0.02500 0.02500 0.02500 0.8000 0.02500 0.02500 0.02500] [0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.8000 0.02500 0.02500] [0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.8000 0.02500] [0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.02500 0.8000] > V := VectorSpace(Fq,n); ch_n := VectorMap(ch,n); > x := Random(V); x; x_A := x@ch_n; x_A; ( 2 1 2 1 w 0 w^5 1 w^3 0) [ a_5, a_1, a_5, a_1, a_2, a_9, a_6, a_1, a_4, a_9 ] > y_B := MapThrough(Ch,x_A); y_B; y := y_B@@ch_n; y; [ a_5, a_1, a_5, a_1, a_2, a_9, a_7, a_1, a_4, a_3 ] ( 2 1 2 1 w 0 w^6 1 w^3 w^2) 2.2.3 Canal à effacements La généralisation suivante des canaux discrets symétriques constitue un modèle souvent utilisé pour représenter des réseaux informatiques, tels Internet, dans lesquels des paquets (e.g. les paquets IP) sont perdus ou corrompus. 20 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.3. DISTANCE PROBABILISTE Définition 16 Soit A = Fq , B = Fq t {✗} le canal discret sans mémoire défini par ∀(α, β) ∈ A×B : si β = ✗ ; ε ψ(β | α) = 1 − p si β = α ; p−ε sinon ; q−1 s’appelle le canal q-aire à effacements de probabilité de transition p dont une probabilité d’effacement ε. C’est un canal à lignes symétriques. Exemple 3 Sur le même principe que l’Exemple 2, nous construisons le canal C de probabilité de transition p = 0.3 dont une probabilité d’effacement de 0.2 sur le corps F 5 et nous émettons un vecteur de longueur n = 10. Dans ce cas, l’alphabet de sortie B n’est pas égal à A. Nous démodulons en maximisant la vraisemblance de chaque coordonnée (voir infra). > q := 5; Fq := GF(q); A,ch := StandardInputAlphabet(Fq); A; {@ a_1, a_2, a_3, a_4, a_5 @} > p := 0.3; e := 0.2; Ch := ErrorsAndErasuresDMC(A,p,e); Name(Ch); Error and erasure DMC on alphabet A={@ a_1, a_2, a_3, a_4, a_5 @} with transition probability p=0.3000 and erasure probability e=0.2000. Transition Matrix: [ 0.7000 0.02500 0.02500 0.02500 0.02500 0.2000] [0.02500 0.7000 0.02500 0.02500 0.02500 0.2000] [0.02500 0.02500 0.7000 0.02500 0.02500 0.2000] [0.02500 0.02500 0.02500 0.7000 0.02500 0.2000] [0.02500 0.02500 0.02500 0.02500 0.7000 0.2000] > n := 10; V := VectorSpace(Fq,n); ch_n := VectorMap(ch,n); > x := Random(V); x; x_A := x@ch_n; x_A; (4 2 3 0 1 1 1 3 0 2) [ a_5, a_3, a_4, a_1, a_2, a_2, a_2, a_4, a_1, a_3 ] > y_B := MapThrough(Ch,x_A); y_B; [ a_5, a_3, a_4, a_1, a_2, ?, a_2, a_4, a_4, a_3 ] > LikelihoodMatrix(Ch,y_B); y := Demodulate(Ch,y_B)@@ch_n; y; [0.02500 0.02500 0.02500 0.7000 0.02500 0.2000 0.02500 0.02500 0.02500 0.02500] [0.02500 0.02500 0.02500 0.02500 0.7000 0.2000 0.7000 0.02500 0.02500 0.02500] [0.02500 0.7000 0.02500 0.02500 0.02500 0.2000 0.02500 0.02500 0.02500 0.7000] [0.02500 0.02500 0.7000 0.02500 0.02500 0.2000 0.02500 0.7000 0.7000 0.02500] [ 0.7000 0.02500 0.02500 0.02500 0.02500 0.2000 0.02500 0.02500 0.02500 0.02500] (4 2 3 0 1 0 1 3 3 2) 2.3 2.3.1 Distance probabiliste Cadre de travail La fonction ϕ( | ) a des arguments dans des espaces a priori distincts et le fait de pouvoir traduire de manière métrique le fait que la vraisemblance ϕ(y | x) est élevée n’est pas évident. Nous introduisons dans cette section un espace métrique permettant la comparaison de x et y et dans lequel la proximité en termes métriques traduit le fait que la vraisemblance ϕ(y | x) est élevée. Dans le cas du canal q-aire symétrique, cette distance coı̈ncide avec la distance de Hamming. Dans la perspective du décodage en liste, nous introduirons également une quantité duale que nous baptiserons « similarité » et qui est une fonction décroissante de la distance. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 21 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Pour ce faire, nous supposons fixé un canal C à temps discret dont l’espace d’émission est X = An avec A = {α1 , . . . , αq }, l’espace de réception est Y = B n , sans mémoire (mais pas nécessairement stationnaire), de telle sorte que : ϕ(y | x) = n Y j=1 ψj (yj | xj ) . (2.2) On notera d le symbole de Kronecker et d̄ = 1 − d, de telle sorte que, pour tout a et b, on ait : ( ( 1 si a 6= b 1 si a = b b b . et d̄a = da = 0 sinon 0 sinon Par ailleurs, on notera pour tout x, y ∈ R n : def kxk1 = 2.3.2 n X j=1 |xj | , def hx | yi = n X xj yj et j=1 kxk2 def = p hx | xi . Définition formelle de la λ-distance et de la λ-similarité Dans un premier temps, nous fixons un λ ∈ R n+ \ {0} et nous définissons λ-distance et λ-similarité de manière formelle. Nous les relierons dans la section suivante à la fonction de vraisemblance d’un canal. Définition 17 Soient x, y ∈ An , on appelle vecteur de non-coı̈ncidence et support de non-coı̈ncidence entre x et y respectivement : d̄(x, y) def = (d̄yx11 , . . . , d̄yxnn ) et D̄(x, y) def = Supp d̄(x, y) = j ∈ {1, . . . , n} xj 6= yj . La λ-distance entre x et y est le réel de l’intervalle 0, kλk1 défini par3 : dλ (x, y) def = hλ | d̄(x, y)i = X λj . (2.3) j∈D̄(x,y) , que l’on notera d. Pour Lorsque λ = (1, . . . , 1), dλ s’appelle la distance de tout τ ≥ 0, on notera : Bλ (y, τ ) def = x ∈ An dλ (x, y) < τ la boule ouverte de centre y et de rayon τ . Proposition 2 La fonction dλ : An × An −→ R+ est une semi-distance, i.e. : 1. dλ (x, y) = dλ (y, x) pour tout x, y ; 2. dλ (x, x) = 0 pour tout x ; 3. dλ (x, z) ≤ dλ (x, y) + dλ (y, z) pour tout x, y, z ; En outre, si λj 6= 0 pour 1 ≤ j ≤ n, alors dλ est une distance, i.e. satisfait la propriété supplémentaire : 4. dλ (x, y) = 0 3 22 =⇒ x = y. La justification de la présence de ce produit scalaire est dans le Théorème 16, p. 80. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.3. DISTANCE PROBABILISTE Démonstration: Les Propriétés 1. et 2. sont obvies. On prouve la Propriété 3. en remarquant que, d’une part, D̄(x, y) ∪ D̄(y, z) ⊇ D̄(x, z) (e.g. par complémentation) et que, d’autre part, λ est une densité pour la mesure de comptage. La Propriété 4. est claire. Dans ce qui suit, nous ne supposons pas que λ j 6= 0 mais par simplicité, nous utiliserons toujours le mot « distance ». En fait, on peut toujours se ramener — sans perte de généralité — au cas où tous les λ j sont non-nuls en poinçonnant (cf. Définition 22, p. 31) les coordonnées j pour lesquelles λj = 0. Comme on le verra plus loin, si la notion de distance permet d’exploiter le formalisme des espaces métriques, elle est moins adaptée à la manipulation algébrique du fait qu’elle repose sur des inégalités. On lui substituera avantageusement la notion équivalente de similarité, qui sera définie à partir d’égalités. Définition 18 Soient x, y ∈ An , on appelle vecteur de coı̈ncidence et support de coı̈ncidence entre x et y respectivement : d(x, y) def = (dyx11 , . . . , dyxnn ) et D(x, y) def = Supp d(x, y) = j ∈ {1, . . . , n} xj = yj . La λ-similarité entre x et y est le réel de l’intervalle 0, kλk1 défini par : X λj . sλ (x, y) def = hλ | d(x, y)i = (2.4) j∈D(x,y) On notera s pour sλ avec λ = (1, . . . , 1). 2.3.3 Construction de l’espace métrique de travail L’espace X = An contient les mots émis x, l’espace Y = B n , les mots reçus y. Ces espaces étant distinct, on ne peut pas construire de distance permettant d’exprimer la proximité de x avec y. Nous traduisons le problème en injectant x dans A qn et en le comparant à un mot de référence Y ne dépendant que de l’alphabet A. Cette comparaison a lieu à l’aide d’une λ(y)-distance où λ(y) est un vecteur de réels positifs construit à partir de y. Dans la section suivante, nous choisirons λ de manière à ce que cette distance traduise la vraisemblance. Définition 19 On note span : An −→ Aqn la fonction qui à tout mot x associe le mot span(x) dont les coordonnées sont obtenues en répétant q fois celles de x, Y le mot constitué de la qn n concaténation de n copies du mot (α 1 , . . . , αq ) et, étant donnée une fonction λ : B −→ R+ , on notera λ(y)i,j la (i−1)n+j -ième coordonnée du vecteur λ(y). Cette situation est résumée dans la Fig. 2.2 et on a : q n X X x λ(y)i,j dαji . sλ(y) span(x), Y = j=1 i=1 On notera span(C) = {span(c) : c ∈ C} pour toute partie C de A n . On définit également les réels de l’intervalle [0, 1] appelés respectivement λ-similarité relative et λ-distance relative4 entre x et y : sλ(y) span(x), Y def σλ (x, y) = et δλ (x, y) def = 1 − σλ (x, y) . kλ(y)k1 def 4 Il s’agit d’un abus de langage car la distance n’est pas entre x et y. Cela dit, c’est bien la notion qui généralise la distance relative de Hamming d(x, y)/n pour x, y ∈ Fn q. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 23 CHAPITRE 2. CODES CORRECTEURS D’ERREURS On a immédiatement : Proposition 3 Pour tout y ∈ B n , les propositions suivantes sont équivalentes : 1. sλ(y) span(x), Y croı̂t, dans 0, kλ(y)k1 ; 2. σλ (x, y) croı̂t, dans [0, 1] ; 3. dλ(y) span(x), Y décroı̂t, dans 0, kλ(y)k1 ; 4. δλ (x, y) décroı̂t, dans [0, 1] ; quand x décrit An . La fonction sλ(y) , est celle qui permet le mieux de travailler avec l’algorithme de décodage en liste et la distance dλ(y) , généralisant la distance de Hamming, permet une interprétation métrique. Quant à σλ et δλ , ils permettent de se ramener dans [0, 1] quelle que soit la valeur de λ. span(x) = x1 ··· x1 ··· xn ··· xn Y = α1 ··· αq ··· α1 ··· αq λ(y)1,1 ··· λ(y)q,1 ··· λ(y)1,n ··· λ(y)q,n λ(y) = Fig. 2.2 – Définition de span(x), Y et λ(y). 2.3.4 Métrique de vraisemblance Nous choisissons dans cette section la fonction λ : B n −→ Rqn + de telle sorte que la λ(y)-similarité (resp. la λ(y)-distance) soit une fonction croissante (resp. décroissante) de la vraisemblance. Théorème 1 Pour tout y ∈ B n , si ψj (yj | αi ) 6= 0 et n’est pas constant pour tout i, j, alors en choisissant : = log Mψj (yj ) · ψj (yj | αi ) où Mψj (yj ) def = max ψj (yj | αk )−1 , (2.5) λ(y)i,j def 1≤k≤q les réels λ(y)i,j sont positifs ou nuls, non tous nuls, et la fonction x 7−→ σ λ (x, y), noté dans ce cas σ(x, y) croı̂t avec x 7−→ ϕ(y | x) quand x décrit A n . Plus précisément : n Y def −1 M (y) = max ϕ(y | z) = Mψj (yj ) ϕ z∈An j=1 q n Y Y σ(x, y) = log Bϕ (y) Mϕ (y) · ϕ(y | x) où Kϕ (y) def = ψj (yj | αi ) j=1 i=1 B (y) def = M (y)q · K (y) > 1 ϕ ϕ ϕ (2.6) 24 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.3. DISTANCE PROBABILISTE Démonstration: Comme canal est sans mémoire, on a : ϕ(y | x) = n Y j=1 ψj (yj | xj ) ou encore log ϕ(y | x) = n X j=1 log ψj (yj | xj ) , (2.7) puisque ψj (yj | αi ) 6= 0 pour tout i, j. Afin d’obtenir des termes positifs, on ajoute de part et d’autre de l’égalité les log Mψj (yj ) pour 1 ≤ j ≤ n de telle sorte que (2.7) se réécrit : log ϕ(y | x)+ n X log Mψj (yj ) = j=1 n X j=1 Or, d’une part : log ψj (yj | xj )+log Mψj (yj ) = n X n X j=1 log Mψj (yj )·ψj (yj | xj ) (2.8) log Mψj (yj ) = log Mϕ (y) , j=1 d’où l’on déduit que le terme de gauche de (2.8) vaut log Mϕ (y) · ϕ(y | x) , et d’autre part, pour tout j, il existe un unique i pour lequel xj = αi donc il est clair que : q q X X log Mψj (yj ) · ψj (yj | xj ) = log Mψj (yj ) · ψj (yj | xj ) · dxαji = λ(y)i,j · dxαji i=1 i=1 et, par construction λ(y)i,j ≥ 0. On en déduit que (2.8) équivaut à : q n X D X E log Mϕ (y) · ϕ(y | x) = λ(y)i,j · dxαji = λ(y) d span(x), Y = sλ(y) span(x), Y . (2.9) j=1 i=1 On a, par ailleurs : kλ(y)k1 = q n X X j=1 i=1 log Mψj (yj ) · ψj (yj | αi ) = q X n log Mψj (yj ) + j=1 q = q log Mϕ(y) + log Kϕ (y) = log Mϕ(y) · Kϕ(y) = log Bϕ (y) X q n X j=1 i=1 log ψj (yj | αi ) Or, pour tout j et tout i, on a : max ψj (yj | αk )−1 · ψj (yj | αi ) ≥ 1 1≤k≤q et comme ψj (yj | αi ) n’est pas constant pour 1 ≤ i ≤ q et 1 ≤ j ≤ n, l’inégalité est stricte pour au moins un (i, j), par conséquent en prenant les produit pour 1 ≤ i ≤ q, puis pour 1 ≤ j ≤ n des égalités précédentes, on déduit qur : Bϕ(y) = n Y j=1 max ψj (yj | αk )−1 1≤k≤q q n Y q Y j=1 i=1 ψj (yj | αi ) > 1 . Cela prouve également que λ n’est pas identiquement nul puisque kλ(y)k1 = log Bϕ (y). Finalement, on a : log Mϕ (y) · ϕ(y | x) sλ(y) span(x), Y = = logBϕ (y) Mϕ (y) · ϕ(y | x) σ(x, y) = kλ(y)k1 log Bϕ (y) Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 25 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Exemple 4 Pour le canal q-aire symétrique de probabilité de transition p, on a ψ j (yj | αi ) = q−1 p p αi αi q−1 d̄yj +(1−p)dyj . Pour que le canal soit exploitable, il faut que p < q , i.e. que 1−p > q−1 , dans ce cas : n Y q−1 q−1 n −1 Mψj (yj ) = Mψj (yj ) = max ψj (yj | αk ) = donc Mϕ (y) = 1≤k≤q p p j=1 n(q−1) q q n Y n Y Y Y p p αi αi (1 − p)n Kϕ (y) = d̄ + (1 − p)dyj = ψj (yj | αi ) = q − 1 yj q−1 j=1 i=1 j=1 i=1 (q − 1)(p − 1) n q Bϕ (y) = Mϕ (y) Kϕ (y) = p (q − 1)(1 − p) λ(y)i,j = log Mψj (yj ) · ψj (yj | αi ) = l · d̄αyji avec l def = log p On a donc sλ(y) span(x), Y = l · s(x, y), kλ(y)k1 = l · n et on retrouve bien les expressions σ(x, y) = s(x,y) n et δ(x, y) = d(x,y) n . Exemple 5 On se place ici dans le canal binaire à effacements de probabilité de transition 0.3 dont une probabilité d’effacements 0.2, on émet un mot de longueur n = 5 et on reçoit un mot présentant une erreur et un effacement : > q := 2; Fq := GF(q); A,ch := StandardInputAlphabet(Fq); A; {@ a_1, a_2 @} > p := 0.3; e := 0.2; Ch := ErrorsAndErasuresDMC(A,p,e); Name(Ch); Error and erasure DMC on alphabet A={@ a_1, a_2 @} with transition probability p=0.3000 and erasure probability e=0.2000. Transition Matrix: [0.7000 0.1000 0.2000] [0.1000 0.7000 0.2000] > n := 5; V := VectorSpace(Fq,n); ch_n := VectorMap(ch,n); > x := Random(V); x; x_A := x@ch_n; x_A; (1 1 1 1 0) [ a_2, a_2, a_2, a_2, a_1 ] > y_B := MapThrough(Ch,x_A); y_B; [ a_2, a_2, ?, a_1, a_1 ] On calcule ensuite la matrice de vraisemblance de y d’où l’on déduit les différents paramètres du Théorème 1 : > L := LikelihoodMatrix(Ch,y_B); L; [0.1000 0.1000 0.2000 0.7000 0.7000] [0.7000 0.7000 0.2000 0.1000 0.1000] > M_psi := [1/Min(Eltseq(Transpose(L)[j])) : j in [1 .. n]]; > M_phi := &*M_psi; K_phi := &*Eltseq(L); B_phi := M_phi^q*K_phi; // Unused algorithmically > printf "M_psi=%o, M_phi=%o, K_phi=%o, B_phi=%o\n", M_psi,M_phi,K_phi,B_phi; M_psi=[ 10.00, 10.00, 5.000, 10.00, 10.00 ], M_phi=50000., K_phi=0.0000009604, B_phi=2401. > lambda := &cat[[Log(M_psi[j]*L[i,j]) : i in [1 .. q]] : j in [1.. n]]; lambda; [ 0, 1.945, 0, 1.945, 0, 0, 1.945, 0, 1.945, 0 ] > lambda_1 := &+lambda; lambda_1; 7.783 > Y_A := &cat[[A[i] : i in [1 .. q]] : j in [1 .. n]]; On définit une procédure d’affichage pour la vraisemblance, la similarité et la similarité relative : 26 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.3. DISTANCE PROBABILISTE > // Displays word, likelihood, similarity and relative similarity > disp := procedure(x); procedure> xspan := &cat[[x[j] : i in [1 .. q]] : j in [1 .. n]]; procedure> s := &+[lambda[j]*((xspan[j] eq Y_A[j]) select 1 else 0) : j in [1 .. q*n]]; procedure> sigma := s/lambda_1; procedure> printf "%o, %o, %o, %o\n",x,Likelihood(Ch,y_B,x),s,sigma; procedure> end procedure; On trie l’ensemble des x ∈ An par ordre de vraisemblance ϕ(y | x) croissante : > // Display words sorted by increasing likelihood > sort_f := function(x,xx); function> s1 := Likelihood(Ch,y_B,x); s2 := Likelihood(Ch,y_B,xx); function> if s1 lt s2 then return -1; elif s1 gt s2 then return 1; else return 0; end if; function> end function; > An := {@ x@ch_n : x in V @}; Sort(~An,sort_f); Puis on affiche chacun de ces vecteurs (on voit bien que la similarité et la similarité relative sont des fonctions croissantes de la vraisemblance) : > [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ for x in An do a_1, a_1, a_1, a_1, a_1, a_2, a_2, a_1, a_1, a_1, a_2, a_1, a_2, a_1, a_2, a_1, a_2, a_2, a_1, a_1, a_1, a_1, a_1, a_2, a_1, a_1, a_1, a_1, a_1, a_2, a_2, a_1, a_1, a_1, a_2, a_1, a_2, a_1, a_2, a_1, a_2, a_2, a_2, a_2, a_1, a_2, a_2, a_2, a_2, a_1, a_1, a_1, a_2, a_1, a_2, a_1, a_2, a_1, a_2, a_2, a_1, a_1, a_1, a_1, a_1, a_2, a_2, a_2, a_1, a_2, a_2, a_2, a_2, a_1, a_1, a_1, a_2, a_1, a_2, a_1, a_2, a_1, a_2, a_2, a_2, a_2, a_1, a_2, a_2, a_2, a_2, a_2, a_1, a_2, a_2, a_2, disp(x); a_2, a_2 a_2, a_2 a_2, a_2 a_2, a_2 a_2, a_2 a_2, a_2 a_2, a_1 a_2, a_1 a_1, a_2 a_1, a_2 a_1, a_2 a_1, a_2 a_1, a_2 a_1, a_2 a_2, a_2 a_2, a_2 a_2, a_1 a_2, a_1 a_2, a_1 a_2, a_1 a_1, a_1 a_1, a_1 a_1, a_2 a_1, a_2 a_1, a_1 a_1, a_1 a_1, a_1 a_1, a_1 a_2, a_1 a_2, a_1 a_1, a_1 a_1, a_1 end for; ], 0.00002000, 0, 0 ], 0.00002000, 0, 0 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0001400, 1.945, 0.2500 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.0009800, 3.891, 0.5000 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.006860, 5.837, 0.7500 ], 0.04802, 7.783, 1.000 ], 0.04802, 7.783, 1.000 Enfin, on compare cette liste au mot émis et au mot obtenu par démodulation : Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 27 CHAPITRE 2. CODES CORRECTEURS D’ERREURS > [ > > > [ [ y_B; // We recall the received word a_2, a_2, ?, a_1, a_1 ] // Compare to emmited and demodulated word: disp(x_A); disp(Demodulate(Ch,y_B)); a_2, a_2, a_2, a_2, a_1 ], 0.006860, 5.837, 0.7500 a_2, a_2, a_1, a_1, a_1 ], 0.04802, 7.783, 1.000 2.3.5 Métrique de et Prendre λ(y)i,j = ψj (αi | yj ) correspond aux multiplicités suggérées par Ralf Koetter et Alexander Vardy dans [KV00]. Les résultats obtenus avec ces paramètres sont, de façon surprenante, meilleurs dans certains cas, par exemple celui du canal q-aire symétrique, et permettent alors de décoder en liste jusqu’à la borne de Johnson (voir Théorème 4, p. 33) et Section 6.3. La justification donnée par Koetter et Vardy est que ce choix de multiplicités maximise l’expérance de sλ(y) (x, y) et que, si le canal est sans mémoire et stationnaire, la concentration d’une somme de variables aléatoires indépendantes identiquement distribuées autour de l’espérance de cette somme converge rapidement d’après le Théorème de Chebychev, lorsque n −→ ∞. 2.3.6 Note sur la concaténation Définition 20 Si l’on a un codec de Ak dans An , un codec de B K dans B N et un codec de Ak dans B alors un codec concaténé sur ces codecs est le codec A kK dans AnN tel que : (b1 , . . . , bK ) 6 cod:B K →B N codage externe - (b0 , . . . , b0 ) 1 N dec:B→Ak sur N coordonnées ? (a01,1 , . . . , a01,k , . . . , a0N,1 , . . . , a0N,k ) cod:Ak →B sur K blocs cod:Ak →An sur N blocs codage interne (a1,1 , . . . , a1,k , . . . , aK,1 , . . . , aK,k ) ? - (a00 , . . . , a00 , . . . , a00 , . . . , a00 ) 1,1 1,n N,1 N,n cod:AkK →AnN concaténation En pratique le codage et le décodage de A k dans B est aisément calculable et le décodage a lieu ainsi : pour tout mot a00 = (a001,1 , . . . , a001,n , . . . , a00N,1 , . . . , a00N,n ) ∈ AnN , on utilise le décodeur interne dec : An → Ak pour décoder chaque bloc a0i = (a0i,1 , . . . , a0i,n ) en un bloc ai = (ai,1 , . . . , ai,k ). Ce faisant, ce décodeur peut souvent donner une information quantitative comme par exemple la distance de Hamming entre a 0i et cod(ai ). Cette information 28 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.3. DISTANCE PROBABILISTE peut être utilisée pour construire une λ-distance qui permettra de disposer d’un décodage externe : dec : cod : AN → AK à distance minimale. Cette situation a par exemple été étudiée par Guruswami et Sudan [GS00], ainsi que par Nielsen. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 29 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Fig. 2.3 – La figure du haut représente le décodage en liste d’un vecteur y pour la distance de Hamming. Les petites sphères représentent les zones de décodage unique autour des mots de codes constituant leur centre. La liste consiste en les trois mots de code situés dans la boule dessinée autour de y. Dans la figure du bas, on a le même code mais pas la même distance pour le décodage. Nous avons conservé la distance de Hamming pour dessiner les sphères autour des mots de code. 30 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.4. CODES CORRECTEURS D’ERREURS 2.4 2.4.1 Codes correcteurs d’erreurs Définitions Après le rappel historique et la liste de quelques applications de la Section 1.1, nous avons tenté dans la Section 1.2, de donner une explication intuitive des mécanismes sous-tendant la théorie mathématique des codes. Nous rappelons ici les définitions fondamentales de cette théorie. Définition 21 Un code correcteur d’erreurs est une partie non-vide finie C d’un espace métrique. La distance minimale de C est la distance minimale entre deux mots de C. Le rayon d’empilement de C est le supremum des τ tels qu’aucune paire de boules fermées de rayon τ dont les centres sont des mots de C ne s’intersectent. On le note t(C). Le rayon de recouvrement de C est l’ infimum des ρ tels que l’ensemble des boules fermées de rayon ρ centrées en des mots de C recouvrent Y . On le note ρ(C). La situation typique et celle où C = cod(X), dans un canal de communications dont l’espace d’émission est X et dont l’espace de réception est un espace métrique (Y, d). Si un mot x a été émis et qu’une petite erreur est survenue, on aura reçu le mot y dans un voisinage de c = cod(x). Cet élément x est unique si y est à l’intérieur d’une cellule de Vorono ı̈ associée à C qui aura alors pour centre c. C’est a fortiori le cas si y est dans une boule de rayon t(C) centrée sur un mot c ∈ C. Dans cette perspective, il est donc souhaitable que l’empilement de sphères associé au code recouvre au maximum l’espace ambiant et, en particulier, que la distance minimale du code soit élevée. La situation est illustrée dans la Fig. 2.4. Par ailleurs, notons que le choix de la distance n’est vraiment satisfaisant quesi d cod(x), y est une fonction décroissante de la vraisemblance ϕ(y | x) du canal mais ce n’est pas toujours le cas en pratique car il est souvent plus facile de manipuler la distance alphabétique. de dimension n sur l’alDéfinition 22 Soit A un ensemble, l’espace de phabet A est l’ensemble X = An , muni de la distance de Hamming. Un code en blocs de n longueur n d’alphabet A sur A est un sous-ensemble non-vide C de A . On montre avec d−1 l’inégalité triangulaire que t(C) = 2 . Si M = |C| et q = |A| < ∞, il suffit d’une chaı̂ne de k = dlog q M e symboles de A pour caractériser un élément de C. L’entier k s’appelle la dimension de C. On dit que C est un (n, M ) q -code ou encore un [n, k]q -code. Un élément de C ayant n coordonnées, le rapport k/n est dans l’intervalle [0, 1] s’appelle naturellement le taux de transmission ou taux d’information du codage (ou du code). La longueur normalisée de C est le rationnel nq def = q−1 q n. Soit d = d(C), on appelle distance relative de C le rapport d/n qui est également dans l’intervalle [0, 1]. On dit aussi que C est un (n, M, d)q -code ou encore un [n, k, d]q -code. Les mots du code C poinçonné en i sont les mots c0 de longueur n − 1 dont les coordonnées sont obtenues à partir de celles d’un mot c de de C en enlevant la i-ième. Si A = Fq , on définit également le poids de tout x ∈ Fnq comme étant wt(x) def = d(x, 0) et le poids minimum de C comme étant le poids minimal d’un mot non-nul de C. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 31 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Vor(c1 ) Vor(c3 ) c1 c3 d c2 t c4 Vor(c2 ) Vor(c4 ) Fig. 2.4 – Cellules de Voronoı̈ et rayon d’empilement. Du fait que les rayons des boules sont des entiers, si la distance du code est d, ici atteinte entre c 3 et c4 , le rayon minimale et toute boule fermée de rayon t contient au plus un mot d’empilement est bien t = d−1 2 de C. Tout mot y dans Vor(ci ) est plus proche de ci que de tout autre mot de C. 2.4.2 Bornes supérieures sur les codes Le volume d’une boule fermée de rayon τ dans l’espace de Hamming F nq pour la mesure discrète est5 . τ X n , (q − 1)i volnq (τ ) = i i=0 et on peut en déduire la borne de Hamming sur le nombre de maximal M de mots que peut avoir un (n, M, d)q -code, i.e. M ≤ q n /volnq (d). Cette borne n’est pas très fine [van99, Figure 2, p. 78]6 dès lors qu’on n’a pas d n. Nous donnons maintenant une borne très adaptée au contexte des codes géométriques puisqu’on mesurera la « qualité » d’un tel code en le comparant à cette borne. Elle est atteinte par les codes de Reed-Solomon. Théorème 2 (Borne de ) Soit C un (n, M, d) q -code, et k = dlog q M e, alors d ≤ n − k + 1. Un code réalisant cette borne est dit Maximum Distance Separable (MDS). 5 On peut noter que l’espace de Hamming est homogène, c’est-à-dire que son groupe d’isométrie G˘agit def transitivement sur X, et garantit ¯ que le volume d’une boule ne dépend que de son rayon. Ici, G = σ ∈ S(X) | d(σ(x), σ(y)) = d(x, y) est constitué des bijections σ : X −→ X échangeant les colonnes des mots de X ou transformant un symbole en un autre, en une coordonnée donnée et son action est bien transitive puisque, pour tout x, x0 ∈ X, il existe σ ∈ G transformant x en x0 . 6 Les codes l’atteignant`sont dits parfaits et les seuls ´ [HT, Theorem 5.4, p. 1184] codes parfaits non-triviaux ont pour paramètres, soit (q m − 1)/(q − 1), q n−m , 3 q , comme les codes de Hamming, soit (23, 212 , 7)2 , comme le code de Golay binaire, soit (11, 36 , 5)3 , comme le code de Golay ternaire. 32 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.4. CODES CORRECTEURS D’ERREURS Démonstration: Soient c1 , c2 ∈ C et c01 , c02 deux mots obtenus en poinçonnant les d − 1 dernières positions de c1 et c2 , respectivement. Alors comme c1 et c2 diffèrent d’au moins d positions, on a c01 6= c02 . Par conséquent le code C 0 obtenu à partir de C en poinçonnant les d − 1 dernières coordonnées est de longueur n − d + 1 et contient M mots. Comme C 0 ⊆ An−d+1 et |A| = q, on a M ≤ q n−d+1 , d’où le résultat. Nous énonçons maintenant deux bornes liées au décodage en liste. La borne de Plotkin concerne le cas des codes de distance minimale extrême, la borne de Johnson, le cas typique. On trouvera des généralisations de cette dernière borne dans [Gur01]. Théorème 3 (Borne de normalisée. Si d > nq , alors ) Soit C un (n, M, d) q -code et nq = M≤ q−1 q n sa longueur 1 n . 1 − dq En particulier toute boule contient au plus un nombre constant de mots de code. Démonstration: Définissons : X S def = d(c, c0 ) . (c,c0 )∈C 2 Soit Fq = {α1 , . . . , αq } et pour 1 ≤ i ≤ q et 1 ≤ j ≤ n, soit mi,j le nombre de fois que la j-ième coordonnée d’un mot de C est αi , alors : S= n X X c0 dcjj = j=1 (c,c0 )∈C 2 = n X j=1 M2 − q n X X j=1 i=1 q X m2i,j i=1 mi,j (M − mi,j ) = nM 2 − q n X X (2.10) m2i,j . j=1 i=1 L’inégalité de Cauchy-Schwarz appliquée à m•,j = (m1,j , . . . , mq,j ) pour la norme `2 donne : 2 h1 | m•,j i = X q mi,j i=1 2 = M2 ≤ q q X m2i,j . i=1 2 2 On déduit de l’expression précédente et de l’équation (2.10) : S ≤ q−1 q nM = nq M . Comme, par ailleurs, les mots de C sont à distance au moins d les uns des autres, on a S ≥ M (M − 1)d. On a donc M (M − 1)d ≤ S ≤ nq M 2 , et d ≥ M (d − nq ). En divisant de part et d’autre par d − nq qui est strictement positif par hypothèse, on a le résultat. Théorème 4 (Borne de ) : Soit C un (n, M, d) q code et nq = q−1 q n sa longueur normalisée. Si d ≤ nq , alors toute boule de rayon τ ≤ nq θJoh (C) contient au plus bJoh (C, τ ) mots de C où : s ! d 1 def . et bJoh (C, τ ) def = θJoh (C) = 1 − 1 − τ τ nq −2 d 1+ Le réel θJoh (C) s’appelle le rayon relatif de Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) d nq normalisé. 33 CHAPITRE 2. CODES CORRECTEURS D’ERREURS Démonstration: Le code C 0 def = C − y est un (n, M, d)q -code. On peut donc supposer sans perte de généralité que y = 0. La boule B = BC,τ (0) est constituée des b mots de poids inférieur ou égal à τ . Soit Fq = {α1 = 0, α2 , . . . , αq } et soit mi,j le nombre de fois que la j-ième coordonnée d’un mot de B est αi , pour 1 ≤ i ≤ q et 1 ≤ j ≤ n, alors d’une part, b = m1,j + · · · + mq,j pour tout j ∈ {1, . . . , n}, et d’autre part pour tout i ∈ {1, . . . , q}, le nombre de total de zéros dans tous les mots de B est Z def = m1,1 + · · · + m1,n . En appliquant l’inégalité de Cauchy-Schwarz pour la norme `2 , on a d’une part : X 2 n n n X X Z2 , (2.11) Z2 = m1,j = h1 | m1,• i2 ≤ n m21,j , i.e. m21,j ≥ n j=1 j=1 j=1 et d’autre part, (b − m1,j )2 = q X i=2 d’où X q i=2 m2i,j ≥ q n X X S= X 1 ≥ q−1 X d(c, c0 ) = = h1 | m•,j i ≤ (q − 1) qZ 2 nb − 2Z + n 2 n X d(cj , c0j ) = q X m2i,j , i.e. : i=2 pour 1≤j≤n, d’après (2.11) . q n X X j=1 i=1 (c,c0 )∈B 2 j=1 (c,c0 )∈B 2 = 2 1 (b2 − 2bm1,j + m21,j ) , q−1 m2i,j j=1 i=2 Par conséquent : mi,j (2.12) mi,j (b − mi,j ) X q q q q n X n n X X X X X m2i,j m2i,j = nb2 − b2 − m2i,j = mi,j − b j=1 i=1 1 q−1 i=1 2 j=1 i=1 j=1 i=1 qZ d’après (2.12) , − 2bZ + nb2 n 1 q = P (Z) où P (x) = − x2 + 2bx + (q − 2)nb2 ∈ R[x] . q−1 n ≤ nb2 − Le polynôme P (x) atteint son maximum en Zopt = nb q . Donc P définit une fonction décroissante à droite de Zopt , et pour tout Z 0 ∈ [Zopt , Z], on a P (Z 0 ) ≥ P (Z) ≥ S. Comme chaque mot de B a au moins n − τ coordonnées nulles, on a Z ≥ Z 0 = b(n − τ ). Or par hypothèse, τ ≤ nq , donc, en outre, Z 0 ≥ Zopt ce qui implique P (Z 0 ) ≥ S, c’est-à-dire 1 q 2 S≤ − b (n − τ )2 + 2b2 (n − τ ) + (q − 2)nb2 q−1 n b2 q b2 q τ 2(q − 1) − τ = − (n − τ )2 + 2(n − τ ) + (q − 2)n = q−1 n q−1 n τ = b2 τ 2 − . nq De plus, compte-tenu du fait que les mots de B sont à distance au moins d les uns des autres, on sait que S ≥ b(b − 1)d et donc : 1 2 2 q b(b − 1)d ≤ S ≤ b τ 2(q − 1) − τ , q−1 n c’est-à-dire : 34 τ −2 ≤d, b d+τ nq ou encore bQ(τ ) ≤ dnq , (2.13) Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.4. CODES CORRECTEURS D’ERREURS avec Q(x) def = x2 − 2nq x + dnq ∈ R[x]. Ce polynôme a un discriminant réduit égal à nq (nq − d) qui est strictement positif par hypothèse. Par conséquent, il a deux racines réelles q q τl = nq − nq (nq − d) et τr = nq + nq (nq − d) > nq . Comme son coefficient dominant est positif, P (τ ) > 0 pour τ ≤ τl et en divisant de part et d’autre dans l’inégalité (2.13), on a le résultat. 2.4.3 Codes linéaires Définition 23 Un code C de longueur n et d’alphabet F q est linéaire ssi c’est un Fq -espace vectoriel. La dimension k de C en tant que F q -espace vectoriel est égale à la dimension de C en tant que code, c’est-à-dire qu’on a k = log q |C|. En d’autres termes, C est un [n, k] q -code. Une matrice génératrice de C est une matrice G de taille k × n à coefficients dans F q dont les lignes (ci,1 , . . . , ci,n ) constituent une base de C comme sous-espace vectoriel de F nq . On peut coder M = Fkq dans Fnq via la multiplication à droite d’un élément de F kq par G. Inversement, étant donné un vecteur c ∈ C, il existe un unique m ∈ M tel que mG = c. Un sous-ensemble J de k positions dans {1, . . . , n} telles que la sous-matrice dont les colonnes sont celles d’indices j dans G pour j ∈ J est de rang k s’appelle un ensemble d’information de C. Si d = d(C), on dit que c’est un [n, k, d] q -code et comme d(x, y) = wt(y −x), la distance minimale de C coı̈ncide avec son poids minimal. L’espace F nq est muni de la forme bilinéaire canonique : (x, y) 7−→ hx | yi = x1 y1 + · · · + xn yn et l’orthogonal C ⊥ de C pour cette forme bilinéaire s’appelle le dual de C. Une matrice génératrice de C ⊥ est de taille (n − k) × n et s’appelle une matrice de parité H de C. Elle caractérise les éléments de C par le fait que c tH = 0. Comme on l’avait déjà mentionné dans l’introduction, il suffit de connaı̂tre une matrice G contenant kn éléments de Fq pour caractériser un [n, k]q -code linéaire C à q k éléments. En outre, on pourra remarquer que le codage d’un message m ∈ M = F kq se fait par la multiplication de m par G qui ne requiert que O(kn) opérations arithmétiques dans F q . Pour illustrer notre propos, voici un code de la vie de tous les jours : il est utilisé pour éviter les erreurs de saisie de l’ISBN, numéro identifiant chaque livre publié dans le monde. Il détecte toute modification d’un symbole, ainsi que toute transposition mais ne permet pas de corriger les erreurs. Définition 24 (Code ISBN) Le code ISBN est l’ensemble des (a 1 , . . . , a10 ) ∈ F10 11 satisfaisant l’équation de parité a10 = a1 + 2a2 + · · · + 9a9 . C’est un [10, 9, 2]11 -code linéaire MDS comme on peut le voir dans la session Magma suivante. Il permet donc de numéroter 119 = 2 357 947 691 ouvrages (seulement ? !). On note F 11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X} et on note un mot (a1 , . . . , a10 ) sous la forme a1 -a2 a3 a4 -a5 a6 a7 a8 a9 -a10 . Par exemple l’ISBN de [van85] est 2-264-00696-X. > Dual(LinearCode(sub<V | V!([1,2,3,4,5,6,7,8,9,10])>)) where V is VectorSpace(GF(11),10); [10, 9, 2] Linear Code over GF(11) Generator matrix: [ 1 0 0 0 0 0 0 0 0 1] [ 0 1 0 0 0 0 0 0 0 2] [ 0 0 1 0 0 0 0 0 0 3] Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 35 CHAPITRE 2. CODES CORRECTEURS D’ERREURS [ [ [ [ [ [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 4] 5] 6] 7] 8] 9] Définition 25 Soit C un [n, k, d]qr -code linéaire, alors l’ensemble des mots de C dont toutes les coordonnées sont dans Fq est un [n, k 0 ≤ k, d0 ≥ d]q -code linéaire appelé sous-code de C dans le sous-corps Fq . Un exemple de tels codes sont les codes BCH qui sont les sous-codes dans le sous-corps premier des codes de Reed-Solomon, comme nous le verrons plus loin. 2.4.4 Bornes inférieures sur les codes On peut prévoir, dans une certaine mesure, une borne inférieure sur le nombre maximal M de mots qu’un (n, M, d)q -code peut avoir. Définition 26 Un (n, M, d)q -code C (resp. un [n, k, d]q -code) est maximal ssi il n’existe pas de (n, M + 1, d)q -code (resp. de [n, k + 1, d]q -code). Gilbert a montré la borne suivante en 1952 [Gil52]. Elle fut améliorée par Rom Varshamov en 1957 [Var57]. Les versions asymptotiques coı̈ncident. ) Il existe un Théorème 5 (Borne GV, de (n, M, d)n q -code (resp. n n un [n, k, d]q -code linéaire) avec M ≥ q /volq (d − 1) (resp. k ≥ n − logq volq (d − 1) ). En conséquence, pour tout δ ∈ [0, q−1 q ], il existe une suite (Cn )n∈N de [n, kn , dn ]n∈N -codes linéaires sur Fq tels qu’on ait simultanément : lim inf dn /n ≥ δ n−→∞ et lim sup kn /n ≥ 1 − Hq (δ) , n−→∞ : où Hq est la fonction d’entropie q-aire définie par H q (0) = 0 et pour tout δ ∈ 0, q−1 q Hq (δ) def = 1 logq volnq bδnc = δ logq (q − 1) − δ log q δ − (1 − δ) log q (1 − δ) . n−→∞ n lim En outre, les codes aléatoires de taux de transmission k/n fixe rencontrent la borne de GV avec probabilité 1 quand n −→ ∞. Démonstration: Étant donné n, d, q, il existe un (n, M, d)q -code C (resp. un [n, k, d]q -code C avec M = q k ) qui soit maximal. Soit x ∈ Fnq \ C, et Cx def = C t {x} (resp. Cx def = C ⊕ hxi). Comme C est maximal, d(Cx ) ≤ d − 1, c’est-à-dire qu’il existe c ∈ C tel que d(x, c) ≤ d − 1. En d’autres termes, tout x ∈ Fnq est contenu dans une boule de rayon d − 1 centrée en un mot de C. Ces boules recouvrent donc Fnq donc M · volnq (d − 1) ≥ q n . Dans le cas où C est linéaire, cela revient à dire que k ≥ n−logq volnq (d−1) . La preuve de la version asymptotique est directe. Un argument de comptage permet de conclure que les codes aléatoires rencontrent cette borne. Remarquons que l’algorithme de Monte-Carlo consistant à tirer un code aléatoire en espérant avoir un code de distance minimale élevée n’est pas Las-Vegas [vG99, p. 686] car le calcul de la distance minimale est NP-dur [Var97]. 36 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.5 Codes de 2.5.1 Définition 2.5. CODES DE REED-SOLOMON Un exemple de famille de codes linéaires très intéressante est, nous l’avons mentionné, celle des codes de Reed-Solomon. Ils sont MDS et bénéficient d’algorithmes de décodage très rapide. La définition que nous en donnons ici n’est pas exactement la définition historique mais nous la préférons à cette dernière pour sa ressemblance avec celle des codes géométriques. Comme les codes de Reed-Solomon seront définis sur des corps finis souvent non-premiers, nous rappelons la définition suivante : Définition 27 Soit Fq un corps fini, un élement ω est dit primitif 7 ssi c’est un générateur du groupe multiplicatif F?q qui est cyclique [Lan95, Theorem 5.3, p. 246]. Définition 28 Soit p = (p1 , . . . , pn ) un n-uplet constitué d’éléments de F q . On note evp : Fq [x] −→ Fnq l’application linéaire d’évaluation point par point : f 7−→ f (p1 ), . . . , f (pn ) . Soit k ∈ N et Lk le sous-espace vectoriel de dimension k de F q [x] constitué des polynômes de un code de la forme C = ev p (Lk ). degré inférieur à k. On appelle code de Si les pj sont distincts et que k < n, c’est un [n, k] q -code linéaire MDS. Le sous-code dans le sous-corps premier de Fq s’appelle un code de (BCH). Définition 29 Un code C ⊂ Fnq est cyclique ssi il est invariant par action des permutations cycliques sur les coordonnées. Avec les notations de la Définition 28, soit ω un élément primitif de Fq . Si pi = ω i pour i = 1, . . . , n = q − 1 alors les codes de RS sont cycliques ; il en est de même pour les codes BCH en résultant et ces derniers sont appelés codes CRC (Cyclic Redundancy Check)8 . Les symboles de l’alphabet d’un code de Reed-Solomon sont souvent représentées par une chaı̂ne binaire (e.g. une chaı̂ne de r bits si le code est défini sur F 2r ). Si une rafale de plusieurs erreurs se produisent dans cette chaı̂ne binaire, elle ne corrompt qu’une coordonnée de C, c’est pourquoi ces codes sont particulièrement appréciés dans des situations où les erreurs se produisent de cette manière. Exemple 6 La session Magma suivante construit un [17, 8, 10] 17 -code de Reed-Solomon sur F17 (qui est aussi un code BCH), selon notre définition. > Fq := GF(17); n := #Fq; p := Setseq(Set(Fq)); k := n div 2; > Fqx<x> := PolynomialRing(Fq); V := VectorSpace(Fq,n); > ev_p := map<Fqx -> V | f :-> V![Evaluate(f,p[j]) : j in [1 .. n]]>; > C := LinearCode(sub<V | [x^i : i in [0 .. k-1]]@ev_p>); C; [17, 8, 10] Cyclic Code over GF(17) Generator matrix: [ 1 0 0 0 0 0 0 0 16 9 15 16 10 7 1 2 8] [ 0 1 0 0 0 0 0 0 8 12 8 6 4 5 16 2 6] [ 0 0 1 0 0 0 0 0 6 5 7 14 14 13 16 4 5] 7 au sens des corps finis ; l’acception générale en théorie des nombres est différente : elle désigne dans ce cas, lorsqu’il existe, un générateur d’une extension algébrique. 8 Les codes CRC16 et CRC32, construits respectivement sur F216 et F232 sont couramment utilisés e.g. dans les modems ou les connexions Ethernet. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 37 CHAPITRE 2. CODES CORRECTEURS D’ERREURS [ 0 0 0 1 [ 0 0 0 0 [ 0 0 0 0 [ 0 0 0 0 [ 0 0 0 0 > d := n-k+1; true 2.5.2 0 0 0 0 5 12 15 12 15 1 0 0 0 15 6 8 13 15 0 1 0 0 5 4 16 13 14 0 0 1 0 6 2 16 5 4 0 0 0 1 8 2 1 7 10 d eq MinimumDistance(C); 13 8 6 15] 12 15 12 5] 14 7 5 6] 6 8 12 8] 16 15 9 16] Algorithme de décodage Nous tâchons ici d’expliquer l’idée sous-jacente, dans la perspective du décodage en liste. Étant donné un vecteur y ∈ Fnq , le principe de l’algorithme de décodage 9 pour trouver le mot c le plus proche est de chercher le polynôme f c ∈ Lk — dont l’évaluation sera c = fc (p1 ), . . . , fc (pn ) — comme la racine d’un polynôme G(T ) = a 1 (x)T + a0 (x) à coefficients dans Fq [x]. On peut remarquer que le fait que d(c, y) = τ signifie que f c (pj ) = yj pour n − τ valeurs de j. Supposons que, pour tout j, G(y j ) soit un polynôme de Fq [x] s’annulant en pj , alors G(fc ) est un polynôme Par ailleurs, pour tout de Fq [x] qui s’annule n − τ fois. polynôme f ∈ Lk , on a deg G(f) ≤ max (k − 1) + deg a1 , deg a0 . Soit m ∈ N∗ si G(T ) ∈ Lm ⊕ Lm−k+1 T , alors deg G(f ) ≤ m − 1 qui est donc un majorant du nombre des racines de G(f ). Si enfin n − τ ≥ m, alors G(fc ) est le polynôme nul : en d’autres termes, f c est racine de G dans Lk . Afin que la méthode fonctionne, encore faut-il qu’il existe un polynôme G(T ) = (a 0,0 x0 + · · · +a0,m−1xm−1 )+(a1,0 x0 +· · · +a1,m−k xm−k )T qui soit non-nul et qui satisfasse la propriété que G(yj ) (pj ) = 0 pour tout j. L’espace vectoriel L m ⊕Lm−k+1 T est de dimension 2m−k+1 et le fait que G(yj ) s’annule en pj pour tout j signifie que η ∈ lker M où : def η = a0,0 , . . . , a0,m−1 , a1,0 , . . . , a1,m−k et p01 .. . ··· .. . ··· ··· .. . m−1 p def M = 10 p1 y1 .. . m−k p1 y1 · · · p0n .. . pnm−1 p0n yn .. . pnm−k yn . (2.14) Donc si 2m − k + 1 > n, c’est-à-dire si m > n+k−1 , il existe un polynôme G(T ) non-nul 2 satisfaisant ces hypothèses. Le choix optimal pour m est donc m def = n+k−1 + 1, ce qui permet de recouvrer τ ≤ 2 = n − m erreurs et : τmax def n+k−1 n−k d−1 def τmax = n − −1= =t = . 2 2 2 Exemple 7 Le code C défini dans l’Exemple 6 contient 17 8 = 6 975 757 441 éléments. Le décodage par recherche exhaustive serait donc un peu long. Même si ce n’est pas la manière 9 38 qui peut être vu comme une traduction de ce qui se passe dans l’algorithme de Berlekamp Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.5. CODES DE REED-SOLOMON Algorithme 1 Décodage des codes de Reed-Solomon Entrée : Un vecteur y ∈ Fnq . Sortie : Une liste, soit vide si y est à distance supérieure à t de C, soit contenant un unique mot de code c ∈ C. L ← ∅; Construire la matrice M avec la formule (2.14) ; η ← n’importe quel élément du noyau de M ; a0 (x) ← η1 + · · · + ηm xm−1 ; a1 (x) ← ηm+1 + · · · + η2m−k+1 xm−k ; r ← le reste de la division de −a0 par a1 ; si r = 0 alors f ← −a0 /a1 ; c ← evp (f ) ; si d(c, y) ≤ t alors L ← {c} ; fin si fin si retourner L. la plus efficace pour décoder les codes de Reed-Solomon la méthode précédente est remarquablement rapide à programmer, puisque le décodage à proprement parler prend 6 lignes de Magma et est essentiellement instantané. > > ( > ( > ( > > > [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ t := (d-1) div 2; c := Random(C); c; 0 10 9 15 6 8 12 8 16 11 13 1 7 15 4 15 3) e := RandomVectorOfWeight(V,t); e; 0 0 0 0 0 0 13 6 4 15 0 0 0 0 0 0 0) y := c+e; y; 0 10 9 15 6 8 8 14 3 9 13 1 7 15 4 15 3) m := ((n+k-1) div 2)+1; M := Transpose(Matrix(Fq,n,2*m-k+1,&cat([[p[i]^j : j in [0 .. m-1]] cat \ [p[i]^j*y[i] : j in [0 .. m-k]]: i in [1 .. n]]))); M; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 0 1 4 9 16 8 2 15 13 13 15 2 8 16 9 4 1] 0 1 8 10 13 6 12 3 2 15 14 5 11 4 7 9 16] 0 1 16 13 1 13 4 4 16 16 4 4 13 1 13 16 1] 0 1 15 5 4 14 7 11 9 8 6 10 3 13 12 2 16] 0 1 13 15 16 2 8 9 4 4 9 8 2 16 15 13 1] 0 1 9 11 13 10 14 12 15 2 5 3 7 4 6 8 16] 0 1 1 16 1 16 16 16 1 1 16 16 16 1 16 1 1] 0 1 2 14 4 12 11 10 8 9 7 6 5 13 3 15 16] 0 1 4 8 16 9 15 2 13 13 2 15 9 16 8 4 1] 0 1 8 7 13 11 5 14 2 15 3 12 6 4 10 9 16] 0 1 16 4 1 4 13 13 16 16 13 13 4 1 4 16 1] 0 10 9 15 6 8 8 14 3 9 13 1 7 15 4 15 3] 0 10 1 11 7 6 14 13 7 13 11 11 16 8 5 4 14] 0 10 2 16 11 13 16 6 5 15 8 2 5 2 2 9 3] 0 10 4 14 10 14 11 8 6 16 12 5 9 9 11 16 14] 0 10 8 8 6 2 15 5 14 8 1 4 6 15 1 2 3] 0 10 16 7 7 10 5 1 10 4 10 10 4 8 14 13 14] Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 39 CHAPITRE 2. CODES CORRECTEURS D’ERREURS > time lker := Kernel(M); eta := Basis(lker)[1]; eta; Time: 0.000 ( 0 1 0 16 15 0 6 3 5 2 16 9 1 2 2 14 7 14 8) > a0 := &+[eta[i+1]*x^i : i in [0 .. m-1]]; a1 := &+[eta[i+m+1]*x^i : i in [0 .. m-k]]; > _,f := IsDivisibleBy(-a0,a1); cc := f@ev_p; cc; cc eq c; ( 0 10 9 15 6 8 12 8 16 11 13 1 7 15 4 15 3) true En fait, l’Algorithme 1 permet de décoder également les codes BCH jusqu’à leur rayon d’empilement construit, comme on peut le voir dans l’exemple suivant. Exemple 8 On fabrique le [16, 11, 6]16 -code de Reed-Solomon dont on déduit le [16, 7, 6] 2 code BCH. La distance vraie est ici la même que la distance construite (ce qui n’est pas toujours le cas pour les codes BCH). La variable w désigne un élément primitif de F 24 . > Fqr<w> := GF(2^4); n := #Fqr; p := Setseq(Set(Fqr)); k := 11; > Fqrx<x> := PolynomialRing(Fqr); Fqrn := VectorSpace(Fqr,n); > ev_p := map<Fqrx -> Fqrn | f :-> Fqrn![Evaluate(f,p[j]) : j in [1 .. > CC := LinearCode(sub<Fqrn | [x^i : i in [0 .. k-1]]@ev_p>); CC; [16, 11] Linear Code over GF(2^4) Generator matrix: [ 1 0 0 0 0 0 0 0 0 0 0 w^10 w^3 w^6 [ 0 1 0 0 0 0 0 0 0 0 0 w^8 w^8 w^7 [ 0 0 1 0 0 0 0 0 0 0 0 w^11 w^5 w^11 [ 0 0 0 1 0 0 0 0 0 0 0 w^11 w^13 w^13 [ 0 0 0 0 1 0 0 0 0 0 0 w^5 w^4 w^12 [ 0 0 0 0 0 1 0 0 0 0 0 w^13 w^9 w^14 [ 0 0 0 0 0 0 1 0 0 0 0 w^8 w^12 w^14 [ 0 0 0 0 0 0 0 1 0 0 0 w^5 w^3 w^13 [ 0 0 0 0 0 0 0 0 1 0 0 w w^6 w^10 [ 0 0 0 0 0 0 0 0 0 1 0 w^6 w^7 w^3 [ 0 0 0 0 0 0 0 0 0 0 1 w^8 w^11 w^3 > Fq := GF(2); > C := SubfieldSubcode(CC,Fq); C; [16, 7, 6] Linear Code over GF(2) Generator matrix: [1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1] [0 1 0 0 0 0 0 1 1 0 0 1 1 1 0 0] [0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 0] [0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1] [0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1] [0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1] [0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 1] > d := MinimumDistance(C); d; d eq n-k+1; // Designed distance equals 6 true > t := (d-1) div 2; // True packing radius > c := Random(C); c; (0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1) > e := RandomVectorOfWeight(AmbientSpace(C),t); e; (0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0) > y := c+e; y; (0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1) > m := ((n+k-1) div 2)+1; > M := Transpose(Matrix(Fqr,n,2*m-k+1,&cat([[p[i]^j : j in [0 .. m-1]] > [p[i]^j*y[i] : j in [0 .. m-k]]: i in [1 .. n]]))); M; 40 n]]>; w^13 w^12] w w^3] w w^8] w^10 w^3] w^3 w^4] w^13 w] w^10 w^8] w^6 w^11] w^11 w^5] w^13 w^4] w^5 w^2] true distance cat \ Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 2.5. CODES DE REED-SOLOMON [ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 [ 1 w w^2 w^3 w^4 w^5 w^6 w^7 w^8 w^9 w^10 w^11 w^12 w^13 [ 1 w^2 w^4 w^6 w^8 w^10 w^12 w^14 w w^3 w^5 w^7 w^9 w^11 [ 1 w^3 w^6 w^9 w^12 1 w^3 w^6 w^9 w^12 1 w^3 w^6 w^9 [ 1 w^4 w^8 w^12 w w^5 w^9 w^13 w^2 w^6 w^10 w^14 w^3 w^7 [ 1 w^5 w^10 1 w^5 w^10 1 w^5 w^10 1 w^5 w^10 1 w^5 [ 1 w^6 w^12 w^3 w^9 1 w^6 w^12 w^3 w^9 1 w^6 w^12 w^3 [ 1 w^7 w^14 w^6 w^13 w^5 w^12 w^4 w^11 w^3 w^10 w^2 w^9 w [ 1 w^8 w w^9 w^2 w^10 w^3 w^11 w^4 w^12 w^5 w^13 w^6 w^14 [ 1 w^9 w^3 w^12 w^6 1 w^9 w^3 w^12 w^6 1 w^9 w^3 w^12 [ 1 w^10 w^5 1 w^10 w^5 1 w^10 w^5 1 w^10 w^5 1 w^10 [ 1 w^11 w^7 w^3 w^14 w^10 w^6 w^2 w^13 w^9 w^5 w w^12 w^8 [ 1 w^12 w^9 w^6 w^3 1 w^12 w^9 w^6 w^3 1 w^12 w^9 w^6 [ 1 w^13 w^11 w^9 w^7 w^5 w^3 w w^14 w^12 w^10 w^8 w^6 w^4 [ 0 0 1 1 0 0 0 0 0 1 1 1 0 1 [ 0 0 w^2 w^3 0 0 0 0 0 w^9 w^10 w^11 0 w^13 [ 0 0 w^4 w^6 0 0 0 0 0 w^3 w^5 w^7 0 w^11 [ 0 0 w^6 w^9 0 0 0 0 0 w^12 1 w^3 0 w^9 > time lker := Kernel(M); eta := Basis(lker)[1]; eta; Time: 0.000 ( 1 0 w^3 w^11 w^2 w^14 w^12 1 w^3 w^9 w^6 w^9 0 0 > a0 := &+[eta[i+1]*x^i : i in [0 .. m-1]]; a1 := &+[eta[i+m+1]*x^i : > _,f := IsDivisibleBy(-a0,a1); cc := f@ev_p; cc; cc eq c; ( 0 0 1 0 1 0 0 0 0 1 1 1 0 1 true 1 w^14 w^13 w^12 w^11 w^10 w^9 w^8 w^7 w^6 w^5 w^4 w^3 w^2 1 w^14 w^13 w^12 1] 0] 0] 0] 0] 0] 0] 0] 0] 0] 0] 0] 0] 0] 1] 0] 0] 0] 1 w^6 w^3 w^6) i in [0 .. m-k]]; 1 1) Ajoutons que l’« astuce de Retter » [Ret75], permet de décoder avec cette méthode n’importe quel code de Reed-Solomon généralisé (GRS) (et donc n’importe quel code alternant jusqu’à la distance construite). Nous ne la décrirons pas car le cadre géométrique recouvre cette situation. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 41 CHAPITRE 2. CODES CORRECTEURS D’ERREURS 42 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 3 Codes géométriques 3.1 Motivation L’idée fondamentale qui justifie l’introduction de la géométrie algébrique dans le contexte des codes correcteurs d’erreurs est le fait que la notion de distance de Hamming (et a fortiori de λ-distance) n’est pas algébrique et par conséquent pas exploitable algorithmiquement. La géométrie algébrique apporte une réponse tout à fait remarquable du fait qu’elle permet de disposer de distances, qui elles, sont algébriques : les distances I-adiques. Si les codes de Reed-Solomon semblent donner satisfaction du point de vue du décodage, c’est, d’ailleurs, parce que le mécanisme sous-tendant leur décodage consiste en l’exploitation des distances Iadiques (bien qu’on ne le mentionne pas en général). Cependant les codes de Reed-Solomon souffrent d’un inconvénient majeur : leur longueur est majorée par la taille du corps fini sur lequel ils sont définis. C’est pourquoi, on ne peut pas véritablement parler de « famille asymptotique » de codes de Reed-Solomon. Les théoriciens des codes s’intéressent plutôt à des familles de codes définies sur un alphabet fixé (binaire par exemple), et dont la longueur devient arbitrairement longue à taux de transmission fixé. Ce n’est que de cette manière que la théorie de l’information classique a un sens. On fabrique souvent de tels codes en prenant le sous-code dans un sous-corps mais c’est une opération qui peut être assez traumatisante pour la structure algébrique du sous-code. On peut, en revanche, construire des familles de codes géométriques de longueur arbitraire sur des corps fixés. Leurs qualités seront fonctions du nombre de points Fq -rationnels et du genre g des courbes sur lesquelles ils seront définis. Plus précisément, ces codes seront « MDS, au genre près », c’est-à-dire des [n, k, d] q -codes avec d ≥ n − k + 1 − g. Il s’agira donc de trouver un compromis satisfaisant entre le nombre de points de la courbe et son genre. 3.2 Petit rappel d’algèbre locale Les problèmes dont il est question ici sont traités en détail dans, par exemple [Mal84, Chapitre 10, pp. 139–161]. 3.2.1 Anneaux locaux Le concept d’anneau local est un des éléments de base de la géométrie algébrique moderne. Par exemple, nous verrons plus loin comment on pourra associer à tout point d’une courbe, un Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 43 CHAPITRE 3. CODES GÉOMÉTRIQUES anneau local. D’une manière générale, étant donné un anneau A et un idéal I (souvent premier, voire maximal), on peut définir une une fonction dite « d’ordre I-adique » v : A −→ N, qui mesure la multiplicité avec laquelle un élément de A appartient à l’idéal I. Par exemple, si A = k[x] et I = hx2 (x−1)i, la plus grande puissance de x 2 (x−1) divisant un élément f ∈ A est l’ordre I-adique v(f ) de f . Les puissances de I satisfont les axiomes d’une base de voisinages de 0 et on construit à l’aide de ceux-là, une topologie, dite « I-adique » faisant de A un anneau topologique. Cette topologie est associée à une semi-distance — construite à l’aide de la fonction d’ordre v : pour tout f, g ∈ A, d(f, g) = e−v(f −g) — qui est même une distance ultramétrique si, en outre, l’intersection des puissances de I est réduite à l’idéal nul (on dit que « la filtration I-adique est séparée »), ce qui garantit la séparation de la topologie. Dans le cas où A est noethérien, ce que nous supposerons toujours ici, la séparation aura lieu si I est contenu dans le radical de Jacobson (= intersection des idéaux maximaux) de A [Mal84, p. 143]. L’exemple le plus simple d’une telle situation est celui d’un anneau local A (i.e. un anneau n’ayant qu’un idéal maximal), d’idéal maximal m, muni de la filtration m-adique. C’est le cas par exemple de la localisation A = k[x] hxi de l’anneau des polynômes en x à coefficients b (au sens des dans un corps k en l’idéal hxi. Dès lors, on peut construire une complétion A suites de Cauchy) de A pour la distance m-adique et on montre qu’on a l’isomorphisme b ' lim A/mn . Une complétion de A = k[x]hxi est l’anneau des séries de Taylor A b = k[[x]]. A ←−n Ainsi dans un anneau A complet (i.e. tel que l’application naturelle A −→ lim n A/mn ←− — qui n’est en général même pas un homomorphisme d’anneaux — soit un isomorphisme) et dans certaines conditions, comme celles du Lemme de Hensel 1 , on pourra relever une égalité à travers le système projectif défini par les A/m n . Dans le cas du lemme de Hensel, il b à partir d’approximation de ces racines s’agira de trouver les racines d’un polynôme dans A modulo m, en raffinant l’approximation, successivement dans A/m 2 , A/m4 , . . . 3.2.2 Anneaux de valuation discrète Une situation toute particulière apparaı̂t quand A est un anneau local intègre de dimension 1 (la dimension de A est le supremum de la longueur d’une chaı̂ne d’idéaux premiers de A), ce qui est en particulier le cas des anneaux locaux de courbes algébriques. En effet dans ce cas, on a équivalence entre les conditions suivantes : • A est régulier (c’est à dire que m est engendré par dim A élements, appelés paramètres réguliers). Dans la terminologie géométrique, cela signifiera que que le « point fermé associé à m est régulier (on dit aussi non-singulier) »). En dimension 1, cela signifie simplement que m = hπi est principal. • A est normal (= intégralement clos). • dimK m/m2 = 1, où K est le corps résiduel A/m (Dans le cas des courbes, cela signifie que le « point fermé associé à m est lisse »). • la fonction d’ordre m-adique v : A −→ N se prolonge naturellement en un homomorphisme surjectif de groupes v : K ? −→ Z, où K = Frac A qui devient par là même une valuation discrète normalisée dont A = f ∈ K | v(f ) ≥ 0 est l’anneau de valuation. L’équivalence précédente (et le fait que la localisation commute avec la normalisation) montre que le problème de désingularisation en dimension 1 équivaut à un problème de normalisation qui a l’avantage d’être résoluble canoniquement (la normalisation est un objet 1 44 Dans ce cas, on peut en fait se contenter de supposer que A est henselien [Eis95, p. 184]. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.2. PETIT RAPPEL D’ALGÈBRE LOCALE universel). D’un point de vue algorithmique, on se reportera à la Section 3.5 pour une description de la méthode de désingularisation des courbes que nous avons implantée avec Pawel Wocjan. Nous allons maintenant rappeler quelques notions sur les anneaux de valuation discrètes. Définition 30 Soit Ξ un sous-groupe du groupe additif R, une valuation sur un corps K, de groupe des valeurs Ξ est un homomorphisme surjectif de groupes v : K ? −→ Ξ, prolongé par v(0) = +∞, où +∞ est supérieur à tout élémént de Ξ et est absorbant ( i.e. ξ + ∞ = +∞ pour ξ ∈ Ξ), et satisfaisant l’inégalité v(x + y) ≥ min(v(x), v(y)) pour tout x, y ∈ K. On dit que v est dite discrète ssi Ξ est un sous-groupe discret de R ; si Ξ = {0}, la valuation est dite triviale, sinon, Ξ a un plus petit élément non-nul m et est de la forme Ξ = mZ ; on appelle uniformisante de v, un élément de valuation m. Si m = 1, la valuation est dite normalisée (ce que l’on supposera toujours, sans perte de généralité). Si v n’est pas discrète, Ξ est dense dans R et v est dite dense. L’anneau A def = {f ∈ K | v(f ) ≥ 0} s’appelle l’anneau de valuation de v. C’est un anneau local d’idéal maximal m def = {f ∈ K | v(f ) > 0} appelé l’idéal de valuation de v. ? On montre que A = {f ∈ K | v(f ) = 0} qui s’appelle le groupe des unités de v. Enfin, le corps résiduel de v est K def = A/m. Un anneau de valuation est un anneau intègre A tel que K = Frac A admet une valuation non-triviale v dont A est l’anneau de valuation. La valuation v d’un anneau de valuation discrète A d’idéal maximal m est, en fait, sa fonction d’ordre m-adique. Puisque les inversibles de A sont de valuation nulle, on voit qu’on peut prolonger v à K en posant que pour tout f = g/h avec g, h ∈ A et h 6= 0, v(f ) def = v(g) − b de K pour cette topologie est également un corps discrètement valué v(h). Le complété K b qui est le complété m-adique (muni d’une valuation discrète) v̂ prolongeant v, d’anneau local A b d’idéal maximal m̂ = mA b et de corps résiduel K ' A/ b m̂ ' A/m. de A dans K, Exemple 9 Soit k un corps commutatif, A 0 = k[x]. L’idéal m0 = hxi de A0 est maximal et la fonction d’ordre m0 -adique de k[x] est la fonction v : k[x] \ {0} −→ N qui à tout polynôme non-nul f (x) associe le plus bas degré des monômes apparaissant dans f ; elle se prolonge sur K ? — où K = Frac A0 = k(x) — en un homomorphisme surjectif de groupes à valeurs dans Z en faisant correspondre à toute fonction rationnelle f = g/h avec h 6= 0, l’entier relatif v(f ) = v(g) − v(h). L’homomorphisme v satisfait aux axiomes des valuations discrètes et son anneau de valuation est l’anneau local A = k[x] hxi ' {f = g/h , g, h ∈ k[x] | v(h) = 0}. L’idéal maximal de A est m = {f ∈ A | v(f ) > 0} et son corps résiduel est isomorphe à k. b = k[[x]] et celle de K La complétion m-adique de A est l’anneau des séries de Taylor A b = k((x)). L’application qui à toute série de Laurent est le corps des séries de Laurent K non-nulle associe le degré du plus petit monôme apparaissant dans son développement est bien une valuation discrète prolongeant celle définie sur K. L’exemple précédent représente la situation typique des anneaux de valuation discrète, dans lesquels on montre qu’étant donnée une uniformisante π de v, pour tout élément f ∈ K, il existe un unique u ∈ A? tel que f = uπ v(f ) . Soit R un système de représentants dans A des éléments de K, on en déduit que tout élément f ∈ K (resp. f ∈ A) peut s’écrire de manière unique sous la forme de l’évaluation d’une série de Laurent (resp. de Taylor) à coefficients dans R : ∞ X αn π n , f= n=v(f ) Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 45 CHAPITRE 3. CODES GÉOMÉTRIQUES b (resp. A) b est en bijection avec l’ensemble de qui converge pour la topologie m-adique et K telles séries de Laurent (resp. de Taylor). Cependant, d’une manière générale, R n’est pas un sous-anneau de A et les opérations sur ces séries de Laurent ne se font pas par composantes homogènes, mais dans le cas particulier où il existe un homomorphisme injectif 2 b −→ K[[t]] définie par : K −→ A, soit ϕ la projection canonique A −→ A/m, l’application ψ : A f= ∞ X n=v(f ) αn π n 7−→ ∞ X ϕ(αn )tn (3.1) n=v(f ) b sur K((t)). C’est cet est un isomorphisme d’anneaux qui se prolonge naturellement de K isomorphisme qui est la base des méthodes π-adiques utilisées dans la troisième partie de cette thèse. Nous donnons maintenant quelques définitions pratiques que nous utiliserons dans la description de la méthode de Newton-Puiseux. Afin d’alléger l’écriture, nous supposerons que le choix d’une uniformisante π conditionnera également un choix de représentants R de K dans A. Définition 31 Soit A un anneau de valuation discrète, de valuation v, et π une uniformisante de A. Soit ∞ X αn π n f= n=v(f ) le développement en série π-adique de f , on appelle forme initiale de f 6= 0 et coefficient initial les éléments if π (f ) def = αv(f ) π v(f ) et icπ (f ) def = αv(f ) , respectivement. On convient que if π (0) = 0 et que ic(0) = 0. 3.3 3.3.1 Courbes algébriques et leurs représentations effectives Introduction Lorsque l’on pratique la géométrie algébrique, on se trouve face à une succession de choix terminologiques qui, si ils conduisent à la construction d’objets équivalents sur le plan abstrait, n’ont pas du tout la même implication en ce qui concerne la réalisation concrète de ces objets. Nous présentons ici les trois choix les plus fréquents. Premièrement, nous définissons la notion de courbe sur un corps algébriquement clos, puis nous enchaı̂nons sur le formalisme des corps de fonctions, enfin nous évoquons la terminologie schématique. 3.3.2 Courbes sur un corps algébriquement clos Le premier objet géométrique dont nous avons besoin est une courbe algébrique. Il en existe essentiellement deux types : les courbes affines et les courbes projectives. Bien que plus simples à définir, une propriété cruciale (la complétude, équivalent en géométrie algébrique de la notion de compacité) fait défaut aux premières et justifie la définition des secondes qui seules permettront de disposer d’une Théorie de Riemann-Roch non-triviale. Nous introduisons dans un premier temps ces objets selon la définition la plus courante, comme celle donnée par exemple dans [van99, Chapter 10, pp. 148–167]. 2 ce sera le cas quand on prendra A = OX,p l’anneau local d’un point de degré 1 d’une courbe définie sur un corps k dont le corps résiduel K sera isomorphe à k. 46 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.3. COURBES ALGÉBRIQUES ET LEURS REPRÉSENTATIONS EFFECTIVES Définition 32 Soit k un corps algébriquement clos. Étant donné I, un idéal3 radical4 de l’anneau k[x1 , . . . , xn ], on note A = k[x1 , . . . , xn ]/I. La variété affine notée Spec A est l’ensemble X des points a ∈ k n tels que f (a) = 0 pour tout f ∈ I. Si A = k[x 1 , . . . , xn ], la variété X = Spec A s’appelle l’espace affine de dimension n sur k et on le note A nk , voire An . Soit H un idéal homogène5 radical de k[x0 , . . . , xn ], on note S l’anneau gradué des polynômes homogènes de k[x0 , . . . , xn ] modulo H. La variété projective notée Proj S est l’ensemble X des points de k n+1 \ {0} annulés par tous les polynômes de H, quotienté par la relation d’équivalence de k-colinéarité. Si S est l’anneau gradué des polynômes homogènes, la variété X = Proj S s’appelle l’espace projectif de dimension n sur k et on le note Pnk , voire Pn . Avec les notations ci-dessus, si H est obtenu comme idéal homogène engendré par homogénéisation d’un système générateur de I par rapport à l’indéterminée x 0 , on dit que Proj S est la projectivisation de Spec A et que Spec A est la projection affine de Proj S par rapport à l’indéterminée 6 x0 . Les points de l’intersection de Proj S avec l’hyperplan x0 = 0 s’appellent les points à l’infini de Spec A. Si A (resp. S) est intègre alors X est dite (géométriquement) irréductible et son corps de fonctions est le corps K = Frac A (resp. le corps K des quotients d’élements de S de même degré à dénominateurs non-nuls). On le note K(X). Soit p ∈ X, l’anneau local de X en p est l’anneau O X,p des fonctions f = g/h ∈ K telles que h(p) 6= 0. On dit que X est normale (resp. non-singulière) ssi OX,p est normal (resp. régulier) pour tout p. Soit k un sous-corps de k, la variété X est définie sur k (on dit que c’est une k-variété) ssi il existe une base de polynômes de leur idéal de définition à coefficients dans k. Un point d’une variété affine (resp. projective) X définie sur k est k-rationnel7 ssi toutes ses coordonnées (resp. il existe un représentant dans sa classe de k-colinéarité dont toutes les coordonnées) sont dans k. On note X(k) l’ensemble des points k-rationnels de X. Deux k-variétés géométriquement irréductibles sont (birationellement) équivalentes ssi leurs corps de fonctions sont des k-algèbres isomorphes. Le degré de transcendance de K sur k s’appelle la dimension de X, notée dim X. Si dim X = 1, on dit que X est une courbe. Dans la pratique, ce qui est important est la structure de k-variété plutôt que la structure de variété sur la clôture algébrique k de k et bien que la Définition 32 soit relativement simple, elle recèle de nombreux problèmes concrets. Une première remarque est que la construction cidessus n’est pas canonique. Dans le cas où X est définie sur un corps fini k = F q en particulier, si ses clôtures algébriques de Fq sont isomorphes, elles ne sont pas canoniquement isomorphe et pour cause : il n’y a pas de corps fini à q éléments canonique 8 . La représentation des points non rationnels — et donc des diviseurs (cf. infra) — posera par conséquent problème. 3.3.3 Modèles plans sur un corps algébriquement clos 3 engendré par un nombre˘ fini d’éléments car k[x1 , ´. . . , xn ] est noethérien. ˛ c’est-à-dire tel que I = f ∈ I ˛ (∃r ∈ N | f r ∈ I } ; le Nullstellensatz de Hilbert garantit la correspondance bijective de tels idéaux avec les variétés affines. 5 engendré par des polynômes tous de même degré 6 On peut également déshomogénéiser par rapport à une autre indéterminée. En fait, à toute courbe projective, on peut faire correspondre naturellement n + 1 courbes affines. Leur projectivisation peut être vue comme une opération de « recollement ». 7 La terminologie vient du fait que souvent k = C et k = Q. 8 On peut tout au mieux préserver la commutativité des diagrammes d’inclusion d’une famille de corps fini de tailles compatibles en utilisant des polynômes de Conway, comme cela est fait en Magma [BCS97]. 4 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 47 CHAPITRE 3. CODES GÉOMÉTRIQUES Si une courbe est définie sur un corps parfait 9 , on déduit du Théorème de l’élément primitif qu’il existe toujours une courbe plane (i.e. incluse dans P2 ) X qui lui soit birationnellement équivalente : c’est un modèle plan de la courbe. Cette courbe peut être représentée par un polynôme à deux indéterminées (ou un polynôme homogène à trois indéterminées dans le cas projectif). Cependant une courbe plane définie sur F q ne contient qu’au 3 −1 = 1+q +q 2 points rationnels ce qui serait très plus |P2 (Fq )| = qq−1 limitant dans la perspective des codes géométriques si nous devions nous en contenter, alors que nous avons besoin de courbes définies sur un corps fini Fq fixé possédant un nombre arbitrairement grand de points rationnels. On verra plus loin qu’on peut néanmoins utiliser ce modèle plan comme structure de base en procédant à Fig. 3.1 – Source [McT] une désingularisation. Benrhard Riemann (1826–1866) 3.3.4 Corps de fonctions Du fait de l’existence d’un modèle plan, le corps de fonction d’une courbe sur un corps parfait k (que l’on supposera algébriquement fermé [Sti93, p. 1] dans K) est toujours isomorphe à un corps K = k(x)[y]/hF (y)i où F (y) est un polynôme irréductible à coefficients dans le corps des fonctions rationnelles k(x). C’est d’ailleurs la terminologie adoptée par Henning Stichtenoth [Sti93] pour décrire les codes géométriques et pour donner, en collaboration avec Arnaldo Garcia, une construction plus simple [GS95], à base de tour d’extensions d’ArtinSchreier10 , d’une famille de codes géométriques de performances comparables à celle de Tsfasman, Vlǎduţ et Zink. Définition 33 Soit K un corps, une valeur absolue sur K est un homomorphisme de groupes multiplicatifs | | : K ? −→ R∗+ , prolongé par |0| = 0, tel qu’il existe c > 0 vérifiant que pour tout f, g ∈ K, |f + g| ≤ c max |f |, |g| . L’ infimum des c pour lesquels cette condition est vraie est la normede | |. Soit c la norme de | |. La valeur absolue | | est dite archimédienne ssi c > 1, sinon |n · 1| : n ∈ Z est borné et elle est dite non-archimédienne. Si |K| = {0, 1}, la valeur absolue est triviale, sinon la famille des {f ∈ K | |f | < ε} pour ε > 0 vérifie les axiomes d’une base de voisinages de 0 et définit une topologie séparée métrisable (il suffit de prendre d(f, g) def = |f − g|s avec cs ≤ 2, e.g. s = log c 2) pour laquelle | | est uniformément continue et qui fait de K un corps topologique. Une valeur absolue | | 0 est équivalente ssi elle définit la même topologie 11 . Une place de K est une telle topologie. Proposition 4 Soit v une valuation sur un corps K, pour tout α > 1 l’application définie par x 7−→ α−v(x) est une valeur absolue non-archimédienne dite associée à v. Inversement, 9 C’est-à-dire tel que toute extension algébrique est séparable (i.e. engendrée par des éléments dont le polynôme minimal n’a que des racines simples dans son corps de décomposition). C’est toujours vrai en caractéristique nulle. En caractéristique p, cela équivaut au fait que tout élément du corps admette une racines p-ième. C’est le cas des corps finis, mais pas, par exemple du corps des séries de Laurent sur un corps fini. 10 Noam Elkies a montré [Elk97] que cette construction pouvait aussi être vue comme provenant de courbes modulaires, comme celle de Tsfasman, Vlǎduţ et Zink. 11 auquel cas on a | |0 = | |t avec t > 0 ([Mal84, Proposition 1.13, p. 194]), ce qui montre que le caractère archimédien ne dépend, d’une part, que de la classe d’équivalence d’une valeur absolue et, d’autre part, que de sa restriction au sous-corps premier de K : en particulier un corps de caractéristique positive n’a que des valeurs absolues non-archimédiennes. 48 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.3. COURBES ALGÉBRIQUES ET LEURS REPRÉSENTATIONS EFFECTIVES soit | | une valeur absolue non-archimédienne de K, pour tout α > 1, l’application x 7−→ − logα |x| est une valuation de K. Cette application induit une bijection entre les classes d’équivalence de valuations et les places de K. Définition 34 Soit k un corps commutatif, un corps de fonctions à une variable sur k est une extension algébrique finie de k(x) où x est un élément transcendant sur k et k est algébriquement fermé dans K. Les places de K sont les topologies m-adiques où m est l’idéal de valuation d’une valuation discrète v sur K. Son degré est l’entier [K : k] où K est le corps résiduel de v. L’un des intérêts de travailler sur le corps de fonctions de la courbe plutôt que sur la courbe elle-même est que l’on peut adapter les techniques développées en Théorie algorithmique des nombres du fait qu’à l’instar des corps de nombres, les corps de fonctions de courbes sur les corps finis sont également des corps globaux. Les algorithmes de normalisation de Zassenhaus Round 2 et Round 4 ont été adaptés à la situation des corps de fonctions et implantés en Magma par Florian Hess12 [Hes99, Hes01]. 3.3.5 Terminologie schématique L’approche schématique [Gro61], quoique considérablement plus difficile d’accès, a l’avantage de définir les objets de manière beaucoup plus proche de celle dont ils seront représentés algorithmiquement. Elle préserve également l’intuition géométrique qui disparaı̂t presque totalement si l’on ne travaille qu’avec le formalisme des corps de fonctions. Qui plus est, elle est remarquablement flexible et permet d’aborder des généralisations parfaitement légitimes, comme les codes géométriques construits sur une courbe sur un anneau introduits par Judy Walker [Wal96] qui ouvrent de nouveaux horizons dans la structuration de codes nonlinéaires via une représentation géométrique [Wal97], en généralisant la méthode employée dans le célèbre article [HKC+ 94] de Roger Hammons, Vijay Kumar, Robert Calderbank, Neil Sloane et Patrick Solé sur la Z/4Z-linéarité de codes non-linéaires bien connus. Enfin, c’est grâce à cette théorie que les codes modulaires ([TV91, Part 4]) ont été exhibés et que, pour la première fois, la borne de Gilbert-Varshamov a été dépassée [TVZ82]. Dans la terminologie schématique, on définit une courbe de la manière suivante. Définition 35 Soit k est un corps commutatif, une k-variété est un k-schéma [Har93, p. 74] non-vide, de type fini [Har93, p. 84], séparé [Har93, p. 96], géométriquement réduit [Har93, p. 79 et p. 93]. Lorsque sa dimension relative [Har93, p. 268] est 1, on dit que X est une courbe. À tout point p ∈ X est associé un idéal premier p ; si cet idéal est maximal, le point p est dit fermé13 . 12 Une généralisation de ces algorithmes a été proposée par Emmanuel Halloin [Hal98] et implantée en Axiom. 13 Les idéaux p dont il est question sont munis de la topologie de Zariski dont les fermés sont de la forme p̄ = {q premier | q ⊇ p}. Par conséquent p est fermé ssi il est maximal. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 49 CHAPITRE 3. CODES GÉOMÉTRIQUES Selon la Def. 32 Courbe X ⊂ Pnk définie sur k Orbite d’un point sous Gal(k/k) Orbite d’un point sous Gal(kd /k) Selon la Def. 33 La k-algèbre K = K(X) Place Place de degré d Selon la Def. 35 Courbe X sur k Point fermé Point de degré d Tab. 3.1 – Correspondance entre définitions courbes et corps de fonctions. Le corps k est un sous-corps du corps k qui est algébriquement clos. Le corps k d est une extension de degré d de k incluse dans k. 3.4 3.4.1 Désingularisation Introduction Un paramètre clé des courbes auxquelles nous nous intéresserons est son genre (géométrique) (cf. Définition 39, p. 56) qui est invariant par équivalence birationnelle et peut être défini intrinsèquement à partir de son corps de fonctions. Dans la perspective de la construction de codes géométriques, comme nous l’avons souligné à plusieurs reprises, nous tâcherons de trouver des courbes définies sur un corps F q fixé, et possédant simultanément un genre le plus petit possible et un nombre de points F q -rationnels le plus grand possible. Il est possible de construire de telles courbes à partir d’une courbe plane singulière. C’est pourquoi nous introduisons la définition suivante. Définition 36 On appelle désingularisée d’une variété X géométriquement irréductible e définie sur k qui lui soit équivalente. Le kdéfinie sur k, une variété non-singulière X e −→ X et pour isomorphisme entre leurs corps de fonctions induit une application ϕ : X −1 tout point p ∈ X, un point P ∈ ϕ (p) est dit au dessus de p, et on note P |p. e existe toujours. En effet, Dans le cas des courbes, on peut montrer qu’une désingularisée X nor pour toute k-courbe X, il existe une k-courbe X normale qui lui soit équivalente [Har93, Exercice 3.8, p. 91], cette courbe est universelle et s’appelle la normalisée de X. On a vu dans la Section 3.2.2 qu’être normal et régulier en dimension 1 sont des notions équivalentes. Comme la localisation commute avec la normalisation [Eis95, 4.2, pp. 125–127], la normalisée X nor est non-singulière et équivalente 14 à X. En outre, elle possède le nombre maximal de points rationnels dans la classe d’équivalence birationnelle de X. La situation est illustrée dans la Fig. 3.4, p. 53. Ajoutons également que le fait qu’une courbe soit non-singulière signifie qu’on peut identifier tout point à un anneau de valuation discrète (l’anneau local en ce point) ce qui permet l’introduction du module des diviseurs de Weil et apporte la puissance de la théorie de Riemann-Roch que nous présenterons dans la Section3.7. 3.4.2 Désingularisation plongée On peut lire dans [Har93, Corollary 3.6, pp. 310] que « toute courbe X se plonge 15 dans P3 ». Cela dit, il convient de tempérer son optimisme car si cela est vrai en tant que kcourbe, cela n’est plus en tant que k-courbe. Une façon rapide de s’en convaincre est que sinon, 14 15 50 Cette situation se généralise [Gro61, IV.7.9] c’est-à-dire admet une courbe équivalente non-singulière Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.4. DÉSINGULARISATION le nombre de points rationnels de toute courbe définie sur F q serait majoré par |P3 (Fq )| = q 4 −1 2 3 q−1 = 1 + q + q + q , ce qui n’est évidemment pas le cas. On voit donc que pour qu’une courbe définie sur un corps fini et plongée dans P n possède beaucoup de points rationnels, il est nécessaire que n soit également relativement grand et d’un point de vue algorithmique, cela suppose qu’il faudra manipuler des polynômes à beaucoup de variables, ce qui se fera vraisemblablement avec des bases de Gr öbner. S’il n’est pas exclu que cela puisse donner de bons résultats dans des cas particuliers, on s’expose au risque de ne pas pouvoir prévoir une complexité satisfaisante des opérations nécessaires puisque le calcul d’une base de Gröbner réduite est ExpSpace-complet [vG99, Theorem 21.40, p. 590]. 3.4.3 Principe d’exploitation d’un modèle plan Comme on l’a mentionné plus haut, la normalisation commute avec la localisation et cette normalisation peut se faire localement, en utilisant la technique dite « des éclatements de points ». Cela va permettre d’utiliser un modèle plan de la classe d’équivalence birationnelle étudiée, plutôt que de nécessiter de construire un espace projectif assez grand pour contenir la courbe normalisée. En exploitant l’algèbre de Rees [EH00, IV.2, pp. 162–192], on peut réaliser algorithmiquement un éclatement en n’introduisant qu’une nouvelle indéterminée. Bien que toute courbe projective est birationnellement équivalente à une courbe projective plane n’ayant que des nœuds comme singularités [Har93, Corollary 3.11, p. 314] et qu’un éclatement suffise pour désingulariser un nœud [Har93, Exercice 5.6(b), p. 37], ce procédé ne préserve pas la rationalité et il se peut qu’il faille réaliser plusieurs éclatements, ce qui rend l’algorithmique nettement plus difficile. Nous n’avons d’ailleurs pas trouvé de manière satisfaisante d’exploiter l’algèbre de Rees dans le cadre d’éclatements successifs. Avant de présenter la méthode que nous avons employée (travail en collaboration avec Pawel Wocjan) pour l’implantation de la désingularisation des courbes et de la Theorie de Riemann-Roch, mentionnons quelques autres méthodes. Il existe d’autres approches géométriques [HI94]. Un algorithme de normalisation en dimension finie quelconque s’inspirant de [GR71] et [dJ] est décrit dans [BW98, pp. 128–130]. En caractéristique 0, on peut utiliser des séries de Puiseux [Duv87, Duv89, CA00], ou une approche par bases intégrales [van94]. Voir aussi [Tei90] pour une variante des éclatements. Notons que, dans certains cas spécifiques, des méthodes ad hoc très performantes ne nécessitant pas de désingularisation comme celles décrites dans [SAK + 01] peuvent s’appliquer. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 51 CHAPITRE 3. CODES GÉOMÉTRIQUES 3.5 3.5.1 Notre implantation dans Magma Algorithme de désingularisation La méthode que nous décrivons ici est fondée sur l’Algorithme de Brill-Noether telle qu’elle a été implantée par Gaétan Haché [Hac96, HB95] tout en présentant, par rapport à cette dernière, quelques améliorations. Soit k un corps parfait, nous partons de l’anneau gradué S des polynômes homogènes de k[x, y, z] modulo l’idéal homogène hH(x, y, z)i. La courbe X = Proj S est recouverte par trois courbes affines. En utilisant un critère jacobien [Eis95, p. 402], et avec l’aide de résultants, on détermine le lieu singulier Sing(X) def = {p ∈ X | OX,p est singulier} qui est fini. Pour chaque singularité p ∈ Sing(X), on se place dans une courbe affine U = Spec A contenant p avec A = k[u, v]/hF (u, v)i (on a Ap ' OX,p ). On étend les scalaires au corps résiduel en p, Fig. 3.2 – Source [McT] Alexander von Brill puis après une translation à l’origine, on réalise l’éclatement de X (1842–1935) à l’origine. On dit que P ∈ X nor domine p ∈ X lorsque OP ⊇ OX,p nor est l’intersection des anneaux de valuation (discrète) conteet on note P |p ; l’anneau OX,p nant OX,p (cf. [Bou89, VI.1.3, Theorem 3, p. 378]), c’est-à-dire des anneaux O P pour P |p. Quitte à étendre les scalaires de k à K P , on peut représenter un point P ∈ X nor dominant p ∈ X par un morphisme [EH00, VI.1, pp. 252–258] ϕ : k[u, v] −→ K P [u, v] tel que si FP = ϕ(F ), (on ne gardera qu’un représentant par orbite sous l’action de Gal(K P /k) pour les calculs) OP est isomorphe au localisé à l’origine de K P [u, v]/hFP (u, v)i. Le morphisme ϕ est une transformation de Cremona (i.e. une application birationnelle de P 2 dans lui-même, en l’occurence, une composition de transformations quadratiques et de translations [Ful89, p. 172]). Cette situation est résumée dans la Fig. 3.4. L’anneau local OP est donc un anneau de valuation discrète et une fois choisie une uniformisante π P , on peut plonger OP cP qui est isomorphe à l’andans son complété πP -adique, noté O neau des séries formelles KP [[t]] où KP désigne le corps résiduel en P . Une fonction f de K(X) étant représentée par un quotient f = ab de formes homogènes de même degré, on peut appliquer le morphisme ϕ au numérateur et au dénominateur, puis prendre leurs développements πP -adiques respectifs pour pouvoir Fig. 3.3 – Source [McT] Max Noether calculer le développement de f en série de Laurent à tout ordre. (1844–1921) Cela permet en particulier d’évaluer une fonction de O X,p en p. 3.5.2 Algorithme de Nous donnons maintenant une idée des méthodes effectives que nous utilisons pour la Théorie de Riemann-Roch c’est-à-dire pour le calcul du genre de la courbe, et de bases d’espaces vectoriels de fonctions associés à des diviseurs (cf. Section 3.7). Une fois effectuées toutes les désingularisations locales, on dispose, en chaque point p ∈ Sing(X), du diviseur adjoint local [Gor52], noté Ap , qui caractérise géométriquement l’idéal conducteur : nor nor (OX,p : OX,p ) def = {f ∈ OX,p | f · OX,p ⊆ OX,p } 52 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.5. NOTRE IMPLANTATION DANS MAGMA P1 OP2 OX,p OP1 P2 nor OX,p P3 X nor OP3 K(X) ' K(X nor ) X p Fig. 3.4 – Courbe plane X et normalisée X nor (vue plongée). Au dessus du point singulier p ∈ X, sont trois points P1 , P2 , P3 ∈ X nor . Les deux courbes sont birationnellement équivalentes et ont donc des corps de fonctions isomorphes. L’anneau O X,p n’est pas normal car p est singulier. Les anneaux OP1 , OP2 et OP3 , sont, quant à eux, des anneaux de valuation discrète, nor . dont l’intersection (surface hachurée) constitue la normalisation O X,p Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 53 CHAPITRE 3. CODES GÉOMÉTRIQUES par le fait que [Woc99, Theorem 4.30, p. 39] : nor (OX,p : OX,p ) = {f ∈ K ? | ( f))p ≥ Ap } t {0} X où ( f))p def = vP (f ) · P . P |p La somme A des diviseurs adjoints locaux A p pour p ∈ Sing(X) s’appelle le diviseur adjoint de X et on peut calculer à partir de celui-ci le genre g de la courbe puisqu’on a [Hir57] la formule deg A = (deg F − 1)(deg F − 2) − 2g. Ce diviseur adjoint permet également le calcul des bases de l’espace L (D) pour un diviseur D donné, grâce à l’algorithme de BrillNoether, comme suggéré dans [RB88]. Nous exploitons un Théorème de Delsarte [Del75] pour obtenir L (D) comme k-espace vectoriel et pas comme K P -espace vectoriel. 3.6 3.6.1 Quelques remarques Conventions Sauf mention particulière, les courbes considérées seront supposées géométriquement irréductibles [Har93, p. 93], non-singulières [Har93, p. 177] et complètes [Har93, p. 105] (i.e. donc projectives [Har93, p. 136] afin de satisfaire le Théorème de B ézout (Théorème 6, p. 56) et le Théorème de Riemann-Roch (Théorème 7, p. 57). On supposera fixée une courbe X sur un corps parfait k (e.g. k = F q ), de corps de fonctions K. En tout point p ∈ X, on notera O X,p l’anneau local au point p, mX,p son idéal maximal, et KX,p le corps résiduel OX,p /mX,p . On note cp(X) l’ensemble des points fermés de X et pour tout d ∈ N∗ , on note cpd (X) l’ensemble des points de degré d de X. Comme X est non-singulière, pour tout p ∈ cp(X), O X,p est un anneau de valuation discrète (cf. section 3.2.2) et on note vp la valuation correspondante. 3.6.2 Programmes Magma La terminologie schématique étant particulièrement lourde, nous n’y recourrons toutefois quasiment plus, en particulier pour définir le genre. Nous utiliserons par ailleurs le formalisme des corps de fonctions16 dans les exemples Magma qui illustrerons notre propos par la suite. Nous donnons maintenant un exemple Magma de corps de fonctions. Une place P d’un corps de fonctions K est représentée par un couple de fonctions (f, f 0 ) pour lesquelles seule la classe d’équivalence de la valuation vP associée à P vérifie vP (f ) > 0 et vP (f 0 ) > 0 simultanément (en d’autres termes, P est « le zéro commun » de f et f 0 ). Exemple 10 Nous prenons le cas du corps de fonctions définie par l’équation déshomogénéisée par rapport à l’indéterminée z de la quartique de Klein d’équation homogène z 3 x + y 3 z + x3 y définie sur F8 (qui a le nombre maximal de points rationnels possible pour une courbe de genre 3 puisqu’elle atteint la borne de Serre comme on le voit dans la session qui suit). L’expression GF(8) désigne un corps fini F 8 par défaut et dans l’exemple suivant, la variable w désigne un élément primitif de ce corps fini. 16 Notre implantation n’est pas, au moment de la rédaction de ces lignes, incorporée dans le noyau de la version courante de Magma (V 2.8) et nécessite une réécriture en prenant en compte la nouvelle hiérarchie de types. Nous avons dû, en attendant, reprogrammer les méthodes de décodage en liste avec les primitives standard de Florian Hess par souci de compatibilité. 54 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.7. THÉORIE DE RIEMANN-ROCH > q := 8; Fq<w> := GF(q); > Fqx<x> := RationalFunctionField(Fq); > Fqxy<y> := PolynomialRing(Fqx); > klein_quartic_equation := x + y^3 + x^3*y; > K<y> := FunctionField(klein_quartic_equation); K; Algebraic function field defined over GF(2^3) by y^3 + x^3*y + x > g := Genus(K); g; 3 > SerreBound(q,g); 24 > Pl1 := Places(K,1); N := #Pl1; N; 24 > P := Pl1[1]; P; (1/x, w^4/x^3*y^2) > f,ff := TwoGenerators(P); > Valuation(f,P); Valuation(ff,P); 1 7 3.7 Théorie de 3.7.1 Introduction La Théorie de Riemann-Roch est un outil extrêmement puissant. Dans notre contexte, il permetra de construire des k-sous-espaces vectoriels L de dimension finie de la k-algèbre K dont on pourra contrôler l’ordre des pôles et des zéros des éléments en tout point fermé de X. L’objet central de cette théorie est la notion de diviseur de Weil, que nous définissons dans la section suivante. Cette théorie permettra également de dégager un invariant birationnel fondamental des courbes considérées : le genre g, qui apparaı̂tra très souvent dans la suite des calculs. 3.7.2 Diviseurs Définition 37 Le le Z-module libre Div(X) sur cp(X) s’appelle le module des diviseurs de X. Le degré d’un diviseur est défini en prolongeant le degré des points par de Z-linéarité. En d’autres termes, un diviseur D est de la forme : X X D= np · p , où np ∈ Z ; son degré est l’entier deg D = np · deg p . p∈cp(X) p∈cp(X) On note vp (D) l’entier np et on appelle support de D la sous-variété de codimension 1 sous-jacente à D c’est-à-dire Supp D def = {p ∈ cp(X) | vp (D) 6= 0} . Le groupe Div(X) est muni d’un ordre partiel ≤ défini en convenant du fait que D ≤ D 0 ssi, pour tout p ∈ cp(X), vp (D) ≤ vp (D 0 ). Soit S un ensemble non-vide de diviseurs, on appelle minimum (resp. maximum)17 de S le diviseur : X X def def min S = min(vp (D)) · p resp. max S = max(vp (D)) · p . p∈cp(X) 17 D∈S p∈cp(X) D∈S Dans la terminologie multiplicative, issue de la Théorie des nombres, on dit aussi lcm et gcd. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 55 CHAPITRE 3. CODES GÉOMÉTRIQUES Pour tout D ∈ Div(X), on décompose D = D + − D− où D+ def = max(D, 0) ≥ 0 et D− def = − max(−D, 0) ≤ 0. Soit f ∈ K ? , on appelle diviseur principal associé à f le diviseur : X ( f)) def = vp (f ) · p . p∈cp(X) Si vp (f ) = m > 0, on dit que p est un zéro d’ordre m de la fonction f ; si v p (f ) = −m < 0, on dit que p est un pôle d’ordre m de la fonction f . On appelle diviseur des zéros de f , et diviseur des pôles de f respectivement les diviseurs : X X ( f))0 def = ( f))+ = vp (f ) · p et ( f))∞ def = ( f))− = vp (f ) · p . p∈cp(X) vp (f )>0 Théorème 6 (Théorème de 1. ( f)) = 0 ⇐⇒ f ∈ Fq ; p∈cp(X) vp (f )<0 ) Pour tout f ∈ K \ {0} : 2. si f ∈ K \ Fq alors : deg ( f))0 = deg ( f))∞ = [K : Fq (x)]. En particulier, pour tout f ∈ K \ {0}, deg (f)) = deg (f))0 − deg ( f))∞ = 0 et pour tout diviseur D : 3. si deg D = 0 alors18 ` (D) = 1 ssi D est principal ou D = 0 ; 4. si deg D < 0 alors19 ` (D) = 0. 3.7.3 Genre et Théorème de Définition 38 On appelle espace de associé à D ∈ Div(X), le k-espace vectoriel de dimension finie : L (D) def = f ∈ K ? | D + ( f)) ≥ 0 t {0} , et on note ` (D) sa dimension. La définition suivante n’est pas très naturelle mais ne nécessite pas de parler de formes différentielles [Har93, p. 181], d’adèles [Sti93, p. 23], ou de cohomologie [Har93, p. 294] : Définition 39 Soit X une courbe, on appelle genre géométrique de X l’entier : g = pg (X) def = sup(deg D) − ` (D) + 1 . D∈Div(X) On montre [Sti93, Proposition I.4.14, p. 20] que g est positif ou nul. Soit W un diviseur canonique [Har93, p. 295], on appelle indice de spécialité de D ∈ Div(X) l’entier δ (D) def = `(W − D) dont on montre qu’il ne dépend pas du diviseur canonique choisi. Si δδ (D) > 0, on dit que D est spécial, sinon, qu’il est non-spécial (cette terminologie est justifiée plus bas de D est par le Théorème de Riemann-Roch). La caractéristique d’ l’entier : χ(D) def = `(D) − δ (D) . 18 ˙ ¸ Si D = 0, alors L (D) = Fq . Autrement, L (D) = ( f)) pour f ∈ K \ {0}. 19 S’il existe f ∈ L (D) \ {0}, D 0 = D + (f)) ≥ 0, donc deg D 0 = deg D + 0 ≥ 0. 56 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.8. NOMBRES DE POINTS ET GENRE Le Théorème suivant est fondamental. On se servira tout particulièrement de l’Inégalité de Riemann, d’une part pour donner des bornes sur la distance minimale d’un code géométrique, d’autre part, pour préciser les conditions d’existence d’un polynôme d’interpolation dans l’algorithme de décodage-liste. Théorème 7 (Théorème de diviseur D ∈ Div(X), on a : ) Soit X une courbe de genre g, pour tout χ(D) = deg D − g + 1 . En particulier : 1. on a δ (D) = ` (D) − deg D + g − 1 et D est non-spécial ssi ` (D) = χ (D) ; 2. pour tout diviseur canonique W , on a deg W = 2g − 2 et ` (W ) = g ; 3. on a : ` (D) ≥ deg D + 1 − g (Inégalité de Riemann) . (3.2) (3.3) En outre, si deg D > 2g − 2, alors D est non-spécial et ` (D) = deg D + 1 − g. Démonstration: Pour (3.2), voir [II.9, Théorème 3, p. 27][Ser59] ou [Har93, pp. 295–296]. 1. conséquence immédiate de (3.2). 2. si D = 0 dans le Théorème de Riemann-Roch, alors d’après le Théorème de B ézout (Théorème 6, p. 56), on a 1 = ` (0) = deg 0 + 1 − g + ` (W − 0), donc ` (W ) = g. Soit D = W dans Théorème de Riemann-Roch, alors g = ` (W ) = deg W + 1 − g + ` (W − W ) = deg W + 2 − g, donc deg W = 2g − 2. 3. On déduit immédiatement (3.3) de (3.2). Par ailleurs, soit W un diviseur canonique, on déduit de ce même théorème que deg(W − D) = deg W − deg D = 2g − 2 − deg D, qui est inférieur à 0 par hypothèse. Par conséquent, d’après Théorème de Bézout, on a ` (W − D) = 0 et donc δ (W − D) = 0. 3.8 3.8.1 Nombres de points et genre Introduction Étant donnée une courbe X de genre g définie sur un corps fini F q , son nombre de points rationnel est borné. Nous rappelons ici rapidement quelques bornes célèbres. Soit S g,q l’ensemble des courbes de genre g définies sur F q , on notera : Nq (g) def = max |X(Fq )| . X∈Sg,q 3.8.2 Bornes pour un genre fixé On déduit immédiatement de l’Hypothèse de Riemann (qui est prouvée dans le cas des corps de fonctions sur les corps finis [Mor91, Section 3.4, pp. 59–69]) la borne de Hasse√ Weil qui dit que | Nq (g) − q + 1| ≤ 2g q. Du fait que Nq (g) est un entier, on a évidemment √ | Nq (g) − q + 1| ≤ b2g qc mais, dans [Ser83], Jean-Pierre Serre montre qu’on peut, de façon élémentaire, raffiner cette borne. Théorème 8 (Borne de , 1983) Soit X une courbe projective géométriquement irréductible de genre g sur Fq , alors : √ | Nq (g) − q + 1| ≤ gb2 qc . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 57 CHAPITRE 3. CODES GÉOMÉTRIQUES 3.8.3 Bornes pour un corps fixé Dans le contexte de la théorie des codes, on veut pouvoir fabriquer sur un même alphabet Fq des familles de codes de longueur arbitrairement grande. Ces codes seront fabriqués avec des familles de courbes dont le genre et le nombre de points vont tendre vers l’infini. Le compromis optimal est mesuré par la quantité 20 : A(q) def = lim sup g−→∞ Nq (g) . g √ La borne de Serre montre que A(q) ≤ b2 qc mais il se trouve que cette borne peut être considérablement améliorée comme l’a remarqué Yasutaka Ihara [Iha81] en 1981 qui, à l’aide √ de l’inégalité de Cauchy-Schwartz montre que A(q) ≤ 2q− 12 . Depuis, de meilleures bornes ont été trouvées. Au début des années 1980, Serre a adapté [Ser83] les « formules explicites » d’André Weil [Wei52, Wei72]. Joseph Oesterl é a résolu21 [Oes82] le problème de programmation linéaire permettant de déduire de ces formules une borne inférieure optimale 22 du genre d’une courbe ayant un nombre de points Fq -rationnels donné. Nous n’en donnons pas les détails ici bien que nous l’ayions implantée (cf. [Pec01a] pour le programme C, les fonctions Magma n’étant pas encore intégrées à la version V 2.8). En 1983, Vladimir Drinfeld et Serguei Vl ǎduţ [DV83] déduisirent facilemement de ce qui précède la meilleure borne supérieure sur A(q) et Ihara [Iha81], et indépendemment Tsfasman, Vlǎduţ et Thomas Zink montrèrent que celle-ci est optimale lorsque q est un carré23 [TVZ82] : Théorème 9 ( A(q) ≤ √ q−1 et ) On a : (Borne DV, de Drinfeld-Vlǎduţ) avec égalité si q est un carré (courbes TVZ, de Tsfasman-Vl ǎduţ-Zink). Les courbes atteignant la borne DV sont de bonnes réductions de courbes modulaires, dont nous donnons un exemple. Exemple 11 Nous montrons ici que la réduction modulo 7 de la courbe modulaire X 0 (19), vue comme définie sur Fq2 = F49 est une courbe X dont la normalisée possède X(F q ) = 63 points rationnels. Si la borne de Serre prévoit au plus 64 points sur une courbe de genre 1, la borne d’ Oesterlé montre qu’une courbe de genre 1 sur F 49 a au plus 63 points F49 -rationnels ; cette borne est atteinte par X qui est donc optimale. > > > > q := 7; Fq := GF(q); q2 := q^2; Fq2<w> := GF(q2); N := 19; A2<x,y> := AffineSpace(Fq2,2); // The reduction mod q=7 embedded in the affine plane over Fq2 of the canonical 20 Le lim sup provient du fait qu’on ne sait pas prouver la conjecture selon laquelle, pour tout q, la fonction g 7−→ Nq (g) est non-décroissante (elle n’est pas strictement croissante, pour certains q au moins). 21 Cette preuve n’a pas été publiée. Voir [Edo98] pour une description complète. 22 Sauf en caractéristique deux. √ 23 On ne sait pas si A(q) = q − 1 pour tout q mais on a des bornes inférieures comme celle de Serre [Ser83] (A(q) = Ω(log q)), améliorée dans [Tem99]. 58 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.9. CODES DE GOPPA GÉOMÉTRIQUES > // modular curve of level N=19: > time X0_N := ModularCurve(A2,"Canonical",N); X0_N; Time: 0.020 Modular Curve over GF(7^2) defined by x^20 + 2*x^19 + 2*x^18 + x^17 + 5*x^16 + 6*x^15 + 6*x^14 + 2*x^13*y + 5*x^13 + 3*x^12*y + 3*x^11 + 2*x^10*y + 5*x^10 + 2*x^9*y + 5*x^8*y + 6*x^8 + 6*x^7*y^2 + 2*x^7*y + 6*x^7 + 6*x^6*y + 2*x^6 + 4*x^5*y + 2*x^5 + 6*x^4*y^2 + 6*x^4 + 4*x^3 + 6*x^2*y + 3*x^2 + 6*x*y^3 + 3*x*y^2 + 4*x*y + 2*x + 4 > K<x,y> := FunctionField(X0_N); > time g := Genus(K); g; time Pl1 := Places(K,1); #Pl1; Time: 0.040 1 Time: 0.020 63 > SerreBound(q2,g); OesterleUpperBound(q2,g); 64 63 En 1995, Arnaldo Garcia et Henning Stichtenoth ont donné [GS95], en utilisant la théorie d’Artin-Schreier, une famille de tours de corps de fonctions, dont la description est moins sophistiquée mathématiquement, et qui atteint également la borne de DrinfeldVlǎduţ. Noam Elkies a montré en 1997 que ces corps de fonctions se déduisaient d’une structure modulaire [Elk97]. 3.9 3.9.1 Codes de géométriques Introduction Les codes géométriques ont été introduits en 1981 par Valery Goppa [Gop81]. Ils généralisent les codes dits « de Goppa classiques » que Goppa avait exhibés onze ans plus tôt [Gop70] (voir également [van99, p. 140] et [MS88, p. 338]). Un code géométrique est construit à partir de points rationnels d’une courbe sur un corps fini et d’un diviseur sur cette courbe. L’intérêt premier des codes géométriques est qu’ils bénéficient d’une « distance construite », c’est-à-dire un minorant de la distance de Hamming qu’on peut calculer par une formule. Cette formule est une conséquence de l’Inégalité de Riemann (Théorème 7, p. 57). Grâce à cette inégalité, on peut également contrôler la dimension de ces codes. Tsfasman, Vlǎduţ et Zink ont utilisé ces deux inégalités pour déduire des courbes qu’ils avaient trouvées et qui atteignaient la borne DV pour fabriquer une famille de codes géométriques (les codes TVZ) dépassant strictement la borne de Gilbert-Varshamov [TVZ82] sur un corps fini assez grand, dont le cardinal est un carré. Une autre bonne raison d’utiliser les codes géométriques est qu’ils constituent un cadre naturel pour un algorithme de décodage très puissant : il permet de décoder au delà du rayon d’empilement, de faire du décodage en liste, et du décodage souple algébrique, comme on le verra plus loin. D’autres définitions de codes géométriques existent. L’idée la plus simple consiste à utiliser une variété de dimension plus grande que 1. Les codes de Reed-Muller ont une définition très naturelle avec cette construction alors que leur construction à partir de la définition classique n’est pas très intéressante (ils ne sont pas AG [She92, Corollary 2.10, p. 29] au sens de la Définition 40). Aucune bonne famille de code n’a cependant été trouvée — à notre connaissance — avec d’autres variétés que des courbes. On trouvera dans [TV91, Chapter Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 59 CHAPITRE 3. CODES GÉOMÉTRIQUES 3.1, pp. 261–288] d’autres constructions exotiques. Une généralisation très intéressante aux courbes sur les anneaux a par ailleurs été faite par Judy Walker (cf. Section 3.3.5). La définition historique de Goppa, n’est pas celle que je donne ici. Il y a trois raisons à cela : la première est que la définition de Goppa utilise les formes différentielles et que c’est une sophistication dont on peut se passer dans mon propos, la deuxième est que ces deux définitions sont équivalentes par dualité [Sti93, Theorem II.2.8, p. 46], enfin la dernière raison est que la définition que j’utilise ici est beaucoup plus naturelle dans le cadre de le reconstruction que la définition initiale de Goppa qui apparaissait dans le contexte du décodage par syndrôme. 3.9.2 Définitions et propriétés Soit p = (p1 , . . . , pn ) un n-uplet de points de X(FTq ), pour tout j, on note πj une uniformisante fixée de OX,pj . On définit la Fq -algebre Op def = nj=1 OX,pj et l’application Fq -linéaire24 : evp : Op −→ Fnq f 7−→ f (p1 ), . . . , f (pn ) . Définition 40 Soit D ∈ Div(X) dont le support ne contient aucun p j , i.e. tel que L (D) ⊆ Op . Le code de géométrique de support p et de diviseur D est le code 25 : o n C def = evp L (D) = f (p1 ), . . . , f (pn ) : f ∈ L (D) . Si | Supp D| = 1, le code est dit à un point. Supposons que p 1 , . . . , pn soient distincts, la distance construite et la dimension construite de C sont respectivement : = n − deg D d0 def et = deg D + 1 − g , k 0 def et C est un [n, k ≥ k 0 , d ≥ d0 ]q -code linéaire, en vertu de l’Inégalité de Riemann. Dans le cas où deg D < n, on a d0 > 0 et k = ` (D). Le code est alors dit géométrique 26 (AG pour algebraic geometric), autrement, il n’est que faiblement géométrique (WAG pour wealky algebraic-geometric). Si, de surcroı̂t, 2g − 2 < deg D, alors k = k 0 d’après le Théorème de Riemann-Roch et le code est dit fortement géométrique (SAG pour strongly algebraic-geometric). Nous introduisons également les notations suivantes : • étant donné f ∈ L (D), on notera cf def = evp (f ) • étant donné c ∈ C, on définit fc comme une fonction de L (D) telle que ev p (f ) = c. Cette fonction est unique dans le cas où le code est AG. Exemple 12 Soit X = P1 ' A1 t {p∞ } la droite projective définie sur F q . La partie affine A1 = Spec Fq [x] possède q points p1 , . . . , pq distincts de degré 1, qu’on peut canoniquement identifier aux éléments α1 , . . . αq ∈ Fq , où p1 = hx − α1 i, . . . , pq = hx − αq i. Soit n = q, 0 ≤ k ≤ n, et D = (k − 1) · p∞ , alors L (D) = {f ∈ Fq [x] | deg f < k} et C est isomorphe à un code de Reed-Solomon. Nous choisissons l’ordre des places dans l’exemple suivant de telle sorte qu’il est égal au code défini dans l’Exemple 6, p. 37. 24 definie à un choix d’uniformisante près. Un choix différent d’uniformisantes donne un code équivalent. 26 La terminologie AG, WAG et SAG est celle définie dans [PSvW91]. 25 60 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.9. CODES DE GOPPA GÉOMÉTRIQUES > q := 17; Fq<w> := GF(q); > Fqx<x> := RationalFunctionField(Fq); Fqy<y> := PolynomialRing(Fqx); > K<y> := FunctionField(y-x); > P := [Place(y+a,y+a) : a in Fq]; n := #P; > P_infty := Place(1/y,1/y); > Fqn := VectorSpace(Fq,n); > ev_P := pmap<K -> Fqn | f :-> Fqn![Evaluate(f,P[i]) : i in [1 .. n]]>; > k := n div 2; D := (k-1)*P_infty; > LD,h := RiemannRochSpace(D); B := Basis(LD)@h; > C := LinearCode(sub<Fqn | [f@ev_P : f in B]>); C; [17, 8] Linear Code over GF(17) Generator matrix: [ 1 0 0 0 0 0 0 0 16 9 15 16 10 7 1 2 8] [ 0 1 0 0 0 0 0 0 8 12 8 6 4 5 16 2 6] [ 0 0 1 0 0 0 0 0 6 5 7 14 14 13 16 4 5] [ 0 0 0 1 0 0 0 0 5 12 15 12 15 13 8 6 15] [ 0 0 0 0 1 0 0 0 15 6 8 13 15 12 15 12 5] [ 0 0 0 0 0 1 0 0 5 4 16 13 14 14 7 5 6] [ 0 0 0 0 0 0 1 0 6 2 16 5 4 6 8 12 8] [ 0 0 0 0 0 0 0 1 8 2 1 7 10 16 15 9 16] > d := MinimumDistance(C); 10 Définition 41 On appelle courbe hermitienne sur F q2 la courbe plane d’équation homogène xq+1 + y q+1 + z q+1 = 0. Exemple 13 La courbe hermitienne27 X d’équation homogène xq+1 + y q+1 + z q+1 = 0 a le même corps de fonctions [Sti93, Lemma VI.4.4, p. 203] que la courbe affine x q+1 = y q + y sur Fq2 . Comme X elle est non-singulière, son genre est g = q(q − 1)/2, d’après la formule de Plücker. Elle possède [Sti93, Example VI.3.6, p. 198] |X(F q2 )| = 1 + q 3 points rationnels. Soit p∞ ∈ X(Fq2 ) le zéro commun de x et y, et D = r · p∞ , alors une base de L (D) est ) ( xi y j z r−(i+j) def : 0 ≤ i ≤ r, 0 ≤ j ≤ q − 1, iq + j(q + 1) ≤ r . B = zr Le code C = ev p L (D) s’appelle le code hermitien28 de multiplicité r sur Fq2 . C’est un code de longueur n = q 3 . Sa dimension et sa distance minimale sont plus délicates à calculer en forme close [Sti93, VII.4, p. 211–215], mais par exemple, pour q 2 − q − 2 < r < q 3 , on a [Sti93, Proposition VII.4.3, p. 212] : dim C = r + 1 − q(q − 1) 2 et d(C) ≥ q 3 − r . La session Magma qui suit illustre la construction d’un [27, 13, 12] 9 -code sur la courbe hermitienne x4 = y 3 z + yz 3 sur F32 . On peut remarquer que le code est particulièrement bon, puisque la borne de Griesmer prévoit qu’un code de longueur 27 et de distance minimale 12 est au plus de dimension 15 = k + 2. 27 Le nom « hermitien » provient du fait que si l’on note ā l’image de a ∈ Fq par l’endomorphisme de Frobenius a 7−→ aq , on a une « forme hermitienne » (x, y, z) 7−→ xx̄ + y ȳ + z z̄, dont le cône isotrope est X. 28 On peut fabriquer de meilleurs codes avec ces mêmes courbes, en prenant un diviseur à plus d’un point [XC02] Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 61 CHAPITRE 3. CODES GÉOMÉTRIQUES > q := 3; q2 := 9; Fq2<w> := GF(q2); > Fq2x<x> := RationalFunctionField(Fq2); Fq2xy<y> := PolynomialRing(Fq2x); > K<y> := FunctionField(x^(q+1) - y^q - y); > g := Genus(K); Pl1 := Places(K,1); N := #Pl1; N; SerreBound(q2,g); 28 28 > P_infty := Place(K!x,y); > P := [Q : Q in Pl1 | Q ne P_infty]; n := #P; n eq q^3; true > r := ((q^2 - q - 2) + q^3) div 2 ; D := r*P_infty; C := AlGCode(P,D); > Dimension(C) eq r + 1 - q*(q-1)/2; DesignedDistance(C) eq q^3 - r; true true > d := MinimumDistance(C); C; [27, 13, 12] Linear Code over GF(3^2) Generator matrix: [1 0 0 0 0 0 0 0 0 0 0 0 0 w^5 w 0 w^3 w^3 1 w^6 w^7 2 0 2 w 2 w^2] [0 1 0 0 0 0 0 0 0 0 0 1 0 1 w 0 w^7 2 2 w^6 w^3 2 w w^6 w^2 w^6 2] [0 0 1 0 0 0 0 0 0 0 0 1 0 w^3 w^5 0 w^5 w w^3 w^3 w^2 w^7 w 2 1 w^5 w^3] [0 0 0 1 0 0 0 0 0 0 0 w^3 0 w^7 2 0 w 1 w^5 w^6 w^6 0 w^3 w w^2 1 w^2] [0 0 0 0 1 0 0 0 0 0 0 w^3 0 1 w 0 w^5 w^2 w^6 w 0 w^2 w^5 w^5 w^6 w^2 w^7] [0 0 0 0 0 1 0 0 0 0 0 w^7 0 w w^7 0 0 w^7 w^3 w^5 w 2 2 w^7 w^2 1 w^7] [0 0 0 0 0 0 1 0 0 0 0 w^3 0 0 2 0 w^5 w^6 w^5 w^5 w^7 w^7 w^6 w^2 w^3 1 w] [0 0 0 0 0 0 0 1 0 0 0 w^7 0 w w^3 0 1 2 1 0 w^6 0 2 w^6 2 w^6 w^5] [0 0 0 0 0 0 0 0 1 0 0 w^7 0 w^5 w^2 0 w^6 w^5 2 w w w^2 w^6 w^5 w^7 w^6 0] [0 0 0 0 0 0 0 0 0 1 0 1 0 w^7 w^3 0 w^3 w^3 w^6 w^3 1 w^2 w^3 2 w^5 w^3 2] [0 0 0 0 0 0 0 0 0 0 1 1 0 w^3 w^7 0 w^7 w^7 w^7 w^2 1 w^2 1 w^7 2 w^5 w^7] [0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 0 0 w^5 w w w^2 w^2 w^6 w^5 w w] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 1 1 w^3 w^3 w^7 w^5 w w] > Ceiling(Log(q2,GriesmerBound(Fq2,n,d))); 15 3.9.3 Codes géométriques dépassant la borne de À partir d’une famille de courbes sur un corps fini F q , on peut déduire une famille de codes géométriques dont on peut estimer les propriétés : Proposition 5 Soit (Xn )n∈N une suite de courbes définies sur Fq telles que, pour tout n ∈ N, |Xn (Fq )| ≥ n + 1. Étant donné une famille de diviseurs (D n )n∈N de la forme Dn = rn p∞ où p∞ est l’un des n + 1 points rationnels de X n et rn = b(1 − R)nc avec R ∈ [0, 1]. Soit pn le n-uplet constitué de n autres points rationnels de X n , la dimensions construite kn0 et la distance construite d0n du code Cn = evpn L (Dn ) vont vérifier par construction d0 ≥1−R n et k0 gn ≥R− . n n Supposons que q est un carré. De toute suite de courbes atteignant la borne de DrinfeldVlǎduţ (il en existe par l’Égalité de Ihara-Tsfasman-Vlǎduţ-Zink dans le Théorème 9, p. 58 et ont en particulier un nombre de points tendant vers l’infini avec n), on peut déduire une sous-suite de courbes (Xn )n∈N telles que, pour tout n ∈ N, |X(Fq )| ≥ n + 1. Soit gn le genre de Xn alors on a : gn 1 lim inf =√ . n−→∞ n q−1 62 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.9. CODES DE GOPPA GÉOMÉTRIQUES Par conséquent on déduit le théorème suivant. Théorème 10 ( , 1982) Soient q un carré, et R ∈ [0, 1]. Il existe une famille (Cn )n∈N de codes géométriques telle que si k n = dim Cn et dn = d(Cn ), √ q−2 dn kn + d n kn 1 ≥ R , et lim sup ≥ (1 − R) − √ , c’est-à-dire lim sup ≥√ . lim sup q−1 n q−1 n−→∞ n n−→∞ n−→∞ n Pour q ≥ 49, la famille (Cn )n∈N dépasse la borne de Gilbert-Varshamov, comme on peut le voir dans la Fig. 3.5. Exemple 14 Voici un exemple de code modulaire sur F 49 qui dépasse la borne de GilbertVarshamov29 . Reprenons la courbe de l’Exemple 11, p. 58. Le choix d’un point p ∞ laisse n = 62 points rationnels pour réaliser le support p = (p 1 , . . . , pn ). En prenant le diviseur D = 34 · p∞ , on a un [62, 34, 28]49 -code. C’est nettement mieux que ce que prévoit la borne de Gilbert-Varshamov (k = 25) et atteint quasiment la borne de Singleton. > P := [Pl1[i] : i in [2 .. #Pl1]]; n := #P; > P_infty := Pl1[1]; r := 34; D := r*P_infty; > time C := AlGCode(P,D); k := Dimension(C); d := MinimumDistance(C); Time: 0.410 > printf "C is a [%o,%o,%o]_%o-code\n",n,k,d,q2; C is a [62,34,28]_49-code > Ceiling(Log(q2,GilbertVarshamovLinearBound(Fq2,n,d))); 25 > n-d+1; 35 3.9.4 Algorithme de décodage des codes géométriques Puisque les codes géométriques sont une extension naturelle des codes de Reed-Solomon, il est légitime d’espérer pouvoir généraliser l’Algorithme 1 p. 39 à ces codes. Avec les notations de la Définition 40, étant donné un vecteur y ∈ F nq , l’idée pour trouver le mot c le plus proche est de chercher la fonction f ∈ L (D) — telle que c = ev p (f ) — comme la racine d’un polynôme G(T ) = a1 T + a0 à coefficients dans K. Comme pour les codes de ReedSolomon, on a l’équivalence entre le fait que d(c, y) = τ et le fait que f c (pj ) = yj pour n − τ valeurs de j. Supposons que, pour tout j, G(y j ) soit une fonction de Op s’annulant en pj , alors G(fc ) est une fonction de Op qui s’annule n − τ fois, c’est-à-dire deg G(f ) 0 ≥ n − τ . Soit ∆ ∈ Div(X) un diviseur de degré δ, dont le support ne contienne aucun des p j . Si l’on suppose que G(T ) ∈ L (∆ − D)T ⊕ L (∆), on a, pour toute fonction f ∈ L (D) : G(f ) ∈ L (∆), c’est-à-dire deg G(f ) ∞ ≤ δ. Si n − τ ≥ δ + 1 > δ, alors, d’après le Théorème de Bézout (Théorème 6, p. 56), on a G(f c ) = 0 ; en d’autres termes fc est une racine de G dans L (D). Dans le cas géométrique, l’existence de G(T ) se montre en utilisant l’Inégalité de Riemann pour calculer que l’espace vectoriel L (∆ − D)T ⊕ L (∆) est de dimension : ` (∆ − D) + ` (∆) ≥ δ − deg D − g + 1 + δ − g + 1 = 2δ − deg D − (2g − 2). Le fait que G(y j ) s’annule en pj pour tout j impose quant à lui n contraintes linéaires et le même argument 29 Le fait de dépasser la borne GV finie garantit que ce code est déjà très bon ; ce qui est important, c’est que la famille à laquelle il appartient dépasse la borne GV asymptotique. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 63 CHAPITRE 3. CODES GÉOMÉTRIQUES (a) q = 9 = 32 (b) q = 16 = 42 (c) q = 49 = 72 (d) q = 64 = 82 (e) q = 256 = 162 (f) q = 1024 = 322 Fig. 3.5 – En abscisse, le rapport d/n, en ordonnée le rapport k/n. La borne TVZ (en bleu) dépasse la borne de GV (en rouge) à partir de q = 49, sur une portion de l’intervalle 0, q−1 q . Lorsque q croı̂t, la borne GV se rapproche de la borne de Singleton (en vert). Pour q = 1024, les codes de TVZ sont quasiment partout meilleurs que les codes de GV. En revanche, pour q petit, les codes TVZ sont largement en dessous de la borne GV, qui est conjecturée optimale dans le cas binaire. 64 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 3.9. CODES DE GOPPA GÉOMÉTRIQUES que dans le cas des codes de Reed-Solomon fonctionne : dès que 2δ − deg D − (2g − 2) > n, D c’est-à-dire dès que δ > n+deg + g − 1, il existe un polynôme G non-trivial. Le choix optimal 2 def n+deg D pour δ est δ = γ = b 2 c + g. Cependant, il se peut qu’il n’existe pas de diviseur d’un tel degré30 et qu’il faille prendre un diviseur de degré δ = γ + ε. On peut alors corriger τ ≤ τmax def = n − δ − 1 erreurs et : 0 d −1 n − deg D − 1 0 0 def − g − ε = t − g − ε avec t = . τmax = 2 2 Soit B0 = (f0,1 , . . . , f0,κ0 ) une base de L (∆) et B1 = (f1,1 , . . . , f1,κ1 ) une base de L (∆ − D), alors on a G(T ) = (a0,1 f0,1 +· · ·+a0,κ0 f0,κ0 )+(a1,1 f1,1 +· · ·+a1,κ1 f1,κ1 )T et algorithmiquement, le fait que G(yj ) s’annule en pj pour tout j signifie que η ∈ lker M où : η def = a0,1 , . . . , a0,κ0 , a1,1 , . . . , a1,κ1 et f0,1 (p1 ) .. . ··· .. . ··· ··· .. . f0,κ0 (p1 ) def M = f1,1 (p1 ) · y1 .. . f1,κ1 (p1 ) · y1 · · · f0,1 (pn ) .. . f0,κ0 (pn ) f1,1 (pn ) · yn .. . f1,κ1 (pn ) · yn . (3.4) Algorithme 2 Décodage des codes de Goppa géométriques Entrée : Un vecteur y ∈ Fnq . Sortie : Une liste, soit vide si y est à distance supérieure à τ max de C, soit contenant un unique mot de code c ∈ C. L←∅ Construire la matrice M avec la formule (3.4) η ← n’importe quel élément du noyau de M a0 ← η1 f0,1 + · · · + ηκ0 f0,κ0 a1 ← ηκ0 +1 f1,1 + · · · + ηκ0 +κ1 f1,κ1 f ← −a0 /a1 si f ∈ L (D) alors c ← evp (f ) si d(c, y) ≤ t alors L ← {c} fin si fin si retourner L Exemple 15 Reprenons le code modulaire de l’Exemple 14, p. 63. Nous pouvons décoder τmax = b(d0 − 1)/2c − g = 12 erreurs. 30 Dans la pratique D est souvent de la forme D = r · p∞ avec deg p∞ = 1. On peut alors prendre ∆ = δ · p∞ , qui est de degré exactement δ. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 65 CHAPITRE 3. CODES GÉOMÉTRIQUES > // Precomputing decoding ingredients: > Fq2n := VectorSpace(Fq2,n); > ev_P := pmap<K -> Fq2n | f :-> Fq2n![Evaluate(f,P[i]) : i in [1 .. n]]>; > dd := n - Degree(D); dd; // Designed distance 28 > tt := (dd - 1) div 2; tt; // Designed packing radius 13 > tau_max := tt - g; tau_max; // Maximal correctible error 12 > delta := (n + Degree(D)) div 2 + g; Delta := delta*P_infty; > L0,h0 := RiemannRochSpace(Delta); kappa0 := Dimension(L0); B0 := Basis(L0)@h0; > L1,h1 := RiemannRochSpace(Delta-D); kappa1 := Dimension(L1); B1 := Basis(L1)@h1; > kappa := kappa0 + kappa1; kappa; kappa gt n; 64 true > > // Start decoding test: > c := Random(C); c; (w^3 w^39 6 6 w^29 0 w^23 w^4 w^39 w^31 w^13 w^7 w^21 w^27 w^7 w^36 w^25 w^30 w^9 w^46 3 w^6 3 w^36 w^18 w^38 w^29 w^44 5 w^5 w^17 1 w^33 w^27 3 w^34 w^17 w^14 w^6 w^42 w^14 w^3 w^22 5 0 w^33 w^3 w^43 w^20 w^17 3 w^15 w^44 5 w^13 w^19 w^14 w^30 w^15 4 0 6) > e := RandomVectorOfWeight(AmbientSpace(C),tau_max); e; (w^20 0 w^5 0 w^17 0 0 w^2 0 0 0 0 w^10 w^18 0 0 0 0 0 w^41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w^2 0 0 0 0 0 0 0 0 0 w^2 w^47 0 w^43 0 0 0 0 w^9 0 0 0 0 0 0) > y := c+e; y; (w^21 w^39 w 6 w^31 0 w^23 w^13 w^39 w^31 w^13 w^7 w^41 w^37 w^7 w^36 w^25 w^30 w^9 w^31 3 w^6 3 w^36 w^18 w^38 w^29 w^44 5 w^5 w^17 1 w^33 w^27 3 w^34 w^17 2 w^6 w^42 w^14 w^3 w^22 5 0 w^33 w^3 w^30 w^26 w^17 w^34 w^15 w^44 5 w^13 w^7 w^14 w^30 w^15 4 0 6) > M := Transpose(Matrix(Fq2,n,kappa,&cat([[Evaluate(B0[j],P[i]) : j in [1 .. kappa0]] cat \ [Evaluate(B1[j],P[i])*y[i] : j in [1 .. kappa1]]: i in [1 .. n]]))); > time lker := Kernel(M); eta := Basis(lker)[1]; eta; Time: 0.000 (1 0 0 w^5 2 w^39 w^47 w^35 w^9 w^26 w^18 w^12 w^23 w^25 w^35 0 w^13 w^17 w^34 w^35 3 w^26 w^5 5 w^45 w^17 6 w^12 w^25 w^2 6 w^11 w^39 w^14 w^20 w^33 w^34 w^13 1 w^38 w^12 4 0 w^37 w^27 w^46 w^23 w^35 w^2 w^29 w^15 3 w^25 w^13 w^25 w^31 w^23 w^31 0 1 w^7 w^13 w^14 w^23) > a0 := &+[eta[i]*B0[i] : i in [1 .. kappa0]]; > a1 := &+[eta[kappa0+i]*B1[i] : i in [1 .. kappa1]]; > f := -a0/a1; cc := f@ev_P; cc; cc eq c; (w^3 w^39 6 6 w^29 0 w^23 w^4 w^39 w^31 w^13 w^7 w^21 w^27 w^7 w^36 w^25 w^30 w^9 w^46 3 w^6 3 w^36 w^18 w^38 w^29 w^44 5 w^5 w^17 1 w^33 w^27 3 w^34 w^17 w^14 w^6 w^42 w^14 w^3 w^22 5 0 w^33 w^3 w^43 w^20 w^17 3 w^15 w^44 5 w^13 w^19 w^14 w^30 w^15 4 0 6) true 66 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Deuxième partie Décodage en liste : théorie Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 67 Chapitre 4 Introduction 4.1 Conventions Dans toute cette partie, nous considérerons fixés une courbe X définie sur F q , de genre g, ainsi qu’un n-uplet p = (p1 , . . . , pn ) ∈ X(Fq )n , un n-uplet π = (π1 , . . . , πn ) ∈TK n où πj est une uniformisante de OX,pj , un diviseur D effectif1 tel que 0 ( L (D) ⊆ Op def = nj=1 OX,pj , et = n − deg D sa distance construite. Nous supposerons le code C = ev p L (D) . On notera d0 def n également fixé un élément y ∈ Fq tel que (p1 , y1 ), . . . , (pn , yn ) soient tous distincts2 . 4.2 4.2.1 Généralisations des algorithmes de décodage vus précédemment Remarques sur les algorithmes de décodage La perspective que nous avons choisie dans la première partie pour décrire l’algorithme de décodage dans sa version pour les codes de Reed-Solomon (Section 2.5.2) et celle pour les codes géométriques (Section 3.9.4) met en lumière plusieurs faits. D’une part, le fait que cette méthode requiert pour fonctionner la reformulation du problème en termes de similarité, d’autre part que cette similarité a une mesure algébrique lorsqu’on la retraduit en termes de fonctions. Pour arriver à nos fins, on peut observer qu’il y a plusieurs paramètres sur lesquels jouer pour améliorer les performances de l’algorithme de décodage. Ces paramètres sont d’une part le degré de G et la taille de l’espace vectoriel dans lequel celui-ci sera choisi et d’autre part la multiplicité avec laquelle la fonction G(y j ) s’annule en pj . La possibilité de traduire, coordonnée par coordonnée, la multiplicité d’annulation de G(yj ) (c’est-à-dire son ordre pj -adique) va également permettre de décoder vis-à-vis de la λ-distance. 4.2.2 Algorithme de La première méthode de décodage en liste exploitant une généralisation de la méthode précédente fut proposée par Madhu Sudan qui proposa [Sud97] un algorithme de décodage 1 def sans perte de généralité car si L (D) 6= {0}, soit f ∈ L (D), D 0 = D + ( f)) est effectif et x 7−→ xf est un isomorphisme de Fq -espaces vectoriels de L (D 0 ) dans L (D). 2 ce qui est toujours les cas si p1 , . . . , pn sont eux-même distincts. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 69 CHAPITRE 4. INTRODUCTION en liste des codes de Reed-Solomon de taux faible (inférieur à 1/3), par rapport à la distance de Hamming. Depuis cette méthode fondatrice, une littérature considérable (plus de 30 articles !) a été publiée depuis sur le sujet en quatre ans. L’idée de l’algorithme de Sudan fut d’augmenter le degré du polynôme reconstructeur G. Le rayon maximal de décodage en liste de l’algorithme de Sudan est : lp m lp m τmax = n − 2n(k − 1) avec deg G ≤ b = 2n/(k − 1) . 4.2.3 Algorithme de Par une traduction équivalente utilisée pour passer de l’Algorithme 1 décrit p. 39 à l’Algorithme 2 exposé p. 65, la méthode de Sudan fut adaptée par Amin Shokrollahi et Hal Wasserman [SW99], aux codes SAG à un point (cf. Definition 40, p. 60), avec des restrictions analogues sur le taux de transmission (pires en fait, à cause du genre) sur le taux de transmission du code. Le rayon maximal de décodage en liste de l’algorithme de Shokrollahi-Wasserman est : m lp m lp 2n(k + g − 1) avec deg G ≤ b = 2n/(k + g − 1) . τmax = n + g − 4.2.4 Algorithme de Une nouvelle version de l’algorithme fut proposée par Venkatesan Guruswami et Sudan dans [GS99], lesquels étendirent l’algorithme initial afin qu’il soit utilisable pour tous les taux d’information, y compris pour les codes géométriques, décrivant ainsi le premier algorithme algébrique toujours capable de décoder en liste au delà de la moitié de la distance construite les codes SAG à un point (et en particulier les codes de Reed-Solomon). L’algorithme de Guruswami-Sudan permet de trouver les mots de codes dans une boule ouverte de rayon √ 0 τlim = n(1 − n − d ). Peu après, un algorithme « dual » fut présenté par Ron Roth et Gitit Ruckenstein pour le décodage des codes de Reed-Solomon [RR00], toujours pour la distance de Hamming. Cependant Guruswami et Sudan suggèrent dans [GS00] que√l’on peut généraliser leur méthode pour des λ-distances où λ ∈ N n avec τmax < kλk1 − kλk2 n − d0 et Koetter et Vardy ont suggéré que si les multiplicités λ sont bien choisies (cf. Section 2.3.5), on peut trouver tous les mots de code dans la boule de Hamming ouverte de rayon n·θ Joh (C). Il apparaı̂t [Gur01] que c’est le nombre maximal d’un algorithme de décodage en listes de taille polynomiale. 4.3 Notre algorithme Dans cette thèse, nous : 1. généralisons les méthodes précédents à tous les codes géométriques sans exiger qu’ils soient SAG ou a un point. 2. Nous généralisons l’algorithme à toute λ-distance. 3. Nous améliorons les bornes théoriques sur le degré minimal requis pour l’existence d’un polynôme reconstructeur pour un rayon donné avec pour conséquence, de meilleures bornes sur le nombre de mots de code dans une boule de rayon donné que celles déduites des algorithmes précédents. 70 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 4.4. GÉNÉRALISATIONS 4. Nous montrons une propriété combinatoire des codes géométriques de faible taux permettant d’une part de préciser le nombre de mots de code dans une boule de rayon donné et d’autre part, de réaliser une optimisation considérable dans le coût algorithmique du décodage [AP00]. Cette amélioration réduit substantiellement le coût de la cryptanalyse de Jakobsen, mentionnée p. 10. 4.4 Généralisations Le décodage en liste des codes de Reed-Muller a été envisagée par Oded Goldreich, Ronitt Rubinfeld et Sudan dans [GRS98], ainsi que par Agnes Heydtmann et Jakobsen d’autre part [HJ99] et Nielsen a proposé [Nie00] une classe de codes décodables par l’algorithme de Sudan. Enfin, évoquons brièvement qu’en 1996, Don Coppersmith a proposé des algorithmes aux apparences extrêmement voisines 3 de ceux de Sudan dans le contexte de la factorisation [Cop96a, Cop96b] et son application à la cryptanalyse du cryptosystème RSA [Cop97]. On pourra consulter son récent survey [Cop01] à ce sujet. Vues sous un autre angle, ces méthodes peuvent être considérées comme des algorithmes de décodage en liste de codes « à restes chinois » (CRT) que l’on retrouve dans les travaux d’Oded Goldreich, Dana Ron et Sudan d’une part [GRS98], Dan Boneh [Bon00] d’autre part, avec des applications au crible quadratique. Un article de Guruswami, Sudan et Amit Sahai donne une version « souple » du décodage des codes CRT. 3 Ce n’est après tout pas si étonnant, les corps de nombres étant, comme les corps de fonctions de courbes sur les corps finis, des corps globaux. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 71 CHAPITRE 4. INTRODUCTION 72 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 5 Décodage en liste des codes géométriques 5.1 5.1.1 Définition des polynômes reconstructeurs Principe Nous reprenons le principe décrit dans les Sections 2.5.2 et 3.9.4 de la Partie I. La nouveauté provient qu’au lieu d’exploiter un seul polynôme auxilliaire, de degré 1, nous construi sons désormais une suite de polynômes auxilliaires Gm (T ) m∈N∗ de degré croissant. Pour tout m ∈ N∗ , il existera un réel sm tel que toute fonction fc telle que sλ (c, y) > sm sera racines de Gm et sm tendra vers une limite finie qui constituera la limite théorique de l’algorithme. Afin de fabriquer une telle suite de polynômes, on construira une suite de diviseurs (∆m )m∈N∗ vérifiant que le coefficient de degré i de G appartient à l’espace de RiemannRoch L (∆m − iD) de telle sorte que pour tout f ∈ L (D), la fonction G m (f ) appartienne à L (∆m ). Il s’agit là d’une généralisation tout-à-fait naturelle de ce qui se passe dans la Section 3.9.4. En notant δm = deg ∆m , la fonction Gm (f ) aura donc au plus δm pôles, comptés avec multiplicité. Simultanément, on contraindra G m de telle sorte que, pour tout f ∈ Op , si f (pj ) = yj alors Gm (f ) a au moins mλj zéros, comptés avec multiplicité (Lemme 2). Étant donné un réel positif s, si s(c f , y) > s, alors Gm (f ) aura plus de ms zéros, comptés = δm /m, nous déduirons du Théorème de convenablement. En particulier, pour tout s ≥ s m def Bézout que Gm (f ) est la fonction nulle, i.e. que f est une racine de G m (T ) (Theorème 11). Un polynôme non-nul ayant ces propriétés sera donc appelé un polynôme reconstructeur. 5.1.2 Définitions Nous supposerons fixés un entier m ∈ N, un diviseur ∆ m de degré δm un entier bm ∈ N∗ et un polynôme Gm (T ) ∈ Op [T ]. i Notation 1 On désignera par coeff(G m , i) le coefficient de T dans Gm et, pour tout α ∈ K, nous noterons tα (Gm ) (T ), le polynôme : Gm (T + α) = b X j=0 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) b X i i=j j αi−j coeff(Gm , i) ! · Tj . (5.1) 73 CHAPITRE 5. DÉCODAGE EN LISTE DES CODES GÉOMÉTRIQUES On notera également : Km (T ) def = bm M i=0 L (∆m − iD)T i et κm def = dim Km (T ) . Lemme 1 Si Gm (T ) ∈ Km (T ), alors, pour tout f ∈ L (D), on a Gm (f ) ∈ L (∆m ). En particulier : deg ( Gm (f )))∞ ≤ δm . Démonstration: Pour tout p ∈ cp(X) : vp Gm (f ) ≥ min vp coeff(Gm , i) +i vp (f ) ≥ −vp (∆m ) , 0≤i≤bm | | {z } {z } ≥−vp (D) ≥−vp (∆m −iD) i.e. Gm (f ) ∈ L (∆m ) et ( Gm (f )))∞ ≤ ∆m d’où deg ( Gm (f )))∞ ≤ δm . Corollaire 1 (RS-codes) Soit Gm (T ) = a0 (x) + · · · + abm (x)T bm ∈ Fq [x][T ] où : deg ai (x) ≤ δm − i(k − 1) , pour 0 ≤ i ≤ b , (5.2) alors pour tout f (x) ∈ Fq [x] tel que deg f < k, on a deg Gm (f ) ≤ δm . Lemme 2 Supposons que : vpj coeff tyj (Gm ), i + i ≥ mλj , pour ( 0 ≤ i ≤ bm 0≤j≤n . (5.3) Pour tout f ∈ Op , si f (pj ) = yj alors on a vpj Gm (f ) ≥ mλj . En particulier : deg ( Gm (f ))) 0 ≥ m · sλ cf , y . = f − yj . Nous avons : Démonstration: Soit f ∈ Op tel que f (pj ) = yj pour un j donné, et soit fyj def Gm (f ) = tyj (Gm )(fyj ) = b X i=0 coeff tyj (Gm ), i · fyij . Par définition d’une valuation, on a : v pj b X i=0 coeff tyj (Gm ), i · fyij ! ≥ min 0≤i≤b vpj coeff tyj (Gm ), i + ivpj fyj Puisque f (pj ) = yj , on a vpj fpj ≥ 1. Par conséquent : vpj coeff tyj (Gm ), i + ivpj fyj ≥ vpj coeff tyj (Gm ), i + i , . pour 0 ≤ i ≤ bm . Par hypothèse, cette dernière expression est bornée inférieurement par mλ j pour 0 ≤ i ≤ bm , donc vpj (Gm (f )) ≥ mλj . Soit J l’ensemble des j tels que la j-ième coordonnée de cf coı̈ncide / {pj , j ∈ J}, avec celle de y. Alors, pour tout j ∈ J, vpj Gm (f ) ≥ λj m, et pour tout p0 ∈ vp0 Gm (f ) ≥ 0. Enfin, comme (p1 , y1 ), . . . , (pn , yn ) sont distincts, deg ( Gm (f ))) 0 ≥ m · sλ cf , y . 74 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 5.2. CONDITION D’EXISTENCE D’UN POLYN ÔME RECONSTRUCTEUR Corollaire 2 (RS-codes) Un polynôme G m (T ) ∈ Fq [x][T ] satisfait la condition (5.3) ssi : ( 0 ≤ i ≤ bm dmλj e−i . (5.4) coeff tyj (Gm ), i est divisible par (x − αj ) , pour 0≤j≤n Dans ce cas, pour tout f (x) ∈ Fq [x], si f (αj ) = yj alors (x − αj )dmλj e divise Gm (f ). Théorème 11 Si Gm (T ) appartient à Km (T ) et vérifie la contrainte (5.3) alors, pour toute fonction f ∈ L (D), on a : δm sλ cf , y > sm def = m =⇒ Gm (f ) = 0 . (5.5) Démonstration: D’après le Lemme 2, nous savons que : deg ( Gm (f )))0 ≥ m · sλ cf , y donc on déduit de l’équation (5.5) et du Lemme 1 que deg ( Gm (f )))0 ≥ m · sλ cf , y > δm ≥ deg ( G))∞ . D’après le Théorème de Bézout, nous concluons que Gm (f ) = 0. Définition 42 Un polynôme non-nul G m (T ) ∈ Km (T ) et vérifiant la contrainte (5.3) s’appelle un m-ième polynôme reconstructeur. On note Ω m (T ) l’ensemble des m-ièmes polynômes reconstructeurs. 5.2 Condition d’existence d’un polynôme reconstructeur Nous prouvons dans cette section que, pour tout m ∈ N ∗ , il existe un m-ième polynôme reconstructeur. Théorème 12 Pour tout m ∈ N∗ , l’ensemble des polynômes reconstructeurs Ω m (T ) est un espace vectoriel épointé de dimension ω m et on a : n ωm ≥ κ m − M m En outre κm ≥ (bm + 1) δm − où deg D 2 bm Mm def = 1X dmλj e2 + dmλj e . 2 j=1 − g + 1 . Par conséquent, si θm (bm ) ≥ 0 avec : deg D x − g + 1 − Mm − 1 θm (x) = (x + 1) δm − 2 deg D 2 deg D =− x + δm − − g + 1 x + (δm − g − Mm ) , 2 2 def alors ωm ≥ 1 et Ωm (T ) 6= ∅. Démonstration: Pour 0 ≤ i ≤ bm , comme coeff(G m , i) ∈ L ∆ m − iD , nous voyons dans l’équation (5.1) que, pour 1 ≤ j ≤ n, coeff tyj (Gm ), i ∈ L ∆m − iD également. Il s’ensuit que tyj est un automorphisme de l’espace vectoriel Km (T ). Pour 0 ≤ i ≤ bm et 1 ≤ j ≤ n, l’espace vectoriel : o n Ei,j def = f ∈ L ∆m − iD vpj (f ) ≥ mλj − i Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 75 CHAPITRE 5. DÉCODAGE EN LISTE DES CODES GÉOMÉTRIQUES est le noyau de l’application linéaire qui envoie une fonction f ∈ L ∆m − iD sur le vecteur consistant en les dmλj e − i premiers coefficients de son développement en série πj -adique si dmλj e − i ≥ 0 et Ei,j = L ∆m − iD sinon. Par conséquent : ( dmλj e − i si 0 ≤ i ≤ dmλj e , dim L ∆m − iD /Ei,j ≤ 0 si dmλj e < i et n dim × j=1 bm n dmλj e M L ∆m − iD i X X T ≤ dmλj e − i Ei,j i=0 j=1 i=0 = n X j=1 = dmλj e dmλj e + 1 dmλj e + 1 dmλj e − 2 n X dmλj e2 + dmλj e j=1 2 = Mm . Maintenant, en définissant l’application ty par ty (Gm ) def = ty1 (Gm ), . . . , tyn (Gm ) , nous obtenons : bm n M L ∆m − iD i Km (T ) ⊂ - Km (T )n T Ei,j j=1 i=0 , ty (Gm ) (T ) (ϕ ◦ tu )(Gm (T )) Gm (T ) × où ϕ est la projection canonique, coefficient par coefficient. On a Ωm (T ) = ker(ϕ ◦ ty ) \ {0} qui est de dimension ωm = κm − Mm . Par ailleurs, d’après le Théorème de Riemann, on a : bm bm X X bm κm = ` (∆m − iD) ≥ δm − i deg D − g + 1 = (bm + 1) δm − deg D − g + 1 . 2 i=0 i=0 Enfin, on voit bien que ωm ≥ θm (bm ) + 1, donc si θm (bm ) ≥ 0, on a le résultat cherché. Théorème 13 Pour tout m ∈ N∗ , 1. Si deg D = 0, soit ∆m un diviseur de degré δm ≥ deg2 D + g − 1, et $ % Mm + g − δ m bm = . δm − deg2 D − g + 1 2. Si deg D > 0, soient ξm def = (deg D) deg D + 8(Mm + 1) et : √ ξm − deg D def r r def +g−1. γm = dβm e où βm = 2 (5.6) (5.7) Pour tout εm > 0 tel qu’il existe1 un diviseur ∆m de degré δm = γm +εm dont le support ne contienne aucun pj et soient : deg D 2 2 = δm + deg D − (2g − 2) δm + ζm def + −(g + 1 + 2Mm ) deg D + (g − 1)2 (5.8) 4 et √ 1 def l l def δm − g + 1 − ζm bm = dαm e où αm = − , (5.9) deg D 2 1 76 Il existe toujours, il suffit de prendre, par exemple, un multiple convenable d’un point du support de D. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 5.3. NOMBRE DE MOTS D’UN CODE GÉOMÉTRIQUE DANS UNE BOULE alors θm (bm ) ≥ 0 et ωm ≥ 1, il existe donc un m-ième polynôme reconstructeur de degré au plus bm . Démonstration: 1. Cas deg D = 0. Dans ce cas : θ(bm ) = (δm − g + 1) (bm + 1) − Mm . Soit δm tel que δm > g − 1, alors θ(bm ) > 0 ⇐⇒ bm + 1 > Mm δm − g + 1 ⇐⇒ bm ≥ Mm δm − g + 1 . 2. Cas deg D > 0. Comme lc(θm ) < 0, θ(bm ) ≥ 0 ssi bm est dans l’intervalle fermé défini par les racines réelles de θm , (à condition qu’il en ait, évidemment). Le discriminant de θm est : deg D2 2 ζm = δ m + deg D − (2g − 2) δm + + −(g + 1 + 2Mm ) deg D + (g − 1)2 4 Supposons qu’on ait ζm ≥ 0, alors θm a deux racines réelles, éventuellement confondues : √ √ δm − g + 1 − ζm 1 δm − g + 1 + ζm 1 r l αm = − et αm = − deg D 2 deg D 2 √ Or la distance entre ces deux racines est αrm − αlm = 2 ζm / deg D. Si cette distance est supérieure ou égale à 1, alors il existe un entier bm dans l’intervalle [αlm , αrm ] pour lequel θm (bm ) ≥ 0. Comme on souhaite que bm soit minimal, on peut prendre bm = dαl e 2 comme dans l’équation (5.9). Or la distance entre les racines est au moins 1 ssi ζ m ≥ (deg4D) . Considérons maintenant l’expression quadratique en δm : (deg D)2 , où : 4 µm (x) = x2 + deg D − (2g − 2) δm − (g + 1 + 2Mm ) deg D + (g − 1)2 Le discriminant de µm est ξm = (deg D) deg D+8(Mm +1) qui est toujours strictement positif. Par conséquent µm a toujours deux racines réelles distinctes : √ √ ξm + deg D ξm − deg D l r βm = − + g − 1 et βm = +g−1 2 2 µm (δm ) = ζm − et — comme lc(µm ) > 0 — la fonction définie par µm est positive pour tout réel valant au moins βr (qui est un réel positif). Comme on souhaite δm le plus petit possible, définissons, r comme dans l’équation (5.7), γm = dβm e. Pour tout entier δm ≥ γm , on a µm (δm ) ≥ 0. Pour tout εm ≥ 0 tel qu’il existe un diviseur de degré γm + εm , δm = γm + εm convient. 5.3 Nombre de mots d’un code géométrique dans une boule Comme l’inégalité dans (5.5) est stricte, afin de définir une suite de similarités optimales (sm )m∈N∗ et de rayons optimaux (τm )m∈N∗ , avec τm = kλk1 − sm tels qu’un polynôme Gm reconstruit tous les mots de similarité avec y au moins à s m i.e. à distance au plus τm de y, nous supposerons fixée une famille (νm )m∈N∗ de constantes strictement positives avec ν m = o(m) = δmm + νm . On définit : et on notera sm def slim def = lim sup sm m−→∞ Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) et τlim def = lim inf τm . m−→∞ 77 CHAPITRE 5. DÉCODAGE EN LISTE DES CODES GÉOMÉTRIQUES Théorème 14 Soit τm def = kλk1 − sm , alors, pour tout m ∈ N∗ , toute boule de rayon τm contient au plus bm mots de code. En d’autres termes : |Bλ (y, τm ) ∩ C| =≤ bm . Démonstration: D’après le Théoreme 13, pour tout f ∈ L (D), si sλ cf , y ≥ sm alors Gm (f ) = 0. Comme G(T ) ∈ Op [T ] est à coefficients dans un anneau intègre (on a Op ⊂ K), il a au plus deg Gm ≤ bm racines. L’optimalité de bornes de cette nature est étudiée pour la distance de Hamming par Høholdt et Justesen [HJ01] dans le cas des codes MDS. Des bornes combinatoires ont également été exhibées dans [GHSZ]. 5.4 Comportement asymptotique Lorsque m −→ ∞, le réel sm décroı̂t. Il s’ensuit que les performances de décodage en liste augmentent. Nous étudions dans cette section le comportement de l’algorithme lorsque m −→ ∞. Théorème 15 On a : sm = kλk2 p √ deg D + O(1/ m) et kλk2 m + O(m3/4 ) . bm = √ deg D (5.10) En particulier : slim = kλk2 p deg D et τlim = kλk1 − kλk2 Démonstration: On a d’après (5.7) et (5.9) : sm r √ r γm βm ξm ξm δm + O(1/m) = + O(1/m) = + O(1/m) = + O(1/m) = + O(1/m) . = m m m 2m 4m2 On déduit de la définition de ξm que =⇒ =⇒ r ξm 4m2 2 m = 2M m2 deg D + O(1/m ) or : mλj ≤ dmλj e < mλj + 1 =⇒ (mλj )2 + mλj ≤ dmλj e2 + dmλj e < m2 λ2j + 3mλj + 3 1 2 1 m kλk22 + mkλk1 ≤ Mm < m2 kλk22 + 3mkλk1 + 3n 2 2 Mm kλk22 = + O(1/m) (5.11) 2 m 2 donc on a ξm 4m2 ξm = 4m2 et finalement 78 p deg D . = kλk22 deg D + O(1/m). Par continuité on a : q kλk22 deg D + O(1/m) = kλk2 p p p √ deg D + O(1/m) = kλk2 deg D + O(1/ m) , p √ δm = kλk2 deg D + O(1/ m) et m slim = kλk2 p deg D (5.12) Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 5.4. COMPORTEMENT ASYMPTOTIQUE Par ailleurs, d’après (5.9) : √ bm ζm αlm δm = + O(1/m) = + + O(1/m) m m m deg D m deg D s √ ζm kλk2 + + O(1/ m) d’après (5.12) =√ m2 (deg D)2 deg D (5.13) or d’après (5.8) : ζm m2 (deg D)2 2 δm 2 m (deg D)2 2Mm + O(1/m) m2 deg D √ √ kλk22 kλk22 + O(1/ m) − + O(1/m) +O(1/m) = O(1/ m) = deg D deg D | {z } | {z } = − par (5.12) (5.14) par (5.11) et on conclut d’après (5.13) et (5.14) que : bm kλk2 + O(m−1/4 ) . =√ m deg D Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 79 CHAPITRE 5. DÉCODAGE EN LISTE DES CODES GÉOMÉTRIQUES 5.5 Algorithme de décodage en liste Nous disposons dorénavant de l’Algorithme 3 pour faire le décodage en liste de tout mot y ∈ Fnq par rapport au code géométrique C, pour toute λ-similarité s > s lim . Lors d’une implantation réelle, on peut fixer un niveau de performance et précalculer tous les paramètres (y compris les espaces L (∆m − iD)) qui seront réutilisés à chaque nouveau décodage. Algorithme 3 Décodage en liste des codes géométriques √ Entrée : p ∈ X(Fq )n , y ∈ Fnq , λ ∈ Rn+ \ {0}, s > slim = deg Dkλk2 . Sortie : {c ∈ C | sλ (c, y) ≥ s}. // Initialisation : B ← ∅. // Calcul de multiplicités et des paramètres : Calculer m tel que sm ≤ s en utilisant le Théorème 13, p. 76. // Phase d’interpolation : Trouver un polynôme reconstructeur G m (T ). // Phase de recherche de racines : Trouver les racines f de Gm (T ) dans L (D) et inclure cf dans B si sλ cf , y ≥ s. // Sortie : Retourner B. 5.6 Interprétation géométrique dans Rn Nous prouvons maintenant que le comportement de la méthode ne dépend de λ qu’à travers l’angle λ, d(x, y) dans l’espace euclidien Rn . Lemme 3 Pour tout x ∈ Fnq : √ n · kλk2 · ϕ1 (x, y) · ϕλ (x, y) où : ( cos λ, d(x, y) si d(x, y) 6= 0 def ϕλ (x, y) = . 0 sinon sλ (x, y) = (5.15) (5.16) p p Démonstration: Nous avons dans un premier temps kd(x, y)k2 = kd(x, y)k1 = s(x, y). Par p conséquent, nous en déduisons que sλ (x, y) def = d(x, y) λ = kλk2 · s(x, y) · ϕλ (x, y) donc pour √ p √ λ = (1, . . . , 1), on a : s(x, y) = n · s(x, y) · ϕ1 (x, y) i.e. s(x, y) = nϕ1 (x, y), d’où l’équation (5.15). 80 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 5.7. REMARQUE DANS LE CAS DE L’ALGORITHME DE SUDAN Théorème 16 (Régions euclidiennes de décodage) Soit : r r √ √ deg D d0 sm def √ = + O(1/ m) = 1 − + O(1/ m) , hm = kλk2 n n n (5.17) et soit Cm le demi-cône positif de Rn défini par le fait que pour tout x ∈ Rn \ {0} : x ∈ Cm ⇐⇒ cos 1, x · cos λ, x ≥ hm . On caractérise la performance de l’algorithme de décodage en liste par le fait que, pour tout c ∈ C tel que d(c, y) 6= 0 : d(c, y) ∈ Cm 5.7 5.7.1 =⇒ Gm (fc ) = 0 . Remarque dans le cas de l’algorithme de Introduction Dans la situation de l’algorithme de Sudan, pour les codes de Reed-Solomon, ou de l’algorithme de Shokrollahi-Wasserman pour les codes géométriques, on a un vecteur λ dont toutes les coordonnées valent 1 et on se restreint à ne prendre que m = 1. Nous donnons ici un théorème qui permettra une optimisation décrite dans la partie suivante pour diminuer le coût de la recherche de racines. 5.7.2 Théorème Théorème 17 ([AP00]) Si λ = (1, . . . , 1), soit G 1 (T ), un polynôme reconstructeur de degré minimal, alors pour toute racine f ∈ L (D), il existe j ∈ {1, . . . , n} tel qu’on ait simultanément f (pj ) = yj et vpj G01 (yj ) = 0. Dans ce cas, le Théorème de Newton-Hensel s’applique dans le complété mX,pj -adique de K ( cf. Théorème 21, p. 103). Démonstration: Soit R(T ) = r0 + · · · + rb−1 T b−1 le quotient de G1 (T ) = a0 + · · · + ab T b par (T − f ). 1. Premièrement, on a l’identité : G1 (T ) = −f r0 + (r0 − f r1 ) T + · · · + (rb−2 − f rb−1 ) T b−1 + rb−1 T b . | {z } | {z } |{z} {z } | a0 a1 ab−1 (5.18) ab et nous savons que, pour tout i ∈ {0, . . . , b}, ai ∈ L (∆ − iD). Prouvons par récurrence descendante que ri ∈ L ∆ − (i + 1)D . Tout d’abord, c’est vrai pour i = b − 1 puisqu’on a rb−1 = ab ∈ L (∆−bD). Supposons la propriété vraie pour 1 ≤ i ≤ b−1, alors on déduit de (5.18) que ri−1 = ai + f ri . Comme ai ∈ L (∆ − iD), que f ∈ L (D) et que ri ∈ L ∆ − (i + 1)D par hypothèse de récurrence, on a ri−1 ∈ L (∆ − iD). Cette preuve par récurrence a pour conséquence que ri appartient a fortiori a L (∆ − iD) qui contient L (∆ − (i + 1)D). − f ) + vpj R(yj ) qui 2. Deuxièmement, pour tout j ∈ {1, . . . , n}, on a : vpj G1 (yj ) = vpj (yj vaut au moins 1 par hypothèse. Soit I = j ∈ {1, . . . , n} | f (pj ) = yj . D’une part, on voit que, pour tout j ∈ / I, on a vpj (yj − f ) = 0 donc pour satisfaire l’hypothèse, il est nécessaire que vpj R(yj ) ≥ 1. D’autre part, G01 (T ) = (T − f )R0 (T ) + R(T ). Donc, pour tout j ∈ {1, . . . , n}, on a : vpj G01 (yj ) ≥ min vp (yj − f ) + vp R0 (yj ) , vp R(yj ) . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 81 CHAPITRE 5. DÉCODAGE EN LISTE DES CODES GÉOMÉTRIQUES (a) λ = (1, 1, 1), d/n = 0.6 (b) λ = (1.6, 0.4, 0.5), d/n = 0.6 (c) λ = (1, 1, 1), d/n = 0.5 (d) λ = (1.6, 0.4, 0.5), d/n = 0.5 Fig. 5.1 – Visualisation tridimensionnelle des régions de décodage. Pour un y fixé, les coordonnées des sommets du cube unité correspondent aux différentes valeurs possibles de d(x, y). Les x susceptibles d’apparaı̂tre dans la liste de décodage sont ceux dans le demi-cône positif rouge dont l’axe de révolution a pour vecteur directeur la somme (1, 1, 1)+λ. Les figures 5.1(a) et 5.1(c) illustrent le cas de la distance de Hamming : dans le premier cas, tous les mots de code ayant au moins 2 coı̈ncidence sont décodables, dans le second, la liste de décodage contient y si y ∈ C. Les figures 5.1(b) et 5.1(d) illustrent la situation « souple » dans laquelle on a choisi λ = (1.6, 0.4, 0.5) 6= (1, 1, 1) : dans le premier cas, seuls les mots c ∈ C tels que d(c, y) ∈ {(1, 1, 0), (1, 0, 1), (1, 1, 1)} sont décodables, dans le second, la liste de décodage contient les mots c ∈ C tels que c = y ou d(c, y) = (1, 0, 1). 82 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 5.7. REMARQUE DANS LE CAS DE L’ALGORITHME DE SUDAN Maintenant, pour tout j ∈ I, on a vp (yj − f ) > 0 et comme R0 (yj ) ∈ Opj , on a : vpj G01 (yj ) ≥ min 1, vp R(yj ) , avec égalité si vp R(yj ) 6= 1. Si l’on avait vpj G01 (yj ) ≥ 1 pour tout j ∈ I, cela voudrait dire que vp R(yj ) ≥ 1 pour tout j ∈ I. D’après ce qui précède, on aurait donc vpj G01 (yj ) ≥ 1 pour tout j ∈ {1, . . . , n}. En fin de compte, on a montré que R(T ) est un polynôme reconstructeur, ce qui est exclu puisqu’on a choisi G1 (T ) minimal. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 83 CHAPITRE 5. DÉCODAGE EN LISTE DES CODES GÉOMÉTRIQUES 84 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 6 Décodage souple 6.1 Principe On va exploiter ici les métriques souples définies dans la Section 2.3.3, p. 23 de la Partie I. On suppose que p est constitué d’éléments distincts et on construit le vecteur span(p) selon la Fig. 6.1 comme on construit span(x), en répétant q fois chaque coordonnée. span(p) = ··· p1 p1 ··· pn ··· pn Fig. 6.1 – Étant donné p = (p1 , . . . , pn ), composé de points Fq -rationnels, span(p) consiste en le vecteur de taille qn dont les coordonnées correspondent à une répétition q fois des coordonnées de p. Théorème 18 (Théorème de décodage souple algébrique) Pour tout y, l’Algorithme 3 appliqué au code span(C) permet de retrouver tous les mots c de C tels que : √ ekλ(y)k2 deg D ϕ(y | c) > , Mϕ (y) avec : = log Mψj (yj ) · ψj (yj | αi ) où Mψj (yj ) def = max ψj (yj | αk )−1 λ(y)i,j def 1≤k≤q n Y def −1 Mϕ (y) = maxn ϕ(y | z) = Mψj (yj ) . z∈A j=1 Exemple 16 Nous illustrons par cet exemple, la méthode de décodage souple. Nous avons ici un [8, 5, 4]9 -code de Reed-Solomon C. Le mot (a4 , a7 , a1 , a5 , a9 , a2 , a5 , a4 ) se transforme dans le canal de probabilité de transition p = 0.2 dont une probabilité d’effacement e = 0.1 sur A ' Fq en le mot (a4 , ✗, a1 , a5 , a9 , a4 , a5 , a4 ) qui présente un effacement et une erreur. Le mot de code est reconstitué en démultipliant le code C et en construisant un vecteur λ(y) suivant le principe décrit dans la Section 2.3.4 de la Partie I. > q := 9; Fq<w> := GF(q); > Fqx<x> := RationalFunctionField(Fq); Fqxy<y> := PolynomialRing(Fqx); > K<y> := FunctionField(y-x); AT<T> := PolynomialRing(K); Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 85 CHAPITRE 6. DÉCODAGE SOUPLE > Pls1 := Places(K,1); P_infty := Pls1[1]; P := [Pls1[i] : i in [2 .. q]]; > r := 4; D := r*P_infty; > C := AlGCode(P,D); n := Length(C); k := Dimension(C); C; [8, 5, 4] Linear Code over GF(3^2) Generator matrix: [ 1 0 0 0 0 w^5 2 w^6] [ 0 1 0 0 0 w^6 1 w^6] [ 0 0 1 0 0 w^7 2 w] [ 0 0 0 1 0 2 1 1] [ 0 0 0 0 1 w^2 1 w^7] > dd := DesignedDistance(C); tt := (dd-1) div 2; tt; 1 > > A,ch := StandardInputAlphabet(Fq); ch_n := VectorMap(ch,n); > p := 0.2; e := 0.1; Ch := ErrorsAndErasuresDMC(A,p,e); Name(Ch); Error and erasure DMC on alphabet A={@ a_1, a_2, a_3, a_4, a_5, a_6, a_7, a_8, a_9 @} with transition probability p=0.2000 and erasure probability e=0.1000. Transition Matrix: [ 0.8000 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.1000] [0.01250 0.8000 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.1000] [0.01250 0.01250 0.8000 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.1000] [0.01250 0.01250 0.01250 0.8000 0.01250 0.01250 0.01250 0.01250 0.01250 0.1000] [0.01250 0.01250 0.01250 0.01250 0.8000 0.01250 0.01250 0.01250 0.01250 0.1000] [0.01250 0.01250 0.01250 0.01250 0.01250 0.8000 0.01250 0.01250 0.01250 0.1000] [0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.8000 0.01250 0.01250 0.1000] [0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.8000 0.01250 0.1000] [0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.01250 0.8000 0.1000] > > c := Random(C); c; c_A := c@ch_n; c_A; (w^2 0 2 0 w^2 2 1 1) [ a_3, a_9, a_5, a_9, a_3, a_5, a_1, a_1 ] > y_B := MapThrough(Ch,c_A); y_B; [ a_3, ?, a_5, a_9, a_3, ?, a_1, ? ] > > lambda_span := LambdaSpan(Ch,y_B); lambda_span; (0 0 4.158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.158 0 0 0 0 0 0 0 0 0 0 0 0 4.158 0 0 4.158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) > C_span := Span(C); ch_qn := VectorMap(ch,q*n); > y_span := SpanY(A,n)@@ch_qn; y_span; (1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0 1 w w^2 w^3 2 w^5 w^6 w^7 0) > > s_span_lim := ListDecodingAsymptoticSimilarity(C_span,lambda_span); > s := s_span_lim + 0.5; > C_lambda_span := ListDecode(C_span,y_span,lambda_span,s); C_lambda_span; 2 4 6 8 {@ <(w^2 w^2 w^2 w^2 w^2 w^2 w^2 w^2 w^2 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 w^2 w^2 w^2 w^2 w^2 w^2 w^2 w^2 w^2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1), 20.79> @} > C_lambda := {Shrink(F[1],q) : F in C_lambda_span}; C_lambda; { (w^2 0 2 0 w^2 2 1 1) 86 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 6.2. DÉCODAGE À DISTANCE ML MINIMALE SUR LE Q-SC } 6.2 Décodage à distance ML minimale sur le q-SC Avec les notations de l’Exemple 4, p. 26, on a n Mm = 1X dmle2 + dmle 2 j=1 et on a sλ(y) span(x), Y = ls(x, y) donc δm sλ(y) span(x), Y > m ⇐⇒ s(x, y) > On a par ailleurs kλ(y)k1 = nl et kλk2 = 6.3 δm ml ⇐⇒ d(x, y) < n − δm . ml √ √ √ nl donc kλ(y)k2 deg D = l n deg D. Décodage à distance KV minimale sur le q-SC Avec le choix de coefficients fait par Koetter et Vardy, comme on l’a vu dans la Section 2.3.5, p. 28, on a : n q 1 XX Mm (λ(y)) = dmλi,j e2 + dmλi,j e 2 j=1 i=1 q n X X 2 ! p p y m dm(1 − p)e + dm(1 − p)e + + m d̄αji q−1 q−1 j=1 i=1 2 !! p p 1 + m . m = n dm(1 − p)e2 + dm(1 − p)e + (q − 1) 2 q−1 q−1 1 = 2 2 y dαji Par ailleurs, on a vu que : sλ(y) donc que : sλ(y) q span(x), Y = s(x, y) 1 − p q−1 δm span(x), Y > m On a par ailleurs : s q kλk2 = n p2 − 2p + 1 q−1 donc ⇐⇒ slim = s(x, y) > + np q−1 δm m np q−1 pq q−1 − 1− r q (deg D)n q−1 p2 − 2p + 1 − On montre que slim est minimal pour : s ! q−1 q d0 p= 1− 1− pour lequel q q−1 n Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 1− np q−1 pq q−1 . slim = n(1 − p) et dlim = np . 87 CHAPITRE 6. DÉCODAGE SOUPLE 88 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Troisième partie Décodage en liste : algorithmes et implantation Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 89 Chapitre 7 Introduction 7.1 7.1.1 Géométrie algébrique effective Cadre de travail Nous avons vu dans la Section 3.3 de la Partie I, diverses façons de représenter effectivement les courbes, points, diviseurs et espaces de Riemann-Roch associés à ces diviseurs. Outre ces éléments, nous supposerons disponible, pour tout point fermé de degré 1 de la courbe, de réaliser effectivement un plongement de K dans son complété π-adique k((t)). Plus précisément, on suppose calculable la troncature à tout ordre fini des développement en série de Laurent définies par l’équation (3.1), p. 46. Notons M(l) le coût arithmétique d’une multiplication de deux séries entières denses tronquées à l’ordre l à coefficients dans k. Il est de O(l 2 ) en multiplication standard mais devient O(l 1.59 ) avec une multiplication de Karatsuba [vG99, pp. 210–215], voire O(l log l) en utilisant une multiplication par FFT [vG99, pp. 215–225] 1 . 7.1.2 Notre contribution Nous avons implanté en Magma, avec Pawel Wocjan, une structure de donnée générique et les primitives nécessaires au décodage en liste dans le système Magma par des méthodes géométriques [Pec00a, Pec00b]. Nous avons également programmé ces primitives pour la représentation à base de corps de fonctions. 7.2 7.2.1 Algorithmes associés aux divers décodeurs en liste cités Notre contribution L’algorithme de décodage en liste que nous proposons étant le plus général, nous avons dû mettre en œuvre une algorithmique particulière susceptible de supporter cette généralisation et implanté celle-ci en Magma. 1. Nous avons implanté en Magma une bibilothèque de fonctions de manipulation des canaux permettant de tester le comportement des codes dans le contexte du décodage souple. 1 Cela peut nécessiter une extension de k pour construire une racine primitive l-ième de l’unité. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 91 CHAPITRE 7. INTRODUCTION 2. Nous avons implanté l’algorithme général que nous avons introduit dans la Partie II de cette thèse, ce qui était notre objectif principal en commençant cette thèse. 3. Nous donnons un algorithme général de recherche de racines d’un polynôme à coefficients dans un corps de fonctions de courbe ainsi qu’une version spécifiquement adaptée aux polynômes provenent de l’algorithme de décodage en liste, avec une optimisation dans le cas « de multiplicité 1 » correspondant aux algorithmes de Sudan[Pec98] et de Shokrollahi-Wasserman [AP00] (collaboration avec Daniel Augot), ramenant ainsi le coût global du décodage en liste à un temps essentiellement quadratique. 4. Nous montrons que nous pouvons précalculer toute la Théorie de Riemann-Roch effective, afin de réduire l’opération de décodage à de l’algèbre linéaire et à une recherche de racines dans un corps des séries de Laurent. 5. Comme conséquence, nous montrons que la complexité du décodage est — en un certain sens — comparable à la complexité de la construction de ce code. 7.2.2 Autres algorithmes de recherche d’un polynôme reconstructeur Plusieurs méthodes ont été proposées pour trouver le polynôme reconstructeur dans des cas particulier de la méthode que nous avons décrite dans la Partie II. Un algorithme itératif a été introduit par Nielsen et Høholdt [NH98] qui permet de trouver ce polynôme dans le cadre des algorithmes de Sudan, Shokrollahi-Wasserman et Guruswami-Sudan. Dans ces mêmes cas particuliers, Vadim Olshevsky et Shokrollahi donnent [OS99] un algorithme exploitant la structure de déplacement de la matrice définie par l’équation (9.4). Ces deux méthodes permettent de trouver un polynôme en temps quadratique. 7.2.3 Autres méthodes de recherche des racines dans le corps de fonctions Dans [GS01], Guruswami et Sudan donnent un algorithme conceptuellement très simple de recherche de racines d’un polynôme reconstructeur issu de leur algorithme, pour lequel on dispose d’un diviseur ∆ tel que tous les coefficients du polynôme appartiennent à L (∆). Leur algorithme nécessite de trouver une place du corps de fonctions de degré suffisant qui servira à étendre le corps des scalaires et à se ramener à de l’algèbre linéaire et à une recherche de racines sur cette extension. Plusieurs autres méthodes ont également proposées, par Roth et Ruckenstein [RR00] dans le cadre du décodage en liste des codes de Reed-Solomon, et par Shuhong Gao et Shokrollahi dans celui du décodage des codes SAG à un point. Notons que dans ce cas, leur algorithme est une variante de la méthode de Newton-Puiseux que nous présentons dans la Section 10.4. 92 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 8 Principe des méthodes π-adiques 8.1 Objectif L’utilisation des plongements du corps de fonctions dans ses différents complétés p j adiques permet, une fois calculés suffisamment de termes des séries de Laurent en chacun de ces points, d’oublier complètement les algorithmes spécifiques de la théorie de RiemannRoch effective. On peut alors utiliser des codes géométriques avec quasiment la même facilité que si l’on utilisait des codes de Reed-Solomon. En particulier, les polynômes reconstructeurs n’auront pas à être fabriqués explicitement dans K[T ] mais dans k((t))[T ]. De même, leurs racines pourront être trouvées dans k((t)) sans plus avoir besoin du corps de fonctions global. Nous considérerons une courbe fixée X, de genre g, un point p ∈ X(F q ) et une uniformisante π de OX,p . 8.2 Base de fonctions échelonnée et réduite Une des composantes nécessaires pour réaliser l’objectif fixé plus haut consiste à être à même de calculer les coefficients de décomposition d’une fonction appartenant à un sous kespace vectoriel L de dimension finie de K (typiquement L = L (D)) dans une base B de celui-ci. Nous exploitons le concept bien connu en algèbre linéaire d’échelonnage-réduction. Définition 43 Soit L un sous-espace vectoriel de dimension non-nulle de K. Une base B = (f1 , . . . , fκ ) de L est dite p-échelonnée ssi vp (fi ) < vp (fi+1 ) pour tout i ∈ {1, . . . , κ − 1}. La base B est dite π-réduite ssi, en outre, on a ic π (fi ) = 1 pour tout i ∈ {1, . . . , κ}. On note : Vp (L) def = {vp (f ) : f ∈ L} = {vp (f1 ), . . . , vp (fκ )} , et on appelle amplitude p-adique de L, l’entier amp p (L) def = max Vp (L) −min Vp (L) +1 = vp (fκ ) − vp (f1 ) + 1. C’est le nombre de coefficients π-adiques nécessaires pour caractériser un élément de L. L’Algorithme 4 calcule, étant donnée une famille génératrice d’un espace vectoriel de fonctions, une base en forme p-échelon π-réduite. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 93 CHAPITRE 8. PRINCIPE DES MÉTHODES π-ADIQUES Algorithme 4 Échelonnage-réduction d’une famille de fonctions Entrée : Une famille de fonctions B = {f 1 , . . . , fr } ⊂ K engendrant un espace vectoriel L, un point p de degré 1 et une uniformisante π de l’anneau local O X,p . Spécification : Transforme B en base de L en forme p-échelonnée π-réduite Exclure nulles de B toutes les fonctions S ← i ∈ {1, . . . , n} fi 6= 0 tant que S 6= ∅ faire vmin ← la plus petite valuation de fi pour i ∈ S Ξ ← l’ensemble des i tels que vp (fi ) = vmin i ← un élément de Ξ fi ← fi /icπ (fi ) // π-réduire fi pour j ∈ Ξ \ {i} faire fj ← fj − icπ (fj ) · fi // vp (fj ) devient > vp (fi ) si fj = 0 alors // fj et fi sont colinéaires Exclure fj de B ; Exclure j de S fin si fin pour Exclure i de S // On a traité l’indice i fin tant que Trier B par valuation croissante 8.3 Reconstruction π-adique Étant donné un sous-espace vectoriel L de K de dimension finie, on utilise le plongement b = k((t)) obtenu par complétion m-adique de K en un anneau local O X,p équipé de K dans K d’une uniformisante π, pour p ∈ X(k). Si l’on dispose d’une base B = {f1 , . . . , fκ } de L en forme p-échelon π-réduite, il suffit de connaı̂tre les ampp (L) termes de valuations vp (f1 ), . . . , vp (fκ ) du développement π-adique de f ∈ L pour pouvoir en déduire les coefficients γ 1 , . . . , γκ tels que f = γ1 f1 + · · · + γκ fκ . L’Algorithme 5 donne une méthode pour trouver ces coefficients. On suppose que l’on a calculé un κ-uplet Be = fe1 , . . . , feκ de séries de k((t)) tronquées à l’ordre max(V p (L)) + 1, constituant les développements de Laurent de fonctions d’une base B = (f 1 , . . . , fκ ) de L en forme p-échelon π-réduite. 94 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 8.3. RECONSTRUCTION π-ADIQUE Algorithme 5 Recontruction π-adique Entrée : Une série fe ∈ k((t)), tronquée à l’ordre max(V p (L)) + 1. Sortie : L’unique fonction f ∈ L telle que le développement tronqué à l’ordre v p (fκ ) de f soit fe, ? sinon. f ←0 répéter si fe 6= 0 alors e v ← vhti (f) si v ∈ Vp (L) alors i ← l’indice pour lequel v = vhti (fei ) γi ← ichti (fe) f ← f + γ i fi fe ← fe − γi fei sinon f ←? fin si fin si jusqu’à ce que (fe = 0) ou (f = ?) retourner f Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 95 CHAPITRE 8. PRINCIPE DES MÉTHODES π-ADIQUES 96 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 9 Algorithme de calcul d’un polynôme reconstructeur 9.1 9.1.1 Introduction Objectifs et conventions Nous donnons ici un algorithme permettant de trouver un m-ième polynôme reconstructeur Gm (T ) tel qu’il a été défini dans la partie précédente. Nous reprenons par ailleurs toutes les notations précédentes. Cependant, afin de les alléger, nous omettrons tous les « indices m » des variables précédemment définies en supposant que m a été choisi une fois pour toutes. Nous noterons désormais G(T ) le polynôme G m (T ), b = bm son degré, etc. 9.1.2 Remarque d’implémentation Nous allons calculer le polynôme G comme élément de l’espace vectoriel épointé Ω(T ). En arrangeant les coefficients de G(T ) par ordre décroissant de degré, le dernier élément d’une base en forme échelon-réduite de Ω(T ) correspond à polynôme de degré minimal. Comme nous réalisons Ω(T ) comme le noyau d’une matrice matrice d’« interpolation » I qui est calculé par une réduction de Gauss, nous disposerons à la fin du calcul, d’une base de Ω(T ) en forme échelon-réduite. Pour cette raison, nous écrirons désormais G(T ) = a b T b + · · · + a0 , par ordre de coefficients décroissants. 9.2 9.2.1 Construction de l’espace des polynômes reconstructeurs Bases des espaces de coefficients Soient Bb , . . . , B0 des bases de L ∆ , . . . , L ∆ − bD , respectivement. On notera Bi = (fi,κi , . . . , fi,1 ). Soit κj b X X ηi,j fi,j T b , G(T ) = j=0 i=1 on notera le vecteur de longueur κ = κ b + · · · + κ0 : η(G) = ηb,κb · · · ηb,1 · · · η0,κ0 · · · η0,1 , Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 97 CHAPITRE 9. ALGORITHME DE CALCUL D’UN POLYN ÔME RECONSTRUCTEUR de telle sorte qu’on ait : G(T ) = η(G) · 9.2.2 t fb,κb T b · · · fb,1 T b ··· f0,κ0 · · · f0,1 . (9.1) Matrice d’interpolation en un point pj Supposons fixé un indice j ∈ {1, . . . , n}. Étant donné une fonction f ∈ K et un entier l ∈ Z, désignons par f [l] le coefficient d’ordre l du développement en série de Laurent de f par rapport à l’uniformisante πj . On a G(T + yj ) = b X a0j T j a0j avec j=0 = b X i i=j j yji−j ai . Comme on a ai ∈ L ∆ − iD pour tout i, on a a0j ∈ L ∆ − jD . Pour tout entier r ∈ N∗ , alors on a clairement : [r] [r] a0i [r−1] · · · a0i [0] = ηIyj ,i où Iyj ,i est la matrice κ × r définie à par la Fig. 9.1 . [r−1] fb,κb b b−i i yj .. . [r−1] fb,κb .. .. . . ··· fb,1 [r] Iyj ,i = [0] ··· κb [0] fb,1 .. . [r−1] fi,κi i i−i i yj .. . [r−1] ri fi,κi .. .. . . ··· fi,1 κ [0] ··· κi [0] fi,1 0 r [r] Fig. 9.1 – Forme du bloc Iyj ,i représentant la condition vpj coeff tyj (G), i ≥ r dans [0] [r−1] la matrice Ij définie par l’équation (9.3). Les éléments f u,v , . . . , fu,v correspondant aux coefficients de valuation r − 1, . . . , 0 du développement de f u,v en série πj -adique. [r] On convient du fait que si r ≥ 0, la matrice I yj ,i est une matrice à κ lignes et 0 colonnes. Par conséquent, pour i et j fixés, on a : dmλ e−i vpj coeff tyj (G), i + i ≥ mλj ⇐⇒ η ∈ lker Iyj ,i j . (9.2) 98 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 9.3. ALGORITHME DE CALCUL D’UN POLYN ÔME RECONSTRUCTEUR , à coefficients dans Fq : Étant donné j ∈ {1, . . . , n}, soit la matrice κ × dλme(dλme+1) 2 dλj me−(dλj me−1) dλj me−0 def , Ij = Iyj ,dλj me−1 · · · Iyj ,0 (9.3) alors on a (9.2) pour tout i ssi η ∈ lker I j . 9.2.3 Matrice globale d’interpolation La caractérisation complète de G(T ) en tant que polynôme reconstructeur correspond au fait que l’équation (9.2) est satisfaite pour pour tout i et tout j, c’est à dire ssi η ∈ lker I où I est la matrice κ × M à coefficients dans F q définie par : I def = . (9.4) I1 · · · I n 9.3 Algorithme de calcul d’un polynôme reconstructeur Nous avons les ingrédients pour énoncer l’Algorithme 6 qui construit un polynôme reconstructeur de degré minimal. Algorithme 6 Calcul d’un polynôme reconstructeur de degré minimal Entrée : Un vecteur λ ∈ Rn+ \{0}, un vecteur y ∈ Fnq , un entier m ∈ N∗ , un diviseur ∆ = ∆m . Sortie : Un polynôme reconstructeur G(T ) = G m (T ) ∈ Ωm (T ) de degré minimal. pour i ∈ {0, . . . , b} faire Bi = (fi,κi , . . . , fi,1 ) ← une base de L ∆ − iD fin pour Construire la matrice d’interpolation I définie par l’équation (9.4). Calculer une base BI en forme échelon-réduite de l’espace vectoriel lker I. η(G) ← le dernier élément de la base B I En déduire G(T ) selon l’équation (9.1) retourner G(T ) Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 99 CHAPITRE 9. ALGORITHME DE CALCUL D’UN POLYN ÔME RECONSTRUCTEUR 100 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Chapitre 10 Algorithmes de recherche de racines 10.1 Introduction 10.1.1 Convention et objectifs Nous supposons fixés un corps k, une courbe X définie sur k et K son corps de fonctions, ainsi qu’un polynôme G(T ) = a0 + · · · + ab T b ∈ K[T ], non-nul. L’objectif de ce chapitre est de trouver les racines de G dans K. L’algorithme que nous déduirons pourra être utilisé dans la dernière étape de la méthode de décodage en liste que nous avons présentée dans la Partie II. 10.1.2 Localisation des racines dans un espace de dimension finie Les théorèmes suivants permettent de trouver un espace vectoriel de dimension finie de la forme L (∆) contenant les racines de G. On pourra améliorer ce théorème en utilisant les polygones de Newton (Théorème 26, p. 110). Nous citons ces résultats pour leur intérêt général. Ils ne serviront pas explicitement pour les polynômes associés au décodage en liste puisque, pour ceux-là, on connaı̂t d’une part un espace vectoriel contenant tous les coefficients par construction, et d’autre part un espace vectoriel dans lequel on souhaite chercher les racines. On peut remarquer la Proposition évidente suivante : = − Proposition 6 Soit ∆0 def min ( ai) , alors G(T ) ∈ L (∆0 )[T ]. i∈Supp G Théorème 19 Soit (K, v) un corps valué et G(T ) = a 0 + · · · + ab T b ∈ K[T ] avec ab 6= 0, alors pour tout f ∈ K, si G(f ) = 0 alors v(f ) ≥ w(G) def = min v(ai /ab ). i∈Supp G Démonstration: Soit une fonction f ∈ K telle que v(f ) < w(G). Alors, pour tout i ∈ Supp G, v(f ) < v(ai ) − v(ab ) ; donc, en particulier pour i = b, que v(f ) < 0. Dans ce cas, pour tout m ∈ N∗ , on a mv(f ) < v(f ) < v(ai )−v(ab ). Par exemple, pour m = (b−i) pour i < b, on a (b−i)v(f ) < v(ai )−v(ab ) que l’on peut réécrire v(ab ) + bv(f ) < v(ai ) + iv(f ) . (10.1) Dans le cas où G(f ) = 0, on a : ab f b = − b−1 X i=0 ce qui contredit (10.1). Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) ai f i donc v(ab ) + bv(f ) ≥ min v(ai ) + iv(f ) , 0≤i<b 101 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES Théorème 20 Pour tout f ∈ K, si G(f ) = 0, alors f ∈ L (∆ 00 ) où : def S(G) = b [ i=0 Supp(( ai /ab) et 00 def ∆ = − X p∈S(G) min vp i∈Supp G ai ab ·p. Démonstration: Soit f une racine de G. Pour tout p ∈ S(G), on a d’après le Théorème 19 : vp (f ) ≥ mini∈Supp G vp (ai /ab ). Corollaire 3 Soit ∆ def = min(∆0 , ∆00 ), alors G(T ) ∈ L (∆)[T ] et toute racine f de G est dans L (∆). 10.1.3 Réduction à une recherche π-adique Compte-tenu de la Section 8.3, puisqu’on dispose d’un sous-espace vectoriel L de dimension finie de K dans lequel nos calculs de recherche de racines vont être réalisés, soit en invoquant les résultats de la section précédente, soit du fait de la forme spécifique du polynôme provenant par exemple de l’algorithme de décodage en liste, on peut localiser tous les problèmes en un point p ∈ X(k) et calculer suffisamment de termes des développements de Laurent pour caractériser toutes les fonctions de cet espace. On suppose donc fixés un tel point et on notera v la valuation discrète vp , A = OX,p l’anneau de valuation correspondant, m = m X,p son idéal maximal et π une uniformisante de A. Le corps résiduel K = A/m est isomorphe à k et on fixe un système de représentants R de A dans k. 10.2 Approximations π-adiques successives Nous allons construire les racines de G(T ) par approximations π-adiques successives. La méthode la plus célèbre pour ce faire est celle dite « de Newton » qui est l’algorithme que Newton avait décrit en 1664 dans Methodus Fluxionum et Serierum Infinitarum (voir Fig. 10.3, p. 105) pour les fonctions de variables réelles. Au début du 20ème siècle, Kurt Hensel a donné [Hen08] un analogue des résultats de Newton dans les corps p-adiques et désormais, on peut en faire un énoncé dans des conditions plus abstraites [Eis95, Theorem 7.3 p. 183]. Nous l’appellerons ici méthode de Newton-Hensel, pour la distinguer de la méthode de Newton-Puiseux, plus générale mais moins efficace, que nous évoquons maintenant. En 1850, Victor Puiseux a décrit, en utilisant des Fig. 10.1 – Source [New] méthodes analytiques, la forme d’une clôture algébrique Isaac Newton (1643–1727) d’un corps de fonctions méromorphes qui s’appelle pour cela « corps des séries de Puiseux » (cf. Section 10.4.6). Cet objet était toutefois connu, et même construit explicitement 1 par Newton, comme le suggère la Fig. 10.4, p. 114. Néanmoins, comme le remarque Shreeram Abhyankar dans [Abh76], la 1 sans restriction systématique de caractéristique (cf. Section 10.4.6, ainsi que [Abh76, p. 416–417] et [Abh90, Lecture 12 and 13 pp. 89–98] pour un traitement plus approfondi). 102 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.3. MÉTHODE DE NEWTON-HENSEL Historical Note de [Chr86, Part II, p. 396] laisse penser que, bien que Stirling et Taylor eussent vraisemblablement connu cette méthode, elle fut ensuite oubliée. Pour une référence sur l’algorithme de Newton-Puiseux dans le cas des nombres complexes, on pourra consulter par exemple [CA00, p. 15–35]. Dans notre situation, on verra que, d’une part, aucune extension de corps ne sera nécessaire, et d’autre part que la méthode parfaitement malgré la caractéristique positive puisque nous n’introduisons aucun dénominateur dans les exposants au cours de l’Algorithme de NewtonPuiseux puisque nous ne cherchons avec celui-ci que des séries de Laurent. 10.3 Méthode de 10.3.1 Remarques La méthode de Newton-Hensel est redoutablement efficace pour trouver les racines d’un polynôme dans un corps valué. Il requiert cependant des conditions qui ne seront pas toujours possibles à réaliser. L’une des conditions pour exploiter la méthode de Newton-Hensel est que le polynôme G(T ) soit dans A[T ]. On recherchera les racines de G(T ) dans A. Une autre des conditions est que, pour commencer la méthode, il est nécessaire de partir d’une approximation m-adique non-triviale. Enfin, une condition sur la dérivée de G(T ) doit également être satisfaite. Nous recourrons à l’algorithme de Newton-Puiseux pour éliminer ces difficultés et se ramener après quelques étapes à la méthode de Newton-Hensel. Notons cependant qu’à l’inverse de la méthode Fig. 10.2 – Source [McT] Kurt Hensel de Newton-Puiseux, il n’est pas nécessaire que R soit un sous(1861–1941) anneau de K pour que la méthode fonctionne. 10.3.2 Théorème de Théorème 21 ( ) Soit ϕ ∈ A, si v G(ϕ) > 2v G0 (ϕ) , soient m = v G(ϕ) , m0 = v G0 (ϕ) et s def = m − 2m0 > 0. Soit ψ ∈ A tel que : v ψ − ϕ + G(ϕ)/G0 (ϕ) ≥ 2s , (10.2) alors on a : v(ψ − ϕ) ≥ s , v G(ψ) ≥ 2s et v G(ψ) > 2v G0 (ψ) . En particulier, la suite définie par f 0 = ϕ et fi+1 = fi −G(fi )/G0 (fi ) converge quadratiquement b de A qui est la seule racine de G dans A b vers une fonction f dans un complété m-adique A telle que v(f − ϕ) ≥ 1. Démonstration: Tout d’abord, on a : v(ϕ − ψ) = v ϕ − ψ + G(ϕ)/G0 (ϕ) − G(ϕ)/G0 (ϕ) ≥ min v ϕ − ψ + G(ϕ)/G0 (ϕ) , v − G(ϕ)/G0 (ϕ) ≥ min(2s, m − m0 ) ≥ min(2s, s) = s . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 103 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES Pour tout ϕ ∈ A, on peut écrire le développement de Taylor G(T ) = G(ϕ) + (T − ϕ)G 0 (ϕ) + (T − ϕ)2 Rϕ (T ). Pour tout ψ ∈ A, on peut donc écrire les deux égalités suivantes : G(ψ) = G(ϕ) + (ψ − ϕ)G0 (ϕ) + (ψ − ϕ)2 Rϕ (ψ) , 0 2 G(ϕ) = G(ψ) + (ϕ − ψ)G (ψ) + (ϕ − ψ) Rψ (ϕ) . (10.3) (10.4) L’équation (10.3) implique or v G(ψ) ≥ min v G(ϕ) + (ψ − ϕ)G0 (ϕ) , v (ψ − ϕ)2 Rϕ (ψ) , v G(ϕ) + (ψ − ϕ)G0 (ϕ) = v ϕ − ψ + G(ϕ)/G0 (ϕ) G0 (ϕ) ≥ 2s + m0 et v (ψ − ϕ)2 Rϕ (ψ) ≥ 2s donc v G(ψ) ≥ 2s. Si ψ = ϕ, on déduit par exemple de (10.3) que G(ψ) = G(ϕ). Sinon, en faisant la somme de (10.3) et (10.4), on a G0 (ψ) = G0 (ϕ)+(ψ−ϕ) Rϕ (ψ)−Rψ (ϕ) . Par 0 conséquent, puisque déduit que v G0 (ϕ) qui vaut m0 et est inférieur à m − m0 , s = m − 2m > 0, on en est majoré par v (ψ − ϕ) Rϕ (ψ) − Rψ (ϕ) . On a donc v G0 (ψ) = m0 , et v G(ψ) > 2v G0 (ψ) . 104 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.3. MÉTHODE DE NEWTON-HENSEL Fig. 10.3 – Extrait du Methodus Fluxionum et Serierum infinitarum, écrit en latin entre 1664 et 1671, édité en anglais [New36] en 1736. Fac simile de la traduction de Buffon [New40, p. 6–8]. Source [CBG+ 94, p. 195–201] Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 105 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES 106 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.3. MÉTHODE DE NEWTON-HENSEL 10.3.3 Algorithme de Le Théorème 21 permet donc de définir un algorithme de raffinement m-adique itératif. Toutefois, avant de l’énoncer, on peut remarquer qu’on peut éviter une coûteuse division par G0 (fi ) dans chaque itération de l’algorithme de Newton-Hensel en construisant une série (ηi )i∈N telle que ηi = 1/G0 (fi ) : Proposition 7 (Inversion de η0 def = π −v1 /ic(h), et pour tout i ∈ N : ) Soit h ∈ A \ {0} et m 0 def = v(h). Soit ηi+1 = 2ηi + hηi2 , alors, pour tout i ∈ N, on a : v(1 − ηi h) ≥ 2i . Démonstration: Pour i = 0, on a bien v(1 − η0 h) ≥ 20 = 1. Supposons le résultat vrai jusqu’à un certain i, alors 1 − hηi+1 = 1 − h(2ηi + hηi2 ) = 1 − 2hηi + h2 ηi2 = (1 − hηi )2 , d’où le résultat. Par conséquent, pour obtenir une racine f telle que v(G(f )) ≥ θ, soit G(T ) tel que G(0) = a0 = 0, on a G0 (0) = a1 . Soit v0 = v(a0 ) et v1 = v(a1 ). L’Algorithme 7 résume le fonctionnement de la méthode de Newton-Hensel en exploitant la Proposition 7. Algorithme 7 Raffinement de racines de Newton-Hensel Entrée : Un polynôme G(T ) ∈ A[T ] et f 0 ∈ A telle que v G(f0 ) > 2G0 (f0 ), un entier θ ∈ N∗ . Sortie : Une fonction f telle que v G(f ) ≥ θ et v(f − f0 ) > v(f0 ). f0 ← ic(a0 )π0v η ← π −v1 /ic(a1 ) pour i de 0 à dlog 2 (θ + 1)e faire θ 0 ← min 2i+1 , θ + 1 0 Relever les calculs dans A/mθ η ← 2η − G0 (f )η 2 f ← f − G(f )η fin pour renvoyer f 10.3.4 Complexité de la méthode de Théorème 22 L’Algorithme 7 de Newton-Hensel peut être réalisé dans k[[t]] en O bM(θ) opérations arithmétiques dans k. Démonstration: En utilisant la règle d’évaluation de Horner [vG99, p. 93], on peut calculer au 0 j-ième passage dans la boucle pour, les 2j+1 premiers termes des séries de Taylor G(f ) et G (f ) en b j+1 j+1 multiplications et additions de séries tronquées à l’ordre 2 , ce qui se fait en O bM(2 ) opérations Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 107 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES arithmétiques (voire même plus rapidement [LM00] et [BK78]). Les autres opérations pour en déduire la valeur mise à jour de η et de f sont un nombre constant d’addition et de multiplication de séries tronquées à l’ordre 2j+1 , ce qui maintient le coût d’un passage dans la boucle pour à O bM(2j+1 ) . Par convexité de la fonction M, on a M(2j+1 ) ≥ 2M(2j ). Soit N = dlog2 θ + 1e, le coût global de l’algorithme est donc : O b M(1) + · · · + M(2N ) = O b M(2N )/2N + M(2N )/2N −1 + · · · + M(2N ) = O bM(2N ) = O bM(θ) opérations arithmétiques dans k . 10.3.5 Complexité du décodage dans le cas de l’algorithme de Nous citons notre théorème sur la complexité du décodage en liste dans le cas de l’Algorithme de Sudan et dans celui de Shokrollahi-Wasserman. On pourra se reporter à [AP00] pour le détail. Théorème 23 L’algorithme de Sudan et l’algorithme de Shokrollahi-Wasserman permettent le décodage en liste d’un code de Reed-Solomon (resp. d’un code géométrique) de longueur n sur Fq en O(nM(n) log n) opérations déterministes dans F q , et même en O(n2 log n) opérations en utilisant une FFT. 10.4 Méthode de 10.4.1 Motivation Les conditions de l’Algorithme de Newton-Hensel ne sont pas toujours réalisées. Par exemple dans le cas d’un polynôme sur un corps fini, il se peut que la fonction associée au polynôme dérivé soit nulle sur le corps sans que la dérivée le soit. C’est en particulier ce qui se passe dans le cas du décodage en liste lorsque le paramètre m croı̂t. Dans le cas m = 1, on a vu dans le Théorème 17, p. 81 que l’on pouvait toutefois toujours invoquer cet algorithme. Hormis ce cas, il va être nécessaire d’employer une autre méthode. Nous suggérons l’algorithme de Newton-Puiseux car il fait partie des primitives standard du calcul formel, bien que son utilisation en caractéristique positive soit souvent dédaignée. 10.4.2 Conventions et préliminaires b ' k((t)) et on décrira donc On supposera que K est plongé dans un complété π-adique K l’Algorithme de Newton-Puiseux dans le cas du corps des séries de Laurent k((t)) sur un corps k. On notera v la valuation hti-adique sur ce corps. On prend la convention que t ∞ = 0 et on introduit la fonction « chapeau » de k((t)) dans hti qui à toute fonction de forme initiale if(f ) = cte associe la fonction fˆ def = f /te − c. Pour G(T ) = a0 + · · · + ab T b , on note αi tεi la forme initiale de ai , de telle sorte qu’on a : G(T ) = tε0 (α0 + â0 ) + · · · + tεb (αb + âb )T b . Définition 44 Soit e ∈ Z, la valuation initiale associée à e est l’entier : = σe def 108 min (εi + ei) . i∈Supp G Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.4. MÉTHODE DE NEWTON-PUISEUX On a de façon évidente : Proposition 8 Soit f ∈ k((t)) \ {0}, si v(f ) = e, alors v G(f ) ≥ σe . Définition 45 Soit e ∈ Z, l’ensemble caractéristique d’indice j associé à e est l’ensemble : Ξje def = {i ∈ Supp G | i ≥ j | εi + ei = σe } . Pour e ∈ Z et c ∈ k, on note ψe,c : k((t)) −→ k[[t]] définie par ψe,c : G(T ) 7−→ G(te (c + T )). Proposition 9 Soient e ∈ Z et c ∈ k, alors : X b X i i−j i i−j σe coeff ψe,c G(T ) , j = αi tεi +ei (αi + âi ) c ≡ c t mod mσe +1 . j j j i=j i∈Ξe En particulier, tσe divise ψe,c G(T ) . Démonstration: On a : e ψe,c G(T ) = G(t (c + T )) = āj = b X e ai t (c + T ) i=0 b X i=j i = b X ai t i=0 ei i X i j=0 j ci−j T j = b X āj T j avec : j=0 X b i i−j X εi +ei i i−j i i−j σ ai t c = t (αi + âi ) c ≡ αi c t mod mσ+1 . j j j i=j ei i∈Ξj Pour e ∈ Z et c ∈ k, on note ψ̌e,c : k((t)) −→ k[[t]] la fonction ψ̌e,c = immédiatement que : 1 tσe ψe,c . On vérifie Proposition 10 Soit f une fonction non-nulle de forme initiale if(f ) = ct e , alors : G(f ) = ψe,c G(fˆ) = tσe ψ̌e,c G(fˆ) . Définition 46 Soit e ∈ Z, le polynôme caractéristique associé à e est le polynôme de k[z] : χe (z) def = 1 z min Ξ0e X αi z i . i∈Ξ0e On en déduit naturellement : e Théorème 24 Soit f une fonction de forme initiale if(f ) = ct , alors on a vu dans la Proposition 8 que v G(f ) ≥ σe . En outre, le coefficient de valuation σ e dans le développement de G(f ) est χe (c). En particulier, si G(f ) = 0, alors c est une racine de χ e (z). On en déduit que G a au plus deg χe racines de valuation e. On voit que si l’on connaı̂t un entier e tel qu’il existe une racine f de G de valuation e, il suffit de calculer les racines de χe pour trouver toutes les valeurs possibles de coefficients initiaux de f . Reste donc à trouver toutes les valuations possibles que peut avoir une racine f de G(T ). Pour un entier e ∈ Z, on note ` e la droite d’équation y = −ex + σe . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 109 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES Proposition 11 Soit f une fonction de forme initiale if(f ) = ct e , alors il est clair que pour tout i ∈ Ξ0e , le point (i, εi ) appartient à `e . En outre, l’ensemble Ξ0e contient au moins deux éléments et pour tout i ∈ Supp G \ Ξ0 , le point (i, εi ) est au dessus de `e . Démonstration: Tout d’abord Ξ0e a au moins deux éléments parce que sinon, on a Ξ0e = {i} et on aurait αi ci = 0 ce qui est impossible car αi 6= 0 et c 6= 0. Soit i ∈ / Ξ0e , on a bien εi > −ei + σe , i.e. (i, εi ) au dessus de `e . Nous pouvons maintenant passer à l’objet clé de l’algorithme. Définition 47 On appelle nuage de de G(T ) le sous-ensemble fini de N × Z ⊂ R2 : N def = (i, εi ) : i ∈ Supp G , et polygone de inférieure de N . de G(T ) la ligne polygonale N constituant l’enveloppe convexe et on déduit directement de la Proposition 11 et du Théorème 24 : Proposition 12 Soit f une fonction de forme initiale if(f ) = ct e , Si G(f ) = 0 alors −e est une pente du polygone de Newton N de G. 10.4.3 Théorème de Nous résumons les résultats de la section précédente dans le théorème suivant. Théorème 25 (Théorème de ) Pour toute fonction f ∈ K si f est une racine de G(T ) alors la forme initiale de f est if(f ) = ct e où −e est une pente entière du polygone de Newton N de G(T ) et c est une racine du polynôme caractéristique χ e . 10.4.4 Amélioration de la localisation des racines On en déduit immédiatement du Théorème de Newton-Puiseux une amélioration du Théorème 20, p. 102 : Théorème 26 Avec les notations du Théorème 20, p. 102, soit X ∆000 def = sp · p , p∈S(G) où sp est la plus petite pente du polygone de Newton pour la valuation v p . Pour tout f ∈ K, si G(f ) = 0, alors f ∈ L (∆000 ). 10.4.5 Algorithme de Nous énonçons maintenant l’Algorithme 8 qui permet la recherche itérative des racines de G(T ) en exploitant le Théorème de Newton-Puiseux. On peut noter qu’après une étape Puiseux, on ne cherche plus que des pentes négatives puisque fˆ ∈ m. On notera NZ l’ensemble des pentes entières de N et N− l’ensemble de ses pentes entières négatives. 110 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.4. MÉTHODE DE NEWTON-PUISEUX Notation 2 Étant donnée f ∈ k((t)), on notera ( sup{n ∈ Z | coeff(f, n) 6= 0} dg(f ) def = 0 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) si f 6= 0 sinon . 111 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES Algorithme 8 Recherche de racines de Newton-Puiseux Entrée : Un polynôme G(T ) ∈ k((t)) dont les coefficients sont tronqués à la précision r. Sortie : La liste L des séries f ∈ k((t)) tronquées à l’ordre r qui sont des racines possibles de G(T ). // Initialisation : L ← {} w ← vT G(T ) si w > 0 alors // T divise G(T ) : 0 est donc une racine Inclure 0 dans L e ) ← G(T )/T w G(T fin si e 0)} Φ ← {(G, // Boucle principale tant que Φ 6= ∅ faire Ψ←∅ pour (G, fe) ∈ Φ faire N ← le polygone de Newton de G pour −e dans NZ (N− après un passage dans la boucle) faire χe ← le polynôme caractéristique associé à e pour c dans les racines de χe faire e fe ← fe + ctdgf +e e ) ← ϕ̌e,c (G(T )) G(T e w ← vT G si w > 0 alors // T divise G(T ) : 0 est donc une racine e Inclure f, tronquée à l’ordre r dans L e ) ← G(T e )/T w G(T fin si si dgfe ≤ r alors // On pourrait tenter ici de calculer la fin de fe // avec l’algorithme de Newton-Hensel e ), fe) dans Ψ Inclure (G(T sinon Inclure fe tronquée à l’ordre r dans L fin si fin pour fin pour fin pour Φ←Ψ fin tant que renvoyer L 112 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.4. MÉTHODE DE NEWTON-PUISEUX 10.4.6 Note sur les séries de en caractéristique positive Contrairement à ce qui se produit en caractéristique nulle, si k est un corps algébriquement clos de caractéristique positive, le corps des séries de Puiseux : [ khhtii def = k((t1/n )) n∈N n’est pas une clôture algébrique du corps k((t)) des séries de Laurent. On voit en effet qu’en faisant la très légère modification de l’Algorithme 8 consistant à accepter comme pentes admissibles, toutes les pentes rationnelles au lieu de ne garder que les pentes entières, Fig. 10.5 – Source [McT] on construit les racines dans khhtii de tout polynôme à coefficients Victor Puiseux (1820–1883) dans ce corps. Cependant, on risque également de construire des séries qui ne sont pas de Puiseux car leurs exposants ne tendent pas vers l’infini et/ou ont un dénominateur non-borné, comme le montre l’exemple suivant. Exemple 17 Soit k un corps algébriquement clos de caractéristique 2, K = k((x)) le corps des séries de Laurent à coefficients dans k et L = khhxii, le corps des séries de Puiseux à coefficients dans k. Le polynôme F (T ) = T 2 + T x + x ∈ K[T ] n’a pas de racines dans L, qui n’est donc pas algébriquement clos. En effet, l’algorithme de Newton-Puiseux donne deux séries : 3 7 1 f = x 2 + x 4 + x 8 + · · · et g = f + x , qui n’appartiennent ni l’une ni l’autre à L car les dénominateurs rationnels apparaissant aux exposants de x ne tendent pas vers l’infini, d’une part, et sont à dénominateur non-borné d’autre part. 10.4.7 Complexité de la méthode de Nous n’avons pas eu le temps de faire l’analyse de la complexité de cette méthode, qui est tout-à-fait efficace en pratique, surtout lorsqu’elle est relayée par la méthode de NewtonHensel une fois découplées les racines ayant le même début de développement en série de Laurent. Ajoutons pour information que le calcul de l’enveloppe convexe d’un nuage de n points dans R2 peut se faire — par exemple par une analyse de Graham [Gra72] — en O(n log n). Dans le cas d’un polynôme G m (T ) qui est de degré au plus bm , le calcul du polygone de Newton de Gm prend au plus O(bm log bm ) opérations : l’opération la plus coûteuse étant les translations G m (T + c) pour c ∈ Fq , les racines de χe (z) pouvant être trouvées en O (deg χ)2 log(deg χ) log q grâce à l’algorithme de Berlekamp-Rabin. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 113 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES Fig. 10.4 – Extrait du Methodus Fluxionum et Serierum infinitarum, écrit en latin entre 1664 et 1671, édité en anglais [New36] en 1736. Fac simile de la traduction de Buffon [New40, p. 10–13]. Source [CBG+ 94, p. 220–225] 114 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 10.4. MÉTHODE DE NEWTON-PUISEUX Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 115 CHAPITRE 10. ALGORITHMES DE RECHERCHE DE RACINES 116 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Conclusion Dans cette thèse, nous étendons les méthodes existantes de décodage en liste à tous les codes géométriques et leurs sous-codes dans un sous-corps, ainsi qu’à une distance de Hamming généralisée qui nous permet de reformuler algébriquement le problème du décodage souple et de proposer un algorithme de décodage en liste à maximum de vraisemblance sur tout canal discret sans mémoire. Nous donnons également une propriété combinatoire des codes géométriques de faible taux permettant d’une part de préciser le nombre de mots de code dans une boule de rayon donné et d’autre part, de réaliser une optimisation sensible dans le coût algorithmique du décodage en pratique et permet, par exemple, de réduire considérablement le coût de la cryptanalyse de Jakobsen. Plus généralement, nous avons proposé un ensemble de primitives algorithmiques permettant la réalisation concrète des méthodes de décodage en liste dans toute leur généralité. Nous avons finalement implanté une construction générale des codes géométriques dans le système de calcul formel Magma ainsi que leur algorithme de décodage en liste tel que nous l’avons conçu dans la partie théorique. Cette implantation a requis la programmation des primitives introduites plus haut, comme les algorithmes de Newton-Hensel et de Newton-Puiseux pour trouver les racines d’un polynôme dans un corps de fonctions d’une courbe algébrique. Nous avons montré également que la partie effective de la Théorie de Riemann-Roch pouvait être précalculée pour accélérer les calculs de décodage. Nous avons mis à l’épreuve ces méthodes en concevant une bibliothèque de simulation de canaux de communications permettant d’étudier leur comportement sur des canaux bien connus comme, par exemple, les canaux q-aires symétriques et les canaux a erreurs et effacements. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 117 118 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Notations et abréviations Notations diverses ∅ P(A) AtB def a =b b da b d̄ ` a´ n k a div b a rem b a mod b bac dae hx | yi kxk1 kxk2 f = O(g) f = Ω(g) f = Θ(g) f = o(g) f = ω(g) f (x) ∝ g(x) L’ensemble vide L’ensemble des parties de A Union disjointe de A et B a est égal à b par définition Le symbole de Kronecker valant 1 si a = b et 0 sinon Le symbole anti-Kronecker 1 − dba n! Le coefficient binomial k!(n−k)! Le quotient de la division de a par b Le reste de la division de a par b L’élément de l’anneau quotient A/hbi, a ∈ A Le plus grand entier inférieur ou égal à x Le plus petit entier supérieur ou égal à x Le scalaire x1 y1 + · · · + xn yn La norme `1 de x = (x1 , . . . , xN ) : x p1 + · · · + xN La norme `2 de x = (x1 , . . . , xN ) : x21 + · · · + x2N Il existe c > 0 tel que lim sup f /g ≤ c Il existe c > 0 tel que lim inf f /g ≥ c f = O(g) et f = Ω(g) lim sup f /g = 0 lim inf f /g = +∞ Il existe c > 0 tel que f (x) = cg(x) pour tout x Ensembles classiques N Z Q R C Fq L’ensemble des entiers naturels L’anneau des entiers relatifs Le corps des nombres rationnels Le corps des nombres réels Le corps des nombres complexes Un corps fini à q éléments Algèbre lcm(x, y) gcd(x, y) E∗ A? Frac A Le plus petit multiple commun de x et y Le plus grand diviseur de x et y L’ensemble E \ {0} Le groupe des éléments inversibles de l’anneau A Le corps des fractions de l’anneau intègre A Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 119 NOTATIONS ET ABRÉVIATIONS A[x] coeff(G, i) `disc G ´ tα (G) (T ) k(x) k[[x]] k((x)) khhxii Gal(k0 /k) [k0 : k] Mk×n (A) lker M rker M t M L’algèbre des polynômes sur l’anneau A d’indéterminée X Le coefficient de degré i du polynôme G Le discriminant du polynôme G Le polynôme translaté G(T + α) Le corps des fonctions rationnelles sur le corps k L’algèbre des séries de Taylor sur le corps k d’indéterminée x Le corps des séries de Laurent sur le corps k d’indéterminée x Le corps des séries de Puiseux sur le corps k d’indéterminée x Le groupe de Galois de l’extension k 0 /k Le degré de l’extension k 0 /k L’anneau des matrices à k lignes et n colonnes sur l’anneau A Le noyau à gauche de la matrice M Le noyau à droite de la matrice M La matrice transposée de M Courbes X X nor X(k) K(X) OX,p mX,p KX,p cp(X) cpd (X) vp (f ) Div(X) D vp (D) Supp D deg D L (D) ` (D) δ (D) χ (D) pg (X) ( f)) ( f))0 ( f))∞ Une courbe . . . . . . . La courbe normalisée de X . . . . L’ensemble des points k-rationnels de X Le corps des fonctions de X . . . . L’anneau local de X en p . . . . L’idéal maximal de Op . . . . . Le corps résiduel OX,p /mX,p . . . . L’ensemble des points fermés de X . . L’ensemble des points fermés de degré d de X La valuation de la fonction f au point p . Le module des diviseurs de Weil de la courbe X Un diviseur . . . . . . . La multiplicité de D au point p . . . Le support de D . . . . . . Le degré de D . . . . . . . L’espace vectoriel de Riemann-Roch associé à D La dimension de l’espace vectoriel L (D) . L’indice de spécialité de D . . . . La caractéristique d’Euler-Poincaré de D . Le genre de X . . . . . . . Le diviseur principal associé à la fonction f . Le diviseur des zéros de f . . . . Le diviseur des pôles de f . . . . . . . . . . . . . . . . . . 47 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 47 47 47 54 54 54 55 55 55 55 55 55 55 56 56 56 55 55 55 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 22 22 22 22 22 22 22 31 Théorie des codes d̄(x, y) D̄(x, y) dλ (x, y) d(x, y) d(x, y) D(x, y) sλ (x, y) s(x, y) Bλ (y, τ ) d(C) 120 Le vecteur des non-coı̈ncidences entre x et y Le support de d̄(x, y) . . . . La λ-distance entre x et y . . . La distance de Hamming entre x et y . Le vecteur des coı̈ncidences entre x et y Le support de d(x, y) . . . . La λ-similarité entre x et y . . . La similarité de Hamming entre x et y . La boule de centre y et de rayon τ pour dλ La distance minimale du code C . . . . . . . . . . . . Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) NOTATIONS ET ABRÉVIATIONS Vor(c) t(C) ρ(C) (n, M )-code (n, M )q -code (n, M, d)q -code wt(x) wt(C) [n, k]-code [n, k]q -code [n, k, d]q -code La cellule de Voronoı̈ de centre c . . Le rayon d’empilement du code C . . Le rayon de recouvrement du code C . Un code de longueur n ayant M éléments Un (n, M )-code sur Fq . . . . Un (n, M )q -code de distance minimale d Le poids de Hamming de x . . . Le poids minimum du code C . . Un code de longueur n et dimension k . Un [n, k]-code sur Fq . . . . Un [n, k]q -code de distance minimale d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 31 31 31 31 31 31 31 35 35 35 Algebraic-Geometric . . . . . . . . . . American Standard Code for Information Interchange Asynchronous Transfer Mode Comité Consultatif pour les Systèmes de Données Spatiales Compact Disc Cyclic Redundancy Check Drinfeld-Vlǎduţ Digital Versatile Disk European Space Agency Fiber Distributed Data Interface Fast Fourier Transform Internet Protocol International Standard Book Number Maximum Distance Separable National Aeronautics and Space Administration Non-deterministic Polynomial Polynomial Point-to-Point Protocol Redundancy Array Inexpensive Disk Reed-Muller Reed-Solomon Rivest-Shamir-Adleman Strongly Algebraic-Geometric . . . . . . . Transmission Control Protocol Tsfasman-Vlǎduţ-Zink User Datagram Protocol Weakly Algebraic-Geometric . . . . . . . . . . 60 Abréviations AG ASCII ATM CCSDS CD CRC DV DVD ESA FDDI FFT IP ISBN MDS NASA NP P PPP RAID RM RS RSA SAG TCP TVZ UDP WAG Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) . . . 60 . . 60 121 122 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Index A additif, canal . . . . . . . . . . . . . . . . . . . . . . . . . . . voir canal adèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 affine variété . . . . . . . . . . . . . . . . . . . . . . . . . . . voir variété espace . . . . . . . . . . . . . . . . . . . . . . . . . . . voir espace projection . . . . . . . . . . . . . . . . . . . . voir projection AG, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code agnostique, apprentissage . . . . . . voir apprentissage algorithme d’échelonnage-réduction. . . . . . . . . . . . . . . . . . . 94 de Brill-Noether . . . . . . . . . . . . . . . . . . . . . . . 54 de calcul d’un polynôme reconstructeur . . . 99 de décodage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 géométrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 de Newton-Hensel . . . . . . . . . . . . . . . . . . . . . 107 de Newton-Puiseux . . . . . . . . . . . . . . . . . . . . 112 de reconstruction π-adique . . . . . . . . . . . . . . . . 95 alphabet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 de sortie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 alternant, code . . . . . . . . . . . . . . . . . . . . . . . . . . voir code anneau de valuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 intégralement clos . . . . . . . . . . . . . . . . . . . . . . . . 44 local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 d’une variété . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 régulier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 topologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 apprentissage agnostique . . . . . . . . . . . . . . . . . . . . . . . 10 Arimoto, Suguru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 artificielle, intelligence . . . . . . . . . . . . voir intelligence ASCII, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code ATM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 Augot, Daniel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 B base de Gröbner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 p-échelonnée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 π-réduite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 BCH,code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code Bell Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Berlekamp, Elwyn R. . . . . . . . . . . . . . . . . . . . . . . . 8, 9 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) big endian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 birationellement équivalente, variété . . voir variété Boltzmann, Ludwig . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Boneh, Dan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 borne d’Oesterlé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 de Drinfeld-Vlǎduţ . . . . . . . . . . . . . . . . . . . . 58 de Gilbert-Varshamov . . . . . . . . . . . . . 36, 63 de Griesmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 de Hasse-Weil . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 de Johnson. . . . . . . . . . . . . . . . . . . . . . . . . . .28, 33 de Plotkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 de Serre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57, 58 de Singleton . . . . . . . . . . . . . . . . . . . . . . . . 32, 63 GV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Bose, Raj Chandra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Brill-Noether algorithme de. . . . voir algorithme bruit additif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 C Calderbank, Robert . . . . . . . . . . . . . . . . . . . . . . . . . 49 canal additif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 de communications . . . . . . . . . . . . . . . . . . . . . . . 17 exploitable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 en colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 en lignes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 canonique, diviseur . . . . . . . . . . . . . . . . . . voir diviseur caractéristique d’Euler-Poincaré . . . . . . . . . . . . 56 CCSDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 121 CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 cellule de Voronoı̈ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Chaudhuri . . . . . . . . . . . . . . . . voir Ray-Chaudhuri codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15, 35 de canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 alternant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 121 BCH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 37 correcteur d’erreurs. . . . . . . . . . . . . . . . . . . . . . . 31 CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 de Golay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 de Goppa classique . . . . . . . . . . . . . . . . . . . . . . . 59 123 INDEX de Goppa géométrique voir code géométrique de Reed-Muller . . . . . . . . . . . . . . . . . . . . . . . . . . 6 de Reed-Muller. . . . . . . . . . . . . . . . . . . . . . . . .59 de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . . 6 de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . 60 deux-parmi-cinq . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 dual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 en blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 géométrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 à un point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 AG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 121 SAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 121 sur les anneaux. . . . . . . . . . . . . . . . . . . . . . . . .49 WAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 121 GRS . . . . . . voir de Reed-Solomon généralisé hermitien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ISBN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35, 121 linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 maximal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 MDS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32, 121 modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 non-linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 parfait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 répétition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 RM . . . . . . . . . . . . . voir code de Reed-Muller RS . . . . . . . . . . . . . voir code de Reed-Solomon two-out-of-five . . . . voir code deux-parmi-cinq Z/4Z-linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 codec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 coefficient initial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Cohen, Danny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 cohomologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 coı̈ncidence support de . . . . . . . . . . . . . . . . . . . . . . voir support vecteur de . . . . . . . . . . . . . . . . . . . . . . . voir vecteur communications, canal de . . . . . . . . . . . . . . voir canal Complexité, Théorie de . . . . . . . . . . . . . . voir Théorie constellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 construite, dimension . . . . . . . . . . . . . . . . . . . . voir dimension distance . . . . . . . . . . . . . . . . . . . . . . . . voir distance continu, temps . . . . . . . . . . . . . . . . . . . . . . . . voir temps Conway, polynôme de . . . . . . . . . . . . . voir polynôme Coppersmith, Don . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 corps de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 fini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 courbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 49 hermitienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 sur un anneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 CRC, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code Cremona, transformation de . voir transformation critère jacobien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 cyclique, code . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code 124 D décodage à distance minimale. . . . . . . . . . . . . . . . . . . . . . . 17 à maximum de vraisemblance . . . . . . . . . . . . . 17 correct, probabilité de . . . . . . . voir probabilité erroné, probabilité de . . . . . . . . voir probabilité MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 définie, variété . . . . . . . . . . . . . . . . . . . . . . . . voir variété degré d’un diviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 d’une place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Delsarte, Théorème de . . . . . . . . . . . voir Théorème démodulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 démodulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 dense, valuation . . . . . . . . . . . . . . . . . . . . voir valuation désingularisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 deux-parmi-cinq, code. . . . . . . . . . . . . . . . . . .voir code différentielle, forme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 dimension construite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 d’un code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 d’un espace de Hamming . . . . . . . . . . . . . . . . . 31 d’un espace de Riemann-Roch . . . . . . . . . . . 56 d’une variété. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 discret temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir temps discrète, valuation . . . . . . . . . . . . . . . . . . voir valuation distance construite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 relative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 diviseur canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 de Weil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 des pôles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 des zéros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 non-spécial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 spécial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Drinfeld, Vladimir . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Drinfeld-Vlǎduţ, borne de . . . . . . . . . . voir borne dual d’un code . . . . . . . . . . . . . . . . . . . . . . . . . . voir code Duursma, Iwan M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 DV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 DVD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3, 121 E échelonnage-réduction . . . . . . . . . . . . . . . . . . . . . . . . . 94 effacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 élément primitif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Elias, Peter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Elkies, Noam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Elkies, Noam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 émis, mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir mot Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) INDEX émission, espace . . . . . . . . . . . . . . . . . . . . . . . voir espace empilement, rayon d’. . . . . . . . . . . . . . . . . . . voir rayon ensemble d’information . . . . . . . . . . . . . . . . . . . . . . . . 35 entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 équivalente, valeurs absolue . . . voir valeur absolue equivalentes, variétés . . . . . . . . . . . . . . . . . voir variétés ESA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 121 espace affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 d’émission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 de réception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 de Riemann-Roch . . . . . . . . . . . . . . . . . . . . . . . 56 projectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 estimation fonctionnelle . . . . . . . . . . . . . . voir Théorie Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 37 Euler-Poincaré, caractéristique d’ . . . . . . . . . voir caractéristique évaluation de Horner . . . . . . . . . . . . . . . . . . . . . . . . 107 exploitable, canal . . . . . . . . . . . . . . . . . . . . . . voir canal ExpSpace-complet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 GV, borne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir borne H Halloin, Emmanuel . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Hamming borne de . . . . . . . . . . . . . . . . . . . . . . . . . . voir borne distance de . . . . . . . . . . . . . . . . . . . . . voir distance espace de . . . . . . . . . . . . . . . . . . . . . . . . voir espace poids de. . . . . . . . . . . . . . . . . . . . . . . . . . . voir poids Hamming, Richard W. . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Hammons, Roger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Hasse-Weil, borne de . . . . . . . . . . . . . . . . . voir borne Havemose, Allan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Hensel, Kurt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 hermitien, code . . . . . . . . . . . . . . . . . . . . . . . . . voir code hermitienne, courbe . . . . . . . . . . . . . . . . . . . voir courbe Heydtmann, Agnes . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Hocquenghem, Alexis . . . . . . . . . . . . . . . . . . . . . . . . . 9 Høholdt, Tom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Horner, évaluation de . . . . . . . . . . . . voir évaluation Hypothèse de Riemann . . . . . . . . . . . . . . . . . . . . . . . . 57 F FDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 Feng, Gui-Liang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 fermé, point . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir point FFT, multiplication par . . . . . . . voir multiplication fini corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir corps fonctionnelle, estimation . . . . . . . . . . . . . voir Théorie fonctions, corps de . . . . . . . . . . . . . . . . . . . . . voir corps forme différentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 forme initiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 formules explicites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 G Garcia, Arnaldo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 génératrice, matrice . . . . . . . . . . . . . . . . . . voir matrice genre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 géométriquement irréductible, variété . voir variété Gilbert, Edgar N. . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 36 Gilbert-Varshamov, borne de. . . . . . . .voir borne Golay, code de . . . . . . . . . . . . . . . . . . . . . . . . . voir code Golay, Marcel J. E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Goldreich, Oded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Goppa, Valery D. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 59 Goppa, code de . . . . . . . . . . . . . . . . . . . . . . . . . voir code Griesmer, borne de . . . . . . . . . . . . . . . . . . . voir borne Gröbner, base de . . . . . . . . . . . . . . . . . . . . . . voir base groupe des diviseurs de Weil . . . . . . . . . . . voir module des valeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 GRS, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code Guruswami, Venkatesan. . . . . . . . . . . . . . . . . . . . . . .70 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) I I-adique, topologie . . . . . . . . . . . . . . . . . voir topologie indice de spécialité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Inégalité de Riemann . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Information Théorie de l’ . . . . . . . . . . . . . . . . . . . . voir Théorie information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 système. . . . . . . . . . . . . . . . . . . . . . . . .voir système taux d’ . . . . . . . . . . . . voir taux de transmission Information, théorie d’ . . . . . . . . . . . . . . . voir Théorie initial, coefficient . . . . . . . . . . . . . . . . . . voir coefficient initiale, forme. . . . . . . . . . . . . . . . . . . . . . . . . . voir forme intégralement clos, anneau. . . . . . . . . . . .voir anneau intelligence artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 20, 121 v4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 v6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ISBN, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code J jacobien, critère . . . . . . . . . . . . . . . . . . . . . . . voir critère Jakobsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Jensen, H. Elbrønd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Johnson rayon de . . . . . . . . . . . . . . . . . . . . . . . . . . voir rayon Johnson, borne de . . . . . . . . . . . . . . . . . . . . voir borne Jupiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Justesen, Jørn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 125 INDEX K Karatsuba, multiplication de . voir multiplication Kirfel, Christoph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Klein, quartique de . . . . . . . . . . . . . . . voir quartique Krachkovskii, Viktor Yu. . . . . . . . . . . . . . . . . . . . . . 9 Kumar, Vijay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 k-variété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 49 de Karatsuba . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 par FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91, 121 N Lagrange, Joseph-Louis . . . . . . . . . . . . . . . . . . . . . . 10 Larsen, Knud J. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Lilliput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 linéaire, code . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code lisse, point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir point little endian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 local, anneau . . . . . . . . . . . . . . . . . . . . . . . . . voir anneau localisateur, polynôme . . . . . . . . . . . . . voir polynôme longueur d’un code en blocs . . . . . . . . . . . . . . . . . . . . . . . . 31 normalisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 NASA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 121 Newton-Hensel, algorithme de . . voir algorithme Newton-Puiseux, algorithme de . voir algorithme Nielsen, Rasmus Refslund . . . . . . . . . . . . . . . . . . . . 92 Noether, Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 non-coı̈ncidence support de . . . . . . . . . . . . . . . . . . . . . . voir support non-coı̈ncidence vecteur de . . . . . . . . . . . . . . . . . . . . . . . voir vecteur non-linéaire, code . . . . . . . . . . . . . . . . . . . . . . . voir code non-singulière, variété. . . . . . . . . . . . . . . . . voir variété non-spécial, diviseur . . . . . . . . . . . . . . . . . voir diviseur normal, anneau. . . . . . . . . . . . . . . . . . . . . . .voir anneau normalisée, longueur . . . . . . . . . . . . . . . . voir longueur normalisée, valuation . . . . . . . . . . . . . . . voir valuation norme d’une valeur absolue . . . . . . . . . . . . . . . . . . . . 48 NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8, 121 M O Madelung, Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Magma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 MAP, décodage . . . . . . . . . . . . . . . . . . . . voir décodage Mariner 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Mars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Mars Global Surveyor . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Massey, James L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 matrice de parité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 de transitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 alphabétiques . . . . . . . . . . . . . . . . . . . . . . . . . . 19 génératrice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 maximal (code) . . . . . . . . . . . . . . . . . . . . . . . . . voir code maximum de diviseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 maximum de vraisemblance, décodage . . . . . . . . voir décodage McEliece, Robert J. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 MDS, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code minimale, distance . . . . . . . . . . . . . . . . . . voir distance minimum de diviseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 minimum, poids . . . . . . . . . . . . . . . . . . . . . . . . voir poids modèle plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 37 modulaire, code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 module des diviseurs de Weil . . . . . . . . . . . . . . . . . 55 mot émis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 reçu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 multiplication Oesterlé, Joseph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Olshevsky, Vadim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ordinateur, erreurs dans les . . . . . . . . . . . . . . . . . . . . . 3 ordre d’un pôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 d’un zéro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 L 126 P P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8, 121 p-échelonnée, base. . . . . . . . . . . . . . . . . . . . . . . voir base parfait, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code parité, matrice de . . . . . . . . . . . . . . . . . . . . voir matrice partage du secret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 PCP, Théorème. . . . . . . . . . . . . . . . . . . . voir Theorème Pellikaan, Ruud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Peterson, W. Wesley . . . . . . . . . . . . . . . . . . . . . . . . . . 9 physique statistique. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 π-adique, reconstruction . . . . . . . voir reconstruction π-réduite, base . . . . . . . . . . . . . . . . . . . . . . . . . . voir base place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48, 54 Plotkin, borne de . . . . . . . . . . . . . . . . . . . . voir borne P 6= NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 poids de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 point à l’infini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 au dessus de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 fermé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 lisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 rationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) INDEX pôle d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 pôles, diviseur des . . . . . . . . . . . . . . . . . . . voir diviseur polygone de Newton . . . . . . . . . . . . . . . . . . . . . . . . . 110 polynôme de Conway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 localisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 reconstructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 PPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 primitif élément, seeélément . . . . . . . . . . . . . . . . . . . . . . . 37 principal, diviseur . . . . . . . . . . . . . . . . . . . voir diviseur probabilité d’erreur de décodage . . . . . . . . . . . . . . . . . . . . . 17 de décodage correct . . . . . . . . . . . . . . . . . . . . . . 17 de transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 probabilité a posteriori . . . . . . . . . . . . . . . . . . . . . . . . 17 projectif, espace . . . . . . . . . . . . . . . . . . . . . . . voir espace projection affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 projective, variété. . . . . . . . . . . . . . . . . . . . . voir variété projectivisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Puiseux, Victor A. . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Q quartique de Klein . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 R rafales d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 Rao, Thammavarapu R. N. . . . . . . . . . . . . . . . . . . . . . 9 Ray-Chaudhuri, Dwijendra K. . . . . . . . . . . . . . . . . . 9 rayon d’empilement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 de Johnson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 de recouvrement . . . . . . . . . . . . . . . . . . . . . . . . . . 31 réception, espace . . . . . . . . . . . . . . . . . . . . . . voir espace reconstructeur, polynôme . . . . . . . . . . voir polynôme recouvrement, rayon de . . . . . . . . . . . . . . . . voir rayon reçu, mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir mot Reed, Irving S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Reed-Muller, code de . . . . . . . . . . . . . . . . . voir code Reed-Solomon, code de . . . . . . . . . . . . . . . voir code Rees, algèbre de . . . . . . . . . . . . . . . . . . . . . voir algèbre régulier, anneau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 relative, distance . . . . . . . . . . . . . . . . . . . . voir distance répétition, code . . . . . . . . . . . . . . . . . . . . . . . . . voir code résultant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 Riemann Inégalité de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Théorème de . . . . . . . . . . . . . . . . . . . voir Inégalité Riemann, G. F. Bernhard . . . . . . . . . . . . . . . . . . . . . 47 Riemann, hypothèse de. . . . . . . . . . . . . . . . . . . . . . . . 57 Riemann-Roch espace de . . . . . . . . . . . . . . . . . . . . . . . . voir espace Théorème de . . . . . . . . . . . . . . . . . voir Théorème Ron, Dana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Roth, Ron M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Round 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Round 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 121 Ruckenstein, Gitit . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 S SAG, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code Sahai, Amit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Sakata, Shojiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 satellite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Saturne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 secret, partage du . . . . . . . . . . . . . . . . . . . . voir partage semigroupe de Weierstrass . . . . . . . . . . . . . . . . . . 10 Serre, borne de . . . . . . . . . . . . . . . . . . . . . . . voir borne Shamir, Adi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Shannon, Claude E. . . . . . . . . . . . . . . . . . . . . . . . . 3, 15 Shokrollahi, M. Amin . . . . . . . . . . . . . . . . . . . . . . . 11 Singleton, borne de . . . . . . . . . . . . . . . . . . voir borne Skorobogatov, Alexei N. . . . . . . . . . . . . . . . . . . . . . . 9 Slepian, David . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Sloane, Neil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Solé, Patrick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Solomon, Gustave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 sonde spatiale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 sous-marins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 spécial, diviseur . . . . . . . . . . . . . . . . . . . . . voir diviseur statistique, physique . . . . . . . . . . . . . . . . voir physique Stichtenoth, Henning . . . . . . . . . . . . . . . . . . . . . . . . 59 streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Sudan, Madhu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 support d’un diviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 de coı̈ncidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 de non-coı̈ncidence . . . . . . . . . . . . . . . . . . . . . . . 22 symétrique, canal . . . . . . . . . . . . . . . . . . . . . . voir canal système d’information . . . . . . . . . . . . . . . . . . . . . . . . . . 3 T taux d’information . . . . . . voir taux de transmission de transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 téléphone mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Théorème de Delsarte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 de Riemann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 de Riemann-Roch . . . . . . . . . . . . . . . . . . . . . . . 57 de Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 PCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 127 INDEX Théorie de l’Estimation Fonctionnelle . . . . . . . . . . . . . 11 de l’Information . . . . . . . . . . . . . . . . . . . . . . . . 3, 15 de la Complexité. . . . . . . . . . . . . . . . . . . . . . . . . .11 de Riemann-Roch . . . . . . . . . . . . . . . . . . . . . . . 55 des codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Token Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 topologie I-adique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 topologique, anneau . . . . . . . . . . . . . . . . . . voir anneau transformation de Cremona . . . . . . . . . . . . . . . . . . . 52 transition, probabilité de. . . . . . . . . . voir probabilité transitions, matrice de . . . . . . . . . . . . . . . voir matrice transmission, taux de . . . . . . . . . . . . . . . . . . . voir taux triviale, valuation . . . . . . . . . . . . . . . . . . voir valuation Tsfasman, Michael A. . . . . . . . . . . . . . . . . . . . . . . . . . . 7 TVZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 two-out-of-five code . . . . voir code deux-parmi-cinq W WAG, code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . voir code Walker, Judy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Wasserman, Hal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Weierstrass, semigroupe de . . . . voir semigroupe Weil, André . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Weil, diviseur de. . . . . . . . . . . . . . . . . . . . voir diviseur Wocjan, Pawel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Wozencraft, John . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Z Zassenhaus, Hans . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 zéro d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 zéros, diviseur des . . . . . . . . . . . . . . . . . . . voir diviseur Zink, Thomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 U UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 121 uniformisante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 V valeur absolue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 associée à une valuation . . . . . . . . . . . . . . . . . . 48 équivalente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 valuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 discrète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 normalisée . . . . . . . . . . . . . . . . . . . . . . . . . 44, 45 triviale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 valuation, anneau de . . . . . . . . . . . . . . . . . voir anneau van Tilborg, Henk C. A. . . . . . . . . . . . . . . . . . . . . . . 8 Vardy, Alexander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 variété . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 birationellement équivalente . voir équivalente définie sur un corps . . . . . . . . . . . . . . . . . . . . . . . 47 équivalente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 géométriquement irréductible . . . . . . . . . . . . . 47 non-singulière . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 projective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Varshamov, Rom. R. . . . . . . . . . . . . . . . . . . . . . . . . . 36 vecteur de coı̈ncidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 de non-coı̈ncidence . . . . . . . . . . . . . . . . . . . . . . . 22 Vlǎduţ Serguei G. . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 9 Vlǎduţ, Serguei G. . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 volume d’une boule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 von Brill, Alexander . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Voronoı̈, cellule de . . . . . . . . . . . . . . . . . . . voir cellule Voyager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 vraisemblance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 128 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) Bibliographie [Abh76] Shreeram S. Abhyankar. Historical ramblings in algebraic geometry and related algebra. American Mathematical Monthly, vol. 86 pp. 409–448, 1976. [Abh90] Shreeram S. Abhyankar. Algebraic Geometry for Scientists and Engineers, volume 35 of Mathematical Surveys and Monographs. American Mathematical Society, 1990. [AP00] Daniel Augot et Lancelot Pecquet. A Hensel lifting to replace factorization in list-decoding of algebraic-geometric and Reed-Solomon codes. IEEE Transactions on Information Theory, vol. 46, no 7 pp. 2605–2614, 2000. [Ari61] Suguru Arimoto. Encoding and decoding of p-ary group codes and the correction system. Information Processing in Japan, vol. 2 pp. 320–325, 1961. (en japonais). [BC01] Wieb Bosma et John Cannon. Handbook of Magma Functions, 2001. Regularly updated, see http://www.maths.usyd.edu.au:8000/u/magma/. [BCS97] Wieb Bosma, John Cannon, et Allan Steel. Lattices of compatibly embedded finite fields. Journal of Symbolic Computation, vol. 24 pp. 351–369, 1997. [Ber65] Elwyn R. Berlekamp. On decoding the Bose-Chauduri-Hocqenghem codes. IEEE Transactions on Information Theory, vol. 11 pp. 577–579, 1965. [Ber96] Elwyn R. Berlekamp. Bounded distance+1 soft-secision Reed-Solomon decoding. IEEE Transactions on Information Theory, vol. 42, n o 3 pp. 704–720, 1996. [BK78] Richard P. Brent et H. T. Kung. Fast algorithms for manipulating formal power series. Journal of the ACM, vol. 25, n o 4 pp. 581–595, 1978. [BL87] Denis Bosq et Jean-Pierre Lecoutre. Théorie de l’estimation fonctionnelle. Collection « Économie et Statistiques avancées », Série ENSAE et CEPE. Economica, Paris, 1987. [Bla] Richard E. Blahut. Decoding cyclic codes and codes on curves. Chapter 19 dans [PH98], pp. 1569–1633. [BMvT78] Elwyn R. Berlekamp, Robert J. McEliece, et Henk C. A. van Tilborg. On the inherent intractability of certain coding problems. IEEE Transactions on Information Theory, vol. IT-24 pp. 384–386, 1978. [Bon00] Dan Boneh. Finding smooth integers using CRT decoding. In Proceedings of STOC ’2000., 2000. [Bou70] Nicolas Bourbaki. Éléments de Mathématique, volume Algèbre I, chap. 1–4. Hermann, Paris, 1970. [Bou89] Nicolas Bourbaki. Commutative Algebra Chapters 1–7. Elements of Mathematics. Springer-Verlag, 1989. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 129 BIBLIOGRAPHIE [BR60a] Raj Chandra Bose et Dwijendra K. Ray-Chaudhuri. Further results on errorcorrecting binary group codes. In Information and Control [BR60b], pp. 279–290. [BR60b] Raj Chandra Bose et Dwijendra K. Ray-Chaudhuri. On a class or errorcorrecting binary group codes. Information and Control, vol. 3 pp. 68–79, 1960. [BW] Elwyn R. Berlekamp et Lloyd R. Welch. Error correction of algebraic block codes. patent 4,633,470. dec 30th, 1986. [BW98] Bruno Buchberger et Franz Winkler, editors. Gröbner Bases and Applications, volume 251 of Lecture Note Series. London Mathematical Society, Cambridge University Press, 1998. [CA00] Eduardo Casas-Alvero. Singularities of Plane Curves, volume 276 of Lecture Note Series. Cambridge University Press, London Mathematical Society, 2000. + [CBG 94] Jean-Luc Chabert, Évelyne Barbin, Michel Guillemot, Anne Michel-Pajus, Jacques Borowczyk, Ahmed Djebbar, et Jean-Claude Martzloff. Histoire d’Algorithmes. Du caillou à la puce. Collection Regards sur la Science. Belin, Paris, 1994. [CCS99] Telemetry Channel Coding. Recommandations for space data system standards. Blue Book no 101.0-B-4. Consultative Commitee for Space Data Systems (CCSDS). http://www.ccsds.org/ccsds/ccsds_blue_books.html, 1999. [Chr86] George Chrystal. Algebra, parts I & II. Edimburgh, 1886. [Coh81] Danny Cohen. On holy wars and a plea for peace. IEEE Computer Magazine, vol. 14 pp. 48–54, 1981. RFC no IEN-137 : http://www.op.net/docs/RFCs/ ien-137. [Cop96a] Don Coppersmith. Finding a small root of a bivariate integer equation ; factoring with high bits known. In U. Maurer, editor, Advances in Cryptology — EUROCRYPT’96, Lecture Notes in Computer Science 1070, pp. 178–189. SpringerVerlag, 1996. [Cop96b] Don Coppersmith. Finding a small root of a univariate modular equation. In U. Maurer, editor, Advances in Cryptology — EUROCRYPT’96, Lecture Notes in Computer Science 1070, pp. 155–165. Springer-Verlag, 1996. [Cop97] Don Coppersmith. Small solutions to polynomial equations, and low exponent rsa vulnerabilities. Journal of Cryptology, vol. 10, n o 4 pp. 233–260, 1997. [Cop01] Don Coppersmith. Finding small solutions to small degree polynomials. In J. H. Silverman, editor, Proceedings of Cryptography and Lattices Conference (CaLC 2001), Lecture Notes in Computer Science 2146, pp. 20–31. SpringerVerlag, 2001. [Del75] Philippe Delsarte. On subfield subcodes of modified Reed-Solomon codes. IEEE Transactions on Information Theory, vol. 16, n o 6 pp. 575–576, 1975. [DH76] Whitfield Diffie et Martin E. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, vol. IT-22, n o 6 pp. 644–654, 1976. [dJ] Theo de Jong. An algorithm for computing the integral closure. preprint, Saarland University, Saarbrücken. [Dri86] Yves Driencourt. Some properties of elliptic codes over a field of characteristic 2. In Proceedings of AAECC-3, Grenoble 1985, volume 229 of Lecture Notes in Computer Science, pp. 185–193. Springer-Verlag, 1986. 130 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) BIBLIOGRAPHIE [Duu93a] Iwan M. Duursma. Algebraic coding using special divisors. IEEE Transactions on Information Theory, vol. IT-39 pp. 694–698, 1993. [Duu93b] Iwan M. Duursma. Decoding Codes from Curves and Cyclic Codes. Phd thesis, Technische Universiteit Eindhoven, Pays Bas, 1993. [Duu93c] Iwan M. Duursma. Majority coset decoding. IEEE Transactions on Information Theory, vol. IT-39 pp. 1067–1071, 1993. [Duv87] Dominique Duval. Diverses questions relatives au Calcul Formel avec des Nombres Algébriques. Thèse de doctorat, Université Scientifique, Technologique et Médicale de Grenoble, 1987. [Duv89] Dominique Duval. Rational Puiseux expansions. Compositio Mathematica, vol. 70 pp. 119–154, 1989. [DV83] Vladimir G. Drinfeld et Serguei G. Vl ǎduţ. The number of points of an algebraic curve. Functional Analysis and its Applications, vol. 17 pp. 53–54, 1983. [Edo98] Antoine Edouard. Formules explicites et nombre de points des courbes sur les corps finis : la borne d’Oesterlé. Thèse de doctorat, Université de la Méditerranée Aix-Marseille II, Marseille, France, 1998. [EH00] David Eisenbud et Joe Harris. The Geometry of Schemes. Graduate Texts in Mathematics. Springer, 2000. [Eis95] David Eisenbud. Commutative Algebra with a View Toward Algebraic Geometry. Graduate Texts in Mathematics. Springer-Verlag, 1995. [Eli57] Peter Elias. List decoding for noisy channel. Technical Report 335, Research Lab. in Electronics, MIT, Cambridge, 1957. also in Wescon Convention Record, Part 2, Institute of Radio Engineers (now IEEE), pp. 94–104, 1957. [Eli91] Peter Elias. Error-correcting codes for list decoding. IEEE Transactions on Information Theory, vol. 37 pp. 5–12, 1991. [Elk97] Noam Elkies. Explicit modular towers. In T. Basar et A. Vardy, editors, Proceedings of the Thirty-Fifth Annual Allerton Conference on Communication, Control and Computing, Univ. of Illinois at Urbana-Champaign, pp. 23–32, 1997. [Fei95] Joan Feigenbaum. The use of coding theory in computational complexity. In Different aspects of coding theory (San Francisco, CA, 1995), pp. 207–233. American Mathematical Society, Providence, RI, 1995. [For66] G. David Forney Jr. Generalized minimum distance decoding. IEEE Transactions on Information Theory, vol. IT-12, n o 2 pp. 125–131, 1966. [FR93] Gui-Liang Feng et Thammavarapu R. N. Rao. Decoding algebraic-geometric codes up to the designed minimum distance. IEEE Transactions on Information Theory, vol. 39, no 1 pp. 37–45, 1993. [Ful89] William Fulton. Algebraic curves, An introduction to algebraic geometry. Advanced Book Classics. Addison-Wesley, 1989. [GHSZ] Venkatesan Guruswami, Johan H åstad, Madhu Sudan, et David Zuckerman. Combinatorial bounds for list-decoding. preprint, 2001. A preliminary version appears in the Proceedings of the Annual Allerton Conference on Communication, Control and Computing, Monticello, Illinois, October 2000, pp. 603–612. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 131 BIBLIOGRAPHIE [Gil52] Edgar N. Gilbert. A comparison of signalling alphabets. Bell Systems Technical Journal, vol. 31 pp. 504–522, 1952. [Gop70] Valery D. Goppa. A new class of error-correcting codes. Problems of Information Transmission, vol. 6, no 3 pp. 207–212, 1970. [Gop81] Valery D. Goppa. Codes on algebraic curves. Doklady Akademuu Nauk SSSR, vol. 259, no 6 pp. 1289–1290, 1981. [Gor52] Daniel Gorenstein. An arithmetic theory of adjoint plane curves. Transactions of the American Mathemathcal Society, vol. 72 pp. 414–436, 1952. [GR71] Hans Grauert et Reinhold Remmert. Analytische Stellenalgebren. Springer, 1971. [Gra72] Ronald L. Graham. An efficient algorithm for determining the convex hull of a finite planar set. Information Processing Letters, vol. 1 pp. 132–133, 1972. [Gro61] Alexandre Grothendieck. Éléments de géométrie algébrique. IH ÉS, 1961. [GRS98] Oded Goldreich, Ronitt Rubinfeld, et Madhu Sudan. Learning polynomials with queries, the highly noisy case. Electronic Colloquium in Computational Complexity. Technical Report, no TR98-060, Version préliminaire dans FOCS’95., 1998. [GS95] Arnaldo Garcia et Henning Stichtenoth. A tower of Artin-Schreier extensions of function fields attaining the Drinfeld-Vlǎduţ bound. Inventiones Mathematicae, vol. 121 pp. 211–222, 1995. [GS99] Venkatesan Guruswami et Madhu Sudan. Improved decoding of Reed-Solomon and algebraic-geometric codes. IEEE Transactions on Information Theory, vol. 45, no 6 pp. 1757–1767, 1999. [GS00] Venkatesan Guruswami et Madhu Sudan. List decoding algorithms for certain concatenated codes. In Proceedings of the 32nd annual ACM symposium on Theory of computing, 2000. ACM Digital Library (http://www.acm.org), also in STOC’2000. [GS01] Venkatesan Guruswami et Madhu Sudan. On representations of algebraicgeometric codes. IEEE Transactions on Information Theory, vol. 47, n o 4 pp. 1610–1613, 2001. [Gur01] Venkatesan Guruswami. List Decoding of Error-Correcting Codes. Phd thesis, Department of Electrical Engineering and Computer Science, MIT, 2001. [Hac96] Gaétan Haché. Construction effective des codes géométriques. Thèse de doctorat, Université Paris VI, 1996. [Hal98] Emmanuel Halloin. Calcul de fermeture intégrale en dimension 1 et factorisation. Thèse de doctorat, Université de Poitiers, 1998. [Ham50] Richard W. Hamming. Error detecting and error correcting codes. Bell System Technical Journal, vol. 29 pp. 147–160, 1950. [Har93] Robin Hartshorne. Algebraic Geometry. Springer-Verlag, New-York, 1993. [HB95] Gaétan Haché et Dominique Le Brigand. Effective construction of algebraicgeometric codes. IEEE Transactions on Information Theory, vol. 41, n o 6 pp. 1615–1628, 1995. 132 Graduate Texts in Mathematics. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) BIBLIOGRAPHIE [Hen08] [Hes99] Kurt Hensel. Theorie der algebraischen zahlen. Teubner, Leipzig, 1908. Florian Hess. Zur Divisorenklassengruppenberechnung in globalen Funktionenkörpern. Phd thesis, Technischen Universität Berlin, 1999. [Hes01] Florian Hess. Computing Riemann-Roch spaces in algebraic function fields and related topics. Journal of Symbolic Computation, vol. 11 pp. 1—21, 2001. [HI94] Ming-Deh Huang et Doug Ierardi. Efficient algorithms for the Riemann-Roch problem and for addition in the jacobian of a curve. Journal of Symbolic Computation, vol. 18 pp. 519–539, 1994. [Hir57] Heisuke Hironaka. On the arithmetic genera and the effective genera of algebraic curves. Memoirs of the College of Science, University of Kyoto, Series A, vol. XXX, no 2 pp. 177–195, 1957. [HJ99] Agnes E. Heydtmann et Thomas Jakobsen. Decoding Reed-Muller codes beyond half the minimum distance. Mat-report n o 1999-22, Technical University of Denmark, Lyngby, 1999. [HJ01] Tom Høholdt et Jorn Justesen. Bounds on list decoding of MDS codes. IEEE Transactions on Information Theory, vol. 47, n o 4 pp. 1604–1609, 2001. [HKC+ 94] A. Roger Hammons, P. Vijay Kumar, A. Robert Calderbank, Neil J. A. Sloane, et Patrick Solé. The Z4 -linearity of Kerdock, Preparata, Goethals and related codes. IEEE Transactions on Information Theory, vol. 40, n o 2 pp. 301– 319, 1994. [Hoc59] Alexis Hocquenghem. Codes correcteurs d’erreurs. Chiffres, vol. 2 pp. 147–156, 1959. (Paris, France). [HP95] Tom Høholdt et Ruud Pellikaan. On the decoding of algebraic-geometric codes. IEEE Transactions on Information Theory, vol. 41, n o 6 pp. 1589–1614, 1995. [HT] Iiro Honkala et Aimo Tietäväinen. Codes and number theory. Chapter 13 dans [PH98], pp. 1141–1194. [HvP] Tom Høholdt, Jacobus H. van Lint, et Ruud Pellikaan. Algebraic-geometric codes. Chapter 10 dans [PH98], pp. 871–961. [Iha81] Yasutaka Ihara. Some remarks on the number of rational points of algebraic curves over finite fields. Journal of the Faculty of Sciences of Tokyo, vol. IA, n o 28 pp. 721–724, 1981. [Jak98] Thomas Jakobsen. Cryptanalysis of block ciphers with probabilistic non-linear relations of low degree. In CRYPTO’98, volume 1462 of LNCS. Springer-Verlag, 1998. + [JLJ 89] Jørn Justesen, Knud J. Larsen, H. Elbrønd Jensen, Allan Havemose, et Tom Høholdt. Construction and decoding of a class of algebraic-geometric codes. IEEE Transactions on Information Theory, vol. 35, n o 4 pp. 811–821, 1989. [JLJH92] Jørn Justesen, Knud J. Larsen, H. Elbrønd Jensen, et Tom Høholdt. Fast decoding of codes form algebraic plane curves. IEEE Transactions on Information Theory, vol. IT-38 pp. 111–112, 1992. [KP95] Christoph Kirfel et Ruud Pellikaan. The minimum distance code in an array coming from telescopic semigroups. IEEE Transactions on Information Theory, vol. 41, no 6 pp. 1720–1732, 1995. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 133 BIBLIOGRAPHIE [Kra88] Viktor Yu. Krachlkovskii. Decoding of codes on algebraic curves. exposé en russe à Odessa, 1988, 1988. [KSS92] Michael J. Kearns, Robert E. Schapire, et Linda M. Sellie. Towards efficient agnostic learning. In Proceedings of the fifth ACM workshop on Computational Learning Theory (COLT’92), Pittsburg, Pensylvania, pp. 341–352. ACM Press, 1992. [KV00] Ralph Koetter et Alexander Vardy. Algebraic soft-decoding of Reed-Solomon codes. preprint, présenté à ISIT’00, 2000. [Lan95] Serge Lang. Algebra. Addison Wesley, 3rd édition, 1995. [LM00] R. Lercier et F. Morain. Computing isogenies between elliptic curves over F pn using Couveignes’s algorithm. Math. Comp., vol. 69, n o 229 pp. 351–370, January 2000. disponible sur http://www.lix.polytechnique.fr/~morain/. [Mal84] Marie-Paule Malliavin. Algèbre commutative. Maı̂trise de Mathématiques Pures. Masson, 1984. [Mas65] James L. Massey. Step-by-step decoding of the Bose-Chaudhuri-Hocqenghem codes. IEEE Transactions on Information Theory, vol. 11 pp. 580–585, 1965. [Mas69] James L. Massey. Shift-register synthesis and BCH decoding. IEEE Transactions on Information Theory, vol. IT-15, n o 1 pp. 122–127, 1969. [McT] The MacTutor History of Mathematics Archive. st-and.ac.uk/~history/. [Mor91] Carlos J. Moreno. Algebraic Curves over Finite Fields. Cambridge Tracts in Mathematics. Cambridge University Press, 1991. [MPS97] Ernst W. Mayr, Hans J. Prömel, et Angelika Steger, editors. Lectures on Proof Verification and Approximation Algorithms, volume 1367 of Lecture Notes in Computer Science (Tutorial). Springer-Verlag, 1997. [MS88] Florence J. MacWilliams et Neil J. A. Sloane. The theory of error-correcting codes. North-Holland Mathematical Library. North-Holland, 1988. [New] Newtonia. http://www-groups.dcs.st-and.ac.uk. [New36] Isaac Newton. Methodus Fluxionum et Serierum infinitarum. Traduction anglaise de John Colson, 1736. [New40] Isaac Newton. La méthode des fluxions et les suites infinies. Traduction française de Georges de Buffon, Paris, 1740. [NH98] R. Refslund Nielsen et Tom Høholdt. Decoding Reed-Solomon codes beyond half the minimum distance. In Proceedings of the International Conference on Coding Theory and Cryptography, Mexico 1998. Springer-Verlag, 1998. [Nie00] Rasmus Refslund Nielsen. A class of Sudan-decodable codes. IEEE Transactions on Information Theory, vol. 46, no 4 pp. 1564–1572, 2000. [NK95] Kaisa Nyberg et Lars R. Knudsen. Provable security against a differential attack. Journal of Cryptology, vol. 8, n o 1 pp. 27–37, 1995. Présenté à la rump session de CRYPTO’92. [Oes82] Joseph Oesterlé. Choix optimal dans la méthode des formules explicites. Conférence au Collège de France (Non publié), 1982. 134 http://www-groups.dcs. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) BIBLIOGRAPHIE [OS99] Vadim Olshevsky et M. Amin Shokrollahi. A displacement approach to efficient decoding of algebraic-geometric codes. In Proceedings of of the Thirty First ACM Symposium on Theory of Computing. (STOC’99), pp. pp. 235–244. ACM, 1999. [Pap94] Christos H. Papadimitriou. Computational Complexity. Addison-Wesley, 1994. [Pec98] Lancelot Pecquet. On the τ -reconstruction of Reed-Solomon codes using affine plane curves. In Proceedings of the sixth Algebraic and Combinatorial Coding Theory conference (ACCT-6), Pskov, Russia., pp. 199–202, 1998. [Pec99] Lancelot Pecquet. Décodage et cryptanalyse avec l’algorithme de Sudan. Conference IC5, DGA, Paris, France. Disponible sur http://www-rocq.inria.fr/ ~pecquet/pro/articles/articles.html, mar 1999. [Pec00a] Lancelot Pecquet. Algebraic-geometric codes in real life. Curves And Abelian Varieties Over Finite Fields And Their Applications, Anogia, Crete, Greece, aug 2000. [Pec00b] Lancelot Pecquet. Building algebraic-geometric codes in Magma. Third European Congress of Mathematics. Barcelona, Espagne., jul 2000. Collaboration avec Pawel Wocjan. Disponible sur http://www-rocq.inria.fr/~pecquet/ pro/articles/articles.html. [Pec01a] Lancelot Pecquet. Bornes d’Oesterl é, programme C, 2001. disponible sur http://www-rocq.inria.fr/~pecquet/pro/soft/soft.html. [Pec01b] Lancelot Pecquet. A First Course in Magma, The Computer Algebra System. Springer-Verlag, 2001. à paraı̂tre. [Pet60] W. Wesley Peterson. Encoding end error-correction procedures for the BoseChauduri codes. IEEE Transactions on Information Theory, vol. IT-6 pp. 459–470, 1960. [PH98] Vera S. Pless et William C. Huffman, editors. Handbook of Coding Theory. North-Holland, 1998. [PSvW91] Ruud Pellikaan, Ba-Zhong Shen, et G J. M. van Wee. Which codes are algebraic-geometric ? IEEE Transactions on Information Theory, vol. IT-37 pp. 583–602, 1991. [PTVF92] William H. Press, Saul A. Teukolsky, William T. Vetterling, et Brian P. Flannery. Numerical Recipes in C. Cambridge, 1992. réimpression 1999. [RB88] Jean-Jacques Risler et Dominique Le Brigand. Algorithme de Brill-Noether et codes de Goppa. Bulletin de la Société Mathématique de France, vol. 116 pp. 231– 253, 1988. [Ret75] Charles T. Retter. Decoding Goppa codes with a BCH decoder. IEEE Transactions on Information Theory, vol. 21 p. 112, 1975. [Rom92] Steven Roman. Coding and Information Theory. Graduate Texts in Mathematics. Springer-Verlag, 1992. [RR00] Ron M. Roth et Gitit Ruckenstein. Efficient decoding of Reed-Solomon codes beyond half the minimum distance. IEEE Transactions on Information Theory, vol. 46 pp. 246–257, 2000. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 135 BIBLIOGRAPHIE [RS60] Irving S. Reed et Gustave Solomon. Polynomial codes over certain finite fields. Journal of the SIAM, vol. 8 pp. 300–304, 1960. [Sak90] Shojiro Sakata. Extension of the Berlekamp-Massey algorithm to n dimensions. Information and Computation, vol. 84, n o 2 pp. 207–239, 1990. [SAK+ 01] Kenneth W. Shum, Ilia Aleshnikov, P. Vijay Kumar, Henning Stichtenoth, et Vinay Deolalikar. A low-complexity algorithm for the construction of algebraic-geometric codes better than the Gilbert-Varshamov bound. IEEE Transactions on Information Theory, vol. 47, n o 6 pp. 2225–2241, 2001. Hermann, 2 ème [Ser59] Jean-Pierre Serre. Groupes algébriques et corps de classe. édition édition, 1959. [Ser83] Jean-Pierre Serre. Sur le nombre de points rationnels d’une courbe algébrique sur un corps fini. Comptes-rendus de l’Académie des Sciences, vol. 296 pp. 397–402, 1983. (Collected Papers, no 128, vol III, p. 664, Springer-Verlag). [Sha48] Claude E. Shannon. A mathematical theory of communication. Bell System Technical Journal, vol. 27 pp. 379–423, 623–656, 1948. [Sha79] Adi Shamir. How to share a secret. Communications of the ACM, vol. 22, n o 11 pp. 612–613, 1979. [She92] Ba-Zhong Shen. Algebraic-Geometric Codes and their Decoding Algorithm. PhD thesis, Technische Universiteit Eindhoven, 1992. [SJM+ 95] Shojiro Sakata, Jørn Justesen, Y. Madelung, H. Elbrønd Jensen, et Tom Høholdt. Fast decoding of algebraic-geometric codes up to the designed minimum distance. IEEE Transactions on Information Theory, vol. 41, n o 6 pp. pp. 1672–1677, 1995. [Sle56] David Slepian. A class of binary signalling alphabets. Bell System Technical Journal, vol. 35 pp. 203–234, 1956. [Sti93] Henning Stichtenoth. Springer-Verlag, 1993. [Sud96] Madhu Sudan. Maximum likelihood decoding of Reed Solomon codes. In 37th Annual Symposium on Foundations of Computer Science (Burlington, VT, 1996), pp. 164–172. IEEE Comput. Soc. Press, Los Alamitos, CA, 1996. [Sud97] Madhu Sudan. Decoding of Reed-Solomon codes beyond the error-correction bound. Journal of Complexity, vol. 13 pp. 180–193, 1997. [Sud00] Madhu Sudan. Guest column : List-decoding : Algorithms and applications. In Lane A. Hemaspaandra, editor, SIGACT News Complexity Theory, Column 25. ACM, 2000. [SV90] Alexei N. Skorobogatov et Serguei G. Vl ǎduţ. On the decoding of algebraicgeometric codes. IEEE Transactions on Information Theory, vol. 36 pp. 1051– 1060, 1990. [SW99] M. Amin Shokrollahi et Hal Wasserman. List decoding of algebraic geometric codes. IEEE Transactions on Information Theory, vol. 45 pp. 432–437, 1999. [Swi26] Jonathan Swift. Travels into Several Regions of the World, by Captain Lemuel Gulliver, 1726. Part I. A Voyage to Lilliput. Chapter IV § 4. unknown publisher. http://www.jaffebros.com/lee/gulliver/. 136 Algebraic Function Fields and Codes. Universitext. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) BIBLIOGRAPHIE [Tei90] Jeremy Teitelbaum. On the computational complexity of the resolution of plane curve singularities. Mathematics of Computation, vol. 54 pp. 797–837, 1990. [Tem99] Alexandre Temkine. Hilbert class field towers of function fields over finite fields and lower bounds on A(q). Institut de Mathématiques de Luminy, CNRS, Marseille, France. preprint, no 99-24, 1999. [Tho83] Thomas M. Thompson. From Error-Correcting Codes Through Sphere Packings to Simple Groups. Number 21 in The Carus Mathematical Monographs. Mathematical Association of America, 1983. [TV91] Michael A. Tsfasman et Serguei G. Vl ǎduţ. Algebraic-Geometric codes. Mathematics and its Applications. Kluwer Academic Publishers, 1991. [TVZ82] Michael A. Tsfasman, Serguei G. Vl ǎduţ, et Thomas Zink. Modular curves, Shimura curves and Goppa codes better than the Gilbert-Varshamov bound. Mathematische Nachrichten, vol. 109 pp. 21–28, 1982. [van85] Robert van Gulik. L’énigme du clou chinois. Union générale d’éditions, Paris, 1985. no 1723 de la Collection 10/18. Traduction de l’anglais par Anne Dechanet, Roger Guerbet et Jos Simons., Titre original : The Chinese nail murders. [van94] Mark van Hoeij. An algorithm for computing an integral basis in an algebraic function field. Journal of Symbolic Computation, vol. 18 pp. 353–363, 1994. [van99] Jacobus H. van Lint. Introduction to Coding Theory. Graduate Texts in Mathematics. Springer-Verlag, 3rd édition, 1999. [Var57] Rom R. Varshamov. Estimate on the number of signals in error-correcting codes. Doklady Akademii Nauk SSSR, vol. 117 pp. 739–741, 1957. [Var97] Alexander Vardy. The intractability of computing the minimum distance of a code. IEEE Transactions on Information Theory, vol. 43, n o 6 pp. 1757–1766, 1997. [vG99] Joachim von zur Gathen et Jürgen Gerhard. Modern Computer Algebra. Cambridge University Press, 1999. [Wal96] Judy Walker. Algebraic-Geometric Codes over Rings. Phd thesis, University of Illinois at Urbana Champain, 1996. [Wal97] Judy Walker. The Nordstrom-Robinson code is algebraic-geometric. IEEE Transactions on Information Theory, vol. 43, n o 5 pp. 1588–1593, 1997. [Wei52] André Weil. Sur les « formules explicites » de la théorie des nombres premiers. In Medd. Lund., pp. 252–265, 1952. (Dans Collected Papers, 1952b, vol II, pp.48–61, Springer-Verlag). [Wei72] André Weil. Sur les formules explicites de la théorie des nombres. Izv. Mat. Nauk., vol. 36 pp. 3–18, 1972. Dans Collected Papers, 1972, vol III, pp.249–264, Springer-Verlag. [Woc99] Pawel Wocjan. Brill-noether algorithm. Diplomarbeit thesis, Universität Karlsruhe. Institut für Algorithmen und Kognitive Systeme, 1999. [Woz58] John M. Wozencraft. List decoding. Technical report, Research Laboratory of Electronics, MIT, 1958. Quarterly Progress Report, vol. 48, pp. 90–95. Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003) 137 BIBLIOGRAPHIE [XC02] Chaoping Xing et Hao Chen. Improvements on parameters of one-point ag codes from hermitian curves. IEEE Transactions on Information Theory, vol. 48, n o 2 pp. 535–537, 2002. [ZCM+ 96] J. F. Ziegler, H. W. Curtis, H. P. Muhlfeld, C. J. Montrose, B. Chin, M. Nicewicz, C. A. Russell, W. Y. Wang, L. B. Freeman, P. Hosier, L. E. LaFave, J. L. Walsh, J. M. Orro, G. J. Unger, J. M. Ross, T. J. O’Gorman, B. Messina, T. D. Sullivan, A. J. Sykes, H. Yourke, T. A. Enger, V. Tolat, T. S. Scott, A. H. Taber, R. J. Sussman, W. A. Klein, et C. W. Wahaus. Terrestrial cosmic rays and soft errors. IBM Journal of Research & Development, vol. 40, no 1, 1996. Lisible sur http://www.almaden.ibm.com/journal/ rd/ziegl/ziegler.html. 138 Lancelot Pecquet — Thèse de Doctorat (version du 27 novembre 2003)