Sommaire
Télécharger
À propos du bulletin
|
Euro et MathRobert ROLLAND1 Euros neufs et vieilles preuvesLe début de l'année 2002 nous a amené nos beaux billets européens tout neufs. Comment résister à la question que tout le monde se posait : les numéros de ces billets contiennent-ils un code détecteur d'erreurs ? Je suis donc allé à la première heure le 1ier Janvier en chercher une petite liasse dans le distributeur le plus proche, espérant les trouver, puisque tout neufs, dans l'ordre logique de la numérotation. En effet, voici donc une partie des numéros que j'ai relevés :
U14164027898
On voit tout de suite que la somme des chiffres modulo 9 est constante. Mais que faire de la lettre ? Hélas tous mes billets commençaient par U. J'entrepris donc de réveiller mes voisins, mes amis qui n'avaient que trop dormi afin d'en trouver un qui aurait un billet préfixé d'une autre lettre. Hélas, personne n'avait le moindre petit billet à me mettre sous la dent. Le croiriez vous, ils me répondaient tous que disposer d'un billet commençant par un V n'était pas leur souci principal et que d'ailleurs, n'ayant pas complètement cuvé leur alcool du réveillon ils ne s'étaient pas encore procuré les précieuses coupures. En plus ils disaient qu'il était l'heure du petit déjeuner, et que moi-même je ferais aussi bien d'aller me faire cuire un oeuf. A partir de là une généralisation audacieuse mais raisonnée donne à penser que la règle est la suivante :
On attribue à la lettre le nombre qui donne sa place dans l'alphabet (U est remplacé par 21). On fait alors la somme modulo 9 Je dois dire que j'étais un peu déçu qu'on nous ait ressorti cette vieille preuve par 9. J'ai donc recherché s'il n'y avait pas un autre mécanisme plus complexe. Je n'en sais rien mais les deux numéros valides :
U14164027898 Que cela soit clair : un code détecteur n'a pas un rôle de sécurité destiné à prevenir les contrefaçons. On voit mal un faussaire être assez débile pour fabriquer des billets dont les numéros seraient incohérents. De tels codes sont utilisés par exemple pour détecter des erreurs de saisie. On peut tout de même se demander si on pouvait faire mieux sans grossir les nombres utilisés. 2 Pouvait-on faire mieux ?Remarquons qu'on peut considérer que chaque numéro est formé d'une lettre, de 10 chiffres et d'un onzième chiffre pouvant être considéré comme la clé. Cette clé étant calculée de telle sorte que la somme totale (y compris la valeur de la lettre) soit 8 modulo 9. Il y a bien entendu une ambiguité lorsque la clé vaut 9 car alors la clé pourrait être aussi bien 0. Mais je n'ai pas trouvé de billet se terminant par 0. Ainsi qu'on l'a vu, une telle clé ne permet pas de détecter à coup sûr une unique erreur. On peut citer divers codes pourvus eux aussi d'un seul chiffre de clé et qui eux permettent de détecter à coup sûr une unique erreur. Exemple 1 :Puique nous sommes dans des histoires bancaires, commençons par la règle de Luhn utilisée sur les numéros de cartes bancaires. Un numéro de carte bancaire est de la forme
avec On impose à un numéro de carte bancaire de vérifier (règle de Luhn) :
Le chiffre Exemple 2 :
Le deuxième exemple est le code UPC (Universal Product Code) utilisé pour coder par exemple les produits des supermarchés.
Si un chiffre du nombre
Si le chiffre
Donc
En dehors des cas où Hélas il y a là encore des cas particuliers pour lesquels une permutation de deux chiffres consécutifs n'est pas détectée. Exemple 3 :
Donnons un autre exemple instructif, le code ISBN utilisé pour les livres. Exemples : 2 84180 013 X, 2 84225 000 1, 0 471 62187 0, 0 12 163251 2.
Le premier chiffre représente le pays, un bloc de chiffres est attribué à un éditeur, un autre bloc est le numéro donné par l'éditeur, le dernier symbole est la clé, calculée de telle sorte que si
Remarquons que
Soit A un numéro valide. Appelons
Si deux chiffres distincts sont permutés, par exemples ceux d'indices i et j, le nombre
Cette fois-ci, contrairement aux deux premiers exemples, on a pu détecter outre une erreur sur un chiffre, toutes les permutations de deux chiffres consécutifs. Mais nous avons travaillé modulo 11 ce qui introduit une clé "parasite" X. Bien entendu on pourrait décider de supprimer tous les numéros ayant cette clé parasite. Ce n'est pas commode et fait perdre des représentations valides. 3 Toujours plus fort : la perle rareAlors la question maintenant est de savoir si on peut faire encore mieux que dans les trois exemples précédents. Autrement dit, peut-on avoir un code avec une clé formé d'un chiffre décimal et qui permette de détecter à coup sûr une unique erreur, ou une permutation de deux chiffres consécutifs.
Notons
Soit
On introduit aussi la permutation
La matrice A dont les coefficients
Remarque : Il est possible de montrer que si on avait pris une opération commutative
Maintenant, expliquons comment calculer la clé. On calcule
On obtient alors le code convoité. 4 ConclusionVoilà ce qu'à peu près ils auraient pu construire ... Converted by Mathematica |