PGP
PGP (Pretty Good Privacy)
Un sistema de cifrado que utiliza una combinación de criptografía simétrica y asimétrica para proporcionar confidencialidad, autenticación e integridad para correos electrónicos, archivos y datos, basado en un modelo descentralizado de red de confianza.
Detalle técnico
PGP opera en modo de cifrado híbrido: una clave de sesión simétrica aleatoria (AES-256) cifra los datos, luego la clave pública RSA/ECDH del destinatario cifra la clave de sesión. Las firmas digitales usan la clave privada del remitente para firmar un hash del mensaje. El estándar OpenPGP (RFC 4880, actualizado por RFC 9580) está implementado por GnuPG (GPG), una alternativa de código abierto. La gestión de claves usa el modelo de Red de Confianza (los usuarios avalan las claves de otros) en lugar de Autoridades de Certificación centralizadas. Servidores de claves como keys.openpgp.org distribuyen claves públicas. PGP se usa comúnmente para cifrado de correo electrónico, cifrado de archivos, firma de paquetes de software y firma de commits de Git.
Ejemplo
```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
{ name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
{ name: 'AES-GCM', iv },
key,
new TextEncoder().encode('secret message')
);
```