|
Détection et correction d'erreurs Principes Comment
transmettre un message avec un minimum d'assurance que le message est bien
acheminé? Comment
reconnaitre si un numéro est bien une clé telle qu'attendue? |
|
||
La preuve par 9
permet de détecteur une erreur grossière dans une opération. C'est le
principe de tout système de détection d'erreur. Le nombre à coder ou à transmettre est accompagné d'un plus petit
nombre, dit clé de contrôle, qui résulte
d'une opération connue sur le nombre initial. Il y a ainsi redondance d'information qui permet de détecter, voire
corriger une erreur. L'efficacité dépendra de la taille de la clé de
contrôle. |
Un
nombre à vérifier: 123456
On
inscrit à sa suite le reste de sa division par un nombre donné connu (9 par
exemple): 123456 mod 9 = 3
Je
transmets le nombre complet avec sa clé de contrôle: 1234563
À la
réception, je vérifie l'opération: le nombre est bien accompagné du reste de
sa division par 9. |
|
|
||
Le codage d'erreur le plus simple et qui a été beaucoup utilisé dans
les débuts de l'informatique est le codage de parité. Au temps héroïques de l'informatique (années
1960), le programme était inscrit sur une énorme bobine de ruban perforé. Sa
lecture prenait plusieurs minutes. L'angoisse était de voir crépiter: checksum error sur la
machine à écrire (télétype). Ce qui signifiait qu'une erreur de parité avait
été détectée. La lecture devait être reprise depuis le début. |
Un
nombre binaire 0110 011
Sa
parité (celle du nombre de zéros): 1
Mot binaire
complet: 0110 0111 Ce mode de contrôle par redondance est dit: somme
de contrôle (checksum) ou empreinte. |
|
|
||
Un numéro de Sécu (fictif) appelé également NIR (Numéro
d'Inscription au Répertoire) ou encore numéro
INSEE |
1 Sexe
47 Année de naissance 05 Mois de naissance 06 Département de naissance (Outre-mer: 3 chiffres) 123 Commune de naissance (Outre-mer:
2 chiffres) 271 Numéro d'ordre à
l'inscription de naissance |
|
Division euclidienne
par 97 |
1 470 506 123 271 = 15159856940 x 97 + 91 |
|
Clé de contrôle d'erreur: |
97 – 91 = 06 |
|
Numéro complet |
1 47 05 06 123 271 06 |
|
Formulation générale |
Clé = 97 – ( NIR mod 97) |
|
Cas de la Corse (remplacement des lettres) |
2A => 19 et 2B =>
18 |
|
Suite |
|
Voir |
Codage
décimal (classification universelle) |