Ce pourrait être le début d'un feuilleton 'Mathématiques et vie quotidienne' ...
Clé du NIR Clé du RIB Clé du IBAN
Calcul du modulo n d'un grand nombre Quelques autres codes
Le nombre premier 97 (qui est le plus grand premier à 2 chiffres) est, en particulier, couramment utilisé pour calculer la clé du NIR (numéro d'inscription au répertoire ou numéro INSEE de sécurité
sociale) ou les clés du RIB et du IBAN des organismes bancaires. Ces clés permettent de vérifier que le code (NIR, RIB ou IBAN) est valide.
En fait, on devra calculer la valeur modulo 97 d'un grand nombre (de 13 à plus de 30 chiffres suivant le cas), c'est-à-dire
le reste de sa division euclidienne (ou entière) par 97 (exemple: 1019 = 49 mod 97 puisque 1019=97*10 + 49).
Ce procédé, encore appelé la congruence modulo n (ici n = 97), s'inspire d'une branche des mathématiques, appelée
l' arithmétique modulaire qui est un puissant outil permettant d'aborder de nombreux problèmes de la théorie des nombres et qui est aussi l'arithmétique de base des ordinateurs (le modulo 2 du système binaire). La congruence sur les entiers fut étudiée pour la première fois par le mathématicien Johann Carl Friedrich Gauss en 1801 dans son célèbre ouvrage 'Disquisitiones arithmeticae'(Recherches arithmétiqes). La classique preuve par neuf (voir aussi les preuves par 11 et par 99 ...) utilise les entiers modulo 9, c'est-à-dire représente l'ensemble de tous les entiers par 9 classes d'équivalence , définies par un reste, dans la division par 9, respectivement égal à 0, 1, 2, 3, 4, 5, 6, 7, 8.
Dans le calcul des 3 clés qui nous intéressent ici, nous aurons chaque fois un grand nombre entier N (associé à un code initial formé de 13 à 27 caractères alphanumériques) et nous chercherons à déterminer une clé C (nombre à deux chiffres, avec 1 ≤ C ≤ 97 pour NIR et RIB, 2 ≤ C ≤ 98 pour IBAN) telle que que N + C soit divisible par 97 (soit encore N + C = 0 mod 97) pour NIR et RIB, N + C = 1 mod 97 pour IBAN; c'est ce caractère de divisibilité par 97 qui prouvera la validité du code initial.
Dans certains cas il pourra y avoir des lettres dans ce code: on les remplacera alors par des chiffres de la manière indiquée plus bas suivant le code envisagé pour obtenir le nombre N. Par ailleurs dans l'écriture du code complet, si la clé est un nombre strictement inférieur à 10, on la notera 01, 02, ..., 09 (pour avoir toujours le même nombre de caractères dans le code considéré).
Il suffit de calculer le reste r de la division de N par 97: N = r mod 97.
La cle du code NIR est alors: C = 97 - r (pour assurer comme il convient N + C = 0 mod 97).
A,J = 1 ; B,K,S = 2 ; C,L,T = 3 ; D,M,U = 4 ; E,N,V = 5
F,O,W = 6 ; G,P,X = 7 ; H,Q,Y = 8 ; I,R,Z = 9.
Le nombre N aura alors 21 chiffres.
On peut définir le nombre R à 23 chiffres (les 21 chiffres de N suivi de la clé à 2 chiffres):
R = B.10 18 + G.1013 + P.102 + C.
On cherche donc C pour assurer R = 0 mod 97 avec 1 ≤ C ≤ 97.
On vérifiera facilement que 1018 = 89 mod 97, 1013 = 15 mod 97 et 102 = 3 mod 97 et donc:
avec 89 B + 15 G + 3 P = r mod 97, il vient C = 97 - r .
Considérons le nombre N qui correspond à M avec 00 à la place de la clé (on peut aussi faire comme plus haut et écrire N = R.102, R étant M amputé de la clé).
On cherche ici une clé C qui assure N + C = 1 mod 97; avec N = r mod 97, ceci sera réalisé avec la clé C = 98 -r.
Pour par exemple obtenir N =1234567812345678 modulo 97, on le notera N = 12345678.108 + 12345678, et comme:
12345678 = 3 mod 97, 108 = 81 mod 97, 12345678.108 = 49 mod 97, on obtiendra:
N = 52 mod 97. (1234567812345678 = 12727503220058*97 + 52)
On peut de cette manière calculer le reste modulo n d'un nombre aussi grand que l'on veut (voir un logiciel en ligne qui effectue ce calcul).
Les codes barres (le premier code barre a été utilisé en 1952) correspondent à un nombre N de 13 à 18 chiffres. En général la clé de contrôle est un chiffre C qui ajouté à un certain nombre R
déduit de N donne un multiple de 10. Il s'agit de barres noires verticales codées en système binaire avec des 0 (absence de barre) et des 1 (présence de la barre). Il existe de nombreuses normes de tels codes, nous avons décrit ici le code EAN-13 (créé en 1976).
Les codes QR comportent un nombre variable de petits carrés blancs et noirs représentant les valeurs binaires 0 et 1. Le fonctionnement est analogue aux codes barres précédents, mais les codes QR proposent un stockage beaucoup plus grand. Pour les saisir il faut des capteurs spéciaux ou ... des smartphones utilisant l'application Flashcode.
Les billets en euros sont numérotés soit par une lettre suivie de 11 chiffres, soit (nouveaux billets) par deux lettres suivies de 10 chiffres. Chaque lettre sera remplacée ici par un nombre correspondant à
sa place dans l'alphabet (A = 1, B = 2, ..., Z = 26). Le nombre N obtenu aura ainsi entre 12 et 14 chiffres; pour assurer la validité de la coupure, on devra avoir N = 8 mod 9 pour les anciens billets et N = 7 mod 9 pour les nouveaux.
Les numéros d'avis de contravention sont le plus souvent des nombres de 14 chiffres; si ce numéro n'a que 10 chiffres il faut le faire précéder de 333 et suivre de 1. On aura ainsi
toujours un nombre N de 14 chiffres. La clé C de la contravention (nombre à deux chiffres qui figure à droite du numéro précédent et qui est écrite comme plus haut avec toujours deux caractères 01, 02 ,...,99) est ici (encore) le reste de la division par 97 de N: C = N mod 97 (Voir la carte de paiement, le nombre de 14 chiffres y est nommé numéro de télépaiement et à droite la clé est indiquée).
Divers codes de cryptage utilisent les nombres premiers et l'arithmétique modulaire, comme par exemple le codage RSA clé publique-clé privée ...
On pourrait probablement continuer ces diverses utilisations de tous les jours de l'arithmétique modulaire, aussi nous terminerons par
Principe de cryptage et Cryptage en ligne sur le site Sayrac
Le principe de moindres contraintes de GAUSS
Divers Calculs en ligne sur Sayrac
Page index de SAYRAC
Pour laisser un message ou un commentaire.
![]() ![]() ![]() ![]() |