Como usar GPG: Criptografía Asimétrica

By Jose Alberto Gallardo Pérez lunes, 9 de diciembre de 2013

¿Qué es la criptografía asimétrica?

La criptografía asimétrica consiste en que cada una de las partes que llevan a cabo la comunicación tiene una pareja de claves, una pública y otra privada.

Claves Públicas

Las claves públicas deberán intercambiarse entre el emisor y receptor de una comunicación


Claves Privadas

Las claves privadas son secretas y sólo las debe saber su dueño.


Comunicación con Criptografía Asimétrica

Una vez intercambiadas las claves públicas entre un emisor y un receptor de un mensaje, el emisor encriptará el mensaje con la clave pública del receptor, y a su vez el receptor la descifrará haciendo uso de su clave privada.


Criptografía asimétrica con GPG

Una vez explicado en qué consiste y cómo funciona la criptografía asimétrica, os voy a enseñar cómo encriptar de forma asimétrica en Linux con gpg. Para ello, lo primero que haremos será crear nuestra pareja de claves pública y privada.

$ gpg --gen-key



Tendremos que seleccionar: (1) RSA y RSA, 1024, 0, nombre y apellidos, correo electrónico, comentario y por último una contraseña.


¿Cómo ver nuestra lista de claves?

  • Para ver las claves públicas
$ gpg --list-keys





  • Para ver las claves privadas
$ gpg --list-secret-keys




¿Cómo exportar nuestras claves?

  • Para exportar las claves públicas que luego intercambiaremos en una comunicación.
$ gpg --armor --output fichero_destino.pub --export ClaveID

  • Para exportar las claves privadas por si queremos tenerla en otro lugar.
$ gpg --armor --output fichero_destino.pri --export-secret-key ClaveID


La claveID es la clave que podemos ver haciendo un  gpg --list-keys que en el caso de mi clave pública que quiero exportar es 6DEAA634. Por tanto si quiero que alguien me envíe un mensaje, deberé exportar mi clave pública para pasársela al emisor y que este encripte con mi clave pública y que posteriormente yo desencriptaré con mi clave privada.

Por tanto si quiero exportar mi clave pública escribiré

$ gpg --armor --output miclavepublica.pub --export 6DEAA634




Como vemos he generado el fichero miclavepublica.pub que será la clave que debemos intercambiar con el emisor, ya que será con la clave que este encriptará y yo lo desencriptaré con mi clave privada.

¿Cómo importar claves?

  • Para importar una clave pública de alguien que quiere que le mandemos información encriptada primero nos pasará su clave pública y a continuación la importaremos. En mi caso es ER.pub
$ gpg --import clave_compañero.pub



Como vemos en la imagen hemos vuelto a hacer un  gpg --list-keys para poder ver que hemos importado la clave de forma correcta. Por tanto procederemos a encriptar con la clave de nuestro compañero. Para ello escribiremos en la terminal.

$ gpg --output mifichero.txt.gpg --encrypt --recipient quiquerd@gmail.com mifichero.txt



En esta ocasión  mifichero.txt será el archivo que queremos encriptar, y gracias a --recipient quiquerd@gmail.com estaremos seleccionando con qué clave pública queremos encriptar, ya que al hacer  gpg --list-keys se nos mostrará junto a las claves públicas el correo asignado a cada clave y que debemos introducir en el  --recipient.

Por último le enviaremos a nuestro compañero el archivo  mifichero.txt.gpg el cuál lo desencriptará con su clave privada escribiendo lo siguiente.

$ gpg --output mifichero.txt --decrypt mifichero.txt.gpg


Post Tags:

José Alberto Gallardo Pérez

Soy un sevillano de 25 años, proyecto de ingeniero, profe de ajedrez, escéptico, loco, con mil ideas en la cabeza y poco tiempo para desarrollarlas. A veces me da por crear contenido en Monetizalia, Gallardowork, MusicCopyleft o donde estas ahora mismo.

No Comment to " Como usar GPG: Criptografía Asimétrica "