International Data Encryption Algorithm
El siguiente es un esquema general del funcionamiento del algoritmo IDEA.
Fue trasncrito del sitio http://www.lci.ulsa.mx/seguridad/appli/win/Cifrado/IDEA.TXT
La intencion de este post es netamente de caracter educativo y no nos hacemos responsables
del uso que terceros puedan hacer de este texto.
En cada paso elemental por el que pasa el texto de 64 bits, este sufre las
siguientes alteraciones para dar el cifrado:
1¦ División del bloque de 64 bits de texto en cuatro subbloques de 16
bits: X1, X2, X3 y X4, y de los 128 de la clave en 8: Z1 ... Z8. Estos
últimos son intencionadamente m s complicados, y se tratar n aparte.
2¦ Multiplicación de X1 por el primer subbloque de la clave Z1
3¦ A ello se añade X2 y el segundo subbloque de la clave Z2
4¦ A lo que se añade X3 y el segundo subbloque de la clave Z3
5¦ Lo que se multiplica por X4 y por el cuarto subbloque de la clave
6¦ Se hace una operación de or exclusivo (XOR) entre el bloque resultado
de las operaciones segunda y cuarta
7¦ XOR entre el resultado de la tercera y la quinta operación
8¦ Se multiplican los resultados de la sexta operación con el quinto
subbloque de la clave, Z5
9¦ Se suma el resultado de las operaciones sexta y séptima
10¦ Se multiplica el resultado de la novena operación con el sexto
subbloque de la clave, Z6
11¦ Se suman los resultados de la octava y la décima operación
12¦ XOR del resultado de la segunda y la décima
13¦ XOR del resultado de la cuarta y la décima
14¦ XOR del resultado de la tercera y la undécima
15¦ XOR del resultado de la quinta y la undécima
De esta forma se consigue el texto cifrado, juntando los cuatro bloques
resultantes de las operaciones cuatro últimas operaciones.
Evidentemente, la seguridad del cifrador aumenta cuando el texto pasa
varias veces por el algoritmo, y el IDEA lo hace 8 veces. Para
retroalimentarlo, basta con permutar los bloques segundo y tercero de la
salida, y hacerlos entrar de nuevo, en todas las etapas menos en la
última.
Después de la octava ronda, hay una transformación final, que consiste en
los cuatro pasos siguientes:
1§ Multiplicar X1 por el primer subbloque de la clave
2§ Añadir X2 al segundo bloque de la clave
3§ Añadir X3 al tercer subbloque de la clave
4¦ Multiplicar X4 por el cuarto subbloque de la clave
Finalmente, se concatenan estos últimos cuatro bloques para conseguir el
texto cifrado de salida.
La creación de los subbloques de la clave, en el 1er paso del algoritmo,
consiste en dividir los 128 bits de dicha clave en ocho subbloques de los
cuales sólo seis se utilizan en la primera vuelta, reservando dos para la
segunda. Tras esto, la clave se hace rotar 25 bits a la izquierda
(mediante la funci¢n de desplazamiento de los bits en la palabra que
proporciona el operador "<<" del lenguaje de programación C), y de nuevo
se divide la clave en ocho subclaves. Las cuatro primeras se utilizan en
la segunda etapa del algoritmo, y las cuatro £ltimas en la tercera. La
clave se rota otros 25 bits a la izquierda para conseguir las ocho
siguientes subclaves, y as¡ sucesivamente.
Me gusta esto:
Me gusta Cargando...
Relacionado