Paquets de clés de session cryptés avec clé symétrique (Tag 3)

Le paquet de clef de session crypté par clef symétrique contient le cryptage par clef symétrique par clef symétrique de la clef de session utilisée pour crypter le message. Un ou plusieurs paquets (il peut aussi y en avoir aucun) de clef de session cryptés ou non par clef symétrique précèdent un paquet de données cryptées symétriquement qui contient un message crypté. Le message est crypté avec une clef de session, et la clef de session est elle-même cryptée et sauvegardée dans le paquet de clef de session cryptée ou dans le paquet de clef de session cryptée par clef symétrique.

Si le paquet de données cryptée symétriquement est précédé par au moins un paquet de clef de session cryptée par clef symétrique , chacun indique une phrase mot de passe qui sera utilisée pour décrypter le message. Cela permet d'avoir un message crypté par un nombre de clefs publiques, et également par une ou plusieurs phrase mot de passe. Ce type de paquet est nouveau, et n'est pas généré par PGP 2.x ou PGP 5.0.

Le corps de ce paquet comprends :

Au cas où la clef de session cryptée n'est pas présente (ce qui peut être détecté d'après la longueur de paquets et les tailles d'identifieur S2K), l'algorithme S2K appliqué à la phrase secrète produit la clef de session pour décrypter le fichier, en utilisant l'algorithme de chiffrage symétrique venant du paquet de clef de session cryptée par clef symétrique.

Si la clef de session est présente, le résultat de l'application de l'algorithme S2K sur la phrase mot de passe est utilisé pour décrypter seulement le champs de clef de session cryptée en utilisant le mode CFB avec un Vecteur Initial (IV) tout en zéros. Le résultat du décryptage consiste en un identifieur d'algorithme d'un octet qui spécifie l'algorithme de cryptage à clef symétrique utilisé pour crypter le paquet de données cryptées symétriquement suivant, suivi par les octets de clef de session eux-mêmes.

Note : comme on utilise un IV de zéros pour ce décryptage, le spécifieur S2K DOIT ABSOLUMENT utiliser une valeur salée, soit un S2K salé soit un S2K salé itératif. La valeur salée fera en sorte que la clef de décryptage n'est pas répétée même si la phrase mot de passe est réutilisée.