         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 versin la puedes encontrar en:
http://sks.merseine.nu


Introduccin
============

SKS es una herramienta de cifrado/autentificacin de clave pblica mediante
lnea de comandos, basada en la llamada criptografa de Grupo de Curva Elptica
(CGCE). Su diseo minimalista est orientado a la criptografa 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 rpida, libre de patentes y distribuda bajo licencia GPL. Todo 
ello sin comprometer un pice la seguridad y ofreciendo por tanto una calidad 
de cifrado apta para los ms exigentes.

Sus elementos criptogrficos son:

    * Mdulo de clave pblica: curva elptica sobre GF (2^191)
    * Mdulo de clave simtrica: AES con clave de 192 bits en modo CTR
    * Funcin resumen, para firmas y contraseas: TIGER (192 bits)
    * Mdulo pseudoaleatorio: /dev/urandom en Linux-Unix y CryptGenRandom en
      Windows

Est basada -tanto en filosofa como en parte del cdigo- en una aplicacin
llamada "pegwit", que naci a finales de los 90 como contrapartida a un cada vez
ms super-sofisticado PGP, lleno de funcionalidades superfluas y con un tamao
cada vez ms creciente y aparatoso que haca difcil la evaluacin del cdigo
subyacente. 

Incluso con el desarrollo y popularizacin de GPG, una herramienta como SKS
tiene su razn de ser: la CGCE proporciona claves y firmas ms 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 adems es mucho ms rpida.

Adems, GPG sigue siendo un programa muy sofisticado y pesado. SKS cabe en un
diskete, no necesita instalacin previa, no conserva claves privadas y su uso es
inmediato. 

Instalacin
===========

SKS es una herramienta por lnea de comandos que no precisa instalacin. Las
instrucciones de puesta en marcha que siguen son vlidas 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 "Smbolo del
sistema" o similar. Una vez all cambia al directorio raz de la instalacin 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 pblica y tres claves pblicas de prueba
(sus contraseas son visibles en las etiquetas identificadoras, enmarcadas por
barras /contrasea/). 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
continuacin puedes generar tu propia clave pblica:

    sks -kg > miclave

donde 'miclave' es el nombre de fichero que va a contener tu clave pblica para 
su distribucin. El programa te pedir una descripcin identificativa de la clave
y, a continuacin, la contrasea. La clave pblica 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 eleccin 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 guin de comandos (.bat) que
defina la variable y lance la aplicacin.

Bajo versiones antiguas de Windows, es posible que el programa vaya lento al
calcular nmeros aleatorios. Esto es porque la funcin CryptGenRandom no est
disponible en estas versiones del sistema operativo y el programa elige un
mtodo alternativo, que cumple la norma ANSI, que es ms lento.

Compilar las fuentes
====================

Como todo programa de libre distribucin, 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 revisin 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 instalacin, idioma, uso de
determinadas libreras, etc. Todas las variables que permiten personalizar la
compilacin 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>