Algoritmos


Algoritmo DES

Se trata de un sistema de cifrado simétrico por bloques de 64 bits, de los que 8 bits (un byte) se utilizan como control de paridad (para la verificación de la integridad de la clave). Cada uno de los bits de la clave de paridad (1 cada 8 bits) se utiliza para controlar uno de los bytes de la clave por paridad impar, es decir, que cada uno de los bits de paridad se ajusta para que tenga un número impar de "1" dentro del byte al que pertenece. Por lo tanto, la clave tiene una longitud "útil" de 56 bits, es decir, realmente sólo se utilizan 56 bits en el algoritmo.

El algoritmo se encarga de realizar combinaciones, sustituciones y permutaciones entre el texto a cifrar y la clave, asegurándose al mismo tiempo de que las operaciones puedan realizarse en ambas direcciones (para el descifrado). La combinación entre sustituciones y permutaciones se llama cifrado del producto.

La clave es codificada en 64 bits y se compone de 16 bloques de 4 bits, generalmente anotadas dek1 a k16. Dado que "solamente" 56 bits sirven para el cifrado, ¡puede haber hasta 256 (o 7.2*1016) claves diferentes!


El algoritmo DES

Las partes principales del algoritmo son las siguientes:
fraccionamiento del texto en bloques de 64 bits (8 bytes),
permutación inicial de los bloques,
partición de los bloques en dos partes: izquierda y derecha, denominadas I y Drespectivamente,
fases de permutación y de sustitución repetidas 16 veces (denominadas rondas),
reconexión de las partes izquierda y derecha, seguida de la permutación inicial inversa.



Algoritmo AES

El estándar de cifrado (encriptación) avanzado AES, Advanced Encryption Standard (AES), es uno de los algoritmos más seguros y más utilizados hoy en día - disponible para uso público.
Está clasificado por la Agencia de Seguridad Nacional, National Security Agency (NSA), de los Estados Unidos para la seguridad más alta de información secreta “Top Secret”. 

Un algoritmo llamado "Rijndael", desarrollado por los criptólogos belgas Joan Daemen y Vincent Rijmen, fue destacado en seguridad, así como en el rendimiento y la flexibilidad. Este algoritmo le gano a varios competidores, y fue oficialmente presentado como el nuevo estándar de cifrado AES en el 2001 y se transformó en estándar efectivo en el 2002. 

El algoritmo se basa en varias sustituciones, permutaciones y transformaciones lineales, ejecutadas en bloques de datos de 16 bytes - por lo que se le llama blockcipher. Estas operaciones se repiten varias veces, llamadas "rondas". En cada ronda, un único “roundkey” se calcula de la clave de encriptación, y es incorporado en los cálculos. 

Basado en esta estructura de bloque de AES, 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/encriptado completamente diferente - una clara ventaja sobre cifrados de flujo tradicionales. 

La diferencia entre AES-128, AES-192 y AES-256, es la longitud de la clave: 128, 192 o 256 bits - todos drásticamente mejorados en comparación con la clave DES de 56 bits. A modo de ejemplo: Descifrar una clave de 128 bits AES con una supercomputadora estándar del momento, llevaría más tiempo que la presunta edad del universo. ¡Boxcryptor utiliza incluso claves de 256! 
Hasta el día de hoy, no existe posible ataque contra AES. Por lo tanto, sigue siendo el estándar AES de cifrado preferido por los gobiernos, los bancos y los sistemas de alta seguridad de todo el mundo.



Algoritmo IDEA

Algoritmo de libre uso desarrollado y liberado en 1991 por Xuejia Lai y James L. Massey del Politécnico de Zurich. Opera con bloques de 64 bits y una clave de 128 bits realizando un total de 8 iteraciones. Una iteración del cifrado IDEA así como la transformación de salida final.



En cada una de las iteraciones se utilizan 6 subclaves de cifrado dichas subclaves son obtenidas a partir de la clave inicial de 128 bits de la siguiente manera:

  • La clave inicial se divide en bloques de 16 bits formando así las primeras 8 subclaves.
  • La clave inicial se desplaza 25 posiciones a la izquierda y se divide nuevamente en bloques de 16 bits para obtener las siguientes 8 subclaves.
  • El paso anterior se repite hasta obtener las 52 subclaves. 





1 comentario: