Encriptar un archivo con clave GPG

A continuación explico de forma muy breve cómo se encripta un archivo cualquiera con una clave GPG. *Debes tener instalado en tu sistema GnuPG.

Para este ejemplo primero crearemos un archivo prueba.txt que contendrá la cadena de texto "Hola".

echo "Hola" > prueba.txt
cat prueba.txt 
Hola

Ahora ejecutamos el siguiente comando sobre el archivo prueba.txt.

gpg --passphrase abcd1234 -o prueba.gpg -c prueba.txt

Al argumento --passphrase se le puede pasar la cadena de texto que queramos. Eso si, debemos recordarla para luego desencriptar nuestro archivo. El argumento -o es para indicar el archivo de salida ya encriptado, y el argumento -c es para indicar que se va a realizar un cifrado simétrico (por defecto AES128). Si se quisiera cambiar el tipo de cifrado se puede sustituir la opción -c por --cipher-algo y a continuación especificar el tipo de cifrado, por ejemplo:

gpg --passphrase abcd1234 -o prueba.gpg --cipher-algo AES256 prueba.txt

Una vez hecho esto, se puede listar el contenido del directorio actual para ver lo que se ha generado.

ls -lrt
-rw-rw-r-- 1 xe26505 xe26505    5 nov 03 19:43 prueba.txt
-rw-rw-r-- 1 xe26505 xe26505   54 nov 03 19:43 prueba.gpg

Si queremos ver qué contiene el archivo prueba.gpg generado veremos que está encriptado:

cat prueba.gpg 
??K0pF`?%<??Z?8??>??Tgh???_u???O?
????8a?

Ahora ya podemos guardar para nosotros mismos o hacer llegar el archivo a una persona que conozca la passphrase para descifrarlo, de un modo seguro y fiable.

Para desencriptar el archivo bastaría con ejecutar el siguiente comando:

gpg --passphrase abcd1234 -d prueba.gpg 
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
Hola

Donde al argumento --passphrase se le ha de pasar la misma cadena que se utilizó para encriptar, y el argumento -d es el archivo encriptado.

Si lo que se quiere encriptar es un conjunto de archivos y directorios bastaría con empaquetarlos y/o comprimirlos en un archivo, por ejemplo .tar, .zip o .gz y repetir el proceso de este mini tutorial.

- "¿Y para qué necesito yo hacer todo esto?"

Si necesitas guardar algo de gran valor, por ejemplo una semilla de un monedero Bitcoin, un archivo de passwords, o necesitas enviar por mail datos con información sensible (informe médico, cuenta del banco, passwords, etc.) es altamente recomendable hacerlo de forma que nadie mas que tú y quien tú quieras lo pueda leer. Aquí puedes leer cómo usar GnuPG para tu correo electrónico.