Efficient arithmetic of finite field extension
Auteur / Autrice : | Édouard Rousseau |
Direction : | Luca De Feo, Eric Schost |
Type : | Thèse de doctorat |
Discipline(s) : | Mathématiques fondamentales |
Date : | Soutenance le 12/07/2021 |
Etablissement(s) : | Institut polytechnique de Paris |
Ecole(s) doctorale(s) : | École doctorale de mathématiques Hadamard (Orsay, Essonne ; 2015-....) |
Partenaire(s) de recherche : | Etablissement opérateur d'inscription : Télécom Paris (Palaiseau, Essonne ; 1878-....) |
Laboratoire : Laboratoire Traitement et communication de l'information (Paris ; 2003-....) | |
Jury : | Président / Présidente : Daniel Augot |
Examinateurs / Examinatrices : Luca De Feo, Eric Schost, Stéphane Ballet, Claus Fieker, Julia Pieltant | |
Rapporteur / Rapporteuse : Stéphane Ballet, Claus Fieker |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Les corps finis sont omniprésents en cryptographie et en théorie des codes, deux domaines de première importance dans les communications modernes. Ainsi, il est crucial de représenter les corps finis et d’y faire des calculs de la façon la plus efficace possible. Dans cette thèse, nous travaillons sur l’arithmétique des extensions de corps finis, de deux manières différentes et indépendantes.Dans la première partie, nous étudions l’arithmétique d’une unique extension de corps fini F_{p^k}. Lorsqu’on souhaite estimer la complexité d’un algorithme dans une extension, on compte souvent les opérations arithmétiques qui sont effectuées dans le corps de base F_p. Dans un tel modèle, toutes les opérations ont le même coût. Ce modèle est connu sous le nom de complexité algébrique. Néanmoins, on sait que la multiplication est une opération plus coûteuse que l’addition. Pour cette raison, des modèles alternatifs ont été étudiés, comme par exemple celui de la complexité bilinéaire, dans lequel on fait l’hypothèse que les additions n’ont aucun coût, et on compte donc uniquement les multiplications. Pour avoir une multiplication efficace dans l’extension F_{p^k}, des recherches ont été menées pour obtenir des formules dans lesquelles le nombre de multiplications dans le corps de base F_p est minimal. Le nombre optimal de multiplications nécessaires est, par définition, la complexité bilinéaire de la multiplication dans l’extension F_{p^k}. Trouver la valeur exacte de la complexité bilinéaire d’une extension est difficile, mais il existe des algorithmes pour chercher des formules optimales en petite dimension. Asymptotiquement, d’autres algorithmes trouvent des formules qui ne sont pas nécessairement optimales, mais qui donnent une borne supérieur linéaire en le degré de l’extension pour la complexité bilinéaire. Nous généralisons ces résultats à un nouveau type de complexité, qualifiée d’hypersymétrique, qui est liée à des formules possédant plus de symétries. Nous fournissons un algorithme pour trouver des formules hypersymmétrique, ainsi qu’une implémentation et son analyse. Nous prouvons également que la complexité hypersymmétrique est elle aussi linéaire. Dans la seconde partie, nous étudions plusieurs extensions simultanément. Dans la plupart des systèmes de calcul formel, il est possible de travailler avec des corps finis, mais deux extensions arbitraires sont souvent considérées comme des objets indépendants, et les liens entre ces extensions ne sont pas nécessairement accessibles à l’utilisateur ou l’utilisatrice. Notre but dans cette partie est de construire une structure de donnée efficace pour représenter plusieurs extensions, ainsi que les plongements entre elles. Nous voulons aussi que ces plongements soient compatibles, c’est-à-dire que si a, b, c sont trois (avec a | b | c), la composition entre les plongements de F_{p^a} vers F_{p^b} et F_{p^b} vers F_{p^c} doit être égale au plongement de F_{p^a} dans F_{p^c}. Nous appelons cette structure de donnée un réseau de corps finis compatiblement plongés. Nous donnons une implémentation de l’algorithme de Bosma-Canon-Steel, qui permet d’avoir un réseau compatible, et qui était uniquement disponible dans MAGMA. Après ce travail, nous avons ajouté cet algorithme au système de calcul formel Nemo. Une autre méthode populaire pour obtenir des réseaux compatibles vient des polynômes de Conway. C’est une manière efficace d’obtenir des plongements, mais les extensions doivent alors être définies en utilisant ces polynômes précalculés si l’on veut garantir la compatibilité. Inspiré par ces polynômes et l’algorithme de Bosma-Canon-Steel, nous proposons une nouvelle construction nommée réseau standard de corps finis compatiblement plongés. Cette dernière nous permet d’utiliser des corps finis arbitraires, tout en restant efficace. Nous analysons en détail la complexité de nos algorithmes, et donnons une implémentation montrant que notre construction peut être utilisée en pratique.