Le format OpenPGP

Traduit par :

Sébastien Person


      

Matthieu Hautreux

Odile Weyckmans

Relu et maintenu par :

Yvon Benoist


      

Ce document est gardé à jour afin de publier toutes les informations nécessaires pour développer des applications utilisant le format OpenPGP. Ce n'est pas une recette, étape par étape pour écrire une application. Il décrit seulement le format et les méthodes nécessaires pour lire, vérifier, générer, et écrire des paquets conformes pour circuler dans tout réseau. Il ne traite pas des questions de stockage et d'implémentation. Par contre, il met en évidence les solutions nécessaires pour éviter les failles de sécurité.

Le logiciel OpenPGP utilise une combinaison de clés publiques très solides et une cryptographie symétrique afin de fournir des services de sécurité pour les communications électroniques et le stockage des données. Ces services couvrent la confidentialité, la gestion de clés, l'authentification, et les signatures numériques. Ce document spécifie les formats des messages utilisés dans OpenPGP.


Table des matières
Statut de ce mémo
Note IESG
1. Introduction
Terminologie
2. Fonctions générales
La confidentialité grâce au cryptage
Authentification grâce à la signature numérique
Compression
Conversion Radix-64
Application exclusive de signature
3. Formats des éléments de données
Nombres scalaires
Entiers multiprécisions
Les Key ID (Identificateurs de clés)
Texte
Champ de temps
Identificateur string-to-key (S2K)
Type d'indentificateur string-to-key (S2K)
Utilisation des S2K
4. Syntaxe des paquets
Vue générale
En-tête des paquets
Longueur des paquets de l'ancien format
Longueur des paquets du nouveau format
Exemple de taille de paquet
Marqueurs de paquet
5. Types de paquets
Paquet de clé de session cryptée par clé publique (marqueur 1)
Signature de paquets (marqueur 2)
Types de signatures
Format d'un paquet de signature version 3
Format de la version 4 de la signature de paquet
Créer les signatures
Paquets de clés de session cryptés avec clé symétrique (Tag 3)
Paquets de signature à une passe (Tag 4)
Paquet d'information sur les clefs
Variantes de paquets sur les clefs
Formats du paquet sur les clefs publiques
Formats de paquet sur les clefs secrètes
Paquet des données compressées (Tag 8)
Paquet des données cryptées symétriquement (Tag 9)
Paquet de marqueur (Ancien paquet de libellé) (Tag 10)
Paquet de données littérales (Tag 11)
Paquet de confiance (Tag 12)
Paquet d'identification de l'utilisateur (Tag 13)
6. Conversions Radix-64
Une implémentation du CRC-24 en <<  C  >>
Création de l'armure ASCII
Encoder des données binaires en Radix-64
Décoder du Radix-64
Exemples de Radix-64
Exemple d'un message ASCII de type Armor
7. Structure de signature de texte en clair
Processus de distinction des tirets de début de ligne
8. Expressions régulières
9. Constantes
Algorithmes à clé publique
Algorithmes à clé symétrique
Algorithmes de compression
Algorithmes de hachage
10. Arrangement des paquets
Clés publiques transférables
Messages OpenPGP
Signatures détachées
11. Formats de clés améliorés
Structu