MathQuest

Congruences modulaires

⏱ ~12 min·+30 XP
💡

Pourquoi apprendre ça ?

L'arithmétique modulaire est l'arithmétique "des restes". Deux entiers sont congrus modulo nn s'ils ont le même reste dans la division par nn. Une horloge fonctionne modulo 12 : 13h ≡ 1h (mod 12). Cette idée simple, formalisée par Gauss, est fondamentale en cryptographie (RSA), en informatique et en mathématiques pures. Le théorème chinois des restes permet de résoudre simultanément plusieurs congruences — outil essentiel de la cryptographie moderne.

🎯

Analogie

L'arithmétique modulo nn est comme une piste circulaire à nn cases. Quand on dépasse la case nn, on revient à 0. Les jours de la semaine sont modulo 7 : dans 100 jours, c'est quel jour ? Il suffit de calculer 100 mod 7=2100 \bmod 7 = 2 — deux jours après aujourd'hui. Et le théorème chinois des restes, c'est comme reconstituer l'heure exacte à partir de plusieurs horloges incomplètes, chacune montrant un reste différent.

Définition, propriétés et Z/nZ

📐

Théorie

On dit que aa est congru à bb modulo nn, noté a≡b(modn)a \equiv b \pmod{n}, si n∣(a−b)n \mid (a - b).

Compatibilité avec les opérations : si a≡a′a \equiv a' et b≡b′(modn)b \equiv b' \pmod{n}, alors : a+b≡a′+b′(modn)a×b≡a′×b′(modn)ak≡a′k(modn)a + b \equiv a' + b' \pmod{n} \qquad a \times b \equiv a' \times b' \pmod{n} \qquad a^k \equiv a'^k \pmod{n}

Anneau Z/nZ\mathbb{Z}/n\mathbb{Z} : les classes {[0],[1],…,[n−1]}\{[0],[1],\ldots,[n-1]\} forment un anneau avec addition et multiplication modulo nn.

Inversibilité : [a][a] est inversible dans Z/nZ\mathbb{Z}/n\mathbb{Z} si et seulement si gcd⁡(a,n)=1\gcd(a,n) = 1.

Si n=pn = p est premier, tous les éléments non nuls sont inversibles : Z/pZ\mathbb{Z}/p\mathbb{Z} est un corps.

Petit théorème de Fermat : si pp premier et gcd⁡(a,p)=1\gcd(a,p) = 1, alors ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}.

Théorème d'Euler : si gcd⁡(a,n)=1\gcd(a,n) = 1, alors aϕ(n)≡1(modn)a^{\phi(n)} \equiv 1 \pmod{n}, avec ϕ(pq)=(p−1)(q−1)\phi(pq) = (p-1)(q-1) pour p,qp, q premiers distincts.

Inverse via Fermat (si pp premier) : a−1≡ap−2(modp)a^{-1} \equiv a^{p-2} \pmod{p}.

📝

Arithmétique modulo 7 et Fermat

3100 mod 73^{100} \bmod 7 : par Fermat, 36≡1(mod7)3^6 \equiv 1 \pmod 7. Or 100=6×16+4100 = 6 \times 16 + 4, donc : 3100=(36)16⋅34≡1⋅81≡81−11×7=4(mod7)3^{100} = (3^6)^{16} \cdot 3^4 \equiv 1 \cdot 81 \equiv 81 - 11 \times 7 = 4 \pmod{7}

Inverse : 3−1≡35=243≡5(mod7)3^{-1} \equiv 3^{5} = 243 \equiv 5 \pmod 7 (car 3×5=15≡13 \times 5 = 15 \equiv 1).

Résoudre 2x≡3(mod5)2x \equiv 3 \pmod 5 : 2−1≡3(mod5)2^{-1} \equiv 3 \pmod 5 (car 2×3=6≡12 \times 3 = 6 \equiv 1), donc x≡3×3=9≡4(mod5)x \equiv 3 \times 3 = 9 \equiv 4 \pmod 5.

🧩

Checkpoint

Quel est le reste de dans la division par 7 ?

Théorème chinois des restes (CRT)

📐

Théorie

