Le nombre premier 97

et l'arithmétique modulaire

Mode dictionnaire contextuel Alexandria et Traduction automatique

Ce pourrait être le début d'un feuilleton 'Mathématiques et vie quotidienne' ...
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é).

Clé du NIR

Ici le plus souvent le code initial ne contient que des chiffres et représente donc N; dans le seul cas de la Corse il peut y avoir les lettres A ou B (précédées de 2) dans les 13 caractères initiaux, on devra remplacer alors 2A par 19 et 2B par 18 pour obtenir N.
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).

Clé du RIB

Le code initial peut ici contenir 21 caractères avec des lettres: 5 chiffres pour le code établissement bancaire (nombre B), 5 chiffres pour le code guichet (nombre G) et 11 caractères pour le numéro de compte personnel (qui produira le nombre P à 11 chiffres). On devra remplacer les lettres par des chiffres de la manière suivante:
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 .

Clé du IBAN

En France le code initial commence par FR suivi d'une clé à 2 chiffres comprise ici entre 02 et 98, la suite contient les 23 caractères du RIB complet précédent. On concaténera les 4 premiers caractères à la fin du code , puis on devra remplacer les lettres par des chiffres de la manière suivante: A = 10 ; B = 11 ; C = 12 ; ... etc ... ; Y = 34 ; Z = 35. Ainsi FR sera remplacé par 1527 (changer aussi les éventuelles lettres du RIB avec ce même processus). Le nombre M obtenu aura alors au moins 29 chiffres.
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.

Calcul du modulo n d'un grand nombre

Nous aurons donc assez souvent besoin de calculer modulo n. Pour les nombres de plus de 15 chiffres (limite des calculatrices standards), on devra procéder par étape pour calculer le reste mod n.
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).

Quelques autres codes

Le numéro ISBN est un numéro international normalisé de 10 chiffres qui permet d'identifier le titre d'un livre; la clé de vérification est ici le reste de la division par 11 d'un certain nombre N calculé à partir des 9 premiers chiffres du numéro ISBN.
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
Merci Monsieur GAUSS !
.

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.