hide random home http://wwwusers.imaginet.fr/~dohm/cryptographie/intro_fr.html (Internet on a CD, 07/1998)

Books

Introduction à la cryptographie.


Sommaire


Cryptographie à clé unique

Premièrement, quelques éléments de terminologie. Supposons que je veuille vous envoyer un message, mais que je veuille que personne d'autre à part vous ne puisse le lire. Je pourrais coder ou "crypter" le message, ce qui veut dire que je le brouille dans l'espoir de le compliquer, le rendant illisible pour quiconque excepté pour vous, destinataire de celui-ci. Je définis donc une clé cryptographique pour coder le message, clé que vous possédez également pour le décoder ou le "décrypter". C'est ainsi que fonctionne les clés symétriques dans les systèmes de cryptographie traditionnelle.

Dans les systèmes cryptographiques traditionnels, tels que l'US Federal Data Encryption Standard (DES), une seule clé est utilisée aussi bien pour le codage que pour le décodage. Cela signifie qu'une clé doit être initialement transmise par des canaux sécurisés de façon à ce que les deux partis puissent la connaître avant que le message crypté ne soit envoyé par des canaux non sécurisés. Ceci peut présenter des difficultés. Et si vous avez un moyen sécurisé pour transmettre des clés, alors pourquoi utiliser la cryptographie plutôt que d'envoyer directement les documents grâce à ce premier moyen ?

Cryptographie à clé publique

Dans les systèmes cryptographiques à clé publique, tout le monde possède deux clés complémentaires, une clé publique que l'on distribue, et une clé secrète. Chaque clé déverrouille le code produit par l'autre clé. Le fait de connaître la clé publique ne permet pas d'en déduire la clé secrète correspondante. La clé publique peut donc être publiée et largement disséminée sur un réseau de communication. Ce procédé permet de préserver la confidentialité de certains documents sans avoir besoin d'un canal sécurisé, nécessaire aux systèmes cryptographiques traditionnels. N'importe qui peut alors utiliser la clé publique de son destinataire pour lui envoyer un document crypté, et celui-ci utilisera sa propre clé secrète correspondante pour décoder le document. Personne, en dehors du destinataire, ne peut le décrypter, car personne d'autre n'a accès à cette clé secrète. Même la personne qui a codé le message n'est plus en mesure de le décrypter.

Signature à clé secrète

L'authentification des messages est également possible. La clé secrète de l'envoyeur peut être utilisée pour coder un message, de cette façon il le signe. Ceci créer une signature numérique du message, que le destinataire (ou n'importe qui d'autre) peut vérifier en utilisant la clé publique de l'expéditeur afin de la décoder. Ceci prouve que l'expéditeur est bien la personne qui est à l'origine du message, et que le message n'a pas été modifié dans l'intervalle par quelqu'un d'autre, puisque l'expéditeur est le seul à posséder la clé secrète qui a fait la signature. Toute contrefaçon d'un message signé est impossible, de même l'expéditeur ne pourra pas désavouer sa signature par la suite.

Principes des algorithmes de codage

