GNU Privacy Guard (GnuPG o GPG) es una herramienta de cifrado y firmas digitales desarrollado por Werner Koch, que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza el estándar del IETF denominado OpenPGP.

Crear un par de llaves pública y privada

gpg --gen-key

De ser necesario para generar entropía instalar rng-tools

sudo apt install rng-tools

Listar llaves públicas

gpg --list-key

Listar llaves privadas

gpg --list-secret-key

Listar firmas

gpg --list-sig

Listar huellas digitales

gpg --fingerprint

Firmar una llave pública

gpg --sign-key id_llave

Exportar una llave pública en formato ASCII

gpg -a --export id_llave > archivo.pub

-a Opción para generar el archivo en formato ASCII

Exportar una llave pública en formato binario

gpg --export id_llave > archivo.pub

Exportar una llave privada en formato ASCII

gpg -a --export-secret-key id_llave > archivo.priv

Exportar una llave privada en formato binario

gpg --export-secret-key id_llave > archivo.priv

Importar una llave pública

gpg --import archivo.pub

Importar una llave privada

gpg --import-secret-key archivo.priv

Encriptar y firmar un archivo con salida en formato ASCII

gpg -u id_emisor -r id_receptor -sae -o archivo.cifrado archivo.original

-u Es quien emite, cifra y firma del mensaje
-r Es a quien va dirigido el mensaje
-s Opción para firmar
-a Opción para generar el archivo en formato ASCII
-e Opción para cifrar
-o Opción para indicar la salida

Desencriptar un archivo

gpg -u id_receptor -d archivo.cifrado > archivo.descifrado

-u Es quien recibe, descifra y verifica el mensaje firmado
-d Opción para descifrar