Arithmétique

Les résidus quadratiques et la loi de réciprocité

Modulo 7, les carrés sont 1, 2 et 4 : l'équation x² ≡ 3 n'a pas de solution, mais x² ≡ 2 en a deux (3 et 4). Savoir quels nombres sont des carrés modulo p semble demander d'essayer toutes les valeurs. La loi de réciprocité quadratique, que Gauss appelait le « théorème d'or », permet de répondre presque sans calcul, en échangeant les rôles des deux nombres premiers. Cinq planches pour la comprendre, la démontrer par un dessin et s'en servir.

Vue d'ensemble

Soit p un nombre premier impair. Un entier a non divisible par p est un résidu quadratique modulo p si x² ≡ a (mod p) a une solution, et un non-résidu sinon. Legendre résume cela par un symbole :

(a/p) = +1 si a est un carré modulo p, −1 sinon, et 0 si p divise a.

RésultatÉnoncé
Critère d'Euler(a/p) ≡ a(p−1)/2 (mod p)
Multiplicativité(ab/p) = (a/p)(b/p) : le produit de deux non-carrés est un carré
Premier complément(−1/p) = +1 exactement quand p ≡ 1 (mod 4)
Second complément(2/p) = +1 exactement quand p ≡ ±1 (mod 8)
Réciprocité(p/q)(q/p) = (−1)(p−1)/2 · (q−1)/2 : les deux symboles sont égaux, sauf si p et q sont tous deux ≡ 3 (mod 4)
Le tableau des symboles (q/p) pour les nombres premiers de 3 à 61 (bleu : +1, rouge : −1). La case (p, q) et sa symétrique (q, p) s'allument tour à tour. Elles ont la même couleur, sauf quand p et q sont tous deux de la forme 4k + 3 (lignes et colonnes marquées) : le tableau est symétrique, à un signe près, et c'est exactement la loi de réciprocité.
1

Les carrés modulo p : exactement la moitié

Combien de nombres sont des carrés modulo un nombre premier p ?

