18 de abril de 2018

Mecanismos de cifrado

Según la RAE, Criptografía es el arte de escribir con clave secreta o de un modo enigmático. Para una visión más específica, la criptografía es la creación de técnicas para el cifrado de datos, teniendo como objetivo conseguir la confidencialidad de los mensajes.


Aunque el uso de comunicaciones seguras ha sido siempre una prioridad militar, la privacidad es requerida en otros sectores. Las empresas necesitan mantener unas comunicaciones seguras para proteger su información. Por esta razón el gobierno de EEUU y la NSA se ven obligados a crear DES. Por lo tanto en esta entrada vamos a ver los principales tipos de cifrado.

Cifrado simétrico


Desde: https://www.welivesecurity.com
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.

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.

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.
  
RC4 es un algoritmo de cifrado de flujo diseñado por Ron Rivest para RSA Data Security. Es un algoritmo de tamaño de clave variable con operaciones a nivel de byte. Se basa en el uso de una permutación aleatoria y tiene un periodo estimado de más de 10100. Además, es un algoritmo de ejecución rápida en software. El algoritmo se emplea para encriptación de ficheros y para encriptar la comunicación en protocolos como el SSL (TLS).

RC5 es un algoritmo parametrizable con tamaño de bloque variable, tamaño de clave variable y número de rotaciones variable. Los valores más comunes de los parámetros son 64 o 128 bits para el tamaño de bloque, de 0 a 255 rotaciones y claves de 0 a 2048 bits. Fue diseñado en 1994 por Ron Rivest. El algoritmo RC5 es fácil de implementar y analizar y, de momento, se considera que es seguro. 

 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.

 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.

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.

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.

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.

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.

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.

Cifrado asimétrico

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.

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.

El Gamal: 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.


No hay comentarios:

Publicar un comentario