Sélectionner une page


Un article de Wikipédia, l’encyclopédie gratuite.

Le numéro d’immatriculation de la voiture – le nombre « 8 » après le tiret est calculé à partir des onze précédents en utilisant la formule de Luhn

Au mathématiques et plus précisément dans Arithmétique modulaire, les La formule de Luhn est utilisé pour ses applications dans Cryptologie. L ‘Algorithme de Luhn, ou alors Code de Luhn, ou alors La formule de Luhn est également connu sous le nom dealgorithme « Modulo 10 « ou » mod 10. « C’est une formule simple de Somme de contrôle (Somme de contrôle) pour valider une variété de numéros de compte, par ex. Numéros de carte bancaire, Numéros de sécurité sociale canadien, les Numéros IMEI Les téléphones portables ainsi que pour le calcul de la validité d’un numéro Haut.

Il a été développé par un ingénieur allemand à dans les années 1960 IBM, Hans Peter Luhncomme méthode de validation de l’identification du numéro. Sa renommée est principalement due à son rachat par des sociétés de cartes de crédit peu après sa création.

L’algorithme est dans le domaine public et est largement utilisé aujourd’hui. Il n’a pas été conçu pour en être un Fonction de hachage pour sauvegarder Cryptologie ;; Il protège contre les erreurs accidentelles et non contre les attaques malveillantes. La plupart des cartes de crédit et de nombreux numéros d’identification gouvernementaux utilisent l’algorithme comme une méthode simple pour distinguer les nombres valides des collections de nombres aléatoires.

La formule génère un chiffre de contrôle qui est généralement ajouté à un numéro d’identification de pièce pour générer un ID complet. Cet identifiant (numéro complet: numéro de pièce et son chiffre de contrôle) est envoyé aualgorithme Les éléments suivants pour vérifier la validité:

  1. Nous commençons par le dernier chiffre (à droite) et nous nous déplaçons vers la gauche, en doublant la valeur de tous les chiffres même classés: le dernier (c’est-à-dire la clé) est traité dans 1est, il n’est pas doublé, l’avant-dernier (2e) est doublé. Si le double d’un chiffre dépasse 9, il sera remplacé par la somme de ses chiffres. Ainsi, dans les positions paires, les chiffres (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) deviennent (0; 2; 4; 6; 8; 1; 3; 5; 7; 9))
    Par exemple, 1 111 devient 2 121 tandis que 8 763 devient 7 733 (car 2 × 6 = 12 et 1 + 2 = 3; 2 × 8 = 16 et 1 + 6 = 7).
  2. On ajoute tous les chiffres du nombre ainsi obtenu. Par exemple, 1111 devient 2121, dont la somme est 6 (2 + 1 + 2 + 1); tandis que 8763 devient 7733 et 7 + 7 + 3 + 3 est alors égal à 20.
  3. Si la somme est un multiple de 10 (le chiffre des unités est zéro), le nombre selon la formule de Luhn est valide. Sinon, il est invalide. Donc 1111 n’est pas valide (comme indiqué ci-dessus, cela donne 6) tandis que 8.763 est valide (comme indiqué ci-dessus, cela donne 20).

Comment déterminer le chiffre de contrôle ajouté à la fin du numéro:

  1. Calculez la somme comme décrit ci-dessus pour un dernier chiffre de contrôle égal à 0,
  2. Si la somme n’est pas un multiple de 10, changez le dernier chiffre pour obtenir un multiple de 10; H. dix - (le total % dix) ou alors le total % dix désigne le reste de la division entière de la somme calculée par 10 (ce qui signifie ne conserver que les unités).

Exemple:

  • Soit le nombre à calculer 54321x (x désigne le chiffre de contrôle à calculer),
  • Pour x = 0, la vérification de 543210 donne la somme 0 + 2 + 2 + 6 + 4 + 1 = 15, et non un multiple de 10 (le chiffre des unités est 5).
  • Corrigez le dernier chiffre: x = 10 – 5 = 5
  • Pour x = 5, la vérification de 543215 donne la somme 5 + 2 + 2 + 6 + 4 + 1 = 20 multiples de 10.

la description[modifier | modifier le code]

L’algorithme fonctionne en trois étapes.

  1. L’algorithme double tous les autres chiffres, en commençant par l’avant-dernier et de droite à gauche. Si le double d’un chiffre est supérieur à neuf (par exemple, 2 × 8 = 16), il doit être réduit à un chiffre entre 1 et 9 en prenant le reste en division euclidienne par 9. Il y a 2 façons de faire cela (pour un résultat identique):
    1. Soit nous additionnons les nombres qui composent le double. Dans l’exemple du nombre 8, 2 × 8 = 16, on additionne les nombres 1 + 6 = 7.
    2. Soit on soustrait 9 du double. En utilisant le même exemple, 16 – 9 = 7.
  2. La somme de tous les chiffres reçus est effectuée.
  3. Le résultat est divisé par 10. Si le reste de la division est égal à zéro, le nombre d’origine est valide.

Notez l’identification du numéro 972-487-086. La première étape consiste à doubler tous les autres chiffres de l’avant-dernier au début et à ajouter tous les chiffres, qu’ils soient doublés ou non (si un chiffre est supérieur à 9, nous soustrayons 9, d ‘, où le 3e Ligne). Le tableau suivant illustre cette étape (les lignes colorées indiquent des nombres à deux chiffres):

numéro le total
9 7e 2 4e 8ème 7e 0 8ème 6e
9 14e 2 8ème 8ème 14e 0 16 6e
9 5 2 8ème 8ème 5 0 7e 6e 50

La somme, égale à 50, est divisée par 10: le reste est égal à 0, donc le nombre est valide.

Si deux chiffres sont accidentellement échangés, le code Luhn sera incorrect (sauf si ces deux chiffres sont 0 et 9):

numéro le total
9 2 7e 4e 8ème 7e 0 8ème 6e
9 4e 7e 8ème 8ème 14e 0 16 6e
9 4e 7e 8ème 8ème 5 0 7e 6e 54

La somme n’est pas divisible par 10, donc le nombre n’est pas valide.

En France, le nombre d’établissements SIRET La Poste ne respecte pas l’algorithme de Luhn. La contribution a changé de statut en 2010[1]devenir un … société anonyme. Tous les établissements de La Poste ont le même numéro SIREN « 356.000.000 ». Comme il existe de nombreuses installations à La Poste et que l’éventail des numéros SIRET possibles n’est pas assez large, la règle de vérification des numéros SIRET a été modifiée pour cette société. L’examen classique doit être utilisé lors de l’examen. Si la règle classique n’est pas cochée, vérifier que la simple somme des nombres SIRET est un multiple de cinq (réponse officielle de l’INSEE)[2]) (Par exemple: pour le siège de La Poste, le numéro SIRET est 35600000000048. Il vérifie la formule classique mais pas l’autre règle. Pour l’entreprise rennaise avec le numéro SIRET 356 000 539 14285, la règle classique est KO, la vérification avec l’autre règle est valide).

En Belgique (avant l’application de la norme SEPA Les numéros de compte bancaire sont vérifiés par la simple opération MODULO 97. Cela signifie que les deux derniers chiffres représentent le reste de la division par 97 des autres chiffres. Ceci s’applique également à la communication dite «structurée» (12 caractères) pour les virements interbancaires.



Source link

Recent Posts