Chapitre 5. Types de paquets

Table des matières
Paquet de clé de session cryptée par clé publique (marqueur 1)
Signature de paquets (marqueur 2)
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
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)

Paquet de clé de session cryptée par clé publique (marqueur 1)

Un paquet de clé de session crypté par clé publique contient la clé de session utilisée pour crypter le message. Il peut y avoir ou non un ou plusieurs paquets de clés de sessions cryptées (clé publique ou clé symétrique) précédant un paquet de données cryptées symétriquement contenant un message crypté. Le message est crypté avec la clé de session, et la clé de session est elle-même cryptée et enregistrée dans le(s) paquet(s) de clés de sessions cryptées. Le paquet de données cryptées symétriquement est précédé par un paquet de clé de session cryptée par clé publique pour chaque clé OpenPGP avec laquelle le message est crypté. Le receveur du message trouve une clé de session qui est cryptée avec sa clé publique, décrypte la clé de session et l'utilise pour décrypter le message.

Le corps de ce paquet est constitué de :

Champs spécifiques à l'algorithme pour le cryptage RSA :

Champs spécifiques à l'algorithme pour le cryptage Elgamal :

La valeur << m >> dans les formules ci-dessus est obtenue à partir de la clé de session comme décrit ci-après. Dans un premier temps la clé de session est préfixée avec un identifiant d'algorithme d'un octet qui précise l'algorithme de cryptage symétrique utilisé pour crypter le paquet de données cryptées symétriquement qui suit. Ensuite, une somme de contrôle [checksum] de deux octets est rajoutée, checksum qui est égal à la somme des octets de la clé de session précédente, sans inclure l'identifiant d'algorithme, le tout modulo 65536. Cette valeur est ensuite étoffée comme décrit dans PKCS-1 block type 02 [RFC2313] pour former la valeur << m >> utilisée dans les formules ci-dessus.

Remarquez que lorsqu'une implémentation forme plusieurs PKESK avec une clé de session, formant un message qui peut être décrypté par plusieurs clés, l'implémentation DOIT faire à nouveau un étoffage PKCS-1 pour chaque clé.

Une implémentation PEUT accepter ou utiliser zéro comme identificateur de clé << joker >> ou << supposé >>. Dans ce cas, l'implémentation réceptrice essayera toutes les clés privées disponibles, en cherchant une clé de session décryptée valide. Ce format aide à réduire le trafic des analyses de messages.