Le dernier chiffre de chaque numéro de carte bancaire est déterminé par un calcul mathématique appliqué aux chiffres précédents, un mécanisme connu sous le nom d’algorithme de Luhn. Cet algorithme a été inventé par Hans Peter Luhn, un ingénieur d’origine allemande ayant travaillé pour IBM et devenu directeur de la division de recherche en information. L’algorithme de Luhn, breveté en 1954 sous le titre Computer for Verifying Numbers (ordinateur pour la vérification des numéros) sous le numéro de brevet américain 2 950 048, était à l’origine décrit comme un petit appareil mécanique portable, et non comme un logiciel. Il a été accordé le 23 août 1960.
L’algorithme est utilisé pour valider une large gamme de numéros d’identification, notamment les numéros de cartes bancaires, les numéros IMEI des téléphones mobiles, les numéros SIRET français et les numéros de sécurité sociale canadiens. Le processus consiste à partir du dernier chiffre du numéro et à se déplacer vers la gauche, en doublant un chiffre sur deux. Si le résultat dépasse 9, on soustrait 9, puis on additionne tous les chiffres. Si le total est un multiple de 10, le numéro passe le test de Luhn. Cette méthode est simple, ne reposant que sur des additions, ce qui la rendait adaptée à une vérification manuelle ou mécanique à l’époque de sa création.
L’algorithme de Luhn est désormais codifié dans la norme internationale ISO/IEC 7812, qui encadre la numérotation des cartes émises par les institutions financières. Il permet de détecter efficacement les erreurs humaines courantes, comme les erreurs sur un seul chiffre ou la plupart des transpositions entre deux chiffres adjacents. En revanche, il ne peut pas détecter les transpositions de deux séquences de chiffres, comme 09 en 90 ou l’inverse. Cette limite signifie que, dans de rares cas, une erreur impliquant deux blocs entiers peut passer le contrôle mathématique.
L’algorithme n’a pas été conçu pour prévenir la fraude, car il ne s’agit pas d’une fonction de hachage cryptographiquement sécurisée. Un fraudeur peut en effet construire un numéro de carte factice respectant la règle du multiple de 10, la formule étant publique et documentée dans la norme ISO/IEC 7812. Les véritables barrières contre la fraude sont donc assurées par d’autres mécanismes, tels que les cryptogrammes visuels, les codes confidentiels et l’authentification à deux facteurs lors des paiements en ligne.
L’algorithme de Luhn est aujourd’hui un système universel, utilisé pour valider divers identifiants. En France, il se cache derrière les numéros SIRET des entreprises, permettant aux logiciels de comptabilité de détecter instantanément les erreurs de saisie sans consulter de registre officiel. Seul un numéro sur dix est valide selon cet algorithme, ce qui permet de déterminer le dernier chiffre d’une carte bancaire à partir des quinze premiers. Ce ratio permet aux sites de paiement de filtrer rapidement les erreurs de saisie courantes sans contacter la banque émettrice.
L’algorithme a connu une résurgence inattendue de notoriété en 2026 lorsqu’une ancienne séquence télévisée proposant une suggestion de code de vérification a refait surface en ligne, amusant les internautes qui y ont vu une préfiguration humoristique de l’authentification à deux facteurs, alors qu’elle ressemblait davantage au principe du calcul de Luhn.
L'algorithme de Luhn : un gardien mathématique caché des transactions financières
Contenu réécrit par une IA à partir de sources de presseComment ça marche
luhn-algorithmbank-cardsiso-standardfraud-preventionerror-detectionhistory-of-tech



