SKS, criptografía de bolsillo
Keywords: criptografía, curva elíptica, clave pública, PGP, GPG

# SKS

## criptografía de bolsillo

### Instalación

SKS es una herramienta por línea de comandos que no precisa instalación. Las instrucciones de puesta en marcha que siguen son válidas para CPUs x86 en entornos Linux-Unix y Windows 2000, XP, NT. Para Windows 98/ME/95 hay unos consejos complementarios. Para otras arquitecturas conviene compilar los fuentes.

Desde la versión 0.93 no se garantiza la descarga de binarios en esta web: la multiplicidad de plataformas hace engorroso el mantenimiento de éstos. Se recomienda compilar los fuentes o instalar el paquete Debian sks-ecc.

### Procedimiento de instalación

Descomprime el correspondiente fichero (`.zip` para Windows o `.bz2` para Linux-Unix); copia el ejecutable en cualquier directorio al que apunte la variable `PATH` (bajo Linux-Unix, es posible que tengas que dar este paso como administrador). Si no lo has hecho ya, tienes que abrir una consola de comandos (terminal) que bajo Windows suele estar en un icono llamado "Símbolo del sistema" o similar. Una vez allí cambia al directorio raíz de la instalación y teclea:

        sks -ki skspkr

lo cual cargará las claves contenidas en el fichero `skspkr` en tu anillo de claves. Este fichero contiene mi clave pública y tres claves públicas de prueba (sus contraseñas son visibles en las etiquetas identificadoras, enmarcadas por barras `/contraseña/`). Ahora puedes comprobar que el ejecutable proviene realmente del autor, mediante:

        sks -v sks sks.skg     *** Linux-Unix ***
        sks -v sks.exe sks.skg *** Windows ***

que emitirá el mensaje:

     [00e14ca8]: Manuel Pancorbo Castro <mpancorbo@wanadoo.es>
    SKS. Firma correcta realizada en: 2004-05-10, 13:34

la fecha puede variar, dependiendo del momento justo de generar la firma. A continuación puedes generar tu propia clave pública:

        sks -kg > miclave

donde `miclave` es el nombre de fichero que va a contener tu clave pública para su distribución. El programa te pedirá una descripción identificativa de la clave y, a continuación, la contraseña. La clave pública se queda instalada por defecto en tu anillo de claves.

#### Para los usuarios de Windows 98/ME/95/3.1 y DOS

Antes de arrancar el programa, tienes que definir la variable de entorno `APPDATA`:

        set APPDATA=<directorio>

donde `<directorio>` es cualquier directorio del disco, que ya exista previamente, a tu elección y SIN la barra invertida final `[ \ ]`; por ejemplo:

        set APPDATA=C:\Cripto
        set APPDATA="C:\Mis Documentos"

Dentro de éste se creará un subdirectorio `\SKS` donde se guardará el anillo de claves. Es conveniente que automatices el proceso, incluyendo la orden anterior en el fichero `C:\Autoexec.bat` o bien escribiendo un guión de comandos (`.bat`) que defina la variable y lance la aplicación.

Bajo versiones antiguas de Windows, es posible que el programa vaya lento al calcular números aleatorios. Esto es porque la función `CryptGenRandom` no está disponible en estas versiones del sistema operativo y el programa elige un método alternativo, que cumple la norma ANSI, que es más lento.

### Compilar las fuentes

Como todo programa de libre distribución, se adjuntan las fuentes, en lenguaje `ANSI C`. El compilador usado ha sido `gcc`; en Windows existe un conjunto de utilidades GNU llamado MinGW que incluye este compilador. Otros compiladores pueden necesitar la revisión del fichero `Makefile` que se adjunta. Procedimiento:

        make                    *** Linux-Unix ***
        make -f Makefile.w32    *** Windows ***

Para instalarlo en el sistema (hay que tener privilegios de administrador):

        make install                   *** Linux-Unix ***
        make -f Makefile.w32 install   *** Windows ***

Se recomienda editar previamente el fichero `Makefile` (o `Makefile.w32`) y adaptarlo a las necesidades propias: directorio de instalación, idioma, uso de determinadas librerías, etc. Todas las variables que permiten personalizar la compilación se encuentran al principio del fichero.