Chiffrer ses e-mails : principe de fonctionnement du PGP
Historique
Le créateur de PGP est Philippe Zimmermann, un informaticien américain impliqué
dans les luttes politiques. Dans les années 1980, il milite activement pour le gel de l'armement nucléaire américain,
au moment où la tension entre blocs de l'est et de l'ouest est encore très forte. Avec l'arrivée de Gorbatchev
au pouvoir en URSS et la détente des relations est/ouest qui s'en suivit, Zimmermann consacra son énergie
à un autre projet : protéger la vie privée des gens. Il avait compris, dès le début des années 1990,
au moment où Internet n'en était encore qu'à ses balbutiements, que le développement du courrier électronique
permettrait aux États d'espionner à grande échelle leurs citoyens. Voici ce qu'il dit en 1991, dans le guide de l'utilisateur
de PGP, comme le rapporte
S. Singh dans Histoire des codes secrets :
Autrefois, si le gouvernement voulait percer l'intimité de simples citoyens, il devait se donner du mal pour intercepter, déceler et
lire une correspondance écrite, ou écouter et éventuellement enregistrer des conversations téléphoniques. On peut comparer
cela à attraper un poisson avec une ligne, un poisson à la fois. Heureusement pour la démocratie et la liberté, ce
travail intensif d'espionnage n'est pas praticable à grande échelle. Aujourd'hui, le courrier électronique se substitue
de plus en plus au courrier traditionnel, et bientôt ce sera peut-être la norme pour tout le monde, et non plus une nouveauté comme
aujourd'hui. A l'inverse des lettres, les messages e-mail sont très simples à intercepter et à exploiter pour trouver
d'utiles mots-clefs. Ceci peut être exécuté à grande échelle facilement, systématiquement et sans qu'on puisse le détecter.
C'est comparable à la pêche au filet - et cela constitue une différence orwellienne quantitative et qualitative considérable
pour la santé de la démocratie.
La solution, pour Zimmermann, consiste à chiffrer les e-mails. C'est ainsi qu'il conçoit le logiciel PGP, pour
Pretty Good Privacy, que l'on pourrait traduire
par "plutôt bonne sécurité". Il utilise pour cela des techniques éprouvées, avec un cryptosystème hybride mélangeant système à clé publique
(RSA) et système à clé privée (IDEA). En juin 1991, le logiciel est prêt. Zimmermann, par l'intermédiaire d'un ami,
le place sur un serveur internet. PGP peut être copié et utilisé gratuitement par n'importe qui!
Les ennuis commencent alors pour Zimmermann. D'une part, il n'a pas le droit d'utiliser l'algorithme RSA. Il est
en effet breveté (aux États-Unis) par la société RSA Data Security, qui ne lui avait pas donnée de licence d'utilisation.
D'autre part, il fut accusé par le FBI d'exportation illégale d'armement. En effet, le gouvernement américain incluait les logiciels
de chiffrement dans sa définition des munitions, au même titre que les missile, les mitraillettes et les mortiers. PGP ne pouvait
pas être exporté sans une autorisation du Département d'État… La procédure dura jusqu'en 1996, année où le FBI décida d'abandonner
les poursuites. Il était trop tard, PGP avait essaimé partout et condamner Zimmermann n'y changerait rien.
Principe de fonctionnement
Le PGP fonctionne suivant le principe suivant :
- Compression : le texte à envoyer est compressé. Cette étape permet de réduire le temps de transmission des données, et améliore également la sécurité. En effet, la compression détruit les modèles du texte (fréquences des lettres, mots répétés). Et on sait que ces modèles sont souvent utilisés dans les analyses cryptographiques.
- Chiffrement du message : une clé de session aléatoire est générée, et le message est chiffré par un algorithme symétrique à l'aide d'une clé de session. L'algorithme utilisé a varié au cours du temps : il s'agissait au début d'IDEA, puis de CAST.
- Chiffrement de la clé de session : la clé de session est chiffrée en utilisant la clé publique du destinataire (et l'algorithme RSA).
- Envoi et réception du message : l'expéditeur envoie le couple message chiffré / clé de session chiffrée au destinataire. Celui récupère d'abord la clé de session, en utilisant sa clé privée, puis il déchiffre le message grâce à la clé de session.