Arithmétique modulaire
Couverture de l’édition originale des Recherches arithmétiques de Gauss, livre fondateur de l’arithmétique modulaire.

En mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un ensemble de méthodes permettant la résolution de problèmes sur les nombres entiers. Ces méthodes dérivent de l’étude du reste obtenu par une division euclidienne.

L'idée de base de l'arithmétique modulaire est de travailler non sur les nombres eux-mêmes, mais sur les restes de leur division par quelque chose. Quand on fait par exemple une preuve par neuf à l'école primaire, on effectue un peu d'arithmétique modulaire sans le savoir : le diviseur est alors la valeur 9.

Si ses origines remontent à l’Antiquité, les historiens associent généralement sa naissance à l’année 1801, date de la publication du livre Disquisitiones arithmeticae[1] de Carl Friedrich Gauss. Sa nouvelle approche permet d’élucider de célèbres conjectures[2] et simplifie les démonstrations d’importants résultats[3] par une plus grande abstraction. Si le domaine naturel de ces méthodes est la théorie des nombres, les conséquences des idées de Gauss se retrouvent dans d’autres champs des mathématiques, comme l’algèbre ou la géométrie.

Le XXe siècle modifie le statut de l’arithmétique modulaire. D’une part, d’autres méthodes sont nécessaires pour progresser en théorie des nombres. D’autre part, le développement de nombreuses applications industrielles impose la mise au point d’algorithmes issus des techniques modulaires. Ils résolvent essentiellement des questions soulevées par la théorie de l’information, une branche maintenant surtout considérée comme appartenant aux mathématiques appliquées.

L’article congruence sur les entiers propose une introduction plus mathématique, anneau Z/nZ traite le même sujet de manière moins didactique et plus exhaustive.

Sommaire

Usages

En mathématiques pures, ce terme est très peu utilisé. Le vocable proche le plus fréquent est théorie algébrique des nombres[4], qui désigne un domaine plus large, contenant par exemple les notions d'entiers algébriques et de théorie de Galois[5].

En mathématiques appliquées, cette expression est d'un usage fréquent pour décrire les bases mathématiques de différents domaines de la théorie de l'information : cryptologie, théorie des codes et informatique. De nombreux outils et algorithmes entrent dans ce champ d'étude. On y trouve les tests de primalités, la décomposition en produit de facteurs premiers[6], l'utilisation des caractères d'un groupe par exemple pour la transformée de Fourier discrète[7] ou encore l'étude d'autres quotients que ceux des entiers, comme celui des polynômes[8].

Selon les différents auteurs et le domaine d'application, ces extensions sont considérées, soit comme une partie intégrante de l'arithmétique modulaire[9], soit comme des applications, voire ne sont pas citées du tout. Sous sa forme simple, elle prend parfois le nom d'arithmétique de l'horloge[10]. Le terme de système modulaire est utilisé[11] pour désigner une arithmétique modulaire sur d'autres ensembles que les entiers.

Histoire

Origines

Couverture de l'édition de 1621 de Arithmetica de Diophante, traduite en latin par Claude-Gaspard Bachet de Méziriac.

Au IIIe siècle av. J.‑C., Euclide formalise, dans son livre les Éléments, les fondements de l'arithmétique. On y trouve le lemme portant son nom, une version datée du théorème fondamental de l'arithmétique et une étude sur les nombres parfaits[12] dans la proposition 36 de son livre IX[13]. Diophante d'Alexandrie (env. 250[14]) écrit Arithmetica contenant 130 équations. Il traite essentiellement de problèmes ayant une unique solution numérique et à valeur fractionnaire ou entière. On y trouve le fait que les nombres sommes de deux carrés parfaits ne sont jamais de la forme 4n + 3. Les équations, à coefficients entiers et dont les solutions recherchées sont entières prennent aujourd'hui le nom d'équations diophantiennes.

La Chine développe parallèlement une arithmétique modulaire. Sun Zi écrit vers l'an 300 un traité de mathématiques dont le problème 26 du chapitre 3 est le suivant : « Soient des objets dont on ignore le nombre. En les comptant 3 par 3 il en reste 2, en les comptant 5 par 5, il en reste 3 et en les comptant 7 par 7, il en reste 2. Combien y a-t-il d'objets ? »[15].

Qin Jiushao (1202 - 1261) développe le théorème des restes chinois[16]. Son traité est remarquablement avancé, il traite d'un système d'équations linéaires de congruences dans le cas où les moduli ne sont pas premiers entre eux deux à deux. Ses travaux sur les systèmes de congruences dépassent en sophistication ceux de Leonhard Euler. On peut citer George Sarton pour qui : « Qin Jiushao était l'un des plus grands mathématiciens de race chinoise, de son temps et à vrai dire de tous les temps »[17].

Le XIVe siècle voit un déclin progressif puis un oubli de ces résultats, le savoir de Qin Jiushao ne dépasse pas les frontières chinoises avant le XXe siècle. Il est redécouvert par les travaux de l'historien des sciences Joseph Needham. En revanche, de nombreuses similarités entre les notations arabes et chinoises laissent penser à des contacts durant les périodes précédentes[18].

L'Inde possède aussi une tradition forte en arithmétique. Âryabhata (476 - 550) recherche de manière systématique[19] les solutions entières de l'équation linéaire à deux inconnues à coefficients entiers. Il utilise pour cela un algorithme appelé « Kuttaka » publié dans son livre[20] appelé Âryabhatîya. Les équations diophantiennes de degré deux sont étudiées par Brahmagupta (598 - 668) à l'aide de la méthode chakravala[21].

La civilisation islamique joue un double rôle en arithmétique : elle véhicule le savoir acquis par les Grecs, Indiens, Chinois et Européens[22], et elle apporte des connaissances nouvelles[23] notamment sur l'étude des propriétés de certains ensembles d'entiers, comme les nombres premiers, parfaits, amicaux ou figurés[24]. Dans ce contexte, Qusta ibn Lûqâ réalise une traduction partielle de l'Arithmetica de Diophante d'Alexandrie[24] à la fin du IXe siècle et Al-Hajjaj traduit à la même époque les Éléments d'Euclide[25] ; son collègue al-Khuwārizmī (env. 783 - env. 850) écrit un livre sur la numération indienne. Si le livre est perdu, il reste connu par une traduction latine Algoritmi de numero Indorum[26]. Thābit (836 - 901) étudie les nombres amicaux et les nombres parfaits[27]. Alhazen (965 - 1039) continue ses travaux sur les nombres parfaits et découvre le théorème de Wilson[28].

Apparition en Europe

Pierre de Fermat développe largement l'arithmétique. Les propriétés de la division euclidienne, fondement de l'arithmétique modulaire, sont largement utilisées par ce mathématicien.

En 1621, Claude-Gaspard Bachet de Méziriac traduit le livre de Diophante en latin. Les questions soulevées intéressent les mathématiciens de l'époque. Pierre de Fermat propose un grand nombre d'énoncés, les trois plus célèbres étant probablement son grand théorème, son théorème des deux carrés et son petit théorème. La communauté scientifique se lance des défis sur ce sujet, ainsi Fermat demande : « un nombre carré qui, ajouté à la somme de ses parties aliquotes (i.e. ses diviseurs), fasse un cube. » Il conclut par : « j'attends la solution de ces questions ; si elle n'est fournie ni par l'Angleterre, ni par la Gaule Belgique ou Celtique, elle le sera par la Narbonnaise »[29]. Marin Mersenne recherche des nombres premiers particuliers. Fermat lui écrit : « Si je puis une fois tenir la raison fondamentale que 3, 5, 7, 17, 257, 65537, …, sont nombres premiers, il me semble que je trouverai de très belles choses en cette matière, car j'ai déjà trouvé des choses merveilleuses dont je vous ferai part »[30]. Ces nombres sont maintenant appelés nombres de Fermat et sa phrase s'avère être l'unique conjecture fausse proposée par l'auteur. René Descartes recherche sans y parvenir, à démontrer que si la division par huit d'un nombre premier donne pour reste un ou trois, il s'écrit de la forme x2 + 2y2.

Sur ce type de problèmes, deux éléments sont remarquables :

