Blogue savoir techno : Agent secret 101 – Principes fondamentaux de la cryptographie

Les individus et les organisations ont besoin depuis longtemps de mettre des secrets à l’abri des regards curieux. L’une des façons de protéger ces secrets est par l’intermédiaire de la cryptographie; ce mot vient du grec kryptós, signifiant « caché » ou « secret » et de graphein, signifiant « écrire ». Les premières formes de cryptographie sont apparues chez les Égyptiens, les Grecs et les Romains de l’Antiquité.

Bien que la cryptographie ait été pendant longtemps la chasse gardée des gouvernements, elle est devenue beaucoup plus répandue. De plus, de nombreuses facettes de l’ère numérique moderne sont soutenues et protégées par l’utilisation de la cryptographie. Cette dernière est employée pour protéger les courriels et les autres formes de communication (p. ex. l’envoi de messages textes), les transactions financières (p. ex. les transactions bancaires, les achats en ligne, les paiements sans contact), la navigation sur le Web et bien plus encore. La cryptographie peut être utilisée pour protéger des données « inactives », notamment des renseignements stockés sur des ordinateurs et des dispositifs de stockage (p. ex. des ordinateurs portatifs ou des disques de sauvegarde), de même que pour protéger des données « en transit » (p. ex. des données transférées par Internet ou par téléphone intelligent).

La cryptographie est habituellement utilisée pour garder cachés ou secrets certains renseignements, mais elle offre d’autres possibilités qui sont, sans doute, tout aussi importantes, par exemple :

  • la protection de l’intégrité des messages ou des données (pour s’assurer que les données ne peuvent être modifiées sans autorisation ou de façon indétectable);
  • l’identification de l’émetteur et du récepteur (pour savoir à qui l’on a affaire);
  • la non-répudiation (pour s’assurer que les parties d’une transaction ne peuvent nier ultérieurement y avoir pris part).

Ave César!

Le chiffre de César, utilisé au temps de Jules César (comme son nom l’indique) est un système relativement simple qui peut être utilisé pour illustrer un grand nombre de concepts fondamentaux en cryptographie.

Cette méthode de chiffrement est fondée sur le décalage des lettres de l’alphabet par un nombre prédéfini de lettres et sur l’utilisation des lettres ainsi obtenues pour transformer un message. Par exemple, en utilisant un décalage de 3 lettres, A devient D, B devient E, et ainsi de suite. Le message « RENDEZ-VOUS A MIDI » devient « UHQGHC-YRXV D PLGL ». Si le décalage est suffisamment grand et dépasse la lettre Z, il recommence à partir de la lettre A (c.‑à‑d. imaginez‑vous que l’alphabet est un cercle ou une boucle où les lettres A et Z se rejoignent). Ce type de chiffrement est appelé le chiffrement par substitution.

Le message original (« RENDEZ-VOUS A MIDI ») est le texte en clair, alors que le message transformé (« UHQGHC-YRXV D PLGL ») s’appelle le texte chiffré ou le message chiffré. “Le processus permettant de créer le texte chiffré à partir du texte en clair s’appelle le chiffrement, tandis que le processus d’obtention du texte en clair à partir du texte chiffré s’appelle le déchiffrement.

Le décalage des lettres par un nombre prédéfini s’appelle l’algorithme de chiffrement (le décalage inverse, permettant de retrouver le texte en clair, s’appelle l’algorithme de déchiffrement). Dans le cas présent, les algorithmes de chiffrement et de déchiffrement sont les mêmes. La taille du décalage, dans ce cas 3, est la clé de cet algorithme, et puisque la clé est la même pour le chiffrement et le déchiffrement, on appelle ce type de système un système à clé symétrique. Il existe également des systèmes à clé asymétrique (dans lesquels les clés sont différentes) qui sont utilisés de nos jours. Cependant, nous aborderons cette question dans un autre article.

L’idée est qu’un message ou toute autre information sera transformé de manière à ce que seules les parties autorisées puissent y accéder. Le destinataire autorisé recevra la clé appropriée et pourra l’utiliser pour déchiffrer le message. Le principe étant que sans la clé, les utilisateurs non autorisés ne seront pas en mesure de déchiffrer le message.

La chute de César

Toutefois, il n’y a que 26 clés possibles pour le chiffre de César : les distances de décalage de 0, 1, 2, etc. jusqu’à 25. Un décalage de 0 laisse le message inchangé, alors une clé égale à 0 ne permettra pas de garder beaucoup de secrets. Les distances de décalage, ou clés, de plus de 25 permettent simplement de répéter le cycle (p. ex. une clé de 26 équivaut à un décalage de 0, et une clé de 30 équivaut à un décalage de 4).

Si une personne non autorisée est en mesure d’intercepter un message chiffré, et si cette personne suspecte la nature de l’algorithme utilisé, il serait facile d’essayer chacune des 25 clés (en laissant tomber 0) pour voir si un message ayant un sens peut être produit. Cette méthode de décryptage (plus formellement, l’analyse cryptographique) est appelée la recherche exhaustive ou la recherche par force brute. Cette méthode d’analyse était peut-être plus difficile à mettre en œuvre au temps des Romains, mais de nos jours, il est très facile de le faire en utilisant les moyens informatiques modernes (dans le cas présent, les recherches seraient très courtes), et ce chiffrement fournit une protection très limitée.

