Trois chercheurs Chinois de l’Université Columbia ont mis au point une forme de… palimpseste numérique, une sorte de « texte écrit sur du texte » capable de contenir un message caché sans que l’un ne perturbe l’autre. Son nom de guerre : FontCode
Techniquement parlant, le principe de codage repose sur de très légères variations dans les longueurs des empattements, le délié des courbes, les dimensions des jambages d’une fonte de caractère. Une seule lettre d’une même fonte peut, selon des dizaines de très légères variations, prendre autant de valeurs numériques différentes que l’on pourrait assimiler à un chiffrement calligraphique.
Et c’est quasiment tout. Il ne reste plus qu’à utiliser un texte quelconque, de le découper en blocs de 5, 6 ou n lettres contiguës en utilisant un jeu de ces fontes « codées », afin que la somme des valeurs de chaque lettre d’un bloc corresponde à la valeur d’une lettre du message codé. Ainsi, « Aujourd’hui, maman est morte » se décompose en « Aujou »=54 « rd’hu »= 117 « i, mam »=15, « an est »=218, « morte »= 32, le chiffre 54, 117, 15, 218 et 32 correspondant aux lettres p,a,r, i et s par exemple. C’est là un code à tiroir relativement classique dans le domaine du chiffre. Le poids numérique de chaque lettre du texte de transport est bien entendu tiré d’un codex (d’une casse typographique stéganographique) qui permettra de choisir le « poids » numérique de chaque caractère. Jusqu’à présent, les chiffrements utilisant une logique semblable ne reposaient que sur des suites numériques, difficiles à anonymiser.
L’avantage de ce procédé de camouflage, c’est que tant que la définition graphique du texte est élevée et ne trahit pas ces légères variations de graisse et d’empâtement, il sera toujours possible qu’un logiciel d’OCR associé à un moteur itératif genre « computer vision » parvienne à extraire le message numérique caché derrière chaque graphisme de lettre. Cet enfant hybride de la stéganographie et du palimpseste peut dont utiliser des moyens de diffusion relativement variés : photographie, format pdf, photocopie… mais en aucun cas un code ascii, ebcdic, chunky ou tout autre alphabet fondamentalement numérique. FontCode est un chiffrement essentiellement lié à un support en logique floue. Rien n’interdit d’imaginer son adaptation en code morse d’ailleurs.
C’est donc un accessoire parfait pour les barbouzes qui ont encore du mal à se passer de télécopieurs, de photocopieuses et de leur Minox. Les trois chercheurs ajoutent que le procédé peut être utilisé pour marquer d’un DRM tout document écrit. Un DRM qui garantirait l’absence de modification du texte contenu, mais en aucun cas son unicité et son originalité, puisqu’une bonne photocopie ou photographie dudit document sera certifié conforme de la même manière.
FontCode est également capable d’associer à un texte non plus un message secret, mais une URL masquée ou des métadonnées qui ne nécessiteraient plus la présence d’un QRcode ou d’un « zebra » à la sauce EAN.
Les plus paranoïaques y verront également un moyen d’instiller un lien malveillant, prélude à une attaque en drive by download, qui échapperait à toute analyse antivirale effectuée au niveau du document lui-même. Encore faut-il que le logiciel de décodage puisse être installé préalablement et camouflé avec subtilité. Ajoutons à cela que le décodage du contenu caché peut dépendre d’une clef de déchiffrement dont le rôle est de déterminer l’ordre de décodage des blocs… la lecture du palimpseste ne suit pas obligatoirement le sens conventionnel et progressif de la lecture du texte de transport.
Infaillible ? La méthode, de l’aveu même des trois universitaires, comporte certaines limitations. Elle ne porte actuellement que sur un nombre limité de fontes, et l’insertion d’une nouvelle « sorte » (italique, gras italique, caractères barrés par exemple) n’est pas encore pris en compte. Et le nombre de fontes utilisées en imprimerie et en PAO va nécessiter encore pas mal de travail avant que chaque agent 007 puissent utiliser qui son Lucida, qui son Janson, qui son Handscript ou son Baskerville.
L’on pourrait également ajouter que, puisqu’un bloc détermine une et une seule lettre « codée », la longueur du texte de transport sera toujours plus importante que celle du message camouflé, d’une magnitude proportionnelle à la longueur du bloc. Enfin, la performance du système de codage tient précisément dans l’étendue du dictionnaire de « lettres déformées ». Plus les variations sur l’ensemble des lettres de l’alphabet sont possibles, plus la taille des blocs peut être réduite, moins long sera le texte « porteur ». Corolaire de cette condition, plus l’étendu du dictionnaire sera étendu et intègrera un nombre élevé de fontes, plus il occupera de place en mémoire et verra ses performances s’écrouler. Ceci sans présumer de l’overhead du moteur d’analyse lié à l’OCR.