Información obtenida principalmente de aquí.

Edición de gpg.conf

Editamos el archivo de marras con nano ~/.gnupg/gpg.conf para incluir al final lo siguiente:

personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

Creación de la clave

ana@pryan:~$ gpg --gen-key
 ...

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 4                       
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096           
Requested keysize is 4096 bits                  
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

 ...

Creación de subclaves

Ahora crearemos una subclave sobre nuestra clave anterior.

gpg --edit-key mi@correo.com
  ...
Command> addkey
Key is protected.

You need a passphrase to unlock the secret key for
user: "Mi nombre <mi@correo.org>"
4096-bit RSA key, ID 6AA15948, created 2017-01-03

Please select what kind of key you want:
   (2) DSA (sign only)
   (4) Elgamal (encrypt only)
   (5) RSA (sign only)
   (6) RSA (encrypt only)
Your selection? 6
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 1y
Key expires at Thu 04 Jan 2018 20:31:27 CET
Is this correct? (y/N) y
Really create? (y/N) y

 ...

Y después de crearla la guardamos.

Command> save

Exportación de clave pública

Ejecutamos el siguiendo comando.

gpg --armor --export mi@correo.com > miClave.asc

Importación de clave pública

Suponiendo que clave.gpg es un archivo con la clave pública de la persona con la que nos queremos comunicar. Debermos añadir esta clave de la siguiente forma.

gpg --import clave.gpg
gpg: key 9E98BC16: public key imported
gpg: Total number processed: 1
gpg:               imported: 1

Con gpg --list-keys mostraremos la lista de claves, las recientemente añadidas deberán aparecer.

Cifrado de mensajes

Para cifrar un mensaje documento.txt con una clave pública asociada a mi@correo.com y guardar el texto cifrado en documento.gpg ejecutamos lo siguiente.

gpg --output documento.gpg --encrypt --recipient mi@correo.com documento.txt

Descifrado de mensajes

Para descifrar documento.gpg y guardarlo en documento ejecutamos lo siguiente.

gpg --output documento --decrypt documento.gpg

Otras cosas de interes

Para comprobar la autenticidad de una clave podemos comprobar su “fingerprint” mediante el comando siguiente:

gpg --edit-key mi@correo.comando
....
Command> fpr
pub  1024D/9E98BC16 1999-06-04 usuario (Executioner) <mi@correo.com>
             Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

Verificando con el originador que este código es idéntico.

La firmaremos con:

Command> sign

Y comprobaremos las firmas con

Command> check