La generación de una pareja de claves pública y privada (también llamadas claves asimétricas) se puede realizar con la herramienta gpg indicando la opción --gen-key:
{code class="brush:plain;gutter:false"}
gpg --gen-key
{/code}
Durante el proceso se solicitan varios datos como se puede comprobar a continuación. En este ejemplo se han dejado las opciones por defecto (tipo de clave: RSA, tamaño 2048, nunca caduca):
{code class="brush:plain; highlight:[1,11,13,21,30,31,32,37,39,46,47]"}
usuario@Ubuntu:~/Documentos$ gpg --gen-key gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Por favor seleccione tipo de clave deseado: (1) RSA y RSA (predeterminado) (2) DSA y Elgamal (3) DSA (sólo firmar) (4) RSA (sólo firmar) ¿Su selección?: las claves RSA pueden tener entre 1024 y 4096 bits de longitud. ¿De qué tamaño quiere la clave? (2048) El tamaño requerido es de 2048 bits Por favor, especifique el período de validez de la clave. 0 = la clave nunca caduca = la clave caduca en n días w = la clave caduca en n semanas m = la clave caduca en n meses y = la clave caduca en n años ¿Validez de la clave (0)? La clave nunca caduca ¿Es correcto? (s/n) s Necesita un identificador de usuario para identificar su clave. El programa construye el identificador a partir del Nombre Real, Comentario y Dirección de Correo electrónico de esta forma: "Heinrich Heine (Der Dichter) " Nombre y apellidos: Javier García Dirección de correo electrónico: a12914057(arroba)nepwk.com Comentario: Clave de ejemplo Está usando el juego de caracteres `utf-8'. Ha seleccionado este ID de usuario: «Javier García (Clave de ejemplo) » ¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? v Necesita una frase contraseña para proteger su clave secreta. Es necesario generar muchos bytes aleatorios. Es una buena idea realizar alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar la red y los discos) durante la generación de números primos. Esto da al generador de números aleatorios mayor oportunidad de recoger suficiente entropía. No hay suficientes bytes aleatorios disponibles. Por favor, haga algún otro trabajo para que el sistema pueda recolectar más entropía (se necesitan 278 bytes más). .......+++++ .....+++++ ..+++++ +++++ gpg: clave 8ED627DC marcada como de confianza absoluta claves pública y secreta creadas y firmadas. gpg: comprobando base de datos de confianza gpg: 3 dudosa(s) necesarias, 1 completa(s) necesarias, modelo de confianza PGP gpg: nivel: 0 validez: 1 firmada: 0 confianza: 0-, 0q, 0n, 0m, 0f, 1u pub 2048R/8ED627DC 2011-12-01 Huella de clave = 9FB9 1D1E 732E 5DFF DA10 36F8 B284 727A 8ED6 27DC uid Javier García (Clave de ejemplo) sub 2048R/1DD43FDA 2011-12-01 usuario@Ubuntu:~/Documentos$
{/code}
Listado de las claves existentes
Con la opción -k puedes comprobar las claves públicas que tienes generadas:
Si quieres consultar tus claves privadas, puedes usar la opción -K (mayúscula)
Exportación de clave pública
Si deseas que otras personas te puedan enviar archivos cifrados de manera que sólo tú puedas descifralos, debes hacerles llegar tu clave pública. Con esa clave pública, las otras personas podrán cifrar sus archivos originales y, al enviártelos, sólo tú podras descifrarlos con tu clave privada. Si alguien intercepta los archivos no podrán ser su contenido. Sólo tienen acceso a él la persona que tiene el archivo original, y tú que podrás descifrar la copia cifrada que te envía.
Para poder enviar la clave pública antes debes exportarla de forma que se cree un archivo que contendrá dicha clave pública. Para ello debes usar la opción --export, junto con -o (--output) para indicar el nombre del archivo que la contendrá:
{code class="brush:plain;gutter:false"}
gpg -o nombreArchivoClavePublica --export nombreUsuarioClave
{/code}
Donde nombreArchivoClavePublica será el nombre del archivo que contendrá la clave pública exportada (puede tener cualquier extensión, pero se suele usar .gpg), y nombreUsuarioClave es el nombre, correo o comentario que haga referencia a la clave que se desea exportar.
Por ejemplo:
gpg --output clavePublica.gpg --export Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Ese archivo generado es el que debes enviar a las personas que deban enviarte archivos cifrados.
Si se prefiere que el archivo generado con la clave pública pueda visualizarse como caracteres, debe usarse la opción -a (--armor).
Importación de clave pública
Si otra persona desesa que le envíes algún archivo cifrado con su clave pública, antes debe enviarte esa clave que habrá generado en un archivo con la opción de exportación anterior. Cuando tengas el archivo con la clave pública, deberás importarla a tu anillo de claves (lista de claves públicas y privadas que hay guardadas en tu ordenador).
Para importar la clave del archivo con gpg debes usar la opción --import:
{code class="brush:plain;gutter:false"}
gpg --import nombreArchivoClavePublica
{/code}
Borrado de claves privada y pública
Es posible eliminar las claves que han sido generadas previamente. Para poder borrar la clave pública, primero debe borrarse la clave privada usando la opción --delete-secret-key seguido del nombre y apellidos (si has usado espacios recuerda usar comillas) asignado en la clave, también puedes usar el comentario (o parte incluso parte de él), o bien del correo electrónico que se había indicado:
{code class="brush:plain;gutter:false"}
gpg --delete-secret-key "Nombre Apellidos"
gpg --delete-secret-key correo@electronico
gpg --delete-secret-key comentario
{/code}
Una vez eliminada la clave privada (también llamada clave secreta), ya puedes eliminar la clave pública con la opción --delete-key, usando también alguna de estas opciones:
{code class="brush:plain;gutter:false"}
gpg --delete-key "Nombre Apellidos"
gpg --delete-key correo@electronico
gpg --delete-key comentario
{/code}