La question de conserver l’intégrité d’un message de son émission à sa réception a toujours été un problème et, depuis l’apparition des ordinateurs, celle-ci est devenue centrale. Tous les messages sont susceptibles d’être altérés durant leur transmission : une rayure sur un disque, un bruit électromagnétique dans un câble de fibre optique, une tache de café sur une lettre. Il est donc important de détecter les erreurs, voire de les corriger.
Détecter les erreurs --------------------
Il convient de bien faire la différence entre les codes détecteurs d’erreurs et les codes correcteurs d’erreurs. Les premiers regroupent des méthodes permettant d’identifier la présence d’une erreur dans un code, sans pour autant être capable de la localiser, encore moins de la corriger. C’est par exemple le rôle de la clé qui se trouve à la fin des numéros de sécurité sociale (appelé numéro d’inscription au répertoire ou NIR). Ce numéro se compose de treize chiffres et d’une clé de contrôle à deux chiffres. Cette clé est calculée de façon à ce que la somme du nombre à treize chiffres et de cette clé soit un multiple de 97, ce qui donne la formule suivante pour la clé : clé = 97 – (NIR mod 97) où a mod b désigne le reste de l’entier a dans la division euclidienne par l’entier strictement positif b.
La clé de contrôle est très courte (deux chiffres seulement). Pour autant, la probabilité qu’elle soit valide malgré la présence d’erreurs dans le nombre à treize chiffres est très faible. La méthode semble donc efficace.
On retrouve le même principe en informatique avec le bit de parité : le premier bit (0 ou 1) de chaque octet (liste de huit bits consécutifs) ne porte pas véritablement d’information et ne sert qu’à avoir un nombre pair de 1 dans l’octet, ce qui permet ainsi de savoir si un bit est erroné dans le reste de l’octet.