Les Origines de PGP

d'après Paul X.

LES LOGICIELS DE CRYPTAGE A CLEF UNIQUE:
Beaucoup de logiciels de cryptage sont dits a "clef unique". Ca veut dire qu'on utilise un seul et meme mot de passe (ou "clef") pour encrypter et decrypter un fichier.
Son defaut: si 2 personnes veulent crypter leurs messages ou fichiers sur un canal de communication (par exemple le telephone) c'est qu'elles pensent que ce canal est surveille. Alors comment faire pour se communiquer secretement le mot de passe (la clef)? En utilisant le canal qui est surveille? Ce serait idiot! Bref pour les paranoiaques le cryptage a clef unique presente de gros inconvenients. PGP utilise un concept totalement different.

PGP: UN LOGICIEL DE CRYPTAGE A CLEF PUBLIQUE:
PGP est un logiciel de cryptage a "clef PUBLIQUE". Comment ca marche? Tous les utilisateurs qui veulent communiquer entre eux (via PGP) possedent chacun, non plus une clef unique, mais DEUX clefs: une clef PRIVEE et une clef PUBLIQUE.
Considerons ces clefs comme des mots de passe (en fait ce sont des fichiers dans le repertoire du programme PGP).
Ma clef publique je la communique a tout le monde. Ma clef privee je la garde sur mon ordinateur et je ne la communique jamais.
La seule chose a retenir sur ces 2 clefs c'est que tout ce qui est encrypte avec l'une de ces 2 clefs ne peut etre decrypte qu'avec l'AUTRE clef: si j'encrypte le fichier lettre.txt avec ma clef publique, il me faudra le decrypter avec ma clef privee. Si j'encrypte le fichier avec ma clef privee, il me faudra le decrypter avec ma clef publique.
Une clef decrypte l'autre.

COMMENT ENCRYPTER & DECRYPTER UN FICHIER AVEC PGP:
Je veux encrypter un fichier pour l'utilisateur Hubert. J'ai entre la clef publique de Hubert dans mon logiciel PGP. Il me suffit d'encrypter le fichier avec cette clef publique, et d'envoyer le fichier encrypté à Hubert (par email par exemple).
Puisque le fichier a ete encrypte avec la clef publique de Hubert, il n'y a que la clef PRIVEE de Hubert qui pourra decrypter ce fichier (une clef décrypte l'autre). Donc Hubert utilise sa clef privee pour decrypter le fichier que je lui ai envoye.
IMPORTANT: si je veux encrypter un fichier pour un utilisateur, il me faut avoir au prealable entre la clef PUBLIQUE de cet utilisateur dans mon logiciel PGP (qui le retient une fois pour toutes). Donc a chaque fois que je rencontrerai un nouvel utilisateur avec qui je desire communiquer, il me faudra lui demander sa clef publique... Et lui envoyer la mienne s'il veut me repondre!

L'AVANTAGE DE PGP:
Vous remarquez qu'un utilisateur ne fait que communiquer sa clef publique aux autres. Il ne donne jamais sa clef privee. Avec les logiciels de cryptage a clef unique l'utilisateur doit choisir le mot de passe et le communiquer a son correspondant. Pour le paranoiaque cela presente un gros defaut puisqu'il sera convaincu d'avoir ete surveille pendant qu'il revelait le mot de passe a son correspondant.
Avec PGP la clef privee n'est jamais communiquée donc ce défaut n'existe plus.

SIGNER UN FICHIER AVEC PGP:
PGP permet aussi de "signer" un fichier (sans forcement l'encrypter). Signer un fichier ca veut tout simplement dire y ajouter quelques octets (des nombres) qui constituent la "marque" de l'utilisateur qui signe. Ces nombres ajoutes a un fichier prouvent que c'est bien tel ou tel utilisateur qui a produit le fichier. Chaque utilisateur possede donc sa propre serie de nombres: c'est sa signature.
PGP est tel qu'il n'est pas possible de tout simplement "recopier" la serie d'octets caracteristiques d'un utilisateur pour imiter sa signature. En fait le concept de signature de PGP est tellement fiable que beaucoup d'utilisateurs utilisent PGP non pas pour encrypter leurs messages, mais uniquement pour les signer afin de prouver aux autres qu'ils en sont bien les auteurs...

CE QU'IL FAUT RETENIR:
Avec PGP je peux faire 3 choses:

  • encrypter un fichier pour Hubert. J'encrypte avec la clef publique de Hubert, et lui decrypte avec sa clef privee.
  • signer un fichier. Ca veut dire y ajouter des octets qui prouvent que je suis bien l'auteur de ce fichier.
  • encrypter ET signer.

C'est la 3ème option qui est la plus utilisée.