Le monde qui nous entoure est ainsi fait qu’il contient aujourd’hui des codes et leurs clefs de contrôle. Nous souhaitons avec cet article montrer comment ces codes sont construits et à quoi servent les clefs qui leur sont associées. Une clé de contrôle pour ne pas se tromper de patient Dans le domaine de la santé, on imagine facilement l’importance de ne pas se tromper de patient lorsqu’il s’agit de procéder au remboursement de la consultation d’un médecin ou mieux encore lorsqu’à l’entrée d’une salle d’opération on va admettre un patient « calmé » pour lui enlever les dents de sagesse. Le numérique a tout prévu et nous allons voir comment le numéro de Sécurité sociale attribué à un patient intègre une clef de contrôle qui pourra détecter certaines erreurs classiques de saisie (erreur sur un des chiffres, inversion de deux valeurs). Le numéro de Sécurité sociale est marqué sur n’importe quelle carte Vitale ; pour faire simple, j’ai pris la mienne en marquant en vert les deux derniers chiffres : 1 64 12 74 173 102 95 Numéro central clef de contrôle Comment est déterminée cette clef de contrôle ? Vous trouverez facilement à quoi correspondent les 13 premiers chiffres, c’est-à-dire les nombres 1, 64, 12, 74, 173, 102 ; en revanche, nous allons regarder comment est déterminé le nombre chaîne. 95 qui figure en bout de Posons la division de 1641274173102 par 97 (voir ci-contre), on trouve un reste égal à 2 . À partir de 2, il nous suffit d’ajouter 95 pour obtenir un multiple de 97. Ce nombre 95 est d’ailleurs le seul entier naturel strictement inférieur à 97 qui fonctionne, c’est la clef de contrôle. À quoi sert cette clef de contrôle ? Ce nombre 95 sert à détecter certaines erreurs du type erreur de frappe dans le relevé des 13 chiffres. Si l’on commet par exemple une erreur du type inversion de Jean-Alain Roddier, IA-IPR de Mathématiques. Académie de Clermont-Ferrand 1 deux chiffres consécutifs, en entrant 164172417310295 à la place de 164127417310295, la clef 95 ne fonctionnera pas car la clef associée au nombre 1641724173102 de 13 chiffres est 70. Les numéros portés sur mon manuel scolaire Nous nous sommes tous retrouvés un jour à une caisse de supermarché dans la situation où le code barre n’est pas lu par le lecteur infra-rouge et où l’agent de caisse tape et retape le code à la main parce que la machine n’en veut pas. Et bien, pourquoi la machine n’en veut pas ? C’est grâce ou à cause de la clef de contrôle portée par le code barre. Pour tout expliquer sur le code barre, nous allons prendre un exemple qui se trouve aujourd’hui dans votre cartable. Comme tout livre vendu dans le commerce, votre manuel scolaire possède en effet : - son code barre qui figure habituellement au dos de l’ouvrage ; - il possède aussi un autre code spécifique au monde de l’édition que l’on appelle son numéro ISBN (International Standard Book Number). Le code barre 9 782047 332931 de notre manuel scolaire est recopié dans le tableau ci-dessous, tableau dans lequel nous avons mis d’un côté le numéro central (c’est le numéro complet tronqué de son dernier chiffre) et de l’autre la clef de contrôle (c’est le dernier chiffre). 978204733293 1 Numéro central clef de contrôle Comment est déterminée cette clef de contrôle ? C’est ce que nous allons vous faire découvrir à présent. On effectue tout d’abord un savant calcul : (9+8+0+7+3+9) + 3x(7+2+4+3+2+3). On trouve ainsi : 36 + 3x21 = 36 + 63 = 99. À partir de la valeur 99 pour obtenir un multiple de 10, il suffit de lui ajouter 1. Ce nombre 1 est d’ailleurs le seul entier naturel strictement inférieur à 10 qui fonctionne, c’est la clef de contrôle. Jean-Alain Roddier, IA-IPR de Mathématiques. Académie de Clermont-Ferrand 2 À quoi peut servir cette clef de contrôle ? Imaginons une erreur de frappe du type erreur liée au clavier sur lequel la touche 4 est voisine de la touche 5. On entre ainsi par erreur le code 9782057332931, le savant calcul va donner : 36 + 3x22 = 36 + 66 = 102. La clef de contrôle de ce nouveau code est 8 et non 1 ; l’ordinateur va repérer cette incohérence et refusera ainsi de travailler avec ce code. Considérons à présent le numéro ISBN 978 que nous relevons dans un tableau. 204733293 1 Numéro central clef de contrôle Comment est déterminée cette clef de contrôle ? Effectuons le savant calcul suivant : 2x1 + 0x2 + 4x3 + 7x4 + 3x5 + 3x6 + 2x7 + 9x8 + 3x9 = 2 +0 +12+ 28 +15 +18 +14 +72 + 27 = 188. Divisons à présent 188 par 11, nous trouvons comme reste 1 qui est la clef de contrôle. Peut-on retrouver avec la clef de contrôle une valeur manquante ? Imaginons la situation dans laquelle le numéro est un peu effacé et où l’on n’arrive pas à lire un chiffre de ce qui apparaît sur le papier comme étant un code ISBN. Il est marqué par exemple : 2047 32931. Notons C la valeur manquante, on part donc de 2047C32931 Si c’est bien un code, on sait qu’en utilisant le savant calcul 2x1 + 0x2 + 4x3 + 7x4 + cx5 + 3x6 + 2x7 + 9x8 + 3x9 doit donner comme reste 1 dans la division par 11 . Effectuons à présent tous les calculs : 42 + cx5 + 131 doit donner comme reste 1 dans la division par 11 cx5 + 173 doit donner comme reste 1 dans la division par 11 Autrement dit : cx5 + 172 doit être un multiple de 11. cx5 + 7 + 165 doit être un multiple de 11. cx5 + 7 doit être un multiple de 11 car 165 est un multiple de 11 (165 = 11*15) Jean-Alain Roddier, IA-IPR de Mathématiques. Académie de Clermont-Ferrand 3 Le seul chiffre c qui fonctionne est 3 ; nous avons donc – grâce à la clef de contrôle – retrouvé la valeur manquante. Vérification : Si l’on considère le code 2047332931, les calculs déjà effectués montrent que c’est bien un numéro ISBN avec son numéro central 204733293 et sa clef de contrôle (la valeur 1). Conclusion : Il n’y a donc qu’une seule valeur possible pour valeur donne bien un numéro ISBN. C: c’est 3 et cette La notion de code correcteur Dans l’exemple que nous venons de prendre, la clef de contrôle nous a aussi servi de clef de correction, elle nous a en effet servi à retrouver la valeur manquante. Nous n’avons pas pris cet exemple de façon complétement anodine car la notion de correction d’une donnée numérique à l’aide de ce que l’on appelle un code correcteur permet à des systèmes de continuer à fonctionner en corrigeant certaines erreurs fournies en entrée. Les numéros bancaires Si il y a un numéro que l’on n’aime pas donner à tout le monde, c’est bien son numéro de carte bancaire. Nous n’allons donc pas prendre le mien et prendre un exemple construit de toute pièce, il est constitué de 16 chiffres et pour faire simple nous avons pris 1, 2, 3, 4, 5 jusqu’à 9 puis en repartant de 0 et en allant jusqu’à 5 et en rajoutant à la fin un 2, autrement dit nous allons étudier le code suivant : 1234 5678 9012 3452 Ce numéro est placé dans le tableau ci-dessous avec d’un côté le numéro central (c’est le numéro de carte tronqué de son dernier chiffre) et de l’autre la clef de contrôle (qui est le dernier chiffre) : 1234 5678 9012 345 2 numéro central clef de contrôle Comment est déterminée cette clef de contrôle ? Pour trouver la clef de contrôle, il suffit de prendre le double de chaque chiffre de rangs impairs (en enlevant 9 si le résultat est supérieur à 9), puis d’ajouter à toutes ces valeurs la somme des chiffres de rangs pairs : 1x2 + 3x2 + 5x2 – 9 + 7x2 – 9 + 9x2 – 9 + 1x2 + 3x2 + 5x2 – 9 + 2 + 4 + 6 + 8 + 0 + 2 + 4 = 58. À partir de 58, il nous suffit d’ajouter 2 pour obtenir un multiple de 10. Ce nombre 2 est le seul entier à un chiffre qui fonctionne, c’est la clef de contrôle. Jean-Alain Roddier, IA-IPR de Mathématiques. Académie de Clermont-Ferrand 4 Le numéro de compte bancaire est lui-aussi un numéro qui contient une clef de contrôle. Il est ainsi constitué au total de 23 chiffres soit 21 chiffres suivis d’une clef de contrôle de 2 chiffres. Imaginons ainsi le numéro de compte suivant : n° Banque n° guichet n° compte clé 12345 67890 12345678901 04 Comment est déterminée cette clef de contrôle ? Avec un logiciel du type Xcas, nous pouvons déterminer le reste de la division de 123456789012345678901x100 par 97, on trouve 93. À partir de 93, il nous suffit d’ajouter 4 pour obtenir un multiple de 97. Ce nombre 4 est d’ailleurs le seul entier naturel strictement inférieur à 97 qui fonctionne, la clef de contrôle est donc 04. Se maintenir à la pointe de l’innovation Sur cette notion de clef de contrôle, on sent bien qu’une grande partie du numérique nous échappe dans l’usage quotidien que l’on en fait. Le monde qui nous entoure utilise en effet ces clefs de façon trop discrète dans de très nombreux domaines tout aussi importants que ceux que nous venons d’évoquer et elles sont présentes à chaque fois que l’on souhaite sécuriser l’implémentation des données. Ces clefs de contrôle sont l’archétype de ce que le numérique est capable de fabriquer et de faire fonctionner autour de nous de façon complétement opaque ; sans que nous ne en rendions compte, le numérique tisse ainsi une barrière entre l’utilisateur et le concepteur. C’est cette barrière qu’il est important de rendre transparente afin que notre société puisse connaître, dominer ces concepts et se maintenir ainsi à la pointe de l’innovation. Jean-Alain Roddier, IA-IPR de Mathématiques. Académie de Clermont-Ferrand 5