ALGORITMOS DE CIFRADO I

    Cuando nos preocupa nuestra privacidad tendemos a utilizar programas de cifrado. Suelen ser bastante completos, a veces tanto que no sabemos muy bien qué opciones seleccionar. Veracrypt, Gpg, Luks…

En esta primera entrega repasaré los algoritmos de cifrado y en la segunda entrega repasaré los algoritmos de verificación (Hash).

Antes de nada, decir que la comparación entre algoritmos es súmamente difícil, todos son buenos y malos según el uso que hagamos de ellos, así que he clasificado los algoritmos por antigüedad, y por lo tanto en la obsolescencia de uso.

Cifrado simétrico

– DES: Estándar de cifrado de flujo de 52 bits usado en 1976. La cadena de 56 bits es muy corta, por lo que es capaz de comprometerse en menos de 24 horas.

     Longitud de clave: 52 bits.

     Tamaño de bloque: No

– TDES: Conocido también como 3DES o TripleDES, no es más que el estándar DES aplicado 3 veces. En realidad se dobla la longitud efectiva, siendo de 112 bits, aunque es preciso triplicar el número de operaciones de cifrado, haciendo este método de cifrado muchísimo más seguro que el DES. La longitud de la clave es de 192 bits, aunque como se ha dicho su eficacia solo sea de 112 bits.

     Longitud de clave: 192 bits (eficaces 112 bits).

     Tamaño de bloque: No

– RC2: Este algoritmo se diseñó para reemplazar al DES y es un algoritmo por clave de tamaño variable de entre 64 y 128 bits que trabaja con bloques de 64 bits y es entre dos y tres veces más rápido que DES. Se puede hacer más seguro que el DES contra ataques de fuerza bruta eligiendo el tamaño de clave apropiadamente.

     Longitud de clave: Variable entre 64 y 128 bits.

     Tamaño de bloque: No

– ICE: Es un cifrado de bloques con clave de 64 bits derivado de DES, sin embargo ha sido mejorado y diseñado para ser seguro contra el criptoanálisis diferencial y lineal. Su tamaño de clave puede ser cualquier múltiplo de 64 bits, mientras que la clave DES está limitado a 56 bits.

     Longitud de clave: Cualquier múltiplo de 64 bits.

     Tamaño de bloque: No

– IDEA (International Data Encriptión Algorithm): Algoritmo simétrico que aplica una clave de 128 bits sin paridad a bloques de datos de 64 bits, y se usa tanto para cifrar como para descifrar. Está considerado uno de los más seguros actualmente.

     Longitud de clave: 128 bits.

     Tamaño de bloque: 64 bits.

– GOST: Es un algoritmo de cifrado de origen ruso que podría ser considerado el análogo ruso al AES. Emplea bloques de 64 bits y claves de 256 bits y no ha podido ser vulnerado a pesar de haber sido uno de los más estudiados. El mensaje de entrada se divide en trozos de bloques de 256 bits (ocho de 32 bits enteros endian) y el mensaje se rellena añadiendo tantos ceros como se requiere para llevar la longitud del mensaje hasta 256 bits. También se utiliza como función hash.

     Longitud de clave: 256 bits.

     Tamaño de bloque: 64 bits.

– AES: El algoritmo más utilizado hoy en día. La longitud de clave puede ser de 128 bits (10 rondas), 192 bits (12 rondas) o 256 bits (14 rondas) basado en sustituciones, permutaciones y transformaciones lineales, ejecutadas en varias veces en bloques de datos de 16 bytes. El cambio de un solo bit, ya sea en la clave, o en los bloques de texto simple y claro, resulta en un bloque de texto cifrado completamente diferente. Algunos criptógrafos muestran preocupación sobre la seguridad porque el número de rondas especificado en el cifrador es muy pequeño y por tener una descripción matemática muy ordenada, y por lo tanto, predecible.

     Longitud de clave: 128, 192 y 256 bits.

     Tamaño de bloque: 128 bits.

