SKS: criptografía de curva elíptica de bolsillo

 

 

Se trata de un programa tipo PGP, pero basado en curva elíptica y de reducidas dimensiones. Por supuesto, con las fuentes disponibles bajo licencia GPL.

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 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 y además es mucho más rápida.

Más información: http://pagina.de/sks

Cualquier comentario es bienvenido.

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).
txopi's picture

Algún pequeño comentario y felicitaciones


Antes de nada Shevek, felicitarte por el trabajo que has realizado. Se ve que has cuidado todos los detalles en el diseño, en la contrucción, en la web, etcétera. Me ha causado una muy buena impresión.

Sobre la web, lo único comentarte que en ningún momento mencionas tu nombre (aunque aparece en el README.txt y en las fuentes) y tampoco explicas lo que significan las siglas SKS, lo que resulta bastante curioso.

Tampoco me ha quedado claro si pegwit tiene algún futuro puesto que comentas esas serias debilidades en su implementación que tú has corregido en SKS utilizando otra curva. Si tu código está basado en ese programa, y tu has corregido en el tuyo su mayor problema, alguien podría corregir pegwit fácilmente no? No sé, igual estoy preguntando una tontería pero leyendo la web la verdad es que es algo que salta a la vista...

Por lo demás muy bien. ĝis ;)

Shevek's picture

Gracias ;-)


[txopi]: Antes de nada Shevek, felicitarte por el trabajo que has realizado. Se ve que has cuidado todos los detalles en el diseño, en la contrucción, en la web, etcétera. Me ha causado una muy buena impresión.

Muchas gracias. Me alegro de que te guste. Si quieres probarlo ya sabes mi dirección de correo y mi clave pública.

[txopi]: Sobre la web, lo único comentarte que en ningún momento mencionas tu nombre (aunque aparece en el README.txt y en las fuentes)

Bueno, por una parte tiendo a pasar lo más desapercibido posible en internet (como hacemos muchos, sobre todo por estos pagos criptográficos). Y por otra parte, me parece de recibo mostrar que detrás de un programa criptográfico hay un nombre que se puede contactar y comprobar su identidad.

De este conflico de contrarios surge la solución de compromiso que has señalado.

[txopi]: y tampoco explicas lo que significan las siglas SKS

Cuando empecé a desarrollar la aplicación, me busqué un nombre de trabajo "que ya cambiaría con el tiempo", que fue SKS. Después simplemente te da pereza cambiarlo, o no encuentras otro mejor y lo dejas como está.

SKS significa "Simpla Kriptografia Sistemo". Creo que sabes por dónde va ;-) Abusando de la ortografía, puede interpretarse como "Sistema Kriptográfico Simple". Si no lo menciono en la web es porque no me parecía relevante; a lo mejor lo incluyo en la próxima versión ;-)

[txopi]: Tampoco me ha quedado claro si pegwit tiene algún futuro puesto que comentas esas serias debilidades en su implementación que tú has corregido en SKS utilizando otra curva. Si tu código está basado en ese programa, y tu has corregido en el tuyo su mayor problema, alguien podría corregir pegwit fácilmente no?

La verdad es que, revisando lo que he escrito, no queda muy claro lo de pegwit.

Efectivamente, cuando se descubrió esta debilidad los desarrolladores de pegwit organizaron un grupo de trabajo con voluntarios para implementar una curva de 233 bits mediante ONB y añadir otras mejoras (sha256, interface gráfico, etc...) Sin embargo, con el tiempo la cosa se estancó y parece que ya está abandonada.

Mi interés en desarrollar SKS es anterior al estancamiento definitivo de pegwit, aunque tampoco estaba muy boyante por entonces. Pero sería un poco largo explicar las razones ahora.

[txopi]: Por lo demás muy bien. ĝis ;)

Dankegon! ;-) Y repito que si quieres probarlo puedes usar mi clave y mi dirección. Por otro lado, supongo que has visto los pequeños interfaces PHP que he puesto de prueba (http://pagina.de/sks/misc.html )

Ĝis la, krokodil'!

SKS, criptografía de curva elíptica de bolsillo
http://sks.anarres.tk