Les QR codes sont gorgés de mathématiques. Le passe sanitaire est constitué de 7 225 petits carrés blancs ou noirs, rangés en 85 lignes et 85 colonnes, qui permettent d’encoder le statut vaccinal, ou le résultat d’un test, ou le certificat de rétablissement. Cela pose quelques problèmes mathématiques et informatiques très intéressants.
Le premier problème est géométrique. Le lecteur optique qui scanne le QR code voit le carré en perspective, sous la forme d’un quadrilatère quelconque. Il faut donc redresser la perspective : c’est assez facile. Il faut aussi reconnaître le haut et le bas, la droite et la gauche. Là aussi c’est assez facile car trois des quatre coins sont ornés par de petits carrés 7 × 7 facilement reconnaissables. Parfois, le QR code est présenté sur une feuille qui a été pliée ou froissée et les lignes et les colonnes ne sont pas droites : il faut les rectifier. Treize carrés 5 × 5, également reconnaissables, sont répartis dans le grand carré pour aider le logiciel à remettre tout cela d’aplomb.
Détectable bien qu’illisible
Le second problème vient du fait que le lecteur peut se tromper car certains petits carrés peuvent être endommagés. Il faut utiliser des codes correcteurs d’erreurs qui produisent des messages volontairement redondants, pour être sûr de récupérer ce dont on a besoin. Les pilotes d’avion le savent depuis longtemps en énonçant « Papa, Tango, Charlie » au lieu de « PTC ». Les QR codes utilisent une méthode plus élaborée, inventée par Irving Reed et Gustave Solomon en 1960 et fondée sur des théorèmes profonds d’arithmétique. Le résultat est remarquable puisque la lecture peut se faire correctement même si 30 % des petits carrés sont illisibles. Essayez de faire une tâche d’encre (pas trop grosse) au milieu de votre passe sanitaire et vous verrez qu’il est encore valable.
Enfin, il faut pouvoir garantir l’authenticité du document. Là encore, on utilise des méthodes mathématiques et informatiques très subtiles. Tout le monde peut lire le contenu du certificat (à condition de connaître un peu d’informatique) mais il est accompagné d’une « signature digitale », cryptée et infalsifiable, produite à partir du contenu du message en utilisant un code secret asymétrique. L’idée est que certaines opérations sont faciles à faire et presque impossibles à défaire.
Ne dit-on pas qu’il est plus facile de faire sortir le dentifrice du tube que de l’y faire entrer ? Le tube en question est encore mathématique, fondé sur de l’arithmétique du XIXe siècle, grandement améliorée par des informaticiens du XXe. Grâce à ces méthodes, l’application TousAntiCovid Verif peut garantir l’authenticité : on peut vérifier une signature qu’un faussaire n’aurait pas pu produire.
Possibles malversations
Tout n’est pas parfait pour autant et les malversations sont possibles. Des codes d’accès aux serveurs de l’Assurance-maladie peuvent être dérobés, ou un soignant malhonnête pourrait faire un faux certificat de vaccination. D’autre part, TousAntiCovid Verif ne garantit que la validité du passe, et ne donne pas d’autres informations que le nom et la date de naissance. Le QR code contient néanmoins d’autres données, comme la date de vaccination, le type de vaccin, etc., destinées aux passages de frontières et qui ne devraient pas être accessibles à tous. Même si ce n’est pas légal, de nombreux sites Internet permettent pourtant de lire et de stocker le contenu complet des passes sanitaires.
Deux siècles de mathématiques se sont écoulés depuis que les travaux pionniers de Carl Friedrich Gauss ou Evariste Galois ont permis l’émergence de la cryptographie moderne. Ils auraient été les premiers surpris de voir qu’ils sont à l’origine de ces petits carrés noirs et blancs. La science prend son temps et réserve des surprises.