Introduction à la cryptographie


La cryptographie est l'art ou la science de maintenir des messages secrets. On a l'habitude de l'associer au domaine militaire. S'il est vrai qu'il s'agit d'un domaine prédestiné pour son usage, des applications pour le commun des mortels existent également, pour permettre de maintenir la confidentialité de documents, par exemple afin de garder secret le no de votre carte de crédit transitant sur Internet ou le mot de passe de votre carte bancaire transitant par voie téléphonique ou encore le contenu de documents envoyés par la poste.

Supposez que quelqu'un veut envoyer un message à un destinataire, et veut être sûr que personne d'autre ne puisse lire le message. Il doit tenir compte de la possibilité que quelqu'un d'autre ouvre la lettre ou écoute la transmission électronique. Dans la terminologie cryptographique, le message original s'appelle texte en clair. Encoder le contenu du message de telle manière à cacher son contenu pour autrui s'appelle cryptage. Le message codé s'appelle texte crypté. Le processus qui permet de retrouver le texte en clair original à partir du texte crypté s'appelle le décryptage. Une méthode de cryptage et de décryptage s'appelle chiffrement. Pour le chiffrement, on se sert habituellement d'une clé, et la méthode de cryptage est telle que le décryptage peut être exécuté seulement avec la clé appropriée. La cryptanalyse est l'art de décrypter un texte codé, c'est-à-dire de retrouver le texte en clair sans connaître la clé de décryptage.   

Tous les algorithmes modernes emploient une clé pour contrôler le cryptage et un message codé ne peut être décrypté qu'avec la bonne clé. La clé utilisée pour le décryptage peut être différente de la clé de cryptage, mais pour la plupart des algorithmes elles sont identiques. Il y a deux types d'algorithmes de chiffrement: symétriques ou à clé secrète et asymétriques ou à clé publique.

Les algorithmes à clé secrète utilisent la même clé pour le cryptage et le décryptage (ou une clé de décryptage qui dérive facilement de la clé de cryptage) (ex. DES, IDEA).

Les algorithmes à clé publique utilisent une clé différente pour le cryptage et le décryptage (avec une clé de décryptage qui ne peut pas être obtenue à partir de la clé de cryptage). Ils permettent de rendre publique, précisément, la clé de cryptage (elle peut être éditée dans un journal ou être disponible sur Internet), permettant à n'importe qui de crypter un message avec cette clé, tandis que seul le destinataire qui connaît la clé privée de décryptage associée pourra décrypter le message ainsi chiffré. La clé de cryptage s'appelle la clé publique et la clé de décryptage la clé privée (ex. RSA).

Les humains ne peuvent pas vraiment exécuter à la main des algorithmes cryptographiques modernes, étant donné l'ampleur du nombre d'opérations à effectuer. Des logiciels informatiques spécifiques ont été développés à cette fin. D'une façon générale, les algorithmes à clé secrète sont beaucoup plus rapides à exécuter sur un ordinateur que ceux à clé publique, qui nécessitent des calculs plus complexes. Dans la pratique ils sont souvent utilisés ensemble, de sorte qu'un algorithme à clé publique est employé pour crypter une clé secrète qui est employée pour chiffrer le message en clair en utilisant un algorithme symétrique: le destinataire reçoit la clé secrète cryptée par une clé publique et le message crypté par une clé secrète (ex. PGP).

Certains algorithmes à clé publique peuvent être employés pour produire des signatures électroniques ou empreintes digitales (ex. PGP). Une signature électronique est un bloc de données qui est créé en utilisant une certaine clé privée et qui "résume le message original". Des signatures électroniques sont employées pour vérifier qu'un message vient vraiment de l'expéditeur voulu et que le contenu du message n'a pas été modifié.

Il reste encore à être sûr que la clé publique dont on dispose est bien celle d'une personne qui prétend que c'est la sienne. C'est encore un point faible des systèmes de cryptographie à clé publique. On peut y contribuer en faisant signer la combinaison de la clé et des informations sur son propriétaire par d'autres personnes (signatures par des clés de confiance, certification de clé). C'est le concept de confiance utilisé par exemple dans PGP.


 

NS / 13.11.98

1