Horloge d'arithmétique modulaire

Choisissez le module n et l'opération. Observez le résultat sur une horloge modulaire et examinez les tables d'addition/multiplication.

Chargement de la simulation interactive...

Un module premier vous rend la division 🖖

L'arithmétique modulaire traite des entiers sous un module cyclique n, noté a ≡ b (mod n). Ce système forme un anneau commutatif Z/nZ. Si le module p est premier, l'anneau devient un corps, ce qui signifie que tout élément non nul possède un inverse multiplicatif, structure fondamentale de la cryptographie moderne.

Pourquoi on parle d'arithmétique de l'horloge 🖖

Sur une horloge de 12 heures, 4 heures après 11 h il est 3 h et non 15 h : les nombres reviennent au début dès qu'ils dépassent 12. C'est exactement l'arithmétique modulaire : a ≡ b (mod n) signifie que a et b donnent le même reste lorsqu'on les divise par n. Ainsi 15 ≡ 3 (mod 12). L'essentiel : l'arithmétique modulaire ne garde que le reste de la division, et l'horloge de cet outil montre les nombres tourner en boucle.

La règle de divisibilité par 9 cache de l'arithmétique modulaire 🖖

La vieille règle « un nombre est divisible par 9 si la somme de ses chiffres l'est » relève entièrement de l'arithmétique modulaire. Comme 10 ≡ 1 (mod 9), toute puissance de 10 vaut aussi ≡ 1, si bien qu'un nombre est congru à la somme de ses chiffres (mod 9). Ce même fait fonde la preuve par neuf, une méthode vieille de plusieurs siècles pour vérifier ses calculs à la main.

ARITHMÉTIQUE MODULAIRE — QUAND PEUT-ON DIVISER, ET QUAND NON ?

Dans quel cas d’arithmétique modulaire êtes-vous ?

Travailler modulo n, c’est ne garder que le reste, et l’addition, la soustraction et la multiplication y survivent sans dommage. La division, non. Pouvoir diviser par un nombre — qu’il possède un inverse — dépend uniquement de ce qu’il partage ou non un facteur avec n, et c’est pourquoi un module premier se comporte si différemment d’un module composé. Le cas dépend de l’opération et de la nature du nombre n.

Addition — toujours bien élevée, quel que soit n 13 + 5 ≡ 6 (mod 12)
Module premier — on peut diviser par tout élément non nul φ(7) = 6 ⇒ gcd(a, 7) = 1 ∀a ≠ 0
Module composé — on ne peut diviser par presque aucun élément 2 × 3 ≡ 0, φ(6) = 2
Puissances répétées — elles bouclent, et Fermat dit où ap−1 ≡ 1 (mod p)

01

Addition — toujours bien élevée, quel que soit n

Ce que vous savez: N’importe quel module. Additionner, soustraire et multiplier modulo n sont toujours définis, et tout élément a son opposé additif.

Ce qu’il faut vérifier: 13 + 5 ≡ 6 (mod 12)

Exemple résolu: Une horloge de 12 heures : 13 + 5 = 18, et 18 mod 12 = 6. Cinq heures après une heure, il est six heures.

Ouvrir ce cas: horloge mod 12
Addition — toujours bien élevée, quel que soit n. La table d’addition modulo 12 : chaque ligne est la précédente décalée d’un cran, et chaque valeur apparaît exactement une fois. N’importe quel module. Additionner, soustraire et multiplier modulo n sont toujours définis, et tout élément a son opposé additif.
La table d’addition modulo 12 : chaque ligne est la précédente décalée d’un cran, et chaque valeur apparaît exactement une fois.

02

Module premier — on peut diviser par tout élément non nul

Ce que vous savez: n est premier. Aucun élément non nul ne partage alors de facteur avec n, donc chacun possède un inverse multiplicatif.

Ce qu’il faut vérifier: φ(7) = 6 ⇒ gcd(a, 7) = 1 ∀a ≠ 0

Exemple résolu: Modulo 7 : 3 × 4 = 12 ≡ 5. Les six valeurs non nulles 1…6 sont inversibles, si bien que la table de multiplication ne contient aucun zéro hors de la première ligne.

Ouvrir ce cas: nombre premier mod 7
Module premier — on peut diviser par tout élément non nul. La table de multiplication modulo 7 : aucun zéro sous la première ligne, et chaque ligne une permutation de 1 à 6. n est premier. Aucun élément non nul ne partage alors de facteur avec n, donc chacun possède un inverse multiplicatif.
La table de multiplication modulo 7 : aucun zéro sous la première ligne, et chaque ligne une permutation de 1 à 6.

03

Module composé — on ne peut diviser par presque aucun élément

Ce que vous savez: n est composé. Seules les valeurs premières avec n ont un inverse ; les autres sont des diviseurs de zéro, et diviser par elles n’a aucun sens.

Ce qu’il faut vérifier: 2 × 3 ≡ 0, φ(6) = 2

Exemple résolu: Modulo 6 : 2 × 4 = 8 ≡ 2. Ni 2 ni 4 n’est inversible, puisque pgcd(2,6) = 2 et pgcd(4,6) = 2. Seuls 1 et 5 sont des unités — deux sur six.

