Aller au contenu
uencoder

Modular Arithmetic

L'arithmétique modulaire prend les restes après les opérations entières, en gardant les résultats dans [0, n) ; c'est le fondement de la théorie des nombres et de la cryptographie.

Objectif

Maintenir les opérations fermées dans un intervalle fini, base de RSA, Diffie-Hellman et d'autres cryptosystèmes.

Mécanisme

(a + b) mod n et (a × b) mod n sont définis modulo n. L'inverse modulaire a^(-1) satisfait a·a^(-1) ≡ 1 (mod n) ; il existe lorsque gcd(a,n)=1 et se calcule avec l'algorithme d'Euclide étendu. D'après le petit théorème de Fermat, a^(p-1) ≡ 1 (mod p) pour p premier.

Cas d’usage

  • Chiffrement et déchiffrement RSA
  • Échange de clés Diffie-Hellman
  • Sharding par modulo de hachage
  • Calcul de sommes de contrôle

Exemples

  • entrée
    (7 + 8) mod 5
    Output
    0

    15 mod 5 = 0

Erreurs courantes

Negative modulo behaves differently across languages
Know your language's behavior or normalize with ((a%n)+n)%n

Termes associés

Outils associés

References