Sei sulla pagina 1di 27

El algoritmo IDEA

El algoritmo IDEA
M. en C. Sergio Luis P erez P erez
UAM-Cuajimalpa

20 de junio de 2013

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

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

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

2 / 27

El algoritmo IDEA Algoritmo IDEA

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.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

3 / 27

El algoritmo IDEA Algoritmo IDEA

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

El algoritmo IDEA Algoritmo IDEA

Algoritmo IDEA

Figura : Diagrama general del algoritmo IDEA


M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 5 / 27

El algoritmo IDEA 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 Generaci on de las llaves

Generaci on de las llaves


Se divide la llave original en 8 partes de 16 bits cada una. Las primeras 6 partes son las llaves k1 a k6 de izquierda a derecha respectivamente, utilizadas en la primer ronda de IDEA. Las ultimas dos partes ser an las llaves K7 y K8. Las otras 44 llaves son generadas de realizar un corrimiento circular a la izquierda de 25 bits sobre la llave original, se extraen las llaves siguientes y se hace el corrimiento nuevamente, as hasta completar las 52 llaves en 6 pasos.
M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 7 / 27

El algoritmo IDEA Generaci on de llaves inversas

Generaci on de llaves inversas


Se generan las 52 llaves normales. Luego se ajustan a la siguiente tabla.

Figura : Tabla de generaci on de llaves inversas

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

8 / 27

El algoritmo IDEA Vectores de prueba

Vectores de prueba

Vector 1 key = <00000000000000000000000000000000> plaintext = <0000000000000000> ciphertext = <0001000100000000> Vector 2 key = <00010002000300040005000600070008> plaintext = <0000000100020003> ciphertext = <11fbed2b01986de5>

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

9 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular I


La aritm etica modular es un sistema aritm etico para clases de equivalencia de n umeros enteros llamadas clases de congruencia. Fue introducida en 1801 por Carl Friedrich Gauss en su libro Disquisitiones Arithmeticae. Esta aritm etica puede ser ejemplicada con ayuda de un reloj de manecillas, ya que los n umeros se repiten eventualmente conforme avanzan las manecillas. La aritm etica modular puede ser construida matem aticamente mediante una relaci on de congruencia.
M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 10 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular II


Una congruencia es un t ermino que establece que dos n umeros enteros a y b tienen el mismo resto al dividirlos por un n umero natural m 0. El valor m es com unmente llamado m odulo. Esto se expresa de la siguiente manera: a b (m od m) que indica que a y b se encuentran en la misma clase de congruencia m odulo n, que de otro modo signica que: a m od m = b m od m o bien (a b ) m od m = 0
M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 11 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular III


Adici on modular en IDEA Las operaciones de suma deben ser realizadas m odulo 216 = 0x 10000. (59045 + 27182) m od 216 = 86227 m od 216 = 20691 (0xE 6A5 + 0x 6A2E ) & 0xFFFF = 0x 150D 3 & 0xFFFF = 0x 50D 3 20691 0x 50D 3 En general, toda operaci on modular donde m es una potencia de 2 puede ser realizada mediante la operaci on de bits &.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

12 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular IV


Multiplicaci on modular en IDEA Las operaciones de producto deben ser realizadas m odulo 16 2 + 1 = 0x 10001. El producto tiene ciertas propiedades especiales en el algoritmo IDEA. El algoritmo es el siguiente:
1

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

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA Aritm etica modular

Aritm etica modular V


Inverso aditivo en IDEA El inverso aditivo de un n umero es el opuesto de ese n umero. En general el inverso de x es x . La suma de un n umero y su inverso aditivo siempre es cero. x + (x ) = 0 En IDEA se calcular a como: (x )&0xFFFF

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

14 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular VI


Inverso multiplicativo en IDEA El multiplicador modular inverso de un entero n m odulo p es un entero m tal que: od p ) que se reescribe como mn1 1(m od p ) n1 m(m El multiplicador inverso de un n umero n m odulo p s olo existe si y s olo si n y p son coprimos. mcd (n, p ) = 1 El multiplicador modular inverso de n m odulo p se puede obtener mediante el algoritmo extendido de Euclides.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

15 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular VII


Algoritmo extendido de Euclides Existen diversas variantes del algoritmo extendido de Euclides. http://es.wikipedia.org/wiki/Algoritmo de Euclides El algoritmo m as simple es el siguiente: ExtendEuclid(a, b )
1 2 3

Si b = 0 entonces regresar (1, 0, a); (x , y , d ) ExtendEuclid (b , a %b ); regresar (y , (x (a/b ) y ), d );

El algoritmo devuelve los valores (x , y , d ) tal que: d = mcd (a, b ) = x a + y b


M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 16 / 27

El algoritmo IDEA Aritm etica modular

Aritm etica modular VIII

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.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

17 / 27

El algoritmo IDEA Modos de operaci on

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

El algoritmo IDEA Modos de operaci on

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.

La mayor a de los modos de operaci on se ayudan de la propiedad de que: aba=b


M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa) El algoritmo IDEA 20 de junio de 2013 19 / 27

El algoritmo IDEA Modos de operaci on

Modos de operaci on III

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 .

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

20 / 27

El algoritmo IDEA Modos de operaci on

Modos de operaci on IV
ECB Electronic CodeBook (Cifrado) Este modo de operaci on simplemente divide el mensaje en bloques y los cifra independientemente.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

21 / 27

El algoritmo IDEA Modos de operaci on

Modos de operaci on V
ECB Electronic CodeBook (Descifrado) El cifrado consiste simplemente en descifrar cada bloque.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

22 / 27

El algoritmo IDEA Modos de operaci on

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

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

23 / 27

El algoritmo IDEA Modos de operaci on

Modos de operaci on VII


CBC Cipher-Block Chaining (Descifrado) El descifrado consiste en aplicar la siguiente f ormula: Pi = DK (Ci ) Ci 1 , C0 = IV

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

24 / 27

El algoritmo IDEA Modos de operaci on

Modos de operaci on VIII


CFB Cipher FeedBack (Cifrado) Este modo de operaci on es pr acticamente el reverso del CBC. Ci = EK (Ci 1 ) Pi , C0 = IV

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

25 / 27

El algoritmo IDEA Modos de operaci on

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

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

26 / 27

El algoritmo IDEA Bibliograf a

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.

M. en C. Sergio Luis P erez P erez (UAM-Cuajimalpa)

El algoritmo IDEA

20 de junio de 2013

27 / 27

Potrebbero piacerti anche