Théorème chinois des restes (CRT) : Si n1,…,nkn_1, \ldots, n_k sont deux à deux premiers entre eux, alors le système : {x≡a1(modn1)⋮x≡ak(modnk)\begin{cases} x \equiv a_1 \pmod{n_1} \\ \vdots \\ x \equiv a_k \pmod{n_k} \end{cases} admet une solution unique modulo N=n1⋯nkN = n_1 \cdots n_k.

Construction : Pour chaque ii, on pose Ni=N/niN_i = N/n_i et Mi=Ni−1 mod niM_i = N_i^{-1} \bmod n_i. La solution est : x≡∑i=1kaiNiMi(modN)x \equiv \sum_{i=1}^k a_i N_i M_i \pmod{N}

Interprétation algébrique : Le CRT établit l'isomorphisme : Z/NZ≅Z/n1Z×⋯×Z/nkZ\mathbb{Z}/N\mathbb{Z} \cong \mathbb{Z}/n_1\mathbb{Z} \times \cdots \times \mathbb{Z}/n_k\mathbb{Z}

Un entier est entièrement déterminé par ses restes modulo des modules premiers entre eux.

📝

Application du CRT — deux congruences

Résoudre : {x≡2(mod3)x≡3(mod5)\begin{cases} x \equiv 2 \pmod{3} \\ x \equiv 3 \pmod{5} \end{cases}

N=15N = 15, N1=5N_1 = 5, N2=3N_2 = 3.

M1=5−1 mod 3M_1 = 5^{-1} \bmod 3 : 5≡2(mod3)5 \equiv 2 \pmod 3, 2×2=4≡1(mod3)2 \times 2 = 4 \equiv 1 \pmod 3, donc M1=2M_1 = 2.

M2=3−1 mod 5M_2 = 3^{-1} \bmod 5 : 3×2=6≡1(mod5)3 \times 2 = 6 \equiv 1 \pmod 5, donc M2=2M_2 = 2.

x≡2×5×2+3×3×2=20+18=38≡38−2×15=8(mod15)x \equiv 2 \times 5 \times 2 + 3 \times 3 \times 2 = 20 + 18 = 38 \equiv 38 - 2 \times 15 = 8 \pmod{15}

Vérification : 8≡2(mod3)8 \equiv 2 \pmod 3 ✓ et 8≡3(mod5)8 \equiv 3 \pmod 5 ✓

RSA — cryptographie basée sur les congruences

📐

Théorie

Génération des clés RSA :

  1. Choisir deux grands premiers pp et qq, poser n=pqn = pq
  2. Calculer ϕ(n)=(p−1)(q−1)\phi(n) = (p-1)(q-1)
  3. Choisir ee tel que gcd⁡(e,ϕ(n))=1\gcd(e, \phi(n)) = 1 (souvent e=65537e = 65537)
  4. Calculer d=e−1 mod ϕ(n)d = e^{-1} \bmod \phi(n) via l'algorithme d'Euclide étendu

Chiffrement : c≡me(modn)c \equiv m^e \pmod{n} — Déchiffrement : m≡cd(modn)m \equiv c^d \pmod{n}

Pourquoi ça marche : ed≡1(modϕ(n))ed \equiv 1 \pmod{\phi(n)}, donc cd=med=m1+kϕ(n)≡m⋅(mϕ(n))k≡m(modn)c^d = m^{ed} = m^{1+k\phi(n)} \equiv m \cdot (m^{\phi(n)})^k \equiv m \pmod n par Euler.

Sécurité : repose sur la difficulté de factoriser n=pqn = pq pour des grands premiers (2048 bits en pratique). Sans pp et qq, impossible de calculer ϕ(n)\phi(n) et donc dd.

Tests de primalité :

  • Test de Fermat : si an−1≢1(modn)a^{n-1} \not\equiv 1 \pmod n, alors nn est composé. Si ≡1\equiv 1, probablement premier. Faille : nombres de Carmichael (ex. 561=3×11×17561 = 3 \times 11 \times 17) passent le test mais sont composés.
  • Test de Miller-Rabin : variante probabiliste plus robuste, utilisée en pratique.
  • Test AKS (2002) : premier test déterministe polynomial en temps.
📝

RSA miniature

p=11p = 11, q=13q = 13, n=143n = 143, ϕ(n)=10×12=120\phi(n) = 10 \times 12 = 120.

Choisir e=7e = 7 (car gcd⁡(7,120)=1\gcd(7,120) = 1). Trouver dd : 7d≡1(mod120)7d \equiv 1 \pmod{120}.

7×103=721=6×120+17 \times 103 = 721 = 6 \times 120 + 1, donc d=103d = 103.

Chiffrer m=2m = 2 : c≡27=128(mod143)c \equiv 2^7 = 128 \pmod{143}. Comme 128<143128 < 143, c=128c = 128.

Déchiffrer : 128103 mod 143=2128^{103} \bmod 143 = 2 (par exponentiation rapide et théorème d'Euler) ✓

⚠️

Piège : la réciproque du petit théorème de Fermat est fausse

Des entiers composés peuvent satisfaire an−1≡1(modn)a^{n-1} \equiv 1 \pmod n — ce sont les nombres de Carmichael (ex. 561=3×11×17561 = 3 \times 11 \times 17). Le test de Fermat peut être trompé par eux. En pratique, RSA utilise le test de Miller-Rabin (probabiliste, très fiable) ou l'algorithme AKS (déterministe) pour générer des nombres premiers.

🧩

Checkpoint

Par le petit théorème de Fermat, quelle est la valeur de ?

🧩

Checkpoint

Le système et admet comme solution unique modulo 6 :

🧩

Checkpoint

Dans RSA avec , , , , quelle est la clé privée telle que ?

Ordre d'un élément et critères de divisibilité

📐

Théorie

Ordre d'un élément modulo nn :

L'ordre de aa dans (Z/nZ)∗(\mathbb{Z}/n\mathbb{Z})^* est le plus petit entier k≥1k \geq 1 tel que ak≡1(modn)a^k \equiv 1 \pmod{n}, noté ordn(a)\text{ord}_n(a).

L'ordre divise toujours ϕ(n)\phi(n) (conséquence du théorème de Lagrange).

Si ordn(a)=ϕ(n)\text{ord}_n(a) = \phi(n), alors aa est un générateur (racine primitive) de (Z/nZ)∗(\mathbb{Z}/n\mathbb{Z})^*.

Critères de divisibilité via congruences :

| Diviseur | Condition | Raison (10≡?(modd)10 \equiv ? \pmod{d}) | |---|---|---| | 22 | Dernier chiffre pair | 10≡0(mod2)10 \equiv 0 \pmod 2 | | 55 | Dernier chiffre ∈{0,5}\in \{0,5\} | 10≡0(mod5)10 \equiv 0 \pmod 5 | | 33 | Somme des chiffres ≡0(mod3)\equiv 0 \pmod 3 | 10≡1(mod3)10 \equiv 1 \pmod 3 | | 99 | Somme des chiffres ≡0(mod9)\equiv 0 \pmod 9 | 10≡1(mod9)10 \equiv 1 \pmod 9 | | 1111 | Somme alternée ≡0(mod11)\equiv 0 \pmod{11} | 10≡−1(mod11)10 \equiv -1 \pmod{11} |

Preuve du critère pour 3 : si N=ak10k+⋯+a110+a0N = a_k 10^k + \cdots + a_1 10 + a_0, alors comme 10≡1(mod3)10 \equiv 1 \pmod 3, on a 10i≡1(mod3)10^i \equiv 1 \pmod 3 pour tout ii, donc N≡ak+⋯+a0(mod3)N \equiv a_k + \cdots + a_0 \pmod 3.

Critère pour 11 : comme 10≡−1(mod11)10 \equiv -1 \pmod{11}, on a 10i≡(−1)i(mod11)10^i \equiv (-1)^i \pmod{11}, d'où N≡a0−a1+a2−a3+⋯(mod11)N \equiv a_0 - a_1 + a_2 - a_3 + \cdots \pmod{11}.

Application en hachage : dans une table de hachage de taille nn première, l'indice de clé kk est k mod nk \bmod n. Choisir nn premier garantit que l'ordre de chaque base est maximal, minimisant les collisions par sondage linéaire.

📝

Ordre d'un élément et critère de divisibilité par 11

Ordre de 22 modulo 77 : 21=2,22=4,23=8≡1(mod7)2^1 = 2,\quad 2^2 = 4,\quad 2^3 = 8 \equiv 1 \pmod 7 Donc ord7(2)=3\text{ord}_7(2) = 3. Vérification : 3∣ϕ(7)=63 \mid \phi(7) = 6 ✓

Ordre de 33 modulo 77 : 31=3, 32=2, 33=6, 34=4, 35=5, 36=1(mod7)3^1=3,\ 3^2=2,\ 3^3=6,\ 3^4=4,\ 3^5=5,\ 3^6=1 \pmod 7. Donc ord7(3)=6=ϕ(7)\text{ord}_7(3) = 6 = \phi(7) : 33 est une racine primitive modulo 77.

Critère de divisibilité par 11 pour N=4 719N = 4\,719 : 4−7+1−9=−11≡0(mod11)4 - 7 + 1 - 9 = -11 \equiv 0 \pmod{11} Donc 4 7194\,719 est divisible par 1111 (en effet 4 719=11×4294\,719 = 11 \times 429) ✓

🧩

Checkpoint

Quel est l'ordre de modulo ?

🧩

Checkpoint

Le nombre est-il divisible par 9 ?

⭐

À retenir

  • Congruence : a≡b(modn)a \equiv b \pmod n ssi n∣(a−b)n \mid (a-b) — compatible avec ++, ×\times et les puissances
  • Fermat : ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p pour pp premier et gcd⁡(a,p)=1\gcd(a,p)=1 ; inverse : a−1≡ap−2a^{-1} \equiv a^{p-2}
  • CRT : système à modules premiers entre eux ⇒\Rightarrow solution unique modulo N=∏niN = \prod n_i
  • Ordre de aa modulo nn : plus petit k≥1k \geq 1 tel que ak≡1a^k \equiv 1 — divise toujours ϕ(n)\phi(n)
  • Critères de divisibilité : par 3 et 9 via somme des chiffres, par 11 via somme alternée (conséquence de 10≡±110 \equiv \pm 1)
  • RSA : chiffrement c≡me(modn)c \equiv m^e \pmod n, déchiffrement m≡cd(modn)m \equiv c^d \pmod n — sécurité fondée sur la factorisation
Passer aux exercices →