Élevons au carré 1, 2, …, p − 1. Comme x² = (−x)² et que −x ≡ p − x, les carrés vont par paires : x et p − x ont le même carré. Ils ne peuvent pas coïncider davantage, car x² ≡ y² signifie que p divise (x − y)(x + y), donc x ≡ ±y (lemme d'Euclide). Il y a donc exactement (p − 1)/2 résidus quadratiques, et autant de non-résidus.

Chaque nombre x (cercle extérieur) est relié à son carré x² mod p (cercle intérieur). Deux flèches arrivent sur chaque résidu (en bleu), aucune sur les non-résidus (en rouge).
Résidus quadratiques modulo p
Non-résidus
Nombre de résidus · (p − 1)/2
Racines carrées de chaque résidu (x et p − x)
Modulo un nombre composé, c'est plus confus. Modulo 8, les carrés impairs valent tous 1 : x² ≡ 1 a quatre solutions (1, 3, 5, 7). Le lemme d'Euclide ne fonctionne plus, et le compte « moitié-moitié » non plus. C'est pourquoi la théorie se fait d'abord modulo un nombre premier.
2

Le critère d'Euler et le symbole de Legendre

Peut-on reconnaître un carré sans chercher sa racine ?

Par le petit théorème de Fermat, ap−1 ≡ 1, donc b = a(p−1)/2 vérifie b² ≡ 1, et b ≡ ±1. Euler a montré que b ≡ +1 exactement quand a est un carré : si a ≡ x², alors b ≡ xp−1 ≡ 1. Une seule exponentiation rapide suffit donc pour trancher. On en déduit aussi la multiplicativité : (ab/p) = (a/p)(b/p). Un résidu fois un résidu donne un résidu, et un non-résidu fois un non-résidu aussi, comme « moins par moins donne plus ».

La table de multiplication modulo p, chaque case colorée par le symbole du produit. Les lignes et colonnes sont rangées : d'abord les résidus, puis les non-résidus. Quatre blocs apparaissent, comme une table des signes.
a(p−1)/2 mod p pour chaque a : il ne vaut jamais autre chose que 1 ou p − 1, c'est-à-dire ±1.
Critère d'Euler contre recherche des racines, pour tous les a
(ab/p) = (a/p)(b/p) pour tous les couples
Plus petit non-résidu modulo p
Un test de primalité au passage. Si n est premier, a(n−1)/2 doit valoir ±1 et coïncider avec le symbole calculé par la loi de réciprocité (planche 5). Le test de Solovay-Strassen (1977) vérifie cela pour des bases au hasard : un nombre composé est démasqué au moins une fois sur deux.
3

−1, 2 et le lemme de Gauss

Quand −1 est-il un carré modulo p ? Et 2 ?

Le critère d'Euler donne (−1/p) = (−1)(p−1)/2 : −1 est un carré modulo p exactement quand p ≡ 1 (mod 4). C'est la clé du théorème des deux carrés de Fermat : un nombre premier impair s'écrit a² + b² exactement quand p ≡ 1 (mod 4). Pour 2, Gauss a trouvé une méthode de comptage : on regarde les restes de a, 2a, 3a, …, ((p−1)/2)·a modulo p, et l'on compte ceux qui dépassent p/2. Si ce nombre μ est pair, a est un carré ; s'il est impair, non. Pour a = 2, le compte ne dépend que de p modulo 8.

Le lemme de Gauss : les restes de k·a pour k = 1, …, (p − 1)/2. Ceux qui dépassent p/2 (au-dessus du trait) sont comptés en rouge.
Les points entiers sur le cercle x² + y² = p : il y en a 8 quand p ≡ 1 (mod 4), aucun quand p ≡ 3 (mod 4).
Lemme de Gauss : μ · (−1)μ · critère d'Euler
(−1/p) et p mod 4 · écriture p = a² + b²
(2/p) et p mod 8, vérifiés pour tous les premiers < 1 000
Pourquoi 2 dépend de p mod 8. Pour a = 2, les restes 2, 4, 6, …, p − 1 sont tous pairs et inférieurs à p. Ceux qui dépassent p/2 sont au nombre de (p − 1)/2 − ⌊p/4⌋, et la parité de ce nombre ne dépend que du reste de p modulo 8 : on obtient +1 pour p ≡ 1 ou 7, et −1 pour p ≡ 3 ou 5.
4

La loi de réciprocité, démontrée par un dessin

Pourquoi (p/q) et (q/p) sont-ils liés, alors que l'un parle de carrés modulo q et l'autre modulo p ?

Eisenstein (1844) a transformé le lemme de Gauss en un comptage de points. On montre que (q/p) = (−1)S, où S = ⌊q/p⌋ + ⌊2q/p⌋ + … + ⌊((p−1)/2)q/p⌋ est le nombre de points entiers situés sous la diagonale du rectangle de côtés p/2 et q/2. Symétriquement, (p/q) = (−1)T, où T compte les points au-dessus. Aucun point n'est sur la diagonale, car p et q sont premiers entre eux. Donc S + T est le nombre total de points du rectangle, soit (p − 1)/2 × (q − 1)/2. C'est toute la démonstration.

Le rectangle [0 ; p/2] × [0 ; q/2] et ses points entiers : sous la diagonale (bleu), ils sont comptés colonne par colonne, ⌊kq/p⌋ dans la colonne k ; au-dessus (orange), ligne par ligne.
S (sous la diagonale) · T (au-dessus) · S + T
(q/p) = (−1)S ? (p/q) = (−1)T ? par le critère d'Euler
(p/q)(q/p) et (−1)(p−1)/2 · (q−1)/2
Vérification sur tous les couples de premiers impairs distincts < 400
Le théorème d'or. Euler l'avait deviné, Legendre en avait publié une démonstration incomplète. Gauss en donne la première preuve complète en 1796, à dix-neuf ans, et en trouvera huit au total. On en compte aujourd'hui plusieurs centaines. Cette loi a ouvert la voie aux lois de réciprocité supérieures, cubiques, biquadratiques, puis à la théorie des corps de classes et au programme de Langlands.
5

Signature : calculer, extraire, sommer

La réciprocité permet de calculer un symbole aussi vite qu'un PGCD ; d'autres méthodes trouvent la racine carrée elle-même ; et une somme de Gauss cache √p.

Pour savoir si 1 001 est un carré modulo 9 907, faut-il factoriser 1 001 = 7 × 11 × 13 ? Non : Jacobi (1837) étend le symbole à tout dénominateur impair, et la réciprocité reste vraie. On peut alors retourner la fraction comme dans l'algorithme d'Euclide, en sortant les facteurs 2 grâce au second complément. Le calcul se fait en quelques étapes, sans jamais factoriser.

Étapes de l'algorithme de Jacobi
Résultat par la réciprocité
Contrôle par le critère d'Euler a(p−1)/2 mod p

Savoir qu'une racine existe ne la donne pas. Si p ≡ 3 (mod 4), c'est facile : x = a(p+1)/4 convient. Sinon, l'algorithme de Tonelli (1891), amélioré par Shanks (1973), écrit p − 1 = Q·2S, prend un non-résidu z, puis corrige une approximation pas à pas. On s'en sert en cryptographie sur les courbes elliptiques, pour retrouver un point à partir de son abscisse.

Étapes
Racines x et p − x
Contrôle : x² mod p

Additionnons les racines p-ièmes de l'unité e2iπa/p, chacune affectée du signe (a/p). Le résultat, la somme de Gauss, a toujours pour module √p exactement. Elle vaut +√p si p ≡ 1 (mod 4) et i√p si p ≡ 3 (mod 4). Gauss connaissait le module, mais il lui a fallu quatre ans, de 1801 à 1805, pour démontrer le signe. C'est d'ailleurs l'une de ses huit preuves de la loi de réciprocité qui passe par ces sommes.

La somme se construit pas à pas dans le plan complexe : chaque pas est un vecteur de longueur 1 dans la direction 2πa/p, ajouté (résidu, bleu) ou retranché (non-résidu, rouge). Le point final est sur le cercle de rayon √p.
Somme de Gauss
Module · √p
Signe annoncé par Gauss selon p mod 4

Une brève histoire

1640Fermat annonce qu'un nombre premier de la forme 4k + 1 est somme de deux carrés ; Euler le démontrera vers 1749.
1744–1783Euler découvre empiriquement la loi de réciprocité et le critère qui porte son nom.
1785–1798Legendre introduit son symbole et publie une démonstration incomplète.
1796Gauss, à 19 ans, trouve la première démonstration complète, publiée en 1801 dans les Disquisitiones arithmeticae.
1805Gauss détermine enfin le signe de la somme qui porte son nom.
1837Jacobi étend le symbole aux dénominateurs impairs quelconques.
1844Eisenstein donne la démonstration par comptage de points entiers.
1891 et 1973Tonelli puis Shanks donnent l'algorithme d'extraction de racines carrées modulo p.

En résumé

Moitié carrés, moitié non

Modulo p premier, exactement (p − 1)/2 nombres sont des carrés. Le critère d'Euler les reconnaît par une seule puissance, et le symbole de Legendre est multiplicatif.

Le théorème d'or

(p/q) et (q/p) sont égaux, sauf si p et q sont tous deux ≡ 3 (mod 4). Eisenstein le démontre en comptant des points de part et d'autre d'une diagonale.

Des outils de calcul

Le symbole de Jacobi se calcule comme un PGCD, Tonelli-Shanks extrait la racine, et la somme de Gauss relie les carrés modulo p à √p.

Pour aller plus loin

Les formes quadratiques. Savoir quels nombres premiers s'écrivent x² + ny² (pour n = 1, 2, 3…) prolonge le théorème des deux carrés : la réponse fait intervenir les symboles (−n/p), puis la théorie des corps de classes.

Les codes correcteurs. Les résidus quadratiques modulo p définissent des codes correcteurs d'erreurs (codes de résidus quadratiques), et les matrices de Paley, utilisées en conception d'expériences.

Liens. Fermat, Euler et les restes chinois, PGCD et algorithme d'Euclide, décomposition en facteurs premiers, théorie algébrique des nombres (décomposition des nombres premiers dans ℤ[i] et ℤ[√d]).