Esto puede ayudar si tú ya estás familiarizado con el concepto de criptografía en general y de criptografía de llaves públicas en particular. Sin embargo, aquí hay una pequeña introducción sobre la criptografía de llaves públicas.
Primero, alguna terminología elementaria. Supongamos yo quiero enviarte un mensaje, pero yo no quiero que nadie más que tú la pueda leer. Yo puedo "encriptar" el mensaje, el cual significa que yo puedo enviar el mensaje y hacerlo imposible de leer para cualquier persona, exepto tú, el principal receptor del mensaje. Yo te envío una "llave" criptográfica para encriptar el mensaje, y tú tienes que usar la misma llave para "desencriptarlo". Simplemente así es como trabaja en criptosistemas convencionales "llave simple".
En los criptosistemas convencionales, tales como el estándar estadounidense federal de encriptación de datos, una llave simple es usada tanto para encriptar o desencriptar. Esto significa que una llave inicialmente necesita ser transmitida por medio de canales seguros, antes de poder encriptar el mensaje, una vez encriptado estos pueden ser enviados por medio de canales no tan seguros. Esto puede ser inconveniente. Si tú tienes un canal seguro para intercambiar llaves, entonces por qué necesitas criptografiar?.
En criptosistemas "llave pública", cada uno tiene dos llaves complementarias, una llave pública revelada y una llave secreta (también frecuentemente llamada como llave privada). Cada llave desasegura el código que la otra llave hace. Conociendo la llave pública no te ayudará a deducir la correspondiente llave secreta. La llave pública puede ser publicada y transmitida a través de la red de trabajo. Este protocolo proporciona privacidad sin la necesidad de canales seguros que los sistemas convencionales requieren.
Cualquier persona puede usar la llave pública del receptor para encriptar un mensaje para esa persona, y el receptor usará su llave secreta para desencriptar el mensaje. Nadie más que el receptor podrá desencriptarlo, porque nadie más tiene acceso a la llave secreta. Ni siquiera la persona que encriptó el mensaje podrá desencriptarlo.
La autentificación del mensaje también es proporcionada. La llave secreta del dueño puede ser usada para encriptar un mensaje, con esto "fírmalo". Esto crea una firma digital al mensaje, el cual el receptor puede checar usando la llave pública del transmisor para desencriptarlo. Esto muestra que el transmisor fue el verdadero creador del mensaje, y que consecuentemente no ha sido alterado por nadie más, porque él únicamente posee la llave secreta para crear esa firma. La falsificación de un mensaje firmado es imposible, y el transmisor no podrá denegar esa firma.
Estos dos procesos pueden estar combinados para proveer tanto como privacidad y autentificación; primero firmando un mensaje con tu llave secreta, y después encriptando el mensaje firmado con la llave pública del receptor. El receptor cambia estos pasos, primero, descodifica el mensaje con su llave secreta, después checa la firma del mensaje con la llave pública del transmisor. Estos pasos están hechos automáticamente por el software del receptor.
Ya que el algoritmo de encriptación de la llave pública es mucho más lenta que la encriptación convencional de una llave simple, la encriptación es mejor lograda usando un algoritmo convencional de alta calidad rápido de encriptación de llave simple para encriptar el mensaje. El mensaje original sin encriptar es llamado "plaintext". En un proceso invisible para el usuario, una llave random temporal encripta el archivo plaintext. Entonces la llave pública del receptor es usada para encriptar esta llave random convencional. Esta llave pública encriptada llave de "sesión" convencional es enviada junto con el texto encriptado (llamado "ciphertext") al receptor. El receptor usa su propia llave secreta para recuperar esa llave de sesión convencional, y después usa esa llave para correr el algoritmo convencional rápido de llave simple para desencriptar el mensaje "ciphertext".
Las llaves públicas están guardadas en "certificados de llave" individual, que incluye la identificación (ID) del dueño (la cual es el nombre de la persona), una marca de tiempo de cuando el par de llaves fueron generadas, y el material de llave actual. Los certificados de llave públicos contienen material de la llave pública, mientras que los certificados de llave secreta contienen material de la llave secreta. Cada llave secreta es también encriptada con su propio password, en caso de que sea robada. Un archivo de llave , o "key ring" contiene uno o más de estos certificados de llave. Key rings públicos contienen certificados de llave pública, y key rings secretos contienen certificados de llave secreta.
Las llaves son también referenciadas internamente por una "key ID" (identificación de llave), la cual es una "abreviación" de la llave pública.
PGP utiliza "message digests" para formar firmas. Un message digests es una función de un sentido fuerte criptográficamente de 128-bits. Con esto PGP obtiene una representación del mensaje y es usado para detectar cambios en el mensaje.
Los documentos son firmados anteponiéndolos con certificado de firma, los cuales contienen la llave ID de la llave que fue usada para firmarlo, un mensaje clasificado firmado con llave secreta del documento, y un "timestamp" de cuando la firma fue hecha. La llave ID es usada por el receptor para buscar la llave pública del transmisor para checar la firma. El software del receptor automáticamente busca la llave pública del transmisor y la ID del usuario en el Key ring público del receptor.
Archivos encriptados son antepuestos por la llave ID de la llave pública usada para encriptarlos. El receptor usa esta llave ID del mensaje antepuesta para buscar la llave secreta necesaria para desencriptar el mensaje. El software del receptor automáticamente busca la llave desencriptadora necesaria en el key ring secreto del receptor.
Estos dos tipos de key rings son el método principal para el almacenamiento y manejo de llaves públicas y secretas. Mejor que guardar llaves individuales en archivos de llave separados, están reunidos en key rings para facilitar la búsqueda automática de llaves ya sea por la llave ID o por el ID del usuario. Cada usuario guarda su propio par de key rings. Una llave pública individual es temporalmente guardada en un archivo separado para enviarla a tu amigo quien entonces la añadirá a su key ring.