OpenPGP garantit des fonctionnalités d'intégrité de données pour les messages et les fichiers de données en utilisant les méthodes fondamentales suivantes:
signature numérique
cryptage
compression
conversion radix-64
OpenPGP utilise deux méthodes de cryptage pour garantir la confidentialité : le cryptage à clef symétrique et le cryptage à clef publique. Pour le cryptage par clefs publiques, cela est réalisé en utilisant un algorithme symétrique de cryptage. Chaque clef symétrique est utilisée seulement une fois. Une nouvelle clef, propre à la session (<< session key >>) est générée comme un nombre aléatoire à chaque message. Comme elle n'est utilisée qu'une seule fois, la clef est associée au message et transmise avec. Pour protéger la clef, celle-ci est cryptée avec la clef publique du destinataire. La séquence est la suivante:
L'émetteur crée un message.
OpenPGP (côté émission), génère un nombre aléatoire qui sera utilisé comme clef de session, pour ce message seulement.
La clé de session est cryptée en utilisant la/les clef(s) publique(s) de chaque destinataire. Le message commence par cette clef cryptée.
OpenPGP (côté émission), crypte le message en utilisant la clef de session qui forme le reste du message. Il est à noter qu'il est d'usage de compresser aussi le message.
OpenPGP (côté réception), décrypte la clé de session en utilisant la clef privée du destinataire
OpenPGP (côté réception), décrypte le message en utilisant la clé de session. Si le message était compressé, il sera décompressé.
La signature numérique, les services de confidentialité peuvent être appliqués tous les deux au même message. Premièrement, une signature est générée pour le message et y est attachée. Ensuite, le message et la signature sont cryptés à l'aide d'une clé de session symétrique. Enfin, la clef de session est cryptée grâce à la clef publique de cryptage et le tout est positionné devant le bloc encrypté