         S K S  -  C R I P T O G R A F Í A   D E   B O L S I L L O

Consulta 'index.html', dentro de la carpeta 'doc', para acceder al manual
completo. La última versión la puedes encontrar en:
http://sks.merseine.nu


Introducción
============

SKS es una herramienta de cifrado/autentificación de clave pública mediante
línea de comandos, basada en la llamada criptografía de Grupo de Curva Elíptica
(CGCE). Su diseño minimalista está orientado a la criptografía de bolsillo, esto
es, una herramienta muy sencilla de usar, transportar (el ejecutable ocupa
aprox. 100 Kb), multiplataforma (Linux-Unix y diversos Windows, por el momento),
extremadamente rápida, libre de patentes y distribuída bajo licencia GPL. Todo 
ello sin comprometer un ápice la seguridad y ofreciendo por tanto una calidad 
de cifrado apta para los más exigentes.

Sus elementos criptográficos son:

    * Módulo de clave pública: curva elíptica sobre GF (2^191)
    * Módulo de clave simétrica: AES con clave de 192 bits en modo CTR
    * Función resumen, para firmas y contraseñas: TIGER (192 bits)
    * Módulo pseudoaleatorio: /dev/urandom en Linux-Unix y CryptGenRandom en
      Windows

Está basada -tanto en filosofía como en parte del código- en una aplicación
llamada "pegwit", que nació a finales de los 90 como contrapartida a un cada vez
más super-sofisticado PGP, lleno de funcionalidades superfluas y con un tamaño
cada vez más creciente y aparatoso que hacía difícil la evaluación del código
subyacente. 

Incluso con el desarrollo y popularización de GPG, una herramienta como SKS
tiene su razón de ser: la CGCE proporciona claves y firmas más compactas que RSA
o DH, para un mismo nivel de seguridad (la curva de SKS es igual de fuerte que
una clave RSA de 1024 bits) y además es mucho más rápida.

Además, GPG sigue siendo un programa muy sofisticado y pesado. SKS cabe en un
diskete, no necesita instalación previa, no conserva claves privadas y su uso es
inmediato. 

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 las
fuentes.

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.sig     *** Linux-Unix ***
    sks -v sks.exe sks.sig *** 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.

Licencia
========

SKS se distribuye bajo licencia GPL. Consulta 'gpl.txt' o 'gpl.html' en el 
directorio 'doc'.

---------------------------------------------------------------------
Copyright (C) 2004-2005  Manuel Pancorbo Castro <mpancorbo@gmail.com>