Les deux procédés ci-dessus peuvent être combinés pour permettre de preserver la confidentialité d'un message tout en l'authentifiant. Ceci se déroule en deux étapes, premièrement, en le signant avec sa propre clé secrète, puis en cryptant le message signé avec la clé publique du destinataire. Le destinataire, lui, n'aura qu'à refaire ces étapes à l'envers ; c'est à dire dans un premier temps décoder le message avec sa propre clé secrète, puis vérifier la signature contenue dans le message avec la clé publique de l'expéditeur. Ces étapes sont effectuées automatiquement par le logiciel de celui qui reçoit le document.
Du fait que les algorithmes de codage à clé publique sont beaucoup plus lents que ceux à clé unique, le codage du document sera optimisé si l'on utilise un cryptage classique à clé unique de haute qualité. Voila donc ce qui se passe : dans un procédé invisible pour l'utilisateur, une clé aléatoire temporaire, créée pour cette unique cession, est utilisée pour coder de manière classique le document appelé texte clair. Cette clé établie lors de la cession de codage par la clé publique est envoyée avec le texte codé (appelé "texte chiffré") vers le destinataire. Le destinataire utilise sa propre clé secréte pour retrouver la clé temporaire, et pour ensuite utiliser cette clé afin d'exécuter l'algorithme de décryptage traditionnel à clé unique, qui décodera les informations contenues dans la majeure partie du document chiffré.
Les clés publiques sont conservées dans des "certificats de clés" individuels, qui contiennent l'identité de l'utilisateur possédant la clé (le nom de cette personne ainsi que son email), un cachet de la date à laquelle la paire de clés a été créée, ainsi que la clé publique elle même. Cela est similaire pour les clés secrètes, mais celles-ci sont ensuite cryptées avec un mot de passe, rendant impossible leur utilisation au cas où elles serait volées. Un fichier regroupant un ensemble de certificats est appelé "trousseau de clés", les clés sont ensuite référencées de façon interne par un numéro d'identification, qui est une "contraction" de la clé publique (les 64 premiers bits de poids faibles représentatifs de la clé publique). Pour une plus grande rapidité d'exécution, quand le numéro d'identification de la clé est affiché, seulement les 32 premiers bits de poids faible sont visibles ; alors que plusieurs clés peuvent partager le même numéro d'identité d'utilisateur, pour des applications pratiques, deux clés ne partagent jamais le même numéro d'identification de clé.

Principes des algorithmes de signature

PGP, système de cryptage à clé publique, utilise des "contractions de messages" pour construire des signatures. Une contraction de message est effectuée à l'aide d'une fonction de hachage à sens unique de 128bits, cryptograhiquement trés solide. C'est en quelque sorte un procédé analogue aux sommes de contrôle ("Checksum") ou aux vérifications de code d'erreur CRC ("CRC error checking code"), qui représentent le message de manière compacte, et est utilisé pour détecter si celui-ci a été modifié. Il est cependant diffèrent du CRC puisqu'il est statistiquement impossible pour des pirates de concevoir un message de remplacement qui contiendrait une contraction de message identique. La contraction de message est alors cryptée par la clé secrète afin de former une signature. Les documents sont signés en ajoutant au début du fichier un certificat de signature, qui contient le numéro d'identifiaction de la clé qui a été utilisée pour le signer, une contraction de message signée par clé secrète, et un cachet indiquant la date à laquelle la signature a étè effectuée. Le numéro d'identification de la clé est utilisé par le destinataire pour rechercher la clé publique de l'envoyeur afin de vérifier cette signature.
Le logiciel du destinataire recherchera automatiquement la clé publique de l'envoyeur, et le numéro d'identification dans son trousseau de clés publiques. Par ailleurs, les fichiers cryptés contiennent également un préfixe contenant le numéro d'identification de la clé publique utilisée pour les crypter. Le logiciel du destinataire recherchera auparavent automatiquement la clé secrète dans son trousseau nécessaire au décryptage du message, décryptera le message, puis analysera la signature.

Ces deux types de trousseaux de clés constituent la principale méthode de stockage et de gestion des clés publiques et des clés secrètes. Plutôt que de garder des clés individuelles dans des fichiers différents, leurs regroupement en trousseaux en facilite la recherche, soit par numéro d'identification de la clé, soir par numéro d'identification de l'utilisateur. Chaque utilisateur utilise sa propre paire de trousseaux de clés. Une clé publique individuelle est gardée dans un fichier à part afin de l'envoyer à d'autres personnes qui l'ajouteront à leur trousseau.


Ce document est extrait (avec la permission) du fichier d'aide PGP Help 2.2 écrit par Jeff Sheets (Xanthur@aol.com) sur PGP Version 2.62 -11Oct 94 développé par Philip Zimmermann, et beaucoup d'autres.
Il a été traduit de l'anglais par Bruno Dohm (dohm@imaginet.fr) le 3 Septembre 1996.
 
  Page precedente Page suivante Sommaire Mail to ... Clé publique