Ce document ne se veut absolument pas exhaustif. Il est d'ailleurs conseillé de se reporter aux pages de manuel et aux différentes documentations disponibles sur le Web sur les différents logiciels cités. Ce document a pour but d'être une introduction à l'utilisation sous Unix des programmes cryptographiques PGP et GPG.
Le principe des algorithmes cryptographiques à clefs asymétrique repose sur deux clefs. L'une privée (Ks), qui sera l'information secrète. L'autre publique (Kp), que l'on distribue à tout le monde. L'algorithme de cryptage est f(m,K)=m' avec K une clef, m un message et m' le message crypté.
Le couple de clefs est choisi de telle sorte que f(f(.,Ks),Kp)=f(f(.,Kp),Ks)=Id.
La propriété de cet algorithme de cryptage permet de réaliser un certain nombre d'opérations.
C'est l'utilisation la plus classique. Considérons qu'Alice veuille envoyer un message m à Bob.
Comment Bob peut-il s'assurer que c'est bien Alice qui lui a écrit?
On peut évidemment combiner l'opération d'authentification avec celle du cryptage simple.
Le principe des algorithmes à clef publique repose sur un problème fondamental, celui de la gestion des clefs. Effectivement, faut-il faire confiance à une autorité centrale qui gère les clefs publiques de tout le monde, ou bien peut-on diluer cette confiance en attribuant des degré de confiance aux clefs publiques que l'on trouve? PGP/GPG ont résolu le problème en utilisant la deuxième solution (confiance diluée). Ces logiciels permettent d'ailleurs de gérer efficacement une liste de clefs (ring key) avec leur degré de confiance.
Néammoins, il faut savoir qu'il existe un certain nombre de serveur de clefs publiques sur Internet, la confiance qu'on peut leur accorder est toute relative, mais ils restent cependant utile pour se procurer la clef de quelqu'un ou faciliter la tâche de gens qui cherchent à vous contacter (Par exemple keyserver).
PGP est un logiciel de cryptage qui a vu le jour en 1991. Il a été écrit par Phil R. Zimmerman et a été très largement distribué sur Internet, violant ainsi la loi américaine qui interdit l'exportation de logiciels cryptographiques. Son usage s'est très vite imposé parmi les utilisateurs assidus d'Internet et il est devenu un standard de fait.
Ce logiciel est basé sur un cryptage à base de clefs asymétriques de type RSA.
GnuPG est une implantation complete et libre de PGP. N'utilisant ni l'IDEA ou le RSA, il peut être utilisé sans aucune restriction d'aucun type. GnuPG est une application RFC2440 (OpenPGP).
La version 1.0.0 est distribuée depuis le 7 septembre 1999 et le projet est soutenu par la gouvernement Allemand (Ministère Fédéral de l'Économie et de la Technologie) et devrait être utilisé par l'administration fédérale allemande d'ici peu.
Il possède les mêmes fonctionnalités que PGP, mais ses auteurs affirment qu'il est plus sûr.
Ce logiciel est entièrement compatible avec PGP. C'est à dire que tous les messages encryptés avec l'un sont décryptables par l'autre et vice-versa De plus, les clefs générés par l'un sont utilisables par l'autre et vice-versa.
PGP est développé par une entreprise dont les sources de revenus proviennent de la vente de ce logiciel. Les versions librement téléchageables et internationales ont quelques versions de retard par rapport à la version courante (mais sont distribué avec les sources). De plus, la pérénité de ce logiciel dépend fortement de la maison mère. À l'inverse, GPG est totalement libre. Vous pouvez toujours accéder librement à la dernière version et le projet ne dépend pas d'une entreprise ou d'un gouvernement.