Codes mathématiques de notre quotidien
Avec l’approche qui lui est chère des tours mathémagiques, Dominique Souder nous propose des idées d’activités autour des codes bancaires, à faire découvrir aux futurs citoyens que sont nos élèves.
Dominique Souder
© APMEP Décembre 2021
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅♦⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
Notre quotidien ne peut plus se passer des codes chiffrés. Dans les exemples qui suivent, on découvre comment calculer certains de ces codes et comment les clés de contrôle permettent de repérer certaines erreurs de saisie. Les algorithmes utilisés, reposant sur les restes de divisions euclidiennes, pourront offrir une source d’inspiration pour la mise en place d’activités avec les élèves.
Calcul de la clé RIB d’un compte
Tout compte bancaire français est identifié par son RIB (Relevé d’Identité Bancaire), identifiant codé sous forme de liste de chiffres et éventuellement de lettres. Les deux derniers chiffres du RIB sont appelés clé de contrôle : cette clé (comprise entre 01 et 97) permet de vérifier la validité du RIB.
Sur le relevé d’identité bancaire (ce vieux compte n’existe plus) ci-dessus figurent les numéros :
-
de la banque (5 chiffres) ;
-
du guichet (5 chiffres) ;
-
du compte bancaire (11 chiffres) ;
-
de la clé RIB (2 chiffres).
Grâce à un algorithme qui s’applique sur le nombre formé des 21 chiffres, la clé peut être calculée avec la formule :
\(\text{Clé RIB} = 97 – \text{reste de la division euclidienne de } (89 \times \text{code banque} + 15 \times \text{code guichet} + 3 \times
\text{numéro de compte}) \text{ par 97.}\)1
Pour le compte ci-dessus, on trouve :
\(89 \times \text{code banque} = 89 \times {11206} = {997334}\)
\(15 \times \text{code guichet} = 15 \times {20018} = {300270}\)
\(3 \times \text{\no compte} = 3 \times {59109009100} = {177327027300}\)
Total des trois composants : \({177328324904}\).
L’utilisation des propriétés des congruences permettra au lecteur de comprendre le pourquoi des nombres : 89, 15 et 3.
On calcule alors le reste dans la division euclidienne par 97 de ce total. Les capacités des calculatrices collège ne permettent pas ce calcul mais un calcul à la main reste possible2.
Finalement, le reste de la division de 177328324904 par 97 est 84. La clé du RIB ci-dessus est égale à \(97-84=13\).
A vous de jouer n°1 | ||||||||||
Quelle est la clé du RIB imaginaire ci-dessous ?
|
A vous de jouer n°2 | ||||||||||
Quelle est la clé du RIB imaginaire ci-dessous ?
|
Aide : La clé RIB est une formule mathématique, qui ne peut s’appliquer que sur des valeurs numériques. Il convient donc de remplacer les éventuelles lettres présentes dans les données du RIB avant de pouvoir calculer sa clé.
Chaque lettre est remplacée par son équivalent numérique de la manière suivante :
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A | B | C | D | E | F | G | H | I |
J | K | L | M | N | O | P | Q | R |
S | T | U | V | W | X | Y | Z |
Le numéro IBAN d’un compte bancaire
Depuis quelques années, les RIB ont été remplacés par une norme internationale d’identification des comptes bancaires appelée IBAN (International Bank Account Number), sous forme de 27 caractères en France. Un code IBAN est constitué de gauche à droite par six blocs de quatre caractères puis un dernier de trois caractères.
Le numéro IBAN d’un compte bancaire est constitué :
-
d’un code pays composé de 2 lettres (FR pour la France, BE pour la Belgique, CH pour la Suisse, TN pour la Tunisie, …) ;
-
suivi d’une clé comprise entre 02 et 98 (voir le calcul de cette clé ci-dessous) ;
-
suivi du numéro de compte BBAN (Basic Bank Account Number) qui a une longueur fixe pour un pays donné mais variable d’un pays à l’autre (30 caractères au maximum). Pour la France, ce numéro correspond aux 23 caractères du RIB (code banque + code guichet + numéro de compte + clé RIB)3.
Algorithme de calcul de la clé du numéro IBAN
Les IBAN des comptes français, s’ils ne sont constitués que de chiffres4, ont tous le même début. En effet, pour calculer la clé on commence par ajouter 00 à la suite du code pays dont les lettres ont été converties en leur équivalent numérique avec les valeurs ci-dessous.
A | B | C | … | … | … | Y | Z |
10 | 11 | 12 | … | … | … | 34 | 35 |
Pour la France, FR se traduit par 15 27. On obtient ensuite après concaténation : 152700.
La clé IBAN peut alors être calculée avec la formule suivante :
\(\text{Clé IBAN}=98-\text{(le reste de la division euclidienne du nombre concaténé par 97)}\)
On obtient alors : \(98 – 22 = 76\) et l’IBAN débutera par FR76.
A vous de jouer n°3 |
Pour un compte en Belgique ne comportant que des chiffres, quelle est la clé IBAN qui suit BE ? |
Les cartes bancaires et l’algorithme de Luhn
5 Cet algorithme permet de vérifier les numéros des cartes bancaires MasterCard/AMEX/Visa ou des codes SIREN/SIRET en utilisant une clé de contrôle. Si un caractère est mal écrit, alors l’algorithme de Luhn pourra détecter cette erreur.
Comment calculer la clé qui sera le dernier chiffre à droite ?
-
On imagine être à la fin à droite du numéro complet comprenant cette clé et on se déplace vers la gauche ;
-
on réalise une somme de tous les chiffres sauf la clé, mais en doublant la valeur de tous ceux de rang pair. Si le double d’un chiffre est supérieur ou égal à 10, on le remplace par la somme de ses chiffres.
Le chiffre de contrôle (le dernier à droite) \(= 10 -\) le chiffre des unités de la somme précédente.
Par exemple, soit 853X, avec X chiffre clé que l’on souhaite vérifier.
On prend le 3 que l’on double pour obtenir 6, puis le 5, non doublé, qu’on ajoutera. Enfin on double le 8, on obtient 16 et on ajoute les chiffres du nombre obtenu pour obtenir 7. Cela nous conduit alors au nombre 756.
La somme finale est donc 18.
Comme le chiffre des unités de 18 est 8, on calcule \(10 – 8\) et on obtient 2, la clé de contrôle est \(\text{X} = 2\). Ainsi le code 8532 est valide.
Voici un spécimen de carte Visa :
Il y a \(4\times 4=16\) chiffres au recto de cette carte. Le 16 e chiffre (celui de droite) est la clé de contrôle de la carte bancaire. Il peut se calculer à partir des 15 autres par l’algorithme de Luhn.
Pourquoi cette clé ? Si un utilisateur tape ses chiffres en faisant une faute de frappe ou en intervertissant deux chiffres, alors le programme qui calcule la clé trouvera un mauvais résultat. La machine « comprend » que le numéro est invalide et donc a été mal recopié.
Pour varier les plaisirs, l’enseignant peut présenter un calcul de cette clé par l’intermédiaire d’un tour de magie…
Le magicien propose à un spectateur de bien vouloir jouer avec sa carte bancaire.
Il le rassure : le spectateur gardera sa carte en main et ne communiquera pas plus de la moitié de ses chiffres (huit sur les seize). Les positions des chiffres non communiquées seront connues, mais comme un chiffre peut avoir dix valeurs de 0 à 9, cela laissera \(10^{8}\) soit 100 millions de possibilités différentes pour le numéro de la carte après les indications que le spectateur donnera.
Le magicien explique que les numéros de carte bancaire comportent 16 chiffres mais que le dernier à droite, qui s’appelle « la clé de sécurité » peut être calculé à partir des 15 premiers à gauche. Si le spectateur donnait ces 15 chiffres de gauche, le magicien qui connaît la tactique de calcul de la clé pourrait trouver celle-ci et la communiquer au spectateur pour vérification de sa prouesse. Cependant, toute la salle connaîtrait alors le numéro de la carte bancaire du spectateur, ce qui n’est pas correct. C’est pour cela que le magicien propose l’exploit suivant, où il va retrouver la clé du numéro de la carte mais en ne connaissant à peine plus que la moitié des chiffres de cette carte, et ceci préservera la confidentialité du numéro de carte du spectateur…
-
Voulez-vous me dire seulement les huit chiffres situés aux positions impaires à partir de la gauche, c’est-à-dire le 1 chiffre, le 3, le 5, …, jusqu’au 15 ? Le magicien les note sur un papier.
-
Voulez-vous pour finir faire la somme de tous les chiffres en position paire sauf le dernier à droite, donc voulez-vous faire le total des chiffres en 2, 4, …, jusqu’à la 14 position ? Le magicien note cette somme.
-
Le magicien au bout de quelques secondes de calculs donne la valeur de la clé. Le spectateur confirme.
Expliquons ce tour, et ce que fait le magicien pour le réussir !
-
Le magicien double chaque chiffre de rang impair (à partir de la gauche) communiqué par le spectateur, et quand cela dépasse 9, il remplace le résultat par la somme de ses deux chiffres.
-
Le magicien ajoute tous ces huit nombres obtenus.
-
Le magicien ajoute à ce résultat le total des sept chiffres de rang pair qui a été calculé par le spectateur.
-
Le magicien observe le chiffre des unités du résultat obtenu, puis calcule la différence entre 10 et ce chiffre des unités. C’est la clé.
Prenons par exemple un numéro de carte à 15 chiffres à compléter par le 16 chiffre à droite : \[5131~4194~0184~910.\] Après la première étape, on arrive au nombre de quinze chiffres : 1161 8194 0174 910.
On calcule la somme des quinze chiffres, on obtient 53.
La clé de contrôle est donc égale à : \(10-3=7\).
Le numéro complet de carte est 5131 4194 0184 9107.
A vous de jouer n°4 | ||||
Voici les 16 chiffres du numéro de la carte bancaire spécimen représentée plus haut :
Ce numéro fictif respecte-t-il la loi de fabrication des cartes bancaires ? |
Cet article pourra conduire à des activités magiques sur les mathématiques du citoyen et peut-être rebondir sur d’autres exemples de la vie courante : numéro INSEE, Codes ISBN, codes barre ou Gencode6…
Vous trouverez les solutions qui seront publiées sur la revue numérique .
Enseignant de mathématiques aujourd’hui à la retraite, Dominique Souder se consacre désormais à des animations autour de la magie mathématique, et à des formations d’enseignants et de médiateurs scientifiques dans ce domaine où il a été un pionnier en France.
-
Ce choix de 97 comme diviseur vient du fait que c’est le plus grand nombre premier inférieur à 100 : il permet donc d’obtenir le plus grand nombre de clés distinctes à 2 chiffres comprises entre 01 et 97.↩
-
On peut aussi utiliser la fonction MOD d’un tableur (dans les limites de sa capacité de calcul).↩
-
Petit problème de maths : démontrer que ce nombre de 23 chiffres est toujours un multiple de 97.↩
-
Ceux qui voudraient aborder le calcul de la clé IBAN dans le cas des RIB comportant des lettres sont invités à suivre le lien .↩
-
Hans Peter Luhn (1896–1964) est un informaticien allemand qui a travaillé pour la société IBM. On lui doit entre autres la formule de Luhn, l’algorithme d’indexation de Luhn et la méthode de concordance index KWIC (Key Words In Context). Il a déposé plus de 80 brevets. Ses travaux ont considérablement apporté aux professionnels de la documentation à tel point qu’on le considère comme l’un des pères fondateurs de l’informatique documentaire (source :
Wikipedia
: ).↩ -
Certains sites sur Internet permettent d’obtenir ou vérifier les codes RIB, IBAN, etc., mais ils ne détaillent pas les calculs mathématiques conduisant aux résultats, comme par exemple ou .↩
Une réflexion sur « Codes mathématiques dans notre quotidien »
Les commentaires sont fermés.