Sie sind auf Seite 1von 4

El algoritmo de encriptado usado es : IDEA - INTERNATIONAL DATA ENCRYPTION ALGORITHM El IDEA (Algoritmo Internacional de Cifrado de Datos) es un algoritmo de encriptado

de clave secreta diseado por los suizos. La primera versin de IDEA fue conocida en 1990 bajo el nombre de Proposed Encyption Standard (PES). Dos aos despus, luego de haber sido reforzado para resistir nuevos tipos de ataque cambio su nombre a IDEA.

IDEA utiliza una clave de 128 bits, lo que por el momento lo hace inmune a los ataques de fuerza bruta as como al criptoanlisis diferencial para su desencriptado.

La estructura bsica consiste en la alteracin de bloques de entrada de texto normal de 64 bits en una secuencia de iteraciones parametrizadas para producir bloques de salida de texto cifrado de 64 bits (Ver figura ). Estos bloques de entrada se separan en 4 subbloques (A, B, C y D ), cada una de 16 bits. Dado que por cada iteracin, cada uno de los bits de salida depende de cada uno de los bits de entrada, basta con slo 8 iteraciones. Se usan tres operaciones, todas sobre nmeros sin signo de 16 bits. Estas operaciones son: - OR exclusivo - Suma con acarreo mdulo 216 - Multiplicacin mdulo 216+1 guardado el resultado en 16 bits.

Tienen como propiedad que si tomamos un par cualquiera de ellas, no obedecen a la ley asociativa ni la ley distributiva, lo que dificulta el criptoanlisis. El descifrado usa exactamente el mismo algoritmo que el cifrado, pero con subclaves diferentes.

En el siguiente esquema se muestran los detalles del algoritmo

Detalles de Implementacin

El algoritmo IDEA consta de ocho rondas. Dividiremos el bloque X a codificar, de 64 bits, en cuatro partes X1, X2, X3 y X4 de 16 bits. Denominaremos Zi a cada una de las 52 subclaves de 16 bits que vamos a necesitar. Las operaciones que llevaremos a cabo en cada ronda son las siguientes:

1-Multiplicar X1 por Z1. 2-Sumar X2 con Z2. 3-Sumar X3 con Z3. 4-Multiplicar X4 por Z4. 5-Hacer un XOR entre los resultados del paso 1 y el paso 3 6-Hacer un XOR entre los resultados del paso 2 y el paso 4. 7-Multiplicar el resultado del paso 5 por Z5. 8-Sumar los resultados de los pasos 6 y 7. 9-Multiplicar el resultado del paso 8 por Z6. 10-Sumar los resultados de los pasos 7 y 9. 11-Hacer un XOR entre los resultados de los pasos 1 y 9. 12-Hacer un XOR entre los resultados de los pasos 3 y 9. 13-Hacer un XOR entre los resultados de los pasos 2 y 10. 14-Hacer un XOR entre los resultados de los pasos 4 y 10. 15-La salida de cada iteracin sern los cuatro sub-bloques obtenidos en los pasos 11, 12, 13 y 14, que sern la entrada del siguiente ciclo, en el que emplearemos las siguientes seis subclaves, hasta un total de 48. Al final de todo intercambiaremos los dos bloques centrales (en realidad con eso deshacemos el intercambio que llevamos a c*bo en los pasos 12 y 13).

Despus de la octava iteracin, se realiza la siguiente transformacin:

Multiplicar X1 por Z49. Sumar X2 con Z50.

Sumar X3 con Z51. Multiplicar X4 por Z52.

Las primeras ocho subclaves se calculan dividiendo la clave de entrada en bloques de 16 bits. Las siguientes ocho se calculan rotando la clave de entrada 25 bits a la izquierda y volviendo a dividirla, y as sucesivamente.

Las subclaves necesarias para descifrar se obtienen cambiando de orden las Zi y calculando sus inversas para la suma o la multiplicacin. Puesto que 216 + 1 es un nmero primo, nunca podremos obtener cero como producto de dos nmeros, por lo que no necesitamos representar dicho valor. Cuando estemos calculando productos, utilizaremos el cero para expresar el nmero 216 -|un uno seguido de 16 ceros-. Esta representacin es coherente puesto que los registros que se emplean internamente en el algoritmo poseen nicamente 16 bits.

Das könnte Ihnen auch gefallen