Encore des codes mathématiques dans notre quotidien

Codes-barres et codes QR ont envahi notre quotidien. Mais où sont les mathématiques dans tout ça ?
Papy Michel nous propose d’observer ces codes qui nous paraissent si familiers.

Michel Soufflet

© APMEP Septembre 2022
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅♦⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

Le « code-barres »

Exemple de code-barres
Figure 1. Exemple de code-barres utilisé ici faisant partie des codes EAN (European Article Numbering).

Le fameux code-barres qui permet à chaque article d’être reconnu lorsqu’il est flashé à la caisse est en réalité un nombre de $13$ chiffres $abcdefghijklm$. Pour coder chacun des 13 chiffres, on se sert d’écritures binaires traduites en barres plus ou moins épaisses, blanches pour le $0$, noires pour le $1$. Une bande noire fine correspond à un seul $1$, plus épaisse elle peut correspondre à deux, trois ou quatre chiffres $1$. De la même façon, selon leur épaisseur, les bandes blanches correspondent à un, deux, trois ou quatre $0$.

Les codes-barres sont destinés à être lus à des distances différentes, les lecteurs ne mesurent donc pas la largeur réelle des barres, mais leurs largeurs relatives, en détectant uniquement les zones de transition selon leur propre référence de mesure. Le code est ainsi plus facile à enregistrer avec un lecteur optique. Ce nombre est réécrit en dessous dans notre système décimal afin que l’on puisse le retrouver si nécessaire.

La sécurité se trouve dans le dernier chiffre \(m\), qui sert de contrôle de la façon suivante :

Il faut calculer : \[N = a+c+e+g+i+k+3(b+d+f+h+j+l),\] le nombre \(m\) est celui qu’il faut ajouter pour que \(N + m\) soit divisible par \(10\).

Un jeu

Pour le code ci-dessous, le dernier chiffre a été effacé, amusez-vous à retrouver cette clé de sécurité manquante…

Exemple de code-barres sans son dernier chiffre
Figure 2. À vous de retrouver le dernier chiffre !

La réponse est là1.

Lorsqu’on doit recopier les 13 chiffres, on peut aisément vérifier que, si on se trompe sur un seul chiffre ou si on en intervertit deux, le code sera refusé à coup sûr.

Reprenons le code-barres de la figure 1 et imaginons que la lettre \(f\) est effacée. Cherchons à la retrouver !

En reprenant ce premier code, on trouve :

\[\begin{aligned} N{+}m&=3{+}6{+}2{+}3{+}3{+}2{+}3(6{+}0{+}f{+}0{+}0{+}0){+}2\\ &=39+3f\end{aligned}\]

Il faut donc résoudre l’équation

\[3f+39\equiv 0 \bmod{10}\]

Cette équation a une solution unique car \(3\) est premier avec \(10\). On obtient :

\[\begin{aligned}
3f&\equiv-39\bmod{10}\\
3f&\equiv 1\bmod{10}\\
f &\equiv 7\bmod{10}\end{aligned}\]

Avec des élèves n’ayant pas étudié les congruences (ou l’art d’accommoder les restes !), on pourra se contenter de remarquer que la seule valeur de \(f\) comprise, au sens large, entre \(0\) et \(9\) qui rende \(3f+39\) divisible par \(10\) est \(7\). C’est une occasion amusante de faire un peu de calcul mental. Cela peut aussi donner l’occasion d’un petit jeu de devinette : on choisit un code-barres au hasard, on cache un chiffre toujours au hasard et on demande de le retrouver. Ce jeu est renouvelable et totalement gratuit : dans tous les supermarchés, pour chaque article acheté on vous offre un nouveau code !

L’unicité de la solution met en évidence l’importance de l’arithmétique dans ce domaine : c’est le fait d’avoir choisi \(3\), nombre premier (et premier avec \(10\)), qui permet de retrouver avec certitude un chiffre effacé. Dans le numéro 542 d’Au fil des maths, Dominique Souder nous a montré que les numéros bancaires étaient garantis avec une clé à deux chiffres en utilisant la division euclidienne par \(97\) qui est le plus grand nombre premier inférieur à \(100\). Dans le cas du code-barres dont le besoin de sécurité est différent, on se contente d’une clé à un seul chiffre et cela suffit pour que, lors de la frappe, la modification d’un seul chiffre ou la permutation de deux chiffres consécutifs soit détectée.