– Rindjael: Es un algoritmo de cifrado simétrico por bloques, estándar para su uso en AES. Tiene un tamaño de bloque de 128, 192 o 256 bits y tamaños de llave de 128, 192 o 256 bits. Se basa en una red de sustitución-permutación con 14 rondas para la versión de 256 bits.

     Longitud de clave: Variable múltiplo de 4 bytes: 128, 192 y 256 bits.

     Tamaño de bloque: Variable múltiplo de 4 bytes: 128, 192 y 256 bits.

– Serpent: Es un algoritmo de cifrado simétrico de bloques, competidor directo de AES, que usa un tamaño de bloque de 128 bits y soporta tamaños de clave de 128, 192 y 256 bits de longitud. El cifrado consiste en 32 rondas de substitución-permutación operando sobre cuatro bloques de 32 bits. Cada ronda usa 32 copias de la misma S-Box de 4-bit a 4-bit. Serpent se diseñó para que las operaciones se realizasen en paralelo, usando 32 desplazamientos de 1 bit.

     Longitud de clave: Variable, 128, 192 y 256 bits.

     Tamaño de bloque: 128 bits.

– Blowfish: Es un codificador de bloques simétricos de 64 bits AES y claves que van desde los 32 bits hasta 448 bits, incluido en un gran número de conjuntos de codificadores y productos de cifrado. Es un codificador de 16 rondas y usa llaves que dependen de las Cajas-S, En total, el algoritmo de cifrado Blowfish correrá 521 veces para generar todas las subclaves, y cerca de 4KB de datos son procesados.

     Longitud de clave: Variable: de 32 a 448 bits.

     Tamaño de bloque: 64 bits.

– Twofish: Es un algoritmo simétrico con cifrado por bloques de tipo AES. El tamaño de bloque es de 128 bits y el tamaño de clave puede llegar hasta 256 bits. Las características distintivas de Twofish son el uso de S-boxes pre-computadas con llaves dependientes, y una llave-horario relativamente compleja. Es levemente más lento que Rijndael (el algoritmo elegido para AES) para las llaves de 128 bits, pero algo más rápido para las llaves de 256 bits y en muchas ocasiones es más seguro que AES.

     Longitud de clave: Variable, hasta 256 bits.

     Tamaño de bloque: 128 bits.

Cifrado asimétrico

– ElGamal: Sistema de cifrado asimétrico libre de patentes y utilizado tanto para generar firmas digitales como para cifrar/descifrar. Su funcionamiento se basa en cálculos sobre “logaritmos discretos”, factorizando números muy grandes, de 150 dígitos o más. Usa para ello un número primo y dos enteros. La velocidad de cifrado y autenticación es inferior a la obtenida con RSA, las firmas producidas son más largas y los mensajes cifrados ocupan el doble que el mensaje plano.

     Longitud de clave: Sin límite. El límite lo marca el protocolo usado.

– RSA: Sistema de cifrado asimétrico, que a diferencia de los anteriores sistemas, trabaja con dos claves diferentes: una clave «pública», y otra «privada». Ambas son complementarias entre sí, así que un mensaje cifrado con una de ellas sólo puede ser descifrado por su contraparte. La longitud de clave va desde los 128 bits a los 4096.

     Longitud de clave: Variable: 128, 256, 1024, 2048 y 4096 bits.

– DSA: Algoritmo asimétrico diseñado para las firmas digitales. Ofrece el mismo nivel de seguridad que RSA, aunque está en constante desarrollo debido al apoyo gubernamental.

     Longitud de clave: Entre 1024 y 3072 bits.

Compartir

7 Comentarios

  1. ¿¿¿¿– DES: Estándar de cifrado de flujo de 52 bits ????? Que yo sepa DES es un algoritmo de cifrado simétrico DE BLOQUES con tamaño de clave de 56 bits.
    ¿¿¿¿– TDES: La longitud de la clave es de 192 bits?????? La longitud de la claves de Tripe DES es 3 veces la de DES, es decir, 168 bits (3×56)
    Disculpa, pero ¿en qué fuentes te basas para escribir tus artículos?

  2. Perdona, pero el articulo tiene muchos errores, revisalo bien.
    -AES y Rindjael son el mismo algoritmo
    -DES usa claves 56 bits
    -No solo RSA usa claves publicas y privadas, todos los algoritmos de cifrado asimetrico lo usan, incluyendo elgamal

Deja una respuesta a yohnbel Cancelar respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax