CuaimaCrypt

Por Julián Bolívar

Muy buenos días a todos. Les quería comentar sobre un proyecto personal, en el cual ya llevo varios meses trabajando, que se llama CuaimaCrypt.

La librería CuaimaCrypt, y su implementación como aplicación WinCuaimaCrypt, nacieron como proyecto el 28 de Mayo del 2007, el mismo día en que fue cerrado RCTV (por Chávez en Venezuela), cuando me di cuenta que no disponía de ninguna herramienta que me permitiera comunicarme de una manera segura por Internet, sin que mi información esté expuesta a que “cualquiera” la pueda ver...

Como yo sé que de forma pública no existe ningún algoritmo que cumpla completamente con "MIS REQUERIMIENTOS" de seguridad, y basado en mi experiencia previa con la extensión que hice del famoso algoritmo blowfish, el cual llame “blowfish plus”, decidí hacer mi propio algoritmo.

La primera decisión fue qué tipo de algoritmo sería, uno de codificación por bloques o por codificación por secuencias de bits seudoaleatorias; después de mucho investigar y hacer pruebas logré integrar ambos modelos en uno, desarrollando el "Shift Codec", el cual permite hacer una codificación con una secuencia seudoaleatoria no cíclica.

Estos Shift Codec se agrupan en lo que se llama un Rake Codec, lo cual permite procesar 128 bits simultáneamente, y estos Rake Codecs se agrupan en secuencia unidos por scramblers de bits, con 4 operaciones posibles. Los Shift Codecs están encadenados con otros Shift Codecs, lo cual hace que sus estados en todo momento dependan de datos que entraron en el proceso; adicionalmente existe una secuencia de salto de los estados del shiftcodec

Esta estructura de codificación permite extender la seguridad del algoritmo hasta las necesidades particulares de cada quien con sólo agregar más bloques.

Todos los parámetros iniciales del algoritmo, semillas, scramblers entre bloques, secuencia de salto de la semilla, cadena de los Shift Codec, son inicializados por la clave que define los estados de los atractores de Lorenz.

Después se implementó WinCuaimaCrypt, la cual es en sí la aplicación de codificación final para el usuario, que permite codificar archivos e emails para su envío por Internet.

Para WinCuaimaCrypt se definieron 3 niveles de seguridad, “rápido” (fast), “normal” (normal) y “paranoico” (paranoid); los cuales implementan el CuaimaCrypt de 6, 9 y 16 bloques respectivamente.

La ecuación que define el nivel de seguridad de CuaimaCrypt es:

N^5 [(N-1)!]^3 2^(258N+29)

Donde N es el número de bloques en el algoritmo.

Para el caso de N=6 esta ecuación da como resultado 7.1220x10^484, lo cual es equivalente a un algoritmo de 1610 bits.

En el caso de N=9 la ecuación da como resultado 2.0384x10^726, lo cual es equivalente a un algoritmo de 2412 bits

Y para el caso de N=16, la ecuación da un valor de 5.6466x10^1293, lo cual es equivalente a un algoritmo de 4297.

Si comparamos estos valores con las llaves de algoritmos conocidos de clave simétrica vemos:

  • Blowfish: 448 bits
  • GOST: 256 bits
  • REDOC: 160 bits
  • IDEA: 128 bits
  • MMB: 128 bits
  • SAFER K-128: 128 bits
  • NewDES: 120 bits
  • 3-WAY: 96 bits
  • CRAB: 80 bits
  • SKIPJACK: 80 bits (Algoritmo Clasificado por NSA)
  • CAST: 64 bits
  • Madryga: 64 bits
  • FEAL: 64 bits
  • LOKI: 64 bits
  • SAFER K-64: 64 bits
  • DES: 56 bits

Como podemos ver en el modo “rápido” CuaimaCrytp tiene 1610 bits, que es aproximadamente 3.5 veces el nivel de seguridad ofrecido por Blowfish.

Otra característica de CuaimaCrypt es que el nivel de seguridad no está determinado por la longitud del password, ya que así éste sea de una sola letra, se generan todos los valores iniciales con valores dependientes de éste, claro que una clave de menor a 9 letras NO es una práctica recomendada ya que sería extremadamente vulnerable a un ataque por fuerza bruta contra la clave en sí, por lo cual la seguridad de la clave es responsabilidad del usuario.

En las pruebas realizadas al algoritmo, en archivos de tamaño mediano (1 MB), se tiene una distribución de caracteres completamente plana, con una variación de sólo el 0.05% máximo sobre toda la tabla ASCII.

En archivos pequeños, menores a 30kB, se suele tener un Overhead, el cual para archivos menores a 8kB suele ser de aproximadamente 8kB, siendo esto por la implementación de la aplicación y no por el algoritmo de codificación; esto no se presenta en archivos grandes donde el overhead es de pocos bytes.

Para concluir con esta historia, deseo invitarles a probar WinCuaimaCrypt y quedo a la espera de sus comentarios.

Saludos

Julian Bolívar

Comentarios

Selecciona arriba tu forma preferida de visualizar
los comentarios y pulsa el botón para guardar tus
preferencias. Éstas sólo se recordarán para tus
próximas visitas si eres usuario registrado.
Pues para empezar... por anónimo
Preocupante por anónimo
Si es Open Source. por jbolivar
Saludos a todos por jbolivar
qué requerimientos? por anónimo
relativismo por anónimo
Codigo abierto por anónimo
No hay informacion... por anónimo
¿Qué más quieres? por anónimo

Opinar

Los comentarios publicados en este sitio expresan sólo la opinión de su autor, quien será el único responsable de los mismos. La publicación de cualquier comentario no supone en absoluto la conformidad del responsable de este sitio con su contenido.

Como norma general, en este sitio no se publican comentarios que incluyan datos personales, ni direcciones de correo, ni ninguna otra forma de establecer contactos privados o comerciales, así como comentarios que no aportan nada, fuera de tema o que no se ajustan a la netiqueta, la ortografía o la educación.

Para poder enviar tus comentarios has de permitir las cookies del sitio.

Por favor, escribe arriba el resultado de la operación planteada. Gracias.
  • Etiquetas HTML permitidas: <a> <em> <strong> <ul> <ol> <li> <p> <u> <br><strike> <blockquote> <div>

Más información sobre las opciones de formato...