Plus de jeux sur WuGames.ioSponsoriséDécouvrez des jeux de navigateur gratuits — jouez aussitôt, sans téléchargement ni inscription.Jouer

Calculatrice d'arithmétique modulaire

Calculatrice d'arithmétique modulaire en ligne. Modulo, inverses, exponentiation modulaire et congruences pour cryptographie et théorie des nombres.

Calculez modulo, inverse modulaire et exponentiation modulaire pour la cryptographie et la théorie des nombres.

Qu'est-ce que l'arithmétique modulaire ?

C'est une arithmétique des entiers où les valeurs « bouclent » après un certain seuil (le module). On parle souvent d'arithmétique de l'horloge.

L'expression a mod m donne le reste de la division de a par m. Exemple : 17 mod 5 = 2 car 17 = 3 × 5 + 2.

Opérations de base

On retrouve toutes les opérations classiques :

  • Addition : (a + b) mod m = ((a mod m) + (b mod m)) mod m
  • Soustraction : (a - b) mod m = ((a mod m) - (b mod m)) mod m
  • Multiplication : (a × b) mod m = ((a mod m) × (b mod m)) mod m

Exponentiation modulaire

Calcule a^b mod m efficacement via la méthode d'exponentiation rapide (square-and-multiply), essentielle pour RSA.

Exemple : 3^5 mod 7 = 243 mod 7 = 5.

Inverse modulaire

L'inverse de a modulo m est x tel que a × x ≡ 1 (mod m).

a × x ≡ 1 (mod m)

Il n'existe que si pgcd(a, m) = 1 et se calcule via l'algorithme d'Euclide étendu.

Exemple : l'inverse de 3 mod 7 vaut 5 car 3 × 5 = 15 ≡ 1 (mod 7).

Applications

Domaines clés :

  • Cryptographie : RSA, Diffie-Hellman
  • Informatique : fonctions de hachage, sommes de contrôle, générateurs pseudo-aléatoires
  • Théorie des nombres : tests de primalité, factorisation
  • Codage : détection/correction d'erreurs
  • Musique : techniques dodécaphoniques
  • Calendriers : calcul des jours de la semaine

Questions fréquentes

Les deux réponses sont mathématiquement correctes au sens où 2 et -3 diffèrent de 5 (le module), donc représentent la même classe d'équivalence modulo 5. La convention de cette calculatrice — et des mathématiques, de l'informatique et de la cryptographie — est de renvoyer le reste non négatif : la plus petite valeur r telle que 0 ≤ r < m. Donc 17 mod 5 renvoie 2 (car 17 = 3 × 5 + 2), et -3 mod 5 renvoie aussi 2 (car -3 = -1 × 5 + 2). C'est le modulo « euclidien » ou « floor ». Certains langages (C, Java, JavaScript avec %) utilisent un modulo « tronqué » qui conserve le signe du dividende — en JavaScript, -3 % 5 renvoie -3, pas 2. Cette calculatrice suit la convention mathématique parce qu'elle est sans ambiguïté et correspond à ce que font les manuels de théorie des nombres et de cryptographie.

L'inverse a⁻¹ mod m existe si et seulement si pgcd(a, m) = 1, c'est-à-dire que a et m ne partagent aucun facteur commun autre que 1 — ils sont premiers entre eux. Exemple : 3 mod 7 — pgcd(3, 7) = 1, l'inverse existe et vaut 5 (car 3 × 5 = 15 ≡ 1 mod 7). Exemple : 6 mod 9 — pgcd(6, 9) = 3, pas d'inverse. Il se calcule par l'algorithme d'Euclide étendu, qui produit le pgcd et l'inverse en même temps. La condition est cruciale pour RSA : l'exposant de chiffrement e et la fonction indicatrice φ(n) doivent être premiers entre eux, sinon la clé privée ne peut être dérivée. Cette calculatrice répond « pas d'inverse » quand pgcd > 1, plutôt que de renvoyer silencieusement une mauvaise réponse.

RSA calcule c = m^e mod n, où m est le message, e l'exposant public (typiquement 65537) et n le module public (2048 ou 4096 bits). Pour n sur 2048 bits, les valeurs peuvent avoir plusieurs centaines de chiffres. Calculer m^e puis réduire modulo n est impossible — la valeur intermédiaire serait astronomiquement grande, bien au-delà de ce qu'un ordinateur peut stocker. L'algorithme square-and-multiply (exponentiation modulaire par carrés répétés) entrelace l'élévation au carré et la réduction modulo n, en gardant tous les intermédiaires plus petits que n. Pour e = 65537 = 2^16 + 1, il ne faut que 17 multiplications modulaires au lieu de 65536 — accélération de l'ordre de 4000×. Les bibliothèques cryptographiques sérieuses ajoutent en outre une implémentation à temps constant pour empêcher les attaques par canal auxiliaire de timing.