Les équations diophantiennes fascinent, le titre d'un des livres de Bachet de Méziriac est évocateur : Problèmes plaisants et délectables qui se font par les nombres, on peut citer encore la remarque de Fermat à propos de son grand théorème : « J'ai trouvé une solution merveilleuse … »[31]
Les problèmes posés sont difficiles. Malgré quelques succès comme l'identité de Bézout probablement due à Bachet de Méziriac, l'essentiel des questions restent sans réponse, comme le théorème des deux carrés de Fermat, ou avec des réponses pour le moins peu convaincantes, comme celle de Fermat pour son grand théorème : « … mais la place me manque ici pour la développer » (la première preuve reconnue apparaîtra en 1995[32]). Bien souvent, Fermat termine ses théorèmes par des commentaires avouant son échec : « Je vous avoue tout net (car par avance je vous avertis que je ne suis pas capable de m'attribuer plus que je ne sais, je dis avec la même franchise ce que je ne sais pas) que je n'ai pu encore démontrer … cette belle proposition que je vous ai envoyée … »[33]

Méthodes utilisées

Leonhard Euler, théoricien des nombres du XVIIIe siècle, résout plusieurs équations diophantiennes.

Le siècle suivant voit la résolution de certaines de ces questions, souvent par Leonhard Euler : il contredit Fermat en démontrant que ses nombres ne sont pas toujours premiers, et prouve le théorème des deux carrés[34]. Il commet aussi des erreurs, sa tentative de démonstration du grand théorème de Fermat pour n égal à trois est un échec, sa première démonstration s'avère fausse[35]. Il soulève d'autres questions comme la loi de réciprocité quadratique en 1782. Là encore, et malgré une tentative[36] d'Adrien-Marie Legendre, la solution reste hors de portée.

Jusqu'à l'aube du XIXe siècle les méthodes utilisées, si elles dénotent une grande astuce chez les mathématiciens, sont finalement peu nombreuses et de principes simples. L'exemple suivant, tiré du problème des deux carrés, en illustre trois : existe-t-il un nombre dont la division par quatre donne pour reste 3 et qui est somme de deux carrés ? Soit a2 et b2 ces deux carrés. Seul l'un est pair car sinon leur somme serait paire et sa division par 4 aurait 0 comme reste. Supposons a pair et b impair. a est pair donc son carré est un multiple de 4. L'entier b est impair donc s'écrit 2c + 1, son carré est égal à 4c2 + 4c + 1, la division de b2 par quatre donne pour reste un et la somme des deux carrés donne aussi pour reste un.

  • Le premier outil utilisé est celui des nombres premiers, ce raisonnement est exact car 2 est un nombre premier.
  • Le deuxième est la transformation algébrique, b est transformé en 2c + 1. Utilisé avec virtuosité, il permet aux mathématiciens de l'époque de résoudre certaines équations diophantiennes. Toute l'astuce réside à choisir avec habileté les bonnes transformations.
  • Le troisième est la division euclidienne, les carrés et leur somme sont systématiquement divisés par 4.
  • Le quatrième n'est pas illustré dans l'exemple, il correspond à la descente infinie utilisée dans la démonstration d'Euler du théorème des deux carrés. Elle consiste à trouver à partir d'une solution entière positive une autre solution entière positive et plus petite. La suite des solutions descend de manière infinie dans l'ensemble des entiers positifs, ce qui n'est pas possible. Cette méthode fut déjà utilisée par Fermat pour démontrer son grand théorème dans le cas où n est égal à 4.

Le caractère rustique des outils se traduit par des démonstrations longues et techniques, comme par exemple la preuve d'Euler pour le théorème des deux carrés. De plus, et malgré plus d'un siècle d'efforts, l'essentiel des équations diophantiennes résistent à une telle approche.

L'apport de Carl Friedrich Gauss

Carl Friedrich Gauss est le fondateur de la branche mathématique maintenant appelée arithmétique modulaire.

À l'âge de 17 ans, Gauss démontre la loi de réciprocité quadratique. Un an plus tard, le 30 mars 1796, il prend conscience que ses calculs arithmétiques permettent de construire à la règle et au compas l'heptadécagone, c'est-à-dire le polygone régulier à dix-sept côtés, problème resté ouvert depuis l'Antiquité. Enfin en 1801, il publie Disquisitiones arithmeticae (Recherches arithmétiques) et est surnommé le prince des mathématiciens[37].

Ces deux grandes découvertes procèdent d'une même démarche, la mise au point d'outils plus sophistiqués que ceux dont disposaient Fermat ou Euler, simplifiant les démonstrations au prix d'une abstraction plus grande. Sa démarche fonde l'arithmétique modulaire.

Elle est appliquée d'abord aux entiers puis aux polynômes puis à un nouvel ensemble d'entiers, maintenant appelés entiers de Gauss. Johann Peter Gustav Lejeune Dirichlet découvre un ensemble analogue, celui des entiers de Dirichlet. Il lui permet d'initier la preuve du théorème de Fermat pour n = 5 qu'il envoie à l'Académie des sciences en 1825. Elle est analysée par Legendre qui met quelques mois pour la mener à bonne fin[38].

Toutes les équations diophantiennes de Fermat sont maintenant résolues à l'exception de son grand théorème. De nouvelles conjectures apparaissent. Par exemple, si a et b sont premiers entre eux, la suite arithmétique de valeur initiale a et de raison b contient-elle des nombres premiers, si oui combien ? Gauss et d'autres mathématiciens comme Legendre ont bien imaginé qu'il en existe une infinité mais ne parviennent pas à le démontrer. De même la loi de réciprocité quadratique doit posséder des équivalents pour les ordres supérieurs.

L'arithmétique modulaire est enrichie. Dirichlet, un élève de Gauss trouve une démonstration[39] du théorème de la progression arithmétique en développant le concept des caractères et en formalisant les bases de la théorie analytique des nombres. Son raisonnement est un joyau de l'arithmétique modulaire, Charles Gustave Jacob Jacobi écrit, dans une lettre à son frère : « En appliquant les séries de Fourier à la théorie des nombres, Dirichlet a récemment trouvé des résultats atteignant les sommets de la perspicacité humaine. »[40] Dirichlet n'est pas le premier à utiliser des outils qui sont maintenant qualifiés de conséquence de l'analyse harmonique sur un groupe abélien fini. Legendre pour tenter de démontrer la loi de réciprocité quadratique développa des calculs similaires[36] sur les réels, formalisant ce qui est maintenant appelé le symbole de Legendre. Gauss enfin généralise cette approche aux nombres complexes dans son livre de 1801. Ses calculs portent le nom de somme de Gauss et période de Gauss.

Au XIXe siècle, ces mathématiques sont dénommées arithmétique transcendante[41]. Si le terme d'arithmétique reste largement usité, Legendre considère, en 1830, cette branche comme suffisamment développée pour mériter le terme de théorie des nombres[36]. L'apparition de nouvelles techniques, différentes de celles de Gauss, introduit une subdivision avec la théorie algébrique des nombres et la théorie analytique des nombres. Le terme d'arithmétique transcendante tombe ensuite en désuétude avec l'apparition des nombres transcendants.

XXe siècle

Cryptologie

Auguste Kerckhoffs énonce un principe fondateur de la cryptologie moderne.
Enigma, une machine de chiffrement utilisée durant la Seconde Guerre mondiale, décrypté par un mathématicien : Marian Rejewski.

Ce domaine quitte celui des mathématiques pures. En revanche, une application industrielle fait, au cours du temps, de plus en plus appel aux notions mathématiques développées par Gauss : la science des codes secrets appelée cryptologie. En 1883, Auguste Kerckhoffs énonce que : « la sécurité d'un système de cryptographie ne doit pas reposer sur le secret de l'algorithme. La sécurité ne repose que sur le secret de la clé »[42]. Cette approche est à l'origine d'une modification profonde de cette science. Au milieu du XXe siècle, elle devient une branche des mathématiques appliquées[43].

Au début des années 1930, le bureau du chiffre polonais fait appel au mathématicien Marian Rejewski pour percer le code du système Enigma, utilisé par les Allemands. Les anciens codes, comme le chiffre de César, sont réinterprétés comme une transformation mathématique dans l'ensemble des moduli de Gauss sur les nombres entiers. Le terme d'« arithmétique modulaire »[44] est utilisé pour décrire ces techniques. Durant les années 1970, Horst Feistel développe[45] un système à clé privée, le Data Encryption Standard ou DES, qui devient le standard des applications non classifiées[46]. Les cryptanalystes du DES, et plus généralement des chiffrements symétriques, utiliseront des mathématiques issues des travaux de Dirichlet sur les caractères, dans le cadre d'un espace vectoriel sur un corps fini à deux éléments.

En 1976 une nouvelle famille de codes est découverte[47], fondée sur une clé publique. Des solutions industrielles sont rapidement développées, la plus célèbre est dénommée R.S.A.[48]. Elle se fonde sur les travaux de Fermat et d'Euler. Le terme « arithmétique modulaire » est, dans ce contexte, utilisé pour décrire[49] non seulement la structure des moduli sur les entiers, mais aussi les théorèmes traitant des nombres premiers comme la décomposition en produit de facteurs premiers, le théorème chinois, le petit théorème de Fermat et sa généralisation par Euler.

L'arithmétique modulaire est un domaine de recherche actif au début du XXIe siècle. Une mise en œuvre efficace nécessite l'utilisation d'opérations sur des grands ensembles de moduli. L'approche de Gauss est utilisée sur des polynômes à coefficients dans un corps fini. L'arithmétique modulaire se généralise à d'autres ensembles que les quotients d'entiers[9], par exemple pour la cryptanalyse.

Théorie de l'information

Article détaillé : Théorie de l'information.
Un Processeur Pentium contenant une unité arithmétique et logique fondé sur l'arithmétique modulaire.

La cryptographie n'est pas l'unique domaine utilisant le vocable « arithmétique modulaire ». La fin de la Seconde Guerre mondiale voit l'apparition d'une nouvelle science : la théorie de l'information. En 1948, sous l'impulsion de Claude Shannon, elle devient[50] une branche des mathématiques appliquées.

Si la confidentialité est l'un des sujets abordés, la fiabilité est aussi un thème majeur. Richard Hamming propose un premier algorithme[51] dès 1950. Une fois encore, les moduli sur les entiers sont utilisés pour une des plus simples techniques de code : les sommes de contrôle. En 1960, de nouveaux codes plus puissants sont développés[52], sur la base de polynômes à coefficients dans un corps fini. L'arithmétique utilisée prend souvent le nom de « modulaire »[53].

L'informatique devient un sujet[54] universitaire au début des années 1960. Les contraintes inhérentes à la structure des processeurs imposent la représentation des nombres sous forme d'une suite finie d'informations, justifiant l'utilisation des moduli. Le terme d'« arithmétique modulaire » apparaît souvent[55], on y trouve même les entiers de Gauss ou les polynômes, par exemple, pour des calculs sur des grands entiers.

Les techniques développées pour la cryptographie, la théorie des codes et l'arithmétique informatique reposent sur les mêmes concepts, offrant une relative unité aux mathématiques de la théorie de l'information.

Outils de l'arithmétique modulaire

Congruences sur les entiers

Article détaillé : Congruence sur les entiers.

L'exemple historique de l'« arithmétique modulaire » repose sur les nombres entiers. Un entier n étant fixé, le calcul modulo n consiste à identifier tous les entiers à leur reste dans la division euclidienne par n ; ceci peut être illustré par l'exemple de l'« arithmétique de l'horloge », qui correspond à n=12 : la petite aiguille se trouve dans la même position à deux moments éloignés de douze heures, on identifie par exemple 13 h à 1 h. Pour obtenir un calcul sur un tel ensemble, on vérifie que l'addition et la multiplication sont compatibles avec les identifications. Cette formalisation[56] est l'œuvre de Legendre, qui donne le nom de résidu aux différents éléments.

L'apport de Gauss consiste à analyser la structure de cet ensemble, maintenant qualifié du nom d'anneau de congruences et noté Z/nZ. Elle se divise en premier lieu en l'étude de l'addition, qui définit un groupe cyclique de générateur 1 ; puis de la multiplication, qui dépend des propriétés du modulo. Si celui-ci est premier, on obtient un corps. Cette approche simplifie les démonstrations arithmétiques. Les deux exemples historiques du livre Disquisitiones arithmeticae sont le théorème de Wilson[57] et le petit théorème de Fermat[58].

Le calcul modulaire, dans le cas où le modulo n'est pas premier, est plus complexe, mais le théorème des restes chinois permet d'en élucider la structure. L'anneau n'est alors pas intègre et il existe des diviseurs de zéro, ce sont des nombres qui, multipliés par un certain autre nombre non nul, donnent zéro. Le nombre d'éléments inversibles est donné par la fonction indicatrice d'Euler. Elle permet, par exemple, de généraliser le petit théorème de Fermat.

Résidus et polynômes

Article détaillé : Polynôme cyclotomique.
Figure à la règle et au compas: l'heptadécagone, un polygone régulier de 17 côtés, mis en évidence avec les techniques de l'arithmétique modulaire.

Gauss remarque que l'ensemble des polynômes à coefficients rationnels peut se voir appliquer la logique du calcul modulaire, puisqu'il dispose d'une addition, d'une multiplication, et d'une division euclidienne. Les congruences sont les restes de la division euclidienne des polynômes par un polynôme donné.

Il applique cette approche au polynôme Xn - 1 et trouve sa décomposition en produit de facteurs irréductibles, qui prennent le nom de polynôme cyclotomique. Gauss utilise ces résultats pour trouver une construction à la règle et au compas de l'heptadécagone, polygone régulier à 17 côtés.

Il hésite à considérer ces travaux comme de l'arithmétique ; il écrit : « La théorie de la division du cercle, ou des polygones réguliers, …, n'appartient pas par elle même à l'Arithmétique, mais ses principes ne peuvent être puisés que dans l'Arithmétique transcendante »[59]. Le terme d'arithmétique « transcendante » de Gauss est maintenant remplacé par celui d'arithmétique « modulaire ». La logique de cet argument est toujours d'actualité.

Entiers algébriques

Article détaillé : Entier de Gauss.

Le cas des polynômes à coefficients entiers diffère : la propriété de division ne fonctionne que pour des polynômes dont le plus grand coefficient est égal à plus ou moins un. Le cas des moduli du polynôme X2 + 1 est envisagé : la structure modulaire obtenue est encore celle d'un anneau, s'identifiant à l'ensemble des nombres de la forme α + i.β où α et β sont des entiers et i désigne le nombre imaginaire, correspondant au monôme X. Cet ensemble est celui des entiers de Gauss.

Illustration de la division euclidienne pour les entiers de Gauss

Il peut être muni d'une norme. À l'entier de Gauss a = α + i.β est associée la norme α2 + β2, qui provient du module des nombres complexes. Cette norme permet de définir une division euclidienne, comme l'illustre la figure de droite. Les entiers sont représentés par les intersections du quadrillage. La valeur a/b existe si b est différent de zéro, cependant cette valeur n'est pas nécessairement un entier de Gauss. Elle est représentée par le point noir de la figure. Dire qu'une division euclidienne existe, revient à dire qu'il existe un entier de Gauss à une norme strictement inférieure à un de ce point noir. L'illustration montre que, dans le cas présent, il existe au moins trois candidats. Dans le cas général, il en existe entre un et quatre et dans ce contexte seule l'existence compte.

Ce résultat de division euclidienne implique des propriétés sur cet anneau d'entiers : l'identité de Bézout, l'existence de nombres premiers de Gauss et un analogue du théorème fondamental de l'arithmétique. Ces nombres premiers permettent à Richard Dedekind de proposer une résolution simple du théorème des deux carrés. L'illustration géométrique est donnée sur la figure de gauche. Un nombre premier p s'exprime comme somme de deux carrés si le cercle de rayon la racine de p croise au moins un entier Gauss.

Gotthold Eisenstein, qui rencontre Gauss en 1844[60], découvre un nouvel anneau d'entiers[61] ; l'arithmétique sur cet anneau offre une démonstration rigoureuse du grand théorème de Fermat pour n égal à trois, justifiant, encore une fois, la nécessité théorique d'une telle généralisation de l'arithmétique modulaire.

Caractères de Dirichlet

Article détaillé : Caractère de Dirichlet.
Peter Dirichlet développe l'essentiel de la théorie dans le cadre de l'anneau Z/nZ.

Dirichlet s'intéresse aux nombres premiers de la forme n + λ.mn et m sont deux entiers premiers entre eux et λ une variable qui décrit l'ensemble des entiers positifs. Il souhaite en effet démontrer qu'il existe une infinité de nombres premiers de cette nature.

L'arithmétique modulaire est un bon outil pour cette problématique, qui est équivalente à trouver le cardinal de l'ensemble des nombres premiers dans une classe de modulo.

Dirichlet considère le groupe des éléments inversibles modulo m, et étudie l'ensemble des fonctions du groupe dans les nombres complexes non nuls qui vérifient, si a et b sont deux résidus : f(a.b) = f(a).f(b). De telles fonctions sont appelées caractères de Dirichlet. Il en existe φ(n), le produit de deux caractères est encore un caractère, et leur table de multiplication est exactement la même que celle du groupe des unités étudié.

Les calculs sur ces fonctions sont formellement analogues à ceux réalisés précédemment par Joseph Fourier[62]. Il faut néanmoins atteindre le XXe siècle pour voir apparaître une théorie unifiant les deux approches. Elle prend le nom d'analyse harmonique.

Développements théoriques

Il est fréquent que des concepts mathématiques, développés dans un contexte, soient réutilisés dans d'autres domaines. Ainsi la théorie des groupes s'applique à l'arithmétique et à la géométrie. Il en est de même pour les outils de l'arithmétique modulaire, dont les outils alimentent de vastes champs des mathématiques pures, comme l'algèbre générale ou la théorie de Galois. Ces théories ne sont néanmoins pas considérées comme des cas particuliers d'arithmétique modulaire car elles font aussi appel à de nombreux autres concepts.

Structures quotient

Article détaillé : Relation d'équivalence.

En langage moderne, l'arithmétique modulaire se formalise par la notion de quotient d'anneaux euclidiens. Le concept de relation d'équivalence permet de généraliser ce concept aux principales structures algébriques. Par exemple, le quotient d'un groupe par un sous-groupe normal est, à travers le théorème de Jordan-Hölder, un outil de base de la classification des groupes finis. Les groupes quotients sont aussi utilisés en topologie algébrique pour classifier les variétés. Dans la théorie des anneaux, la notion d'idéal joue un rôle analogue à celui de la notion de sous-groupe normal en théorie des groupes. Elle permet de construire des anneaux quotients dans un contexte plus général que celui de l'arithmétique modulaire. Le théorème des zéros de Hilbert, base du lien entre l'algèbre commutative et la géométrie algébrique, s'exprime en termes d'idéal.

Les termes de congruence et de modulo sont néanmoins réservés aux quotients sur un anneau euclidien.

Résidus de polynômes et théorie de Galois

Évariste Galois est le fondateur de la théorie portant maintenant son nom.

L'arithmétique modulaire s'applique à l'anneau des polynômes à coefficients dans un corps commutatif, car cette structure dispose d'une division. Elle est le point de départ de la théorie d'Évariste Galois et consiste en l'étude systématique[63] des ensembles de congruence de polynômes modulo un polynôme irréductible, l'équivalent des nombres premiers. Ces ensembles sont maintenant appelés extensions algébriques.

Ces extensions permettent l'analyse de la résolubilité des équations algébriques, c'est-à-dire des équations s'écrivant sous forme polynomiale. Si le polynôme est irréductible, son ensemble de congruences est le plus petit corps contenant au moins une racine. Il est appelé corps de rupture. En réitérant ce processus, un corps contenant toutes les racines, le corps de décomposition, est construit. La logique modulaire du quotient fournit la structure algébrique adaptée à cette problématique.

La théorie de Galois fait appel à bien d'autres notions. L'étude de la résolubilité de l'équation est possible via l'étude du groupe des automorphismes du corps, appelé groupe de Galois, grâce à la correspondance de Galois entre sous-corps et sous-groupes. Au-delà de l'étude de la résolubilité des équations algébriques, la théorie de Galois est devenue un cadre naturel de résolution de nombreux problèmes en arithmétique, géométrie arithmétique ou géométrie algébrique, et permet surtout de formuler de nouveaux problèmes plus généraux dans ces divers domaines.

Si cette théorie utilise le concept de quotient d'un anneau euclidien, la variété d'outils spécifiques à ce domaine en fait un champ propre, bien distinct du sujet de cet article. L'un des fruits de cette théorie, les corps finis, encore appelés corps de Galois, fournissent un cadre naturel à de nombreuses applications en arithmétique modulaire.

Entiers algébriques et théorie algébrique des nombres

Article détaillé : Théorie algébrique des nombres.
Ernst Kummer démontre le dernier théorème de Fermat pour de nombreuses valeurs de n et fonde la théorie algébrique des nombres.

L'arithmétique modulaire offre un bon cadre conceptuel pour la résolution du grand théorème de Fermat. Cependant, si n est plus grand que dix, les anneaux d'entiers algébriques, construits selon la méthode de Gauss, présentent ce que Dirichlet appelle une obstruction. Il montre que le groupe des unités de cet anneau, c'est-à-dire des éléments ayant un inverse pour la multiplication, n'est plus un groupe cyclique ou abélien fini comme celui qu'étudiait Gauss. Il contient aussi des copies de l'anneau des entiers et est donc infini. Ce résultat prend le nom de théorème des unités de Dirichlet. L'obstruction provient de cette nouvelle configuration. Elle empêche l'application des techniques modulaires utilisées pour les entiers de Gauss car l'anneau associé n'est plus euclidien.

Ernst Kummer utilise un outil lié à la généralisation du quotient maintenant formalisé par les idéaux. Ils remplacent les nombres premiers absents. La théorie algébrique des nombres prend alors le relais, avec des techniques différentes. L'outil de base est un anneau dont les éléments sont appelés entiers algébriques et qui possède une structure dite d'anneau de Dedekind. Kummer parvient ainsi à démontrer[64] le grand théorème pour certaines valeurs de n premier, c'est-à-dire pour les nombres premiers réguliers. Les seules valeurs inférieures à 100 non traitées sont 37, 59 et 67.

D'autres outils et objets d'étude apparaissent, comme l'anneau adélique, ceux de la théorie de Galois, les courbes elliptiques, les séries L de Dirichlet ou les formes modulaires. Certains proviennent de conséquences presque directes de l'arithmétique modulaire, comme les corps finis, utilisés de manière intensive au XXe siècle. La théorie algébrique des nombres est largement plus vaste que le cadre de l'arithmétique modulaire, tout en reposant in fine sur des techniques parfois similaires.

Caractères de Dirichlet et théorie analytique des nombres

Article détaillé : Théorie analytique des nombres.
Représentation du module de la fonction zêta de Riemann.
Bernhard Riemann émet l'hypothèse de localisation des racines de la fonction ζ (zêta).

La découverte par Euler d'un produit infini, construit à l'aide de nombres premiers et égal au sixième du carré de la surface d'un cercle de rayon un, ouvre la voie à une approche différente pour la compréhension des nombres. Dirichlet l'utilise pour démontrer que chacun des moduli d'entiers du groupe des unités contient une infinité de nombres premiers. Ce résultat porte maintenant le nom de théorème de la progression arithmétique.

Pour mener à bien sa démonstration, Dirichlet développe un outil spécifique, les séries L de Dirichlet. L'une de ses séries correspond à une célèbre fonction qui prendra le nom de ζ (zêta) de Riemann. Sa plus grande difficulté consiste à prouver que ses fonctions n'ont pas de racine au point un. Pour y parvenir, il utilise l'analyse harmonique sur le groupe des unités d'une classe de modulo[65].

Néanmoins, une fois encore, l'arithmétique modulaire est insuffisante pour venir à bout du théorème. Dirichlet utilise de nombreuses techniques analytiques, comme les séries entières et l'analyse complexe. Le fruit de ces travaux donne naissance à une nouvelle branche des mathématiques : la théorie analytique des nombres. L'un des points cruciaux de cette théorie provient de l'unique article de Bernhard Riemann en théorie des nombres : Sur le nombre de nombres premiers inférieurs à une taille donnée. Il conjecture une localisation des racines de sa fonction ζ. La recherche de la position des racines, initiée par Dirichlet, devient une préoccupation centrale et reste l'une des conjectures pressenties comme les plus difficiles des mathématiques de notre époque[66].

Cryptographie

Article détaillé : Cryptographie.
L'hameçonnage est une technique visant à obtenir des informations confidentielles sur internet en vue d'une escroquerie. La nécessité de communication d'informations confidentielles représente un danger en cryptographie.

L'objet de la cryptographie est d'assurer sécurité dans la transmission des messages. La confidentialité ainsi que l'authentification de ceux-ci sont deux exemples du sens donné au terme sécurité. On peut citer deux exemples : la protection des messages qu'utilise une armée pour empêcher une anticipation de l'ennemi, ou la carte bleue proposée par le système bancaire, offrant à un usager une bonne sécurité.

En termes plus mathématiques, l'opération de chiffrement se traduit par un algorithme, c'est-à-dire une fonction f qui, à un message en clair m et une clé k, associe un message chiffré f(k, m). La connaissance du message chiffré et de l'algorithme doit être insuffisante pour reconstituer le message en clair sans une clé de déchiffrement. Dans le cas de la cryptographie traditionnelle, dite cryptographie symétrique, la clé de déchiffrement est identique à la clé de chiffrement ou s'en déduit aisément. Cette clé doit alors rester secrète.

La cryptographie asymétrique s'appuie sur le constat que seule la clé de déchiffrement doit rester secrète, et connue du seul récepteur du message. Elle n'a pas besoin d'être communiquée à ses correspondants. Alice utilise la clé de chiffrement de Bob, que celui-ci a rendu publique, pour lui envoyer un message. Seul Bob peut le déchiffrer, même Alice, si jamais elle avait perdu le message en clair, en serait incapable. Bob doit répondre en utilisant la clé de chiffrement d'Alice.

L'objectif est donc de définir une fonction simple à évaluer mais difficile à inverser sans la connaissance d'un secret. L'arithmétique modulaire a été la première à offrir des solutions, et elle est toujours à la base de beaucoup de solutions commerciales. Par exemple l'échange de clés Diffie-Hellman, premier exemple historique[47], exploite la difficulté pratique à inverser l'exponentiation modulaire. Cette dernière, ou ses généralisations à d'autres groupes, reste fondamentale dans le domaine.

La cryptographie asymétrique résout en particulier le délicat problème de la distribution des clés en cryptographie symétrique. Si plusieurs correspondants communiquent, en cryptographie symétrique, une clé différente s'avère nécessaire pour chaque couple d'intervenants, alors qu'en cryptographie asymétrique chaque correspondant dispose d'une clef qu'il garde secrète, et d'une clef qu'il rend publique. Cependant elle n'a pas fait disparaître les codes symétriques, qui offrent des algorithmes beaucoup plus efficaces. Pour une sécurité équivalente, les codes symétriques présentent l'avantage de nécessiter des clés nettement plus petites, 128 bits pour la version courante de AES, contre plus d'un millier pour le RSA, mais surtout le chiffrement comme le déchiffrement sont de cent à mille fois plus rapide[67]. Les systèmes cryptographiques modernes, comme ceux utilisés par les cartes bancaires, ou le protocole de communication cryptée SSL/TLS très utilisé sur Internet[68], n'utilisent qu'en début de communication la cryptographie asymétrique, pour échanger les clés d'un chiffrement symétrique qui prendra ensuite le relais.

Cryptographie asymétrique

Article détaillé : Cryptographie asymétrique.

Le code RSA est un exemple largement répandu de cryptographie asymétrique. Il se décrit de la manière suivante :

Alice (le choix des prénoms est traditionnel) souhaite pouvoir recevoir des messages de Bob sans qu'Ève puisse les déchiffrer. Alice choisit deux grands nombres premiers p et q et un entier e, premier avec l'ordre g du groupe des unités de Z/pqZ. Ici g est égal à (p - 1)(q - 1), soit la valeur de la fonction indicatrice d'Euler en n=pq. Les messages sont supposés être des éléments de cet anneau. Si Bob souhaite transmettre le message m à Alice, il transmet la valeur de me modulo n. Alice a rendu au préalable publiques les valeurs de n = pq, e et donc la fonction f de chiffrement, qui est ici égale à :

 f(m) \ \equiv\ m^e \quad \pmod n

Ève a pu intercepter la connaissance de f, e et n, ces informations sont en effet publiques. En revanche, elle ne peut intercepter les valeurs de p et q qui n'ont jamais été communiquées.

Pour Bob, la fonction de codage est aisée : il s'agit d'une simple exponentiation modulaire. Pour Alice la lecture l'est aussi, il lui suffit de trouver une solution à l'identité de Bézout :

 x.e + y.(p-1)(q-1) \ = \ 1\;

Si (x0, y0) est une solution, alors le théorème d'Euler montre que :

m  \equiv \ f(m)^{x_0} \pmod n

En revanche Ève ne connaît pas a priori la décomposition en produit de facteurs premiers de n. Elle doit calculer le logarithme discret de f(m), ce qui constitue un problème ardu. La méthode la moins lente connue correspond à déterminer les valeurs de p et de q.[réf. nécessaire] Si n est grand, il n'existe pas, à l'ordre du jour, d'algorithme assez efficace pour résoudre cette question.[réf. nécessaire]

La clé permettant le chiffrement est la donnée de e et n. La force d'un tel système réside dans le fait que la connaissance de cette clé ne permet pas le décryptage, elle peut donc être publique. Les valeurs de p et q constituent la clé de déchiffrement.

Cryptographie symétrique

Article détaillé : Cryptographie symétrique.

La cryptographie asymétrique n'existerait pas sans les méthodes issues de l'arithmétique modulaire. Celle-ci ne joue pas le même rôle fondateur en cryptographie symétrique, mais n'en est pas absente pour autant. Les chiffrements symétriques se divisent en deux grandes familles dont l'une, les chiffrements par flot, utilise souvent comme composant de base les suites récurrentes linéaires sur un corps fini (voir ci-dessous) ; l'autre, celle des chiffrements par bloc, comprend entre autres le DES et son successeur, le standard de chiffrement avancé, appelé couramment AES (pour Advanced Encryption Standard). Ces derniers opèrent sur des blocs de données d'une taille fixe comptée en octets, huit pour le DES par exemple. Une suite d'opérations primitives assez simples est appliquée de façon répétée pour coder un bloc. Un octet, ou plus généralement un bloc de n bits, peut être vu comme les coefficients d'un polynôme sur les entiers modulo deux, de degré maximal n-1. Cela a conduit les cryptologues à s'intéresser à certaines opérations sur les corps finis de caractéristique 2. Ainsi il s'avère que l'opération d'inversion sur le corps fini F2n, composée avec une transformation affine, a de bonnes propriétés cryptographiques pour en faire l'une des primitives des chiffrements par bloc[69]. Ceci a été exploité par les auteurs du chiffrement Rijndael, qui est devenu l'AES. La publication officielle de ce dernier par le NIST (agence fédérale américaine) contient d'ailleurs quelques préliminaires mathématiques sur le sujet[70]. Cependant il n'est nul besoin d'algorithmique sur l'arithmétique ou les corps finis pour l'implémentation : ces opérations sont représentées par des tables, comme les opérations analogues du DES obtenues elles de façon beaucoup plus heuristique. Certains cryptologues ont vu une faiblesse potentielle dans la caractérisation trop algébrique de Rijndael, qui le rendrait plus accessible à l'imagination des mathématiciens[71], ce qui n'a pas empêché son adoption pour l'AES.

Tests de primalité

Article détaillé : Test de primalité.

Les codes RSA utilisent comme clés les nombres premiers p et q du paragraphe précédent. L'usage, pour les trouver, consiste à choisir un nombre presque au hasard, de tester s'il est premier ou non et de recommencer s'il ne l'est pas.

Le crible d'Ératosthène est une méthode rapide pour les petits nombres. Utilisé habilement, 46 tests suffisent pour vérifier la primalité d'un nombre inférieur à 39000. En revanche, il est inefficace pour une application industrielle employant des nombres qui s'écrivent avec plusieurs centaines de chiffres.

La majorité des tests de l'industrie se fondent sur des variantes du petit théorème de Fermat[72]. Si un nombre p est premier, alors pour tout entier a, ap est congru à a modulo p. La réciproque est fausse : il existe des nombres non premiers, appelés nombres de Carmichaël (par exemple 561 = 3 · 11 · 17), pour lesquels la congruence est vraie pour toute valeur de a. Toutefois, si p n'est ni un nombre de Carmichaël, ni un nombre premier, la congruence est fausse pour au moins la moitié des valeurs de a comprises entre un et p. Que la congruence soit vérifiée pour un grand nombre de valeurs de a indique une très forte probabilité de primalité pour p, s'il n'est pas un nombre de Carmichaël.

Le test de primalité de Solovay-Strassen et surtout le test de primalité de Miller-Rabin sont deux exemples largement utilisés. Ils se fondent sur une analyse plus poussée du petit théorème de Fermat et n'admettent pas d'analogues aux nombres de Carmichaël, ce qui lève l'un des problèmes du test de Fermat. Pour ces deux méthodes, un test de primalité déterministe consiste à vérifier la propriété pour un nombre de valeurs de a garantissant une preuve irréfutable. Le nombre de calculs à effectuer étant rédhibitoire, on se contente d'un test probabiliste. Il consiste à vérifier la congruence sur un ensemble de valeurs de a, choisi pour assurer une probabilité de primalité supérieure à une valeur donnée, souvent[73] égale à 1 - (1/2)100.

Décomposition en produit de facteurs premiers

La sécurité par l'obscurité n'est pas de mise pour les codes RSA. Il est important de connaître précisément l'état de l'art de la décomposition des entiers en termes de facteurs premiers. Un concours appelé compétition de factorisation RSA fut ouvert jusqu'en mai 2007, proposant un prix pour quiconque capable de factoriser un nombre choisi dans une liste rendue publique.

Le crible d'Ératosthène est un test de primalité qui offre une méthode de décomposition. Mais une fois encore, il n'est pas applicable pour de grands nombres car trop lent[74].

Les différentes méthodes actuellement utilisées reposent souvent sur les résidus quadratiques[75]. Un diviseur de zéro est un résidu quadratique contenant comme représentants au moins deux carrés parfaits. L'objectif est de trouver ces deux carrés. Cette approche est celle du crible quadratique et de l'algorithme de factorisation par crible sur les corps de nombres généralisé, le plus rapide connu en 2007[76]. On peut encore citer l'algorithme ρ de Pollard qui utilise le paradoxe des anniversaires.

Corps finis

Article détaillé : Corps fini.

La construction par quotient des corps premiers Z/pZ se généralisent à d'autres structures. En informatique, les nombres sont codés sur n bits, c'est-à-dire qu'un nombre correspond à une suite de longueur n composée de 0 et de 1. Une telle suite peut être considérée comme un vecteur d'un espace vectoriel de dimension n sur le corps fini F2 à deux éléments.

Cette structure est souvent considérée comme l'espace des polynômes à coefficients dans F2 de degré strictement inférieur à n. Pour garantir la stabilité de la multiplication, cet espace est quotienté par un polynôme de degré n. Quand ce polynôme est irréductible (équivalent de nombre premier), la structure obtenue est le corps fini de cardinal 2n. Un nombre a modulo 2n et un polynôme P modulo un polynôme de degré n sont très semblables, ils s'écrivent en effet :

a \ = \ \sum_{i=0}^{n-1} a_i.2^i \quad et \quad P \ = \ \sum_{i=0}^{n-1} \alpha_i.X^i \quad , \quad a_i,\alpha_i \in \mathbf F_2

Un exemple d'utilisation est la création d'un générateur de nombres pseudo-aléatoires dans F2. De tels générateurs sont utilisés par exemple, dans le contexte d'une communication orale par téléphone portable, par le chiffrement de flux[77] A5/1. Celui-ci a pour composants des registres à décalage à rétroaction linéaire, ou LFSR (acronyme de linear feedback shift register). Étant données deux suites finies d'éléments de F2 de longueur n, une suite de coefficients et une séquence d'initialisation, soient :

(c_1, \dots, c_n)    et   (u_0,\dots, u_{n-1})

Un LFSR fournit une suite pseudo-aléatoire (uj), obtenue par récurrence linéaire :

u_j \ = \ \sum_{i=1}^n c_i.u_{j-i}\quad (j\geq n)

La suite des coefficients est souvent fixe. La clé fournit alors la séquence d'initialisation, qui peut être représentée par un entier a modulo 2n :

a \ = \ \sum_{i=0}^{n-1} u_i.2^i

La suite obtenue est périodique, cependant si la suite des coefficients est bien choisie, la période est très longue : 2n - 1. Cette situation se produit si le polynôme de rétroaction R, donnée par la formule suivante, est le polynôme minimal d'un élément primitif du groupe cyclique F2n*.

R \ = \ 1-\sum_{i=1}^{n} c_i X^i

Analyse harmonique sur un groupe abélien fini

Les idées de Dirichlet s'appliquent sur le système modulaire du paragraphe précédent. Pour l'addition, l'espace vectoriel V précédent est un groupe abélien fini. Les caractères de ce groupe forment une base orthonormale de l'ensemble des fonctions de V dans celui des nombres complexes. Il est à noter[78] que l'ensemble d'arrivée choisi n'est pas toujours celui des complexes mais parfois le corps F2. Les résultats sont strictement identiques. Une telle structure dispose d'une analyse harmonique. Si l'ensemble d'arrivée est choisi égal à F2 la transformée de Fourier prend le nom de transformée de Walsh. Cette approche est utilisée à la fois pour les systèmes DES, RSA et certains chiffrements de flux.

Un registre à décalage à rétroaction linéaire est trop aisément déchiffrable. Pour un registre de longueur n, même si la suite engendrée est de période 2n - 1, l'algorithme de Berlekamp-Massey permet de déterminer celle-ci grâce la connaissance de 2n valeurs consécutives, avec une complexité quadratique. Ainsi, si la clé est composée de 128 bits, il suffit de 128 x 128 · k = 16 384 · k étapes pour le décrypter, où k est suffisamment « petit » pour que cela représente une sécurité insuffisante. La solution adoptée consiste à utiliser plusieurs registres à décalage. Les différents résultats sont vus comme un élément d'un nouvel espace vectoriel sur F2. Une fonction booléenne associe à chaque élément de cet espace la valeur un ou zéro. Si une telle fonction est bien choisie, le meilleur algorithme de déchiffrement connu demande de l'ordre de 2n étapes pour trouver le signal apportant la confusion. La détermination de cette fonction est obtenue à l'aide des outils de l'analyse harmonique.

Pour un code RSA et à la fin du XXe siècle, la clé est souvent un nombre[79] dépassant 10308. Il est important de disposer d'une multiplication rapide sur les grands moduli. La technique consiste à identifier les moduli aux polynômes sur un corps fini. La multiplication de deux polynômes de degré n est une opération qui, si elle est réalisée de manière naïve, impose une complexité quadratique. Les caractères du groupe additif associés étant orthogonaux, la complexité devient linéaire si une telle base est utilisée. Un calcul plus rapide consiste à réaliser une transformée de Fourier rapide, à multiplier les deux résultats et à opérer la transformée de Fourier inverse. La complexité totale est alors en n log(n) où log désigne ici le logarithme de base deux.

Codes correcteurs

Article détaillé : Code correcteur.
Les CD utilisent comme code cyclique une variante du code de Reed-Solomon appelée code C.I.R.C.

Un code correcteur n'a pas la vocation d'assurer la sécurité, mais la fiabilité de la transmission d'un message. Il permet de restituer le texte original même si une perturbation aléatoire et modérée se produit durant la transmission. Le message encodé est transmis sous une forme appelée mot du code. Il contient non seulement les informations du message initial mais aussi les redondances permettant la validation d'une bonne communication et parfois la correction automatique d'éventuelles erreurs.

Un mot du code est composée d'une famille de n lettres choisies dans un alphabet, en général binaire. Le cas industriel le plus fréquent est celui du code linéaire, la valeur n est constante pour chaque mot du code et est appelée dimension du code. L'ensemble des mots du code est muni d'une structure d'espace vectoriel de dimension n.

Les codes linéaires utilisent essentiellement l'arithmétique modulaire comme base mathématique. Beaucoup enrichissent la structure d'espace vectoriel par celle d'un anneau de polynômes sur un corps fini. Ce corps est parfois le corps binaire, souvent un corps de cardinal une puissance de deux. On parle alors de code cyclique.

Les codes linéaires sont largement présent dans l'industrie. La télécommunication les utilise pour le téléphone portable ou internet, l'informatique pour notamment la communication entre la mémoire et de processeur, l'audio-visuel pour les disques compacts ou d'autres formats de même nature comme les DVD.[réf. nécessaire]

Somme de contrôle

Article détaillé : Somme de contrôle.
Code de longueur deux avec une somme de contrôle

Une somme de contrôle est un code linéaire particulièrement utilisé. Il correspond à un code correcteur dont seule la détection est automatisable, la correction est obtenue par une demande de répétition du message.

Au message initial est ajoutée une information codée sur une lettre. La lettre est choisie de telle manière à ce que la congruence de la somme des lettres du mot du code soit égale à une valeur donnée, souvent zéro. Dans l'exemple illustré sur la figure de droite, le message initial est composé de deux lettres, un mot du code en contient trois, si le message initial est 00, le mot du code transmis est 000, si le message est 01, le mot du code devient 011. Les quatre mots possibles du code sont illustrés par les points verts de la figure.

Si une unique erreur se produit, sur n'importe laquelle des trois lettres du mot du code, le message reçu correspond à un point noir. Le récepteur sait qu'il doit demander le renouvellement de la transmission. Cette configuration est analogue quelle que soit la longueur du mot du code. Une longueur égale à huit est souvent choisie, elle permet la transmission d'un message de sept lettres. Le résultat est identique, chaque mot licite du code ne possède pour voisin que des mots hors du code, une unique erreur durant la transmission est ainsi détectée. En revanche une double anomalie est systématiquement passée sous silence.

Codes cycliques

Article détaillé : Code cyclique.
Illustration d'un code parfait

Il existe certaines situations où la demande de répétition n'est pas possible, par exemple pour un DVD, lorsqu'une poussière masque une information. Il est nécessaire d'imaginer des codes correcteurs qui, non seulement détectent, mais corrigent automatiquement les erreurs.

La méthode utilisée consiste à éloigner les mots du code à une distance suffisante pour repérer le bon message d'origine. La distance entre deux points correspond au nombre de lettres à modifier pour passer de l'un à l'autre. Le graphique de gauche illustre cette situation. Les points verts correspondent aux mots du code, par définition sans erreur. Les bleus sont ceux obtenus lorsqu'une unique lettre est altérée dans la transmission et les rouges quand deux lettres sont modifiées. Dans le schéma, on remarque que chaque point bleu contient un unique point vert à une distance de un et à chaque point rouge correspond un unique point vert situé à une distance de deux. Si une ou deux erreurs se sont produites, l'unique point vert le plus proche correspond nécessairement au message initial. Un tel code est capable de protéger jusqu'à deux erreurs.

L'arithmétique modulaire fournit des solutions optimales pour construire la géométrie d'un code linéaire correcteur. Comme un espace vectoriel ne constitue pas une structure suffisante pour définir des moduli, il est enrichi d'une structure d'anneau de polynômes quotienté par Xn - 1, où n désigne la dimension de l'espace vectoriel. Dans cet espace de modulo, le monôme Xn est identifié au polynôme constant un. Si la chaîne (a0, a1, …, an) est un mot du code, alors il en est de même de la suivante : (an, a0, a1, …, an-1). On parle pour cette raison de code cyclique. La logique est la même que celle d'un code correcteur, à la différence près que la congruence est définie non pas sur un entier mais sur un polynôme cyclotomique à coefficients dans un corps fini.

L'exemple le plus simple correspond au code de Hamming dont les messages à transmettre comportent quatre lettres et trois lettres supplémentaires décrivent les redondances.

Identité de MacWilliams

Le contexte d'un code linéaire est analogue à celui de la cryptographie, on y trouve aussi des espaces vectoriels de dimension n sur un corps fini et un système de modulo de polynômes[80], le polynôme choisi étant souvent : Xn + 1. Les caractères du groupe sont utilisés, ainsi que l'analyse harmonique associée.

L'identité de MacWilliams[81] est un exemple archétypal. Elle permet la détermination du polynôme énumérateur des poids du code dual ou encore l'étude des caractéristiques du code de Hamming. Elle est obtenue grâce à l'analyse harmonique, à l'aide d'un produit de convolution.

Notes et références

Notes

  1. Gauss 1801
  2. Par exemple la loi de réciprocité quadratique p. 96 ou la construction à la règle et au compas de l’heptadécagone p. 429-489 de Gauss 1801.
  3. On peut citer le théorème de Wilson p. 56 ou le petit théorème de Fermat p. 50 de Gauss 1801.
  4. Pierre Samuel, Théorie algébrique des nombres [détail des éditions]
  5. (en) Albert Fröhlich (en), Galois Module structure of Algebraic integers, Springer-Verlag, Berlin, 1983.
  6. Chantal David, Cryptographie à clé publique et factorisation, Université Concordia, p. 11-17
  7. J.-M. Muller et J.-C. Bajard, Calcul arithmétique des ordinateurs, Traité Hermes CNRS 2004, p. 142-150 et 181-201
  8. Pascal Giorgi, Arithmétique modulaire entière en base polynomiale, Séminaire de l'université de Perpignan, 2005
  9. a et b Thomas Plantard, L'arithmétique modulaire pour la cryptographie, thèse de l'université Montpellier 2, 2005
  10. Singh 2001, p. 324-329
  11. (en) Pascal Paillier, Low-cost double-size modular exponentiation or how to stretch your cryptoprocessor, GEMPLUS, ENST, Lecture Notes in Computer Science, Springer, Berlin, 1973
  12. (en) Thomas Heath, The thirteen books of Euclid's Elements dans The Mathematical Gazette 6(92), 1911, p. 98-101
  13. Euclide, Éléments, (en)Livre IX, Proposition 36
  14. Les dates de naissance et de mort de Diophante sont mal connues, cf (en) Norbert Schappacher (de), Diophantus of Alexandria : a Text and its History, 2005
  15. Jean-Claude Martzloff, Histoire des mathématiques chinoises, Éditions Masson, 1988 (ISBN 978-2-2258-1265-1), p. 129
  16. Qin Jiushao, Shushu Jiuzhang, Traité de mathématique en neuf chapitres, 1247
  17. (en) Ho Peng Yoke, Li, Qi, and Shu An Introduction to Science and Civilization in China, Hong Kong University Press, 1985, p. 89
  18. (en) Karine Chemla, Similarities between chineese and arabic mathematical writings : (I) root extraction dans Arabic science and Philosophy 4(2), 1994, p. 207-266
  19. (de) Hans-Joachim Ilgauds, Aryabhata I, dans Hans Wussing (de) et Wolfgang Arnold, Biographien bedeutender Mathematiker, Berlin, 1983
  20. Agathe Keller, Un commentaire indien du VIIe siècle, thèse de l'université Paris-VII
  21. (en) S. S. Prakash Sarasvati, A critical study of Brahmagupta and his works, Delhi, 1986
  22. (en) Shlomo Pinès, Studies in Arabic versions of Greek texts and in Medieval science, Leiden, 1986
  23. Roshdi Rashed, Entre arithmétique et algèbre : Recherches sur l'histoire des mathématiques arabes, Les Belles Lettres, Paris, 1984, (ISBN 2-2513-5531-6)
  24. a et b A. Djebbar, D. Savoie, D. Jacquart, M. El Faïz, L'Âge d'or des sciences arabes, exposition d'oct. 2005 à l'Institut du monde arabe, Actes Sud (ISBN 2-7427-5672-8), p. 69
  25. (en) John Lennart Berggren (de), Episodes in the Mathematics of Medieval Islam, Springer, 1986, p. 70-71
  26. (en) John Crossley (en) et Alan Henry, Thus Spake al‐Khwārizimī: A Translation of the Text of Cambridge University Library Ms. li.vi.5 dans Historia Mathematica 17, 1990, p. 103–131
  27. (en) Francis J. Carmody, Thabit b. Qurra, Four Astronomical Tracts in Latin, Berkeley, 1941
  28. Roshdi Rashed, Ibn al-haytham et le théorème de Wilson dans Archive for History of Exact Sciences 22(4), 1980, p. 305-321
  29. Fermat, Correspondance, 3 janvier 1657
  30. Fermat, Correspondance, lettre à Marin de Mersenne, 25 Décembre 1640
  31. Remarques de Fermat insérées par Pierre Samuel (son fils) dans l'édition de 1670 de l'Arithmetica de Diophante.
  32. (en) Andrew Wiles, Modular elliptic curves and Fermat's last theorem, Annals of Mathematics 141(3), 1995, p. 443-551
  33. Fermat, Correspondance, lettre à Frénicle de Bessy, 18 octobre 1640
  34. Euler, Correspondance, lettre à Goldbach, 12 avril 1749
  35. Euler, Algèbre, 1770
  36. a, b et c Legendre, Théorie des nombres, Paris, Duprat, 1798 ; Firmin Didot 3e édition, 1830
  37. Patrice Naudin et Claude Quitté, Algorithmique algébrique [détail des éditions]
  38. Dirichlet, Démonstration du théorème de Fermat et de Wilson (compte-rendu par Cournot de quelques mémoires d'Abel, Jacobi et Lejeune-Dirichlet, au Journal de Crelle, t. 3, cah. 4). 1829, t. 11, p. 153-157
  39. Dirichlet, Recherches de diverses applications de l'analyse infinitésimale à la théorie des nombres, Journal de Crelle, 19 (1839) et 21 (1840)
  40. (de) Wilhelm Ahrens (de), Briefwechsel zwischen C. G. J. Jacobi und M. H. Jacobi dans The Mathematical Gazette 4(71), 1908, p. 269-270
  41. Gotthold Eisenstein, Application de l'Algèbre à l'Arithmétique transcendante, Journal de Crelle, 1845
  42. Auguste Kerckhoffs, La cryptographie militaire, Journal des sciences militaires, vol. IX, 1883, p. 5–83 et 161–191, lire
  43. (en) Shannon, Communication Theory of Secrecy Systems dans Bell System Technical Journal 28 (1949), p. 656-715
  44. Alain Tapp, Cryptographie, Laboratoire d’informatique théorique et quantique de l'université de Montréal
  45. (en) Horst Feistel, Cryptography and Computer Privacy, Scientific American 228(5), 1973
  46. (en) Don Coppersmith The data encryption standard (DES) and its strength against attacks, IBM Journal of Research and Development 38(3), 1994, p. 243–250
  47. a et b (en) Whitfield Diffie et Martin Hellman, New directions in cryptography dans IEEE Trans. Inform. Theory 22(6), 1976, p. 644-654
  48. (en) Rivest, Shamir et Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems dans Communications of the ACM 21(2), 1978, p. 120–126
  49. Laurent Bloch, Les systèmes d'exploitation des ordinateurs. Histoire, fonctionnement, enjeux, Vuibert, 2003 (ISBN 978-2-7117-5322-2)
  50. (en) Shannon, A Mathematical Theory of Communications dans Bell System Technical Journal 27, 1948, p. 379-423 et 623-656
  51. (en) Richard Hamming, Error Detecting and Correcting Codes, Bell System Tech. Jour. 29 (1950), 150-163
  52. (en) Raj Chandra Bose (de) et D. K. Ray-Chaudhuri (en), On a class of error-correcting. Binary group codes dans Inform. Control 3, 1960, p. 68-79
  53. Jacques Vélu, Méthodes mathématiques pour l'informatique, Dunod informatique, 1987
  54. Peter J. Denning (en), « Computer Science: The Discipline », dans Encyclopedia of Computer Science, 2000 [texte intégral] 
  55. Jean Berstel, Jean-Éric Pin et Michel Pocchiola, Mathématiques et informatique : exercices résolus, vol. 2, McGraw-Hill France, 1991
  56. Legendre, Recherches d'Analyse Indéterminée dans Hist. Acad. Roy. des Sciences (1785/1788)
  57. Gauss 1801, p. 56
  58. Gauss 1801, p. 34
  59. Gauss 1801, p. XV
  60. Voir par exemple (en) John J. O’Connor et Edmund F. Robertson, « Ferdinand Gotthold Max Eisenstein », dans MacTutor History of Mathematics archive, université de St Andrews [lire en ligne] .
  61. (en) André Weil, Elliptic Functions according to Eisenstein and Kronecker, Springer, 1999 (ISBN 978-354065036-2)
  62. Fourier, Mémoire sur la propagation de la Chaleur dans les corps solidesdans Nouveau Bulletin des sciences par la Société philomathique de Paris 6, 1807, p. 112-116
  63. Galois, Sur les conditions de résolubilité des équations algébriques dans Journal de Liouville, 1846
  64. Kummer, Sur la théorie des nombres complexes, CRAS, 1847
  65. A. Shields Lejeune Dirichlet and the birth of analytic number theory : 1837-1839, The Mathematical Intelligencer n° 11 1989, p 7-11
  66. Delahaye 2000, p. 222-224
  67. Christine Bachoc, Cours de cryptographie symétrique, université Bordeaux I, p. 3
  68. (en) David Wagner et Bruce Schneier, « Analysis of the SSL 3.0 Protocol », dans The Second USENIX Workshop on Electronic Commerce Proceedings, USENIX Press, 1996 [lire en ligne], p. 29–40 
  69. (en) Kaisa Nyberg (en), Differentially uniform mappings for cryptography dans Advances in Cryptology - EUROCRYPT'93, volume 765 des Lecture Notes in Computer Science, Springer-Verlag, 1994
  70. (en) Announcing the ADVANCED ENCRYPTION STANDARD (AES), p. 10-12
  71. (en) Niels Ferguson, Richard Schroeppel (en) et Doug Whiting, A simple algebraic representation of Rijndael dans Proceedings of Selected Areas in Cryptography, 2001, Lecture Notes in Computer Science, p. 103–111
  72. Sur la page RSA Le plus connu des algorithmes asymétriques (2003) du site Cryptosec, on lit : « La plupart des implémentations ont donc recours à des algorithmes probabilistes de test de primalité pour déterminer p et q, comme le test de primalité de Miller-Rabin. »
  73. Comment fabriquer de grands nombres premiers ? sur le site bibmath.net de F. Bayart
  74. Delahaye 2000, p. 215
  75. Delahaye 2000, p. 302
  76. (en) Carl Pomerance, A Tale of Two Sieves dans Notices of the AMS 43, 1996, p. 1473-1485
  77. (en) Anne Canteaut, Stream Cipher, extrait de Encyclopedia of Cryptography and Security, H. van Tilborg, Springer, 2005
  78. Douglas Stinson, Cryptographie théorique et pratique, Int. Thomson Pub. France, 1996
  79. Singh 2001, p. 345
  80. M. Klemm, Sur l'identité de Mac Williams pour la fonction-poids des codes dans Archiv der Mathematik vol. 49, no 5, 1987, p. 400-406
  81. (en) Jessie MacWilliams (en) et Neil Sloane, The Theory of Error-Correcting Codes, North-Holland, 1977 (ISBN 9780444850096).

Liens externes

Sur les autres projets Wikimedia :

Références

Cet article est reconnu comme « article de qualité » depuis sa version du 20 octobre 2007 (comparer avec la version actuelle).
Pour toute information complémentaire, consulter sa page de discussion et le vote l’ayant promu.


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Arithmétique modulaire de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Arithmetique modulaire — Arithmétique modulaire Couverture de l’édition originale des Recherches arithmétiques de Gauss, livre fondateur de l’arithmétique modulaire. En mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un… …   Wikipédia en Français

  • Arithmétique Modulaire — Couverture de l’édition originale des Recherches arithmétiques de Gauss, livre fondateur de l’arithmétique modulaire. En mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un ensemble de méthodes… …   Wikipédia en Français

  • Arithmétique modulaire (synthèse) — Arithmétique modulaire Couverture de l’édition originale des Recherches arithmétiques de Gauss, livre fondateur de l’arithmétique modulaire. En mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un… …   Wikipédia en Français

  • Arithmétique modulo — Arithmétique modulaire Couverture de l’édition originale des Recherches arithmétiques de Gauss, livre fondateur de l’arithmétique modulaire. En mathématiques et plus précisément en théorie algébrique des nombres, l’arithmétique modulaire est un… …   Wikipédia en Français

  • Arithmetique — Arithmétique L arithmétique est une branche des mathématiques qui comprend la partie de la théorie des nombres qui utilise des méthodes de la géométrie algébrique et de la théorie des groupes. On l appelle plus généralement la « science des… …   Wikipédia en Français

  • Arithmetique elementaire — Arithmétique élémentaire L’arithmétique élémentaire regroupe les rudiments de la connaissance des nombres telle qu elle est présentée dans l enseignement des mathématiques. Elle commence avec la comptine numérique, autrement dit la suite des… …   Wikipédia en Français

  • Arithmétique (mathématiques élémentaires) — Arithmétique élémentaire L’arithmétique élémentaire regroupe les rudiments de la connaissance des nombres telle qu elle est présentée dans l enseignement des mathématiques. Elle commence avec la comptine numérique, autrement dit la suite des… …   Wikipédia en Français

  • Arithmétique Élémentaire — L’arithmétique élémentaire regroupe les rudiments de la connaissance des nombres telle qu elle est présentée dans l enseignement des mathématiques. Elle commence avec la comptine numérique, autrement dit la suite des premiers entiers à partir de… …   Wikipédia en Français

  • Arithmétique — L arithmétique est une branche des mathématiques qui comprend la partie de la théorie des nombres qui utilise des méthodes de la géométrie algébrique et de la théorie des groupes. On l appelle plus généralement la « science des… …   Wikipédia en Français

  • Arithmétique élémentaire — L’arithmétique élémentaire regroupe les rudiments de la connaissance des nombres telle qu elle est présentée dans l enseignement des mathématiques. Elle commence avec la comptine numérique, autrement dit la suite des premiers entiers à partir de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”