Vous êtes sur la page 1sur 27

El algoritmo IDEA

El algoritmo IDEA
M. en C. Sergio Luis Perez Perez
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

Algoritmo IDEA

Generaci
on de las llaves

Generaci
on de llaves inversas

Vectores de prueba

Aritmetica modular

Modos de operacion

Bibliografa

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 identicas (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 multiplicacion 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 t1, X4 = X 4 t2.
X2 = X 3 t1, X3 = X 2 t2.
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 .

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

El algoritmo IDEA

20 de junio de 2013

6 / 27

El algoritmo IDEA
Generaci
on de las llaves

Generacion 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 seran 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

Generacion 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

Aritmetica modular I
La aritmetica modular es un sistema aritmetico 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 aritmetica puede ser ejemplificada con ayuda de un reloj de
manecillas, ya que los n
umeros se repiten eventualmente conforme
avanzan las manecillas.
La aritmetica modular puede ser construida matematicamente
mediante una relacion 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

Aritmetica modular II
Una congruencia es un termino 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
odm)
que indica que a y b se encuentran en la misma clase de congruencia
modulo n, que de otro modo significa que:
a mod m = b m
od m o bien (a b) mod 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

Aritmetica modular III


Adicion modular en IDEA
Las operaciones de suma deben ser realizadas m
odulo 216 = 0x10000.
(59045 + 27182) m
od 216 = 86227 m
od 216 = 20691
(0xE 6A5 + 0x6A2E ) & 0xFFFF = 0x150D3 & 0xFFFF = 0x50D3
20691 0x50D3
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

Aritmetica modular IV
Multiplicacion modular en IDEA
Las operaciones de producto deben ser realizadas modulo
216 + 1 = 0x10001.
El producto tiene ciertas propiedades especiales en el algoritmo IDEA.
El algoritmo es el siguiente:

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 (0x10001 b)
De lo contrario si b = 0 entonces hacer r (0x10001 a)
De lo contrario c a b, r (c&0xFFFF ) (c >> 16)

Regresar r &0xFFFF

2
3

Si r < 0 entonces r (0x10001 + r )

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

El algoritmo IDEA

20 de junio de 2013

13 / 27

El algoritmo IDEA
Aritm
etica modular

Aritmetica 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 calculara 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

Aritmetica modular VI
Inverso multiplicativo en IDEA
El multiplicador modular inverso de un entero n modulo p es un
entero m tal que:
n1 m(modp) que se reescribe como mn1 1(modp)
El multiplicador inverso de un n
umero n m
odulo p solo existe si y solo
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

Aritmetica modular VII


Algoritmo extendido de Euclides
Existen diversas variantes del algoritmo extendido de Euclides.
http://es.wikipedia.org/wiki/Algoritmo de Euclides
El algoritmo mas 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

Aritmetica 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 operacion I
En la practica 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
operacion.
Un modo de operacion 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
confidencialidad. 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 operacion II
CBC Cipher-Block Chaining.
OFB Output FeedBack.
CFB Cipher FeedBack.

Luego se desarrollaron modos de operaci


on para asegurar la
confidencialidad y la integridad del mensaje. Ejemplos:
CCM Counter with CBC-MAC.
OCB Offset Codebook Mode.

La mayora 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 operacion 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 operacion 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 operacion 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 operacion VI
CBC Cipher-Block Chaining (Cifrado)
Fue inventado por IBM en 1976. Ademas requiere un vector de
inicializacion del tama
no del bloque a cifrar.
Ci = EK (Pi Ci1 ), 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 operacion VII


CBC Cipher-Block Chaining (Descifrado)
El descifrado consiste en aplicar la siguiente f
ormula:
Pi = DK (Ci ) Ci1 , 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 operacion VIII


CFB Cipher FeedBack (Cifrado)
Este modo de operaci
on es practicamente el reverso del CBC.
Ci = EK (Ci1 ) 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 operacion IX
CFB Cipher FeedBack (Descifrado)
El descifrado consiste en aplicar la siguiente f
ormula:
Pi = EK (Ci ) Ci1 , 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
Bibliografa

Bibliografa

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

Vous aimerez peut-être aussi