¿Qué es PGP? Guía completa sobre el cifrado Pretty Good Privacy

¿Qué es el cifrado PGP?

PGP (Pretty Good Privacy) es un programa de cifrado que proporciona privacidad y autenticación criptográficas para las comunicaciones de datos. El cifrado PGP utiliza una combinación de criptografía de clave simétrica y criptografía de clave pública para permitir a los usuarios cifrar mensajes, archivos y otros datos de modo que solo el destinatario previsto pueda leerlos. Creado originalmente por Phil Zimmermann en 1991, PGP se ha convertido en el estándar de cifrado de correo electrónico más utilizado del mundo y constituye la base de la especificación OpenPGP definida en el RFC 4880. Ya sea que necesite enviar un correo electrónico confidencial, verificar la identidad de un editor de software o proteger archivos sensibles, PGP proporciona un marco criptográfico probado en el que confían periodistas, investigadores de seguridad, gobiernos y usuarios cotidianos.

Si desea probar el cifrado PGP de inmediato sin instalar software, KeychainPGP ofrece una herramienta PGP en línea que funciona completamente en su navegador.

Historia de PGP

Phil Zimmermann publicó PGP 1.0 en junio de 1991 como software libre, motivado por la convicción de que la criptografía fuerte debería ser accesible para todos los ciudadanos, no solo para gobiernos y militares. En aquella época, el cifrado fuerte estaba clasificado como munición según las regulaciones estadounidenses de exportación, y Zimmermann fue objeto de una investigación criminal de tres años por parte del Servicio de Aduanas de EE. UU. por distribuir PGP internacionalmente. La investigación fue finalmente abandonada en 1996 sin cargos, y el caso se convirtió en un momento clave en la historia de las libertades digitales.

PGP evolucionó a través de varias encarnaciones comerciales. Zimmermann fundó PGP Inc. en 1996, que fue adquirida por Network Associates (posteriormente McAfee) en 1997 y finalmente por Symantec en 2010. A lo largo de estas transiciones, el protocolo criptográfico subyacente fue estandarizado bajo el nombre de OpenPGP por el Internet Engineering Task Force (IETF), garantizando que el protocolo permanezca abierto e interoperable independientemente de la propiedad comercial.

La publicación del estándar OpenPGP significó que cualquiera podía crear implementaciones compatibles. Esto llevó a la creación del GNU Privacy Guard (GnuPG o GPG), una implementación libre y de código abierto que sigue siendo una de las herramientas PGP más utilizadas en la actualidad. Para entender las diferencias entre estas implementaciones, consulte nuestra guía sobre PGP vs GPG.

Cómo funciona el cifrado PGP

El cifrado PGP se basa en una combinación sofisticada de técnicas criptográficas. En lugar de utilizar un solo método, PGP emplea un modelo de cifrado híbrido que combina la rapidez del cifrado simétrico con las ventajas de distribución de claves del cifrado asimétrico (de clave pública).

Criptografía de clave pública

En el núcleo de PGP se encuentra la criptografía de clave pública, también llamada criptografía asimétrica. Cada usuario PGP genera un par de claves compuesto por dos claves matemáticamente relacionadas:

  • Clave pública — se comparte abiertamente con cualquiera. Los demás usan esta clave para cifrar los mensajes destinados a usted y para verificar sus firmas digitales.
  • Clave privada (también llamada clave secreta) — se mantiene estrictamente confidencial. Usted utiliza esta clave para descifrar los mensajes que le envían y para crear firmas digitales.

La propiedad fundamental de este sistema es que los datos cifrados con una clave pública solo pueden ser descifrados con la clave privada correspondiente, y viceversa. Esto elimina la necesidad de transmitir un secreto compartido entre las partes antes de que puedan comunicarse de forma privada.

El modelo de cifrado híbrido

