Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El algoritmo IDEA
M. en C. Sergio Luis P erez P erez
UAM-Cuajimalpa
20 de junio de 2013
El algoritmo IDEA
20 de junio de 2013
1 / 27
El algoritmo IDEA
Contenido
1 2 3 4 5 6 7
Algoritmo IDEA Generaci on de las llaves Generaci on de llaves inversas Vectores de prueba Aritm etica modular Modos de operaci on Bibliograf a
El algoritmo IDEA
20 de junio de 2013
2 / 27
Que es IDEA
El cifrador por bloques llamado IDEA (International Data Encryption Algorithm) es utilizado para cifrar textos con un tama no de bloque de 64 bits, utilizando una llave K de 128 bits. Fue dise nado por Xuejia Lai y James L. Massey en 1991. IDEA consiste de ocho transformaciones id enticas (cada una llamada ronda) y una transformaci on de salida, llamada media ronda.
El algoritmo IDEA
20 de junio de 2013
3 / 27
Que es IDEA
El proceso para cifrar y para descifrar es el mismo, solo cambian las llaves de ronda, en total 52 de 16 bits cada una. Gran parte de la seguridad de IDEA se deriva del intercalado de operaciones de distintos grupos -adici on y multiplicaci on modular y O-exclusivo (XOR) bit a bit-. Las operaciones de suma se realizan m odulo 216 . La operaciones de multiplicaci on se realizan m odulo 216 + 1, el cual es un n umero primo, y tratando en estos casos al 0 como si fuera 216 .
M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 4 / 27
Algoritmo IDEA
Algoritmo IDEA
Inicio
1 2 3 4 5 6 7 8
9 10
X1 = producto(X1, K1), X4 = producto(X4, K4). X2 = (X2+K2) %216 , X3 = (X3+K3) %216 . t0 = producto(K5, X 1 X 3). t1 = producto(K6, (t0+(X 2 X 4)) %216 ). t2 = (t0+t1) %216 . X1 = X 1 t 1, X4 = X 4 t 2. X2 = X 3 t 1, X3 = X 2 t 2. Del paso 1 al paso 7 se repite 8 veces en total, usando las siguientes 6 llaves cada vez. y1 = producto(X1, K49), y4 = producto(X4, K52). y2 = (X3+K50) %216 , y3 = (X2+K51) %216 .
El algoritmo IDEA 20 de junio de 2013 6 / 27
Fin
M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)
El algoritmo IDEA
20 de junio de 2013
8 / 27
Vectores de prueba
Vector 1 key = <00000000000000000000000000000000> plaintext = <0000000000000000> ciphertext = <0001000100000000> Vector 2 key = <00010002000300040005000600070008> plaintext = <0000000100020003> ciphertext = <11fbed2b01986de5>
El algoritmo IDEA
20 de junio de 2013
9 / 27
El algoritmo IDEA
20 de junio de 2013
12 / 27
2 3 4
Sea c un entero de 32 bits sin signo y a, b los valores a multiplicar de 16 bits. Si a = 0 entonces hacer r (0x 10001 b ) De lo contrario si b = 0 entonces hacer r (0x 10001 a) De lo contrario c a b , r (c &0xFFFF ) (c >> 16)
Si r < 0 entonces r (0x 10001 + r )
Regresar r &0xFFFF
El algoritmo IDEA 20 de junio de 2013 13 / 27
El algoritmo IDEA
20 de junio de 2013
14 / 27
El algoritmo IDEA
20 de junio de 2013
15 / 27
Inverso multiplicativo en IDEA utilizando el algoritmo extendido de Euclides Utilizando el algoritmo anterior simplemente se llama como: ExtendEuclid (n, p ) donde n es el valor del que se desea calcular n1 y p es el n umero primo.
El algoritmo IDEA
20 de junio de 2013
17 / 27
Modos de operaci on I
En la pr actica los archivos a cifrar no suelen adaptarse a los tama nos sobre los que operan los cifradores. Para cifrar mensajes de mayor tama no se utilizan los modos de operaci on. Un modo de operaci on permite cifrar archivos de cualquier tama no utilizando un cifrador determinado y una sola llave. Los primeros modos de operaci on desarrollados s olo aseguraban la condencialidad. Ejemplos.
ECB Electronic CodeBook.
M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 18 / 27
Modos de operaci on II
CBC Cipher-Block Chaining. OFB Output FeedBack. CFB Cipher FeedBack.
Luego se desarrollaron modos de operaci on para asegurar la condencialidad y la integridad del mensaje. Ejemplos:
CCM Counter with CBC-MAC. OCB Oset Codebook Mode.
De aqu en adelante P denota el texto en claro a cifrar. C denota el texto cifrado. EK (P ) denota aplicar el proceso de cifrado a P . DK (C ) denota aplicar el proceso de descifrado a C . DK (EK (P )) = P .
El algoritmo IDEA
20 de junio de 2013
20 / 27
Modos de operaci on IV
ECB Electronic CodeBook (Cifrado) Este modo de operaci on simplemente divide el mensaje en bloques y los cifra independientemente.
El algoritmo IDEA
20 de junio de 2013
21 / 27
Modos de operaci on V
ECB Electronic CodeBook (Descifrado) El cifrado consiste simplemente en descifrar cada bloque.
El algoritmo IDEA
20 de junio de 2013
22 / 27
Modos de operaci on VI
CBC Cipher-Block Chaining (Cifrado) Fue inventado por IBM en 1976. Adem as requiere un vector de inicializaci on del tama no del bloque a cifrar. Ci = EK (Pi Ci 1 ), C0 = IV
El algoritmo IDEA
20 de junio de 2013
23 / 27
El algoritmo IDEA
20 de junio de 2013
24 / 27
El algoritmo IDEA
20 de junio de 2013
25 / 27
Modos de operaci on IX
CFB Cipher FeedBack (Descifrado) El descifrado consiste en aplicar la siguiente f ormula: Pi = EK (Ci ) Ci 1 , C0 = IV
El algoritmo IDEA
20 de junio de 2013
26 / 27
Bibliograf a
Handbook of Applied Cryptography, by A. Menezes, P. van Oorschot, and S. Vanstone, CRC Press, 1996. Handbook of Applied Cryptography, capitulo 7, disponible en http://cacr.uwaterloo.ca/hac/ http://www.quadibloc.com/crypto/co040302.htm, consultada el 17-06-2013. http://www.informationsuebertragung.ch/indexAlgorithmen.html, consultada el 17-06-2013.
El algoritmo IDEA
20 de junio de 2013
27 / 27