Qu'est-ce que l'algorithme de Luhn ?
L'algorithme de Luhn, aussi appelé « formule modulo 10 », est une méthode de contrôle simple imaginée en 1954 par Hans Peter Luhn, chercheur chez IBM. On l'utilise pour valider des numéros d'identification tels que les numéros de cartes de crédit et de débit, les numéros de série IMEI des téléphones ou encore de nombreux identifiants nationaux. Il détecte les erreurs portant sur un seul chiffre ainsi que la plupart des inversions de chiffres, mais il ne s'agit pas d'une mesure de sécurité cryptographique : c'est uniquement un contrôle d'intégrité des données.
Comment utiliser ce calculateur
Saisissez le numéro à vérifier dans le champ prévu (les espaces et les tirets sont ignorés automatiquement). Le calculateur traite les chiffres, applique le contrôle de Luhn et vous indique si le numéro est VALIDE ou INVALIDE, accompagné de la somme cumulée, de cette somme modulo 10 et du chiffre de contrôle final.
La formule expliquée
Lisez les chiffres de droite à gauche. Laissez le chiffre le plus à droite (le chiffre de contrôle) tel quel, puis doublez un chiffre sur deux. Si le doublement donne un nombre supérieur à 9, soustrayez-en 9 (cela revient à additionner les deux chiffres : par exemple \(8\times2 = 16 \to 1+6 = 7\)). Additionnez ensuite toutes les valeurs obtenues. Si le total est divisible par 10, le numéro passe le contrôle de Luhn.
$$\text{Valid} \iff \left(\sum_{i=0}^{n-1} f(d_i)\right) \bmod 10 = 0 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= i\text{-th digit of } \text{Number} \text{ (from right)} \\ f(d_i) &= \begin{cases} d_i & i \text{ even} \\ 2d_i - 9\,[2d_i>9] & i \text{ odd} \end{cases} \end{aligned} \right.$$
Exemple concret
Prenons le numéro 79927398713. En doublant un chiffre sur deux à partir de la droite et en réduisant les valeurs supérieures à 9, on obtient des chiffres ajustés dont la somme vaut 70. Comme \(70 \bmod 10 = 0\), le numéro est valide.
FAQ
Un résultat valide signifie-t-il que la carte est réelle ? Non. Cela confirme seulement que le numéro est correctement formé ; cela ne vérifie ni l'existence du compte ni la présence de fonds.
Quels caractères sont autorisés ? Seuls les chiffres sont pris en compte ; les espaces, tirets et autres symboles sont supprimés avant le calcul.
Pourquoi soustraire 9 lors du doublement ? Soustraire 9 à un chiffre doublé supérieur à 9 donne le même résultat que d'additionner ses deux chiffres, ce qui correspond exactement à la règle originale de Luhn.