Le code QR

QR code d'Au Fil des Maths
Figure 3. Ce code QR est celui d’Au Fil des Maths et peut être capté sans modération !

Il fonctionne globalement sur le même principe : c’est une sorte de code-barre à deux dimensions. Il en existe plusieurs sortes.

Nous nous intéresserons ici au code QR du passe sanitaire européen davantage dans l’air du temps : dans ce cas il s’agit d’un carré de \(85\) lignes et \(85\) colonnes constituées de petits carrés blancs pour le \(0\) et noirs pour le \(1\). Chaque ligne ou colonne est donc un méga-code barre même en tenant compte du fait qu’il faut savoir pour chaque carré s’il est attribué prioritairement à sa ligne ou à sa colonne.

QR code du passe sanitaire européen
Figure 4. Pass sanitaire européen.

La grosse différence est dans son utilisation. Ici, le secret est de rigueur : un codage destiné à éviter des erreurs de frappe peut être connu de tous, lorsqu’il s’agit de données personnelles et confidentielles, il faut faire appel à des méthodes arithmétiques plus pointues comme le RSA à clé publique désormais au programme de l’option « maths expertes » en classe Terminale. Nous pourrons donc nous attacher à comprendre comment fonctionne le code mais nous ne pourrons pas l’utiliser pour nous amuser.

Les informaticiens ont prévu de réserver trois carrés de \(7\) sur \(7\) dans trois coins du code QR. Cela permet d’identifier le plan contenant ce code et de décider de son sens de lecture en choisissant de mettre le quatrième coin en haut ou en bas. Ces trois carrés sont bien visibles et caractéristiques d’un code QR. Il y en a d’autres plus petits qui servent à reformer l’image si le support a été plié ou déformé.

Si une partie du support est illisible, le code pourra tout de même être décrypté puisque sur toute la place restante, les mêmes données sont enregistrées plusieurs fois. Il peut supporter jusqu’à 30% de perte ! Faites une tache sur votre passe sanitaire (pensez à le photocopier avant !), il sera encore lisible.

Les mathématiques vont aussi être utiles dans la façon de capter ce carré avec précision. Un peu de géométrie va nous servir : en particulier les éléments de perspective conique dont Daniel Lehmann, que je salue en passant, nous a donné une excellente présentation dans le numéro 539 d’Au fil des maths : le carré du code QR va être vu d’une façon déformée et il va falloir le remettre d’aplomb pour le lire correctement. Mais en informatique, cette géométrie sera analytique et, sauf à rechercher des exercices d’intersections de droites et de plans, le « redressement » de ce carré ne présente guère d’intérêt pédagogique.

Dans le code QR, les mathématiques sont bien présentes mais peu visibles. C’est de plus en plus courant dans notre entourage et d’actualité puisque le thème des journées de Jonzac en octobre 2022 est précisément « Les Maths Cachées ». C’était plus rare dans les années 1980 : lors de nos journées nationales, un ingénieur d’Airbus était venu nous expliquer que l’industrie manquait de mathématiciens. Pour nous convaincre, il s’était fendu d’une boutade : « dans un airbus A320, si on enlève les mathématiques, il reste les passagers et les hôtesses de l’air ! ». Dans un avion, les mathématiques sont bien cachées et c’est mieux ainsi : nous n’avons jamais vu un passager se plaindre de n’avoir pas accès aux codes permettant de modifier les commandes ! Heureusement, il reste encore, les hôtesses de l’air… ainsi que les stewards bien évidemment !

dessin d'illustration - Sixtine Maréchal

  1. La réponse est 3.

⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅♦⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

Michel Soufflet, professeur retraité, a été président de l’APMEP et animateur IREM de Basse Normandie.

Adresse mail de l'auteur

Pour citer cet article : Soufflet M., « Encore des codes mathématiques dans notre quotidien », in APMEP Au fil des maths. N° 545. 21 janvier 2023, https://afdm.apmep.fr/rubriques/recreations/encore-des-codes-mathematiques-dans-notre-quotidien/.

Une réflexion sur « Encore des codes mathématiques dans notre quotidien »

Les commentaires sont fermés.