Ouvrir ce cas: nombre composé mod 6
Module composé — on ne peut diviser par presque aucun élément. La table de multiplication modulo 6, parsemée de zéros, avec seulement deux lignes qui sont des permutations. n est composé. Seules les valeurs premières avec n ont un inverse ; les autres sont des diviseurs de zéro, et diviser par elles n’a aucun sens.
La table de multiplication modulo 6, parsemée de zéros, avec seulement deux lignes qui sont des permutations.

04

Puissances répétées — elles bouclent, et Fermat dit où

Ce que vous savez: Élever à une puissance modulo n. Pour p premier et a non divisible par p, les exposants se répètent avec une période divisant p − 1.

Ce qu’il faut vérifier: ap−1 ≡ 1 (mod p)

Exemple résolu: Modulo 13 : 7¹² ≡ 1. Le petit théorème de Fermat le garantit pour toute base de 1 à 12, sans calculer la moindre grande puissance.

Ouvrir ce cas: Fermat mod 13
Puissances répétées — elles bouclent, et Fermat dit où. Les puissances de chaque base modulo 13 ; la colonne de l’exposant 12 revient à 1 pour toute unité. Élever à une puissance modulo n. Pour p premier et a non divisible par p, les exposants se répètent avec une période divisant p − 1.
Les puissances de chaque base modulo 13 ; la colonne de l’exposant 12 revient à 1 pour toute unité.

Problème entièrement résolu

  1. Évaluer 7 12 mod 13 sur la grille complète 5 étapes

    Évaluez 712 mod 13 sans jamais poser 712 par écrit. Il s'agit de l'opération ak avec n = 13, a = 7 et k = 12, et la grille est la table complète de ak mod 13.

    1. 712 vaut 13 841 287 201 — onze chiffres pour un résultat qui doit se situer entre 0 et 12. La réduction est compatible avec la multiplication : le résidu d'un produit ne dépend que des résidus de ses facteurs, on peut donc réduire après chaque étape au lieu de le faire à la fin.

    2. Le petit théorème de Fermat tranche la question avant même le moindre calcul. Pour un nombre premier p et un entier a non divisible par p, ap−1 ≡ 1 ; ici p = 13 et k vaut exactement p − 1, de sorte que le résultat est 1 et que tout ce qui suit constitue une vérification du théorème plutôt qu'une recherche du résultat.

    3. Élever au carré double l'exposant, si bien que trois élévations au carré permettent d'atteindre 78. Chaque ligne est réduite avant de passer à la suivante, c'est pourquoi aucun nombre ne dépasse 100 dans l'ensemble du calcul.

    4. 12 vaut 8 + 4, et ces deux puissances ont été calculées en chemin, si bien qu'une multiplication supplémentaire suffit à conclure. Quatre multiplications au total, contre les onze qu'exigerait le produit de gauche à droite de douze sept — et le gain augmente avec l'exposant, pas avec le modulo.

    5. L'ordre de 7, c'est-à-dire le plus petit k vérifiant 7k ≡ 1, doit diviser 12, il s'agit donc de l'un des nombres 1, 2, 3, 4, 6 et 12. Vérifier les cinq diviseurs propres permet d'éliminer chacun d'eux, l'ordre est donc exactement 12.

    Réponse

    Les trois élévations au carré et la multiplication finale reproduisent sans erreur la ligne de l'outil pour a = 7 : 10 pour k = 2, 9 pour k = 4, 3 pour k = 8, et 1 pour k = 12, exactement là où Fermat l'avait annoncé. Puisque l'ordre est 12 et non un diviseur propre de celui-ci — le test d'ordre nécessitait 12 pour k = 6, qui n'est pas 1 — cette ligne est une permutation des nombres de 1 à 12, atteignant chaque résidu non nul exactement une fois, ce qui fait de 7 une racine primitive modulo 13. Lisez à présent la ligne dans l'autre sens : étant donné 11, trouver k. Il n'existe pas de méthode d'élévation au carré et multiplication pour cela, seulement une recherche, et cette dissymétrie entre un sens direct simple et un sens inverse complexe constitue le principe même de l'échange de clés de Diffie–Hellman. L'algorithme passe à l'échelle d'une manière impossible pour la table : un exposant de 2048 bits coûte au plus environ 4 000 multiplications modulaires, alors que la puissance correspondante nécessiterait environ 2,7 × 10616 chiffres pour être écrite en entier.

Parcours

Quand deux choses tombent sur la même valeur

Mène à Paradoxe des anniversaires

Références (1)

Exemples de problèmes

  • horloge mod 12 - Arithmétique de l'horloge : 13 ≡ 1 (mod 12), donc 13+5 revient à 6.
  • nombre premier mod 7 - Modulo premier : les lignes de multiplication non nulles se comportent comme des permutations.
  • nombre composé mod 6 - Un modulo composé présente des lignes répétées lorsque gcd(row,n) > 1.
  • Fermat mod 13 - Motif à la Fermat : a^(p-1) ≡ 1 mod p pour p premier et gcd(a,p)=1.