Sous-sections

3.6.1 Chiffrement

Nous comprenons les messages que nous lisons parce qu'ils nous sont présentés sous une forme compréhensible. Dans le cas de transactions financières ou d'échanges d'informations militaires, il importe qu'un message intercepté ne soit pas lisible. Le processus par lequel un message est rendu incompréhensible est appelé chiffrement. Le processus de reconstruction du texte original à partir du message chiffré est appelé déchiffrement. On parle aussi respectivement de cryptage et de décryptage. Les étapes d'un processus de chiffrement sont illustrées par la figure 3.57.

Figure 3.57: Chiffrement et déchiffrement.
4192  

Ce schéma met en lumière une déconcertante analogie avec la compression. De fait, le chiffrement, tout comme la compression, tente de supprimer la redondance présente dans le message. Il est probable qu'à l'avenir apparaissent des techniques qui mêlent compression et chiffrement. Les algorithmes d'aujourd'hui n'incluent pas encore la notion de compression car un texte chiffré est bien de longueur égale à celle du message original.

3.6.1.1 Algorithmes à clef secrète ou publique

Le texte de départ, noté M ci-après, peut être une suite de bits, un fichier texte, un signal audio, une image, etc; la fonction de chiffrement $ \mathcal {E}$ transforme ce message en un message chiffré C:

C = $\displaystyle \mathcal {E}$k1(M) (3.7)

Si la sécurité du processus de chiffrement repose sur la confidentialité de l'algorithme, on considère que le certain est peu sûr car, tôt ou tard, un utilisateur découvrira le secret et le système de chiffrement s'effondrera. Pour une vraie sécurité, tous les algorithmes modernes de chiffrement utilisent une clef, notée k1; c'est la raison de la présence de l'indice k1 dans l'équation 3.7. Cette clef peut prendre une des valeurs parmi un grand nombre de valeurs possibles. Pour le déchiffrement $ \mathcal {D}$ on procède de même, et si la clef de déchiffrement est identique à celle de chiffrement, on a:

M = $\displaystyle \mathcal {D}$k1(C) (3.8)

et donc, par substitution de C de l'égalité 3.7,

M = $\displaystyle \mathcal {D}$k1($\displaystyle \mathcal {E}$k1(M)) (3.9)

Il existe des cas où la clef de déchiffrement, notée k2, est différente de la clef de chiffrement (cf. figure 3.58). Dans ce cas, les relations deviennent:

C = $\displaystyle \mathcal {E}$k1(M) (3.10)
M = $\displaystyle \mathcal {D}$k2(C) (3.11)
M = $\displaystyle \mathcal {D}$k2($\displaystyle \mathcal {E}$k1(M)) (3.12)

Figure 3.58: Chiffrement et déchiffrement avec deux clefs distinctes.
4235  

Il y a deux types principaux d'algorithmes à base de clefs: à clef secrète ou à clef publique. Les algorithmes à clef secrète sont des algorithmes où la clef de chiffrement peut être calculée à partir de la clef de déchiffrement et vice-versa. Les algorithmes à clef publique sont différents. Ils sont conçus de sorte que les deux clés soient différentes et qu'il ne soit pas possible de calculer une clef à partir de l'autre dans un temps raisonnable. Le nom d'algorithme à clef publique vient de ce que la clef de chiffrement peut être rendue publique. N'importe qui à le droit de l'utiliser pour chiffrer un message mais seul le détenteur de la clef de déchiffrement peut reconstituer le message non chiffré. Dans de tels systèmes, les clefs de chiffrement et déchiffrement sont respectivement appelées clef publique et clef privée.

3.6.1.2 De l'usage des algorithmes de chiffrement

Les algorithmes de chiffrement tels que décrits ont d'innombrables utilisations autres que le simple fait de vouloir cacher le contenu d'un message; ils sont alors intégrés dans des protocoles complexes. Par exemple, une personne qui se connecte à un ordinateur doit fournir son identité. Mais comment l'ordinateur peut-il être sûr de l'identité de la personne? Classiquement, ce problème d'authentification se résout par l'octroi d'un mot de passe. Un algorithme de chiffrement transforme alors ce mot de passe et l'ordinateur compare le résultat avec une table de mots de passe chiffrés. Comme cette table ne contient jamais que les mots de passe chiffrés, il n'est pas à craindre qu'un utilisateur indélicat ne prenne connaissance d'un mot de passe en allant parcourir les fichiers de l'ordinateur.

Un autre problème fréquent est celui de la signature numérique: comment savoir qu'un texte provient bien d'une personne? L'algorithme de chiffrement à clef publique fournit entre autres un moyen commode de signature numérique. Il suffit d'imaginer que l'expéditeur utilise sa clef privée pour chiffrer une empreinte propre à son message. Le destinataire, qui possède la clef publique de l'utilisateur, vérifie si l'empreinte déchiffrée correspond au message fourni par l'expéditeur. Vu que l'expéditeur est le seul à connaître la clef privée liée à la clef publique, si l'empreinte correspond, il a toutes les raisons de penser que l'expéditeur a bien signé le message.

Il reste ensuite à savoir si le message n'a pas été modifié en cours de route, c'est le problème de l'intégrité des messages. Des solutions existent également pour ce type de problème mais nous n'entrerons pas dans leurs détails. Il nous paraît cependant utile de citer les quatre algorithmes cryptographiques suivants (voir [21] pour plus de détails):

DES
Data Encryption Standard. C'est actuellement l'algorithme de chiffrement le plus populaire. Le DES est un algorithme à clef secrète; la même clef sert au chiffrement et au déchiffrement.
RSA
d'après le nom de ses concepteurs: RIVEST, SHAMIR et ADLEMAN. RSA est l'algorithme à clef publique le plus populaire. Il peut aussi bien être utilisé pour le chiffrement que pour la signature numérique.
IDEA
International Data Encryption Algorithm. Il s'agit d'un algorithme de chiffrement à clef secrète utilisé dans le programme de signature numérique PGP (Pretty Good Privacy). IDEA est un algorithme de chiffrement par blocs; il manipule des blocs de texte en clair de 64 bits. La clef est longue de 128 bits. Le même algorithme est utilisé pour le chiffrement et le déchiffrement.
AES
Advanced Encryption Standard. AES utilise l'algorithme RIJNDAEL inventé par deux belges (V. RIJMEN et J. DAEMEN). À l'instar du DES, cet algorithme sert au chiffrement mais il permet de travailler avec des blocs de 128 bits et il supporte des clefs de 128, 192 ou 256 bits, contrairement au DES qui travaille avec des blocs de 64 bits et une clef longue de 56 bits.


Marc Van Droogenbroeck. Tous droits réservés.
2004-06-15