Dans un simple chiffrement de substitution, chaque lettre du texte en clair est remplacée par une autre, et une lettre particulière dans le texte en clair sera toujours remplacée par la même lettre dans le texte chiffré. En langue française, les lettres E, A, I et S sont les plus communes, tandis que K, W, et Z sont plus rarement utilisés. Dans le même ordre d’idées, certaines combinaisons de lettres, comme ES, LE, EN et DE sont également très fréquentes. Une autre méthode utilisée pour le décryptage, soit l’analyse fréquentielle, consiste à d’abord effectuer un dénombrement de la fréquence à laquelle les lettres et les combinaisons de lettres dans le texte chiffré apparaissent, et celles‑ci sont ensuite associées aux combinaisons et aux lettres supposées du texte en clair. Par exemple, un grand nombre de lettres X dans le texte chiffré pourrait signifier que X correspond à la lettre E dans le texte en clair. En effectuant plusieurs associations du genre, une personne pourrait commencer à trouver certains mots ou parties de mots, qui à leur tour pourraient aider à déchiffrer une plus grande partie du message. De plus, la même approche peut être appliquée à la longueur des mots, en supposant que les espaces sont les mêmes dans le texte en clair et le texte chiffré. Par exemple, une grande fréquence du mot WKH dans le texte chiffré pourrait signifier que ce mot correspond à l’article DES dans le texte en clair.

Variations sur un même thème

Il existe des façons de rendre les chiffrements plus résistants aux recherches par force brute ou aux analyses fréquentielles en vue de les rendre plus sécuritaires. Par exemple, plutôt que d’utiliser un décalage fixe (de 3) à titre de clé, comme il a été expliqué précédemment, le décalage pourrait être fondé sur un texte préalablement convenu (p. ex. un extrait de Molière). Dans un tel cas, le texte convenu au préalable (« la curiosité naît de la jalousie ») devient la clé, et chaque lettre du message du texte en clair est décalée en fonction du nombre déterminé par les lettres correspondantes dans la clé. Si on prend l’exemple précédemment utilisé, le message du texte en clairRENDEZ-VOUS A MIDI »), avec la cléLACURI-OSIT E NAIT »), devient le texte chiffréCEPXVH-JGCL E ZILB »). Même si cela renforce l’aspect aléatoire du texte chiffré et rend l’analyse cryptographique plus difficile, si le texte convenu au préalable est compromis d’une manière ou d’une autre (c.‑à‑d. un adversaire le devine en fonction de la popularité du texte), alors le message du texte en clair peut être trouvé assez aisément.

Il existe une autre déclinaison du chiffre de César, connu sous le nom de masque jetable ou chiffre de Vernam ou OTP en anglais (One-Time Pad), qui est considérée comme indéchiffrable. Le masque jetable nécessite une séquence aléatoire de lettres qui est de la même taille, ou plus longue, que le message qui est envoyé afin de servir de clé préalablement partagée. Comme dans l’exemple précédent, on convertit les lettres du texte en clair et celles du masque jetable (la clé) en nombres selon la position qu'elles occupent dans l'alphabet. Puis, on applique le chiffre de César (après avoir additionné les nombres) à chaque paire de lettres du texte en clair et de la clé pour créer le texte chiffré. Par exemple, le message du texte en clairRENDEZ-VOUS A MIDI »), auquel on applique le masque jetable VAIIQE-LCNC X CZHF »), devient le texte chiffré MEVLUD-GQHU X OHKN »). L’approche peut également être élargie afin d’inclure les espaces (pour éviter les analyses fréquentielles visant la longueur des mots) de même que des nombres et des symboles (afin d’éviter de révéler des mesures comme des distances ou des quantités).

Cependant, pour que le masque jetable soit indéchiffrable, plusieurs conditions doivent être respectées :

  • Il ne devrait exister que deux copies du masque jetable (une pour l’expéditeur et l’autre pour le destinataire). Si vous devez communiquer avec un plus grand nombre de personnes, ce système devient rapidement plus difficile à gérer;
  • Le masque jetable doit demeurer secret, ce qui signifie qu’il faut disposer d’un moyen sûr pour le transmettre et assurer sa sécurité (comme des agents secrets qui s’échangent des messages dans des ruelles sombres);
  • Le masque jetable (c.-à-d. la clé) doit réellement être composé de caractères aléatoires (ce qui n’est pas aussi simple que cela peut paraître);
  • Le masque jetable doit être au moins aussi long que le texte en clair. Cela peut être difficile à faire si vous tentez de chiffrer un long texte de format libre;
  • Le masque jetable doit être utilisé une seule fois (la réutilisation du masque jetable pourrait donner à un adversaire suffisamment de renseignements pour lui permettre de déchiffrer le code);
  • Les deux copies du masque jetable doivent être détruites immédiatement après leur utilisation (afin d’empêcher un adversaire de déchiffrer le message).

Bien que l'utilisation du masque jetable puisse être géniale pour les espions, elle n'est pas très pratique pour les communications quotidiennes modernes. Au lieu, la sécurité de ces dernières repose largement sur l’utilisation de systèmes cryptographiques asymétriques comme le protocole SSL (Secure Sockets Layer) ou le protocole TLS (Transport Layer Security). Mais il s’agit là d’un tout autre sujet qui sera traité dans un prochain article.

Suggestions de lecture

Date de modification :