Ce n'est pas la même chose. Le modulo mathématique (a mod m) renvoie toujours un résultat non négatif pour m positif : 0 ≤ résultat < m. L'opérateur % dépend du langage. C, C++, Java, JavaScript, Go : modulo tronqué — le signe suit le dividende, donc -7 % 3 renvoie -1. Python : modulo floor — le signe suit le diviseur, donc -7 % 3 renvoie 2. Convention mathématique : -7 mod 3 = 2 (identique à Python). En portant du code crypto ou de théorie des nombres depuis une source mathématique vers JavaScript ou C, il faut traiter le cas négatif explicitement : ((a % m) + m) % m donne le résultat mathématique correct quel que soit le signe. Cette calculatrice utilise la convention mathématique, donc les résultats correspondent aux manuels quel que soit le langage de l'utilisateur.

Parce qu'une horloge est l'exemple le plus familier. Un cadran 12 heures fonctionne en modulo 12 : 11 + 4 heures = 3, parce que 11 + 4 = 15 et 15 mod 12 = 3. Le temps « boucle » par le module exactement comme l'arithmétique modulaire. Une horloge 24 heures fonctionne modulo 24, les jours de la semaine modulo 7 et les angles modulo 360° (ou 2π radians). Dès qu'il y a une grandeur cyclique — angles, jours, heures, classes de hauteur musicale, valeurs de teinte de couleur — l'arithmétique modulaire est le cadre naturel. La métaphore de l'horloge a été popularisée dans les Disquisitiones Arithmeticae de Gauss (1801), ouvrage fondateur de l'arithmétique modulaire, où il a introduit la notation de congruence ≡ que l'on utilise encore.

Nul, jamais — la division par zéro n'est pas définie, a mod 0 n'a pas de sens. Cette calculatrice rejette module = 0 avec une erreur. Un module négatif est mathématiquement permis mais conventionnellement traité comme positif (-5 équivaut à +5 comme module, les classes d'équivalence sont identiques). Pour des résultats prévisibles, cette calculatrice exige un module entier positif ≥ 1. Note : mod 1 est un cas particulier où tout entier est congru à 0 — utile en preuve mais trivial en calcul. La plupart des usages réels ont m ≥ 2.

Le petit théorème de Fermat dit : si p est premier et a un entier non divisible par p, alors a^(p-1) ≡ 1 (mod p). C'est la base de plusieurs choses : (1) Tests de primalité — si vous trouvez un a tel que pgcd(a, n) = 1 mais a^(n-1) ≢ 1 mod n, alors n est composé à coup sûr. Miller-Rabin est un raffinement de ce test. (2) Génération de clés RSA — ce théorème est ce qui fait fonctionner le déchiffrement RSA ; la démonstration s'appuie sur a^(φ(n)) ≡ 1 mod n, généralisation de Fermat via le théorème d'Euler pour n non premier. (3) Cryptographie à logarithme discret — beaucoup de protocoles reposent sur le fait que les exposants se réduisent modulo p-1 quand la base est dans le groupe multiplicatif mod p. Essayez : 2^6 mod 7 = 64 mod 7 = 1 (puisque 7 est premier et pgcd(2,7)=1).

Oui pour des entrées de taille courante (jusqu'à la limite des entiers sûrs en JavaScript, 2^53 ≈ 9 × 10^15), mais pas pour les tailles de clé cryptographiques (2048+ bits, soit 600+ chiffres décimaux). La calculatrice tourne dans votre navigateur avec des nombres JavaScript normaux, qui perdent en précision au-delà de 2^53. Pour des calculs cryptographiques réels, les bibliothèques utilisent des entiers à précision arbitraire via BigInt (présent dans les navigateurs modernes) — ouvrez la console et essayez (3n ** 5n) % 7n pour de l'arithmétique BigInt. Pour l'usage quotidien — devoirs de théorie des nombres, analyse de fonctions de hachage, calcul de calendrier, démonstrations RSA à petite clé — la précision de cette calculatrice suffit largement. Pour du chiffrement réel, utilisez une bibliothèque auditée comme OpenSSL ou libsodium, ne réécrivez jamais la vôtre.
Calculatrice d'arithmétique modulaire — Calculatrice d'arithmétique modulaire en ligne. Modulo, inverses, exponentiation modulaire et congruences pour cryptogra
Calculatrice d'arithmétique modulaire