ALGORITMOS SIMÉTRICOS

INTRODUCCIÓN

La criptografía simétrica, también llamada criptografía de clave secreta  o criptografía de una clave, es un método criptográfico en el cual se usa una misma clave para cifrar y descifrar mensajes. Las dos partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar. Una vez que ambas partes tienen acceso a esta clave, el remitente cifra un mensaje usando la clave, lo envía al destinatario, y éste lo descifra con la misma clave.

INCONVENIENTES

Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo. En otras palabras, no debería ser de ninguna ayuda para un atacante conocer el algoritmo que se está usando. Sólo si el atacante obtuviera la clave, le serviría conocer el algoritmo. Dado que toda la seguridad está en la clave, es importante que sea muy difícil adivinar el tipo de clave. Esto quiere decir que el abanico de claves posibles, o sea, el espacio de posibilidades de claves, debe ser amplio. Actualmente, los ordenadores pueden descifrar claves con extrema rapidez, y ésta es la razón por la cual el tamaño de la clave es importante en los criptosistemas modernos.

El principal problema con los sistemas de cifrado simétrico no está ligado a su seguridad, sino al intercambio de claves. Una vez que el remitente y el destinatario hayan intercambiado las claves pueden usarlas para comunicarse con seguridad, pero ¿qué canal de comunicación que sea seguro han usado para transmitirse las claves? Sería mucho más fácil para un atacante intentar interceptar una clave que probar las posibles combinaciones del espacio de claves.

Otro problema es el número de claves que se necesitan. Si tenemos un número n de personas que necesitan comunicarse entre sí, se necesitan n/2 claves para cada pareja de personas que tengan que comunicarse de modo privado. Esto puede funcionar con un grupo reducido de personas, pero sería imposible llevarlo a cabo con grupos más grandes.

CARACTERISTICAS

 

 

PROTOCOLO

 

 

FORTALEZAS

 

 

VULNERABILIDADES

 

CAPACIDAD Y TIEMPO DE PROCESAMIENTO

REQUERIMIENTOS (FISICOS / LÓGICOS) PARA SU PROCESAMIENTO

 

 

 

 

DES

·          Algoritmo simétrico

·         codifica bloques de 64 bits.

 

·         Consta de 16 rondas

·         para descifrar  basta con usar le mismo algoritmo en orden inverso

·         es muy rápido y fácil de implementar

·  Emplea una clave demasiado corta, lo cual hace que el avance actual de las computadoras los ataques con fuerza bruta se puedan llevar a cabo.

 

·  Tamaño de bloque pequeño.

·  43 clocks/byte

·       Lo mínimo que se puede usar para su implementación es una fpslic (field programmable system level integrated circuit) este dispositivo se basa en su familia de fpgas at40k a la que ha añadido un microprocesador risc avr de 8 bits y 20 mips (mega instruction persecond) además de una memoria de programa de 36kbytes.

 

 

AES

·         Cifrado por bloques  soporta bloques y longitud de claves variables entre 128 a 256 bits

·         Combina la seguridad-eficiencia-velocidad, sencillez y flexibilidad

·  Este algoritmo reduce la longitud de la llave efectiva del algoritmo en 2 bits. Esto significa que las longitudes de las llaves de 128, 192 y 256 son reducidas a 126, 190 y 254. Pero quienes descubrieron esto dicen que no hay relevancia practica para este algoritmo

·  Velocidad de cifrado: 70.7 MB/s

·  Velocidad de descifrado: 71.5 MB/s

·       Para su buen funcionamiento necesita trabajar en plataformas de 32 bits y procesadores de 8 bits

 

 

 

 

IDEA

·      El espacio de claves es mucho más grande: 2128 ≈ 3.4 x 1038

·      Todas las operaciones son algebraicas.

·      No hay operaciones a nivel bit, facilitando su programación en alto nivel.

·      Es más eficiente que los algoritmos de tipo feistel, porque a cada vuelta se modifican todos los bits de bloque y no solamente la mitad.

·     Se pueden utilizar todos los modos de operación definidos para el des.

·      Han sometido al algoritmo idea a técnicas de criptoanálisis sin encontrar hasta el momento debilidad alguna en el algoritmo.

·   Ofrece una velocidad de cifrado de unos 880 kbps, y en un vax 9000 de unas cuatro veces más.

·       En un procesador intel 386 a 33 mhz

 

 

 

BLOWFISH

·   Tiene una estructura sencilla lo que lo hace fácil de utilizar.

 

·   Variables seguras, la longitud de la clave es variable y puede ser hasta de 448 bits, lo que permite negociar entre trabajar a alta velocidad y una alta seguridad.

·   utiliza claves que van desde 32 hasta 448 bits.

· Existe una clase de llaves que pueden ser detectadas en 14 rondas o menos pero no rotas por el algoritmo blowfish.

·  19.8 clocks / byte

·   Puede ejecutarse en menos de 5k de memoria.

 

·   Se necesita un total de 521 ejecuciones del algoritmo de cifrado blowfish para producir las subclaves y las cajas s.

 

 

 

 

 

TWOFISH

·           Un sistema de cifrado 128-bit bloque simétrico.

·           Longitudes de clave de 128 bits, 192 bits y 256 bits.

·           No hay claves débiles.

·           Eficiencia, tanto en el intel pentium pro y otros programas y plataformas de hardware.

