Qu'est-ce que PGP ? Guide complet sur le chiffrement Pretty Good Privacy
Qu'est-ce que le chiffrement PGP ?
PGP (Pretty Good Privacy) est un programme de chiffrement qui assure la confidentialité et l'authentification cryptographiques pour les communications de données. Le chiffrement PGP utilise une combinaison de cryptographie à clé symétrique et de cryptographie à clé publique pour permettre aux utilisateurs de chiffrer des messages, des fichiers et d'autres données afin que seul le destinataire prévu puisse les lire. Créé à l'origine par Phil Zimmermann en 1991, PGP est devenu le standard de chiffrement d'e-mails le plus utilisé au monde et constitue la base de la spécification OpenPGP définie dans le RFC 4880. Que vous ayez besoin d'envoyer un e-mail confidentiel, de vérifier l'identité d'un éditeur de logiciels ou de protéger des fichiers sensibles, PGP fournit un cadre cryptographique éprouvé, auquel font confiance journalistes, chercheurs en sécurité, gouvernements et utilisateurs du quotidien.
Si vous voulez essayer le chiffrement PGP immédiatement sans installer de logiciel, KeychainPGP propose un outil PGP en ligne qui fonctionne entièrement dans votre navigateur.
Histoire de PGP
Phil Zimmermann a publié PGP 1.0 en juin 1991 en tant que logiciel libre, motivé par la conviction que la cryptographie forte devrait être accessible à tous les citoyens — pas seulement aux gouvernements et aux militaires. À l'époque, le chiffrement fort était classé comme munition selon les réglementations américaines sur l'exportation, et Zimmermann a fait l'objet d'une enquête criminelle de trois ans par le Service des douanes américain pour avoir distribué PGP à l'international. L'enquête a finalement été abandonnée en 1996 sans mise en examen, et l'affaire est devenue un moment marquant dans l'histoire des libertés numériques.
PGP a évolué à travers plusieurs incarnations commerciales. Zimmermann a fondé PGP Inc. en 1996, qui a été acquise par Network Associates (devenu McAfee) en 1997, puis finalement par Symantec en 2010. Tout au long de ces transitions, le protocole cryptographique sous-jacent a été standardisé sous le nom d'OpenPGP par l'Internet Engineering Task Force (IETF), garantissant que le protocole reste ouvert et interopérable indépendamment de la propriété commerciale.
La publication du standard OpenPGP signifiait que n'importe qui pouvait créer des implémentations compatibles. Cela a conduit à la création du GNU Privacy Guard (GnuPG ou GPG), une implémentation libre et open source qui reste l'un des outils PGP les plus utilisés aujourd'hui. Pour comprendre les différences entre ces implémentations, consultez notre guide sur PGP vs GPG.
Comment fonctionne le chiffrement PGP
Le chiffrement PGP repose sur une combinaison sophistiquée de techniques cryptographiques. Plutôt que d'utiliser une seule méthode, PGP emploie un modèle de chiffrement hybride qui combine la rapidité du chiffrement symétrique avec les avantages de distribution de clés du chiffrement asymétrique (à clé publique).
Cryptographie à clé publique
Au cœur de PGP se trouve la cryptographie à clé publique, également appelée cryptographie asymétrique. Chaque utilisateur PGP génère une paire de clés composée de deux clés mathématiquement liées :
- Clé publique — partagée ouvertement avec quiconque. Les autres utilisent cette clé pour chiffrer les messages qui vous sont destinés et pour vérifier vos signatures numériques.
- Clé privée (aussi appelée clé secrète) — gardée strictement confidentielle. Vous utilisez cette clé pour déchiffrer les messages qui vous sont envoyés et pour créer des signatures numériques.
La propriété fondamentale de ce système est que les données chiffrées avec une clé publique ne peuvent être déchiffrées qu'avec la clé privée correspondante, et vice versa. Cela élimine le besoin de transmettre un secret partagé entre les parties avant qu'elles puissent communiquer de manière privée.
Le modèle de chiffrement hybride
Bien que la cryptographie à clé publique résolve le problème de distribution des clés, les algorithmes asymétriques comme RSA sont coûteux en calcul pour chiffrer de grandes quantités de données. PGP résout ce problème en utilisant une approche hybride :
- Génération de clé de session — PGP génère une clé symétrique de session aléatoire et unique (généralement 128 ou 256 bits) pour chaque message.
- Chiffrement des données — Le contenu du message est chiffré à l'aide d'un chiffrement symétrique rapide (comme AES-256) avec la clé de session.
- Chiffrement de la clé de session — La clé de session elle-même est ensuite chiffrée à l'aide de la clé publique du destinataire (opération asymétrique).
- Empaquetage — Le message chiffré et la clé de session chiffrée sont regroupés et envoyés au destinataire.
Lorsque le destinataire reçoit le message, le processus est inversé : il utilise sa clé privée pour déchiffrer la clé de session, puis la clé de session déchiffrée est utilisée pour déchiffrer le contenu du message.
Signatures numériques PGP
Au-delà du chiffrement, PGP fournit des signatures numériques qui remplissent deux fonctions essentielles : l'authentification (prouver qui a envoyé un message) et l'intégrité (prouver que le message n'a pas été altéré en transit).
Le processus de signature fonctionne comme suit :
- PGP calcule un hash cryptographique (un condensé de longueur fixe) du contenu du message en utilisant un algorithme tel que SHA-256 ou SHA-512.
- Le hash est ensuite chiffré avec la clé privée de l'expéditeur, produisant la signature numérique.
- La signature est jointe au message.
Tout destinataire peut vérifier la signature en déchiffrant la signature avec la clé publique de l'expéditeur pour retrouver le hash original, en calculant indépendamment le hash du message reçu, puis en comparant les deux hash. S'ils correspondent, le message est authentique et non modifié.
Le standard OpenPGP
OpenPGP est le standard ouvert qui définit les formats de messages, les algorithmes et les procédures utilisés par les logiciels compatibles PGP. Ce n'est pas un produit logiciel en soi, mais plutôt une spécification que tout développeur peut implémenter.
Les documents de référence sont :
- RFC 4880 (novembre 2007) — La spécification principale actuelle du format de message OpenPGP.
- RFC 6637 (juin 2012) — Étend OpenPGP avec le support de la cryptographie à courbe elliptique (ECC).
- RFC 9580 (2024) — La dernière révision qui modernise le standard avec le support obligatoire d'Ed25519/X25519, des modes de chiffrement AEAD et des empreintes de clés améliorées.
OpenPGP garantit l'interopérabilité : un message chiffré avec KeychainPGP peut être déchiffré par GnuPG, Mailvelope ou toute autre implémentation conforme.
Réseau de confiance
L'une des caractéristiques distinctives de PGP est son modèle décentralisé de réseau de confiance (Web of Trust) pour établir l'authenticité des clés publiques. Contrairement au modèle centralisé d'autorité de certification (CA) utilisé par TLS/SSL, PGP permet aux utilisateurs eux-mêmes de se porter garants les uns des autres.
Le réseau de confiance fonctionne par la signature de clés : lorsque vous vérifiez l'identité de quelqu'un et confirmez qu'il contrôle une clé publique particulière, vous signez sa clé avec la vôtre. Cette signature est une déclaration publique que vous croyez que la clé appartient bien à la personne qu'elle prétend représenter.
Des outils comme KeychainPGP simplifient ce processus en permettant aux utilisateurs de travailler avec les clés directement via une interface intuitive, en utilisant le chiffrement par presse-papiers pour partager facilement des messages chiffrés et des clés publiques.
Algorithmes et types de clés PGP
PGP supporte une gamme d'algorithmes cryptographiques qui ont évolué au fil des avancées du domaine.
Algorithmes classiques
- RSA (Rivest-Shamir-Adleman) — L'algorithme asymétrique le plus déployé dans l'histoire de PGP. Les clés RSA de 2048 bits sont considérées comme le minimum de sécurité aujourd'hui, avec des clés de 4096 bits recommandées pour une protection à long terme.
- DSA (Digital Signature Algorithm) — Utilisé pour les signatures en combinaison avec ElGamal pour le chiffrement. Moins privilégié aujourd'hui.
- AES (Advanced Encryption Standard) — Le chiffrement symétrique dominant utilisé pour chiffrer le contenu des messages. AES-128 et AES-256 sont supportés.
- SHA-2 (SHA-256, SHA-384, SHA-512) — Fonctions de hash cryptographiques utilisées pour le calcul des condensés dans les signatures numériques.
Algorithmes modernes
La dernière génération d'implémentations OpenPGP supporte la cryptographie à courbe elliptique (ECC), qui offre une sécurité équivalente à RSA avec des tailles de clés considérablement plus petites :
- Ed25519 — Un algorithme de signature numérique basé sur Curve25519. Produit des signatures rapides et compactes. Recommandé dans le RFC 9580.
- X25519 (Curve25519 ECDH) — Utilisé pour l'échange de clés (chiffrement). Offre d'excellentes performances avec de solides propriétés de sécurité.
- NIST P-256 / P-384 / P-521 — Courbes elliptiques standardisées par le NIST. Supportées par OpenPGP mais généralement moins privilégiées que les algorithmes basés sur Curve25519.
Des outils modernes comme KeychainPGP supportent ces algorithmes contemporains, rendant la génération de clés avec Ed25519 et X25519 simple et directe.
Cas d'utilisation courants de PGP
- E-mail sécurisé — Le cas d'utilisation original et le plus connu. PGP permet de chiffrer le contenu des e-mails et de signer les messages pour prouver leur authenticité.
- Chiffrement de fichiers — PGP peut chiffrer des fichiers individuels ou des archives entières pour un stockage ou un transfert sécurisé.
- Vérification de logiciels — Les projets open source signent régulièrement leurs versions avec des clés PGP. Les utilisateurs peuvent vérifier ces signatures pour confirmer l'authenticité d'un téléchargement.
- Messagerie sécurisée — PGP peut être utilisé pour chiffrer tout message textuel, particulièrement utile sur les plateformes ne proposant pas de chiffrement de bout en bout.
- Vérification d'identité — Les empreintes de clés PGP servent d'identités numériques vérifiables. Les développeurs sur GitHub peuvent signer leurs commits avec PGP.
- Signature de documents — Les workflows juridiques utilisent parfois les signatures PGP pour établir la non-répudiation.
PGP aujourd'hui
Plus de trois décennies après sa création, PGP reste l'un des outils cryptographiques les plus importants disponibles. Le standard OpenPGP continue d'évoluer, avec le RFC 9580 introduisant des modernisations significatives incluant le support obligatoire des algorithmes à courbe elliptique modernes et les modes de chiffrement AEAD.
L'écosystème des outils PGP s'est considérablement enrichi. GnuPG reste l'implémentation de référence pour l'utilisation en ligne de commande. Des outils modernes comme KeychainPGP offrent des applications de bureau natives (Windows, macOS, Linux), une application Android, un CLI pour le scripting et une application web dans le navigateur — le tout construit sur le même moteur Sequoia-PGP en Rust.
Commencer avec PGP
Prêt à commencer avec le chiffrement PGP ? Voici les meilleures prochaines étapes :
- Essayez dans votre navigateur — Utilisez l'outil PGP en ligne KeychainPGP pour générer une paire de clés, chiffrer un message ou vérifier une signature sans rien installer.
- Lisez le guide débutant — Si vous êtes nouveau en cryptographie, notre guide PGP pour débutants vous accompagne pas à pas.
- Apprenez le workflow pratique — Notre guide Comment utiliser PGP couvre la génération de clés, le chiffrement et le déchiffrement, la gestion de votre trousseau et les bonnes pratiques.
- Comprenez le chiffrement par presse-papiers — Découvrez le chiffrement PGP par presse-papiers pour chiffrer et déchiffrer du texte directement depuis votre presse-papiers.
- Connaissez les outils — Comprenez les différences entre PGP et GPG pour choisir le bon outil pour votre workflow.
Le chiffrement PGP protège les communications sensibles depuis plus de trente ans. Avec les outils et standards modernes, il est plus accessible que jamais.