Portada » Informática » Algoritmos de cifrado simétrico: Feistel, IDEA, DES, Blowfish, MD5, RC5, Safer, Loki
1. Se selecciona una cadena, N, normalmente de 64 o 128 bits, y se la divide en dos subcadenas, L y R, de igual longitud (N/2)
2. Se toma una función, F, y una clave Ki
3. Se realizan una serie de operaciones complejas con F y Ki y con L o R (solo uno de ellas)
4. La cadena obtenida se cambia por la cadena con la que no se han realizado operaciones, y se siguen haciendo las rondas.
bloque: 64, clave: 128, vueltas:8. IDEA es uno de los cifrados que cifran el texto en un formato ilegible y lo hace seguro para enviarlo a Internet. El algoritmo de encriptación IDEA proporciona seguridad de alto nivel, no se basa en mantener el algoritmo en secreto, sino en el desconocimiento de la clave secreta. IDEA opera en bloques de 64 bits utilizando una clave de 128 bits, y consta de una serie de ocho transformaciones idénticas (una ronda) y una transformación de salida (la media vuelta). La DEA deriva gran parte de su seguridad al intercalar operaciones de diferentes grupos (suma y multiplicación modular y OR exclusivo a nivel de bits (XOR)), que en algún sentido son algebraicamente ‘incompatibles’. Una ronda de cifrado: xor, suma mod 2^16, multiplicación mod 2^16+1. Uso: A la hora de guardar datos en dispositivos de almacenamiento masivo. Generación de claves: Los 52 subbloques de clave de 16 bits que se generan a partir de la clave de 128 bits.
bloque: 64, clave: 128, vueltas:16. En cada ciclo: se permuta la mitad derecha aplicando expansión a 48 bits. La clave de 56 bits se desplaza, permuta y selecciona los 48 bits. La nueva mitad derecha y la clave se suman XOR. Se reducen los 48 bits a 32 bits mediante las cajas S. Se permuta el resultado. El resultado se suma XOR con la mitad izquierda. Se han realizado varias propuestas para funciones hash basadas en el uso de una técnica de encadenamiento de bloques de cifrado (CBC), pero sin utilizar la clave secreta. Una de las primeras propuestas de este tipo fue la de Rabin. Este consiste en dividir un mensaje M en bloques de tamaño fijo M1, M2, MN y usar un sistema de cifrado simétrico como DES.
bloque: 64, clave: 32 a 448, vueltas:16. Estructuras: Cada operación utiliza 32 bits. Hay una matriz de P subclaves de 18 entradas (indicada como K en el diagrama, para evitar confusiones con el texto simple). Cuatro cajas S de 256 entradas (S0, S1, S2 y S3). Acciones en cada ronda: XOR la mitad izquierda (L) de los datos con la entrada r-P-array. Utilice los datos del resultado anterior como entrada para la función F de Blowfish. XOR la salida de la función F con la mitad derecha (R) de los datos. Swap L y R. Función F: La función F divide la entrada de 32 bits en cuatro bloques de ocho bits, y utiliza los bloques como entrada para las S-cajas. Las cajas S aceptan una entrada de 8 bits y producen una salida de 32 bits. Usado en OpenBSB.
512 bits, 128 a b c d, vueltas: 16.
bloque: 32, 64, 128, clave: 0 a 2040, vueltas: 0-255. Sugerido: bloques de 64 bits, claves de 128 bits y 12 vueltas. Algoritmo: Uso de rotaciones dependientes de los datos. Realiza operaciones como sumas modulares y operaciones XOR. Antes del cifrado, la clave secreta se expande para completar un array. Para descifrar, se realizan las operaciones inversas en orden inverso.
bloque: 64, clave: 64 y 128, vueltas: variable mínimo 6. Cada ronda utiliza 2 subclaves. Ingreso 8 Bytes: Se realizan las operaciones XOR y ADD en el siguiente orden: XOR – ADD – ADD – XOR – XOR – ADD – ADD – XOR con la clave K1. La salida de estas 8 transformaciones no lineales se combina con la subclave K2 con las operaciones ADD – XOR – XOR – ADD – ADD – XOR – XOR – ADD.
bloque: 64, clave: 64, vueltas: 16. Se basa en una red de Feistel de 16 rondas y tiene una estructura muy similar a la DES de la que, a diferencia de la función particular de sustitución (S-box), la función de permutación (P-BOX) y la función de ‘permutación de expansión’. La caja-S utiliza un criterio lineal desarrollado por Josef Pieprzyk, que los hace más complejos e imprevisibles que los de DES. Encripta bloques de texto plano de 128 bits para crear un bloque de texto cifrado de 128 bits. El cálculo de datos se inicializa dividiendo el valor de entrada de texto plano (de 128 bits) en 2 palabras de 64 bits LYR. Estos son procesados a través de 16 rondas (i = 1, 16) de una Red Feistel balanceada. Cada ronda usa el operador XOR y la adición entera + (módulo 2) de los valores de 64 bits, junto con la salida de la función compleja no lineal f(A, B) que provee la máxima diferencia entre todos sus bits de entrada. El texto cifrado de 128 bits resultante está compuesto por [R | L].