·           Diseño flexible, acepta llaves de longitud variable.

·           Aplicable en una amplia variedad de plataformas y aplicaciones, y adecuado para un cifrado de flujo, la función hash y mac.

·           Diseño sencillo, tanto para facilitar su análisis y facilidad de implementación.

·           Llave-horario relativamente compleja.

Hasta el momento no se han encontrado vulnerabilidades.

·  18.1 clocks / byte

·           Puede ser implementado en un micro de 8 bits con 64 bytes de RAM.

·           Antes de ejecutar el algoritmo, precomputar los valores de las tablas s-box.

·

 

 

 

 

 

 

 

RC5

·         El número variable de iteraciones son vueltas r(0,1,2,...255) es otro de los parámetros que considera rc5.

·         La clave de longitud variable es una clave k (en octetos que van desde 1 hasta 255), y que da también la oportunidad de moverse entre alta velocidad y alta seguridad.

·         Su estructura permite que sea fácilmente implementado y de igual manera da la oportunidad de evaluar y determinar la con facilidad la robustez del algoritmo.

·         Proporciona alta seguridad la cual puede oscilar dependiendo de la selección de parámetros, de manera que eligiendo los adecuados, la seguridad será sumamente elevada.

·         Se incorporan rotaciones circulares de bits las cuales dependen de los datos introducidos, esto hace que rc5 sea más robusto aún, por consiguiente, que sea prácticamente irrompible para cualquier criptoanalista.

·         RC5 12-vueltas (con bloques de 64 bits) está sujeto a un ataque diferencial usando 244 textos escogidos (biryukov y kushilevitz, 1998)

·         Ya que el algoritmo tiene tres parámetros variables, el tiempo de procesamiento también lo es de acuerdo a lo complejo de los parámetros.

 

·         ejemplo: para una clave de 128: velocidad de cifrado 243 mb/s

·         Adecuado para ser implementado en hardware o software, ya que utiliza computación básica y operaciones que comúnmente se encuentran en microprocesadores.

·         Sus requerimientos de mínimo espacio de memoria hacen que sean un algoritmo apropiado para su uso en tarjetas.

·         
Adaptable a procesadores de diferentes tamaños de palabra ya que uno de los parámetros que utiliza es el tamaño de la palabra w (16,32 o 64 bits).

 

 

GOST

La planificación de claves es muy simple: la clave de 256 bits es fragmentada en ocho subclaves de 32 bits, cada una de las cuales es utilizada cuatro veces en el algoritmo; de las rondas 1 a 24 las subclaves se introducen al algoritmo una por una en orden ascendente; en las rondas 25 a 32 las subclaves se introducen de manera inversa (la subclave 8 en la ronda la subclave 7 en la ronda 26, y así sucesivamente).

Gost presenta en su estructura una rotación en lugar de una permutación. incluso esta debilidad es compensado por el alto número de etapas utilizadas

      Gost está basado en des por lo tanto ofrece aproximadamente         43 clocks/byte.

       Para su buen funcionamiento necesita trabajar en plataformas de 32 o 64 bits.

 

 

A5-1, A5-2,

A5-3

 

La transmisión en GSM se realiza en bloques de datos. Cada bloque contiene 114 bits

disponibles para información. A5/1 produce una secuencia de 228 bits de flujo, que servirá

como clave de cifrado para el mensaje en claro.

Los dos algoritmos de cifrado de voz son imperfectos, pero no de manera obvia.

Los ataques sobre A5/1 y A5/2 hacen uso de sutiles 
estructuras del algoritmo, y logran descifrar el tráfico de voz en 
tiempo real en equipamientos informáticos de gama media.

A5-1 9.6 kbps

A5-2 80 kbps 

A5-3 14.4Mbit/s

F     Funciona sobre telefonía que soporte la tecnología a la que es aplicada cada algoritmo por ejemplo: GSM, 3GPP, etc.

 

 

CAST

Cast codifica bloques de 64 bits empleando claves de 64 bits, consta de ocho rondas y deposita prácticamente toda su fuerza en las s-cajas. Emplea seis s-cajas de 8*32 bits

Este algoritmo se ha demostrado resistente a las técnicas habituales de criptoanálisis, y sólo se conoce la fuerza bruta como mecanismo para atacarlo.

 

Es un buen sistema de cifrado en bloques con una clave cast-128 bits, es muy rápido y es gratuito.

Cuanto más grandes sean las s-cajas, más resistente será el algoritmo resultante, aunque la elección de los valores de salida para que den lugar a un buen algoritmo no es en absoluto trivial.

 

 

 

ARIA

 

 

 

Aria es capaz de resistir la totalidad de los ataques conocidos sobre procesos de cifrado-descifrado por bloques.

       No se ha encontrado, durante la aplicación de los ataques considerados, alguna debilidad observable.

 Aria está basado en aes por lo tanto ofrece aproximadamente los mismos tiempos

 

·  velocidad de cifrado: 70.7 MB/s

 

·     velocidad de descifrado: 71.5 MB/s

         La implementación puede llevarse a cabo en cualquier lenguaje de programación pero es más recomendable usar java ya que podría lanzarse en cualquier máquina que tuviera instalada la correspondiente máquina virtual de java.

 

          El algoritmo es seguro y adecuado para la mayoría de las implementaciones de software y hardware de 32 bit.