Aunque la criptografía de clave pública resuelve el problema de distribución de claves, los algoritmos asimétricos como RSA son costosos computacionalmente para cifrar grandes cantidades de datos. PGP resuelve este problema utilizando un enfoque híbrido:

  1. Generación de clave de sesión — PGP genera una clave simétrica de sesión aleatoria y única (generalmente de 128 o 256 bits) para cada mensaje.
  2. Cifrado de datos — El contenido del mensaje se cifra mediante un cifrado simétrico rápido (como AES-256) con la clave de sesión.
  3. Cifrado de la clave de sesión — La clave de sesión se cifra a su vez con la clave pública del destinatario (operación asimétrica).
  4. Empaquetado — El mensaje cifrado y la clave de sesión cifrada se agrupan y se envían al destinatario.

Cuando el destinatario recibe el mensaje, el proceso se invierte: utiliza su clave privada para descifrar la clave de sesión, y luego la clave de sesión descifrada se usa para descifrar el contenido del mensaje.

Firmas digitales PGP

Más allá del cifrado, PGP proporciona firmas digitales que cumplen dos funciones esenciales: la autenticación (demostrar quién envió un mensaje) y la integridad (demostrar que el mensaje no fue alterado en tránsito).

El proceso de firma funciona de la siguiente manera:

  1. PGP calcula un hash criptográfico (un resumen de longitud fija) del contenido del mensaje utilizando un algoritmo como SHA-256 o SHA-512.
  2. El hash se cifra con la clave privada del remitente, produciendo la firma digital.
  3. La firma se adjunta al mensaje.

Cualquier destinatario puede verificar la firma descifrando la firma con la clave pública del remitente para recuperar el hash original, calculando independientemente el hash del mensaje recibido y comparando ambos hashes. Si coinciden, el mensaje es auténtico y no ha sido modificado.

El estándar OpenPGP

OpenPGP es el estándar abierto que define los formatos de mensajes, los algoritmos y los procedimientos utilizados por el software compatible con PGP. No es un producto de software en sí, sino una especificación que cualquier desarrollador puede implementar.

Los documentos de referencia son:

  • RFC 4880 (noviembre de 2007) — La especificación principal actual del formato de mensaje OpenPGP.
  • RFC 6637 (junio de 2012) — Extiende OpenPGP con soporte para criptografía de curva elíptica (ECC).
  • RFC 9580 (2024) — La última revisión que moderniza el estándar con soporte obligatorio de Ed25519/X25519, modos de cifrado AEAD y huellas de claves mejoradas.

OpenPGP garantiza la interoperabilidad: un mensaje cifrado con KeychainPGP puede ser descifrado por GnuPG, Mailvelope o cualquier otra implementación conforme.

Red de confianza

Una de las características distintivas de PGP es su modelo descentralizado de red de confianza (Web of Trust) para establecer la autenticidad de las claves públicas. A diferencia del modelo centralizado de autoridad de certificación (CA) utilizado por TLS/SSL, PGP permite que los propios usuarios se avalen mutuamente.

La red de confianza funciona mediante la firma de claves: cuando verifica la identidad de alguien y confirma que controla una clave pública particular, firma su clave con la suya. Esa firma es una declaración pública de que usted cree que la clave pertenece realmente a la persona que dice representar.

Herramientas como KeychainPGP simplifican este proceso al permitir a los usuarios trabajar con las claves directamente a través de una interfaz intuitiva, utilizando el cifrado por portapapeles para compartir fácilmente mensajes cifrados y claves públicas.

Algoritmos y tipos de claves PGP

PGP soporta una gama de algoritmos criptográficos que han evolucionado con los avances del campo.

Algoritmos clásicos

  • RSA (Rivest-Shamir-Adleman) — El algoritmo asimétrico más desplegado en la historia de PGP. Las claves RSA de 2048 bits se consideran el mínimo de seguridad hoy en día, con claves de 4096 bits recomendadas para protección a largo plazo.
  • DSA (Digital Signature Algorithm) — Utilizado para firmas en combinación con ElGamal para el cifrado. Menos preferido en la actualidad.
  • AES (Advanced Encryption Standard) — El cifrado simétrico dominante utilizado para cifrar el contenido de los mensajes. Se soportan AES-128 y AES-256.
  • SHA-2 (SHA-256, SHA-384, SHA-512) — Funciones hash criptográficas utilizadas para el cálculo de resúmenes en firmas digitales.

Algoritmos modernos

La última generación de implementaciones OpenPGP soporta la criptografía de curva elíptica (ECC), que ofrece una seguridad equivalente a RSA con tamaños de clave considerablemente más pequeños:

  • Ed25519 — Un algoritmo de firma digital basado en Curve25519. Produce firmas rápidas y compactas. Recomendado en el RFC 9580.
  • X25519 (Curve25519 ECDH) — Utilizado para el intercambio de claves (cifrado). Ofrece un excelente rendimiento con sólidas propiedades de seguridad.
  • NIST P-256 / P-384 / P-521 — Curvas elípticas estandarizadas por el NIST. Soportadas por OpenPGP pero generalmente menos preferidas que los algoritmos basados en Curve25519.

Herramientas modernas como KeychainPGP soportan estos algoritmos contemporáneos, haciendo que la generación de claves con Ed25519 y X25519 sea sencilla y directa.

Casos de uso comunes de PGP

  • Correo electrónico seguro — El caso de uso original y más conocido. PGP permite cifrar el contenido de los correos electrónicos y firmar los mensajes para demostrar su autenticidad.
  • Cifrado de archivos — PGP puede cifrar archivos individuales o archivos comprimidos completos para un almacenamiento o transferencia seguros.
  • Verificación de software — Los proyectos de código abierto firman regularmente sus versiones con claves PGP. Los usuarios pueden verificar estas firmas para confirmar la autenticidad de una descarga.
  • Mensajería segura — PGP puede utilizarse para cifrar cualquier mensaje de texto, particularmente útil en plataformas que no ofrecen cifrado de extremo a extremo.
  • Verificación de identidad — Las huellas de claves PGP sirven como identidades digitales verificables. Los desarrolladores en GitHub pueden firmar sus commits con PGP.
  • Firma de documentos — Los flujos de trabajo legales a veces utilizan firmas PGP para establecer la no repudiación.

PGP en la actualidad

Más de tres décadas después de su creación, PGP sigue siendo una de las herramientas criptográficas más importantes disponibles. El estándar OpenPGP continúa evolucionando, con el RFC 9580 introduciendo modernizaciones significativas que incluyen soporte obligatorio de algoritmos de curva elíptica modernos y modos de cifrado AEAD.

El ecosistema de herramientas PGP se ha enriquecido considerablemente. GnuPG sigue siendo la implementación de referencia para el uso en línea de comandos. Herramientas modernas como KeychainPGP ofrecen aplicaciones de escritorio nativas (Windows, macOS, Linux), una aplicación Android, un CLI para scripting y una aplicación web en el navegador — todo construido sobre el mismo motor Sequoia-PGP en Rust.

Empezar con PGP

¿Listo para comenzar con el cifrado PGP? Estos son los mejores próximos pasos:

  1. Pruébelo en su navegador — Utilice la herramienta PGP en línea de KeychainPGP para generar un par de claves, cifrar un mensaje o verificar una firma sin instalar nada.
  2. Lea la guía para principiantes — Si es nuevo en criptografía, nuestra guía PGP para principiantes le acompaña paso a paso.
  3. Aprenda el flujo de trabajo práctico — Nuestra guía Cómo usar PGP cubre la generación de claves, el cifrado y el descifrado, la gestión de su llavero y las buenas prácticas.
  4. Comprenda el cifrado por portapapeles — Descubra el cifrado PGP por portapapeles para cifrar y descifrar texto directamente desde su portapapeles.
  5. Conozca las herramientas — Entienda las diferencias entre PGP y GPG para elegir la herramienta adecuada para su flujo de trabajo.

El cifrado PGP protege las comunicaciones sensibles desde hace más de treinta años. Con las herramientas y estándares modernos, es más accesible que nunca.