Você está na página 1de 35

Tema 4: Criptografa Moderna

1. Criptosistemas con cifrado en flujo.


1.1. Cifrado en flujo. 1.2. Generadores aleatorios de secuencia cifrante. aleatorios cifrante.

2.

Criptosistemas con clave secreta y cifrados simtricos. sim


2.1. Cifrado en bloque. 2.2. Cifrados tipo producto: LUCIFER. 2.3. El cifrado DES. 2.4. El cifrado IDEA. 2.5. El cifrado RC5.

3.

Criptosistemas con clave pblica y cifrados asimtricos. p asim


3.1. Criptografa con clave secreta. Criptograf 3.2. Principios de los criptosistemas de clave pblica. p 3.3. Cambio de clave de Diffie-Hellman. Diffie- Hellman. 3.4. El criptosistema RSA. 3.5. El criptosistema de ElGamal. ElGamal.
1

1. Criptosistemas con Cifrado en Flujo 1.1. Cifrado en Flujo (I)


El cifrado Vernam verifica las condiciones de secreto perfecto (Shannon). Es el nico procedimiento de cifrado incondicionalmente seguro. Tiene el inconveniente de que requiere un bit de clave por cada bit de texto claro. Hacer llegar una clave tan grande a emisor y receptor por un canal seguro desbordara la propia capacidad del canal En la prctica se utiliza el cifrado en flujo. El emisor A, con una clave corta (secreta) y un algoritmo determinstico (pblico) genera una secuencia binaria {Si} cuyos elementos se suman mdulo 2 con los correspondientes bits de texto claro mi, dando lugar a los bits de texto cifrado ci. Esta secuencia {ci} es la que se enva a travs de un canal pblico. En recepcin, B, con la misma clave y el mismo algoritmo genera la misma secuencia cifrante, que se suma modulo 2 con la secuencia cifrada, dando lugar a los bits de texto claro.
2

1. Criptosistemas con Cifrado en Flujo 1.1. Cifrado en Flujo (II)

1. Criptosistemas con Cifrado en Flujo 1.1. Cifrado en Flujo (III)


El cifrado en flujo es una involucin: El procedimiento de cifrado y descifrado es el mismo. Como la secuencia cifrante se ha obtenido a partir de un algoritmo determinstico, el cifrado en flujo ya no considera secuencias perfectamente aleatorias, sino solamente pseudo-aleatorias. Lo que se pierde en cuanto a seguridad (condiciones de Shannon) se gana en viabilidad. La nica informacin que han de compartir emisor y receptor es la clave secreta, cuya longitud oscila entre 120-150 bits. En la actualidad, y en general para todos los cifrados de clave privada, lo que se hace es enviar la clave privada al destinatario mediante un procedimiento de clave pblica (procedimiento ms costoso, pero vlido para textos cortos), y una vez que ambos disponen ya de la clave, se procede a aplicar el esquema de cifrado en flujo.
4

1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (I)
Es difcil evaluar cuando una secuencia binaria es suficientemente segura para su utilizacin en Criptografa. Pero al menos se consideran los siguientes criterios:

1- Periodo:
Es el nmero de elementos a partir del cual se repite la secuencia. El periodo ha de ser al menos tan largo como la longitud del texto a cifrar. En la prctica, periodo del orden de 1038.

1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (II)
2- Distribucin de ceros y unos: Distribuci
En una secuencia, diferentes muestras de determinada longitud han de estas uniformemente distribuidas a lo largo de toda ella.

01001101001110110010001101010001
Secuencia de 3 unos

Racha: Se denomina racha de longitud k a una sucesin de k dgitos


iguales entre dos dgitos distintos. La funcin de autocorrelacin AC(k) de una secuencia peridica de autocorrelaci periodo T se define como AC(k)=(A-D)/T.
A: nmero de coincidencias, D: nmero de no coincidencias con la secuencia desplazada cclicamente k posiciones. Si k es mltiplo de T, la correlacin est en fase y AC(k)=1. Si no, la autocorrelacin est fuera de fase: AC(k)[-1,1].

0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0

No coincidencias

Coincidencias

1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (III)
Postulados de pseudoaleatoriedad de Golomb:
G1: En cada periodo de la secuencia, el n de unos tiene que ser aproximadamente igual al nmero de ceros; la diferencia entre uno y otro no debe exceder de la unidad. G2: En cada periodo de la secuencia considerada, la mitad de las rachas tienen longitud 1, una cuarta parte tiene longitud 2, una octava parte tienen longitud 3, etc. Adems, para cada longitud de las rachas, habr el mismo nmero de rachas de ceros que de unos. G3: La autocorrelacin AC(k) fuera de fase es constante para todo valor de k.

Una secuencia finita que verifique estos postulados tiene las propiedades de una secuencia binaria de distribucin uniforme.
G1: Unos y ceros aparecen con la misma probabilidad. G2: Los diversos n-gramas ocurren con la probabilidad correcta. G3: El cmputo de coincidencias entre un secuencia y su versin desplazada no aporta ninguna informacin sobre el periodo de la secuencia, a menos que sta se desplace sobre s misma un mltiplo de dicho periodo.

1. Criptosistemas con Cifrado en Flujo 1.2. Generadores aleatorios de Secuencia Cifrante (IV)
3- Imprevisibilidad:
La secuencia cifrante ha de ser imprevisible. Dada una porcin de secuencia de cualquier longitud, un criptoanalista no podra predecir el siguiente dgito con una probabilidad de acierto superior a 1/2. 4- Facilidad de implementacin: implementaci La secuencia tiene que ser fcil de generar con medios electrnicos para poder ser aplicada en el cifrado/descifrado. Aspectos tcnicos: Velocidad de generacin, coste, tamao, consumo, etc.

Ejemplo: Generadores basados en congruencias lineales


Xi+1=(aXi+b)(mod m) Xi+1=(5Xi+3)(mod 16) 7, 6, 1, 8, .} {1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3, 2, 13, 4,

Ah comienza un nuevo periodo


8

Tema 4: Criptografa Moderna


1. Criptosistemas con cifrado en flujo.
1.1. Cifrado en flujo. 1.2. Generadores aleatorios de secuencia cifrante. aleatorios cifrante.

2. Criptosistemas con clave secreta y cifrados simtricos. sim


2.1. Cifrado en bloque. 2.2. Cifrados tipo producto: LUCIFER. 2.3. El cifrado DES. 2.4. El cifrado IDEA. 2.5. El cifrado RC5.

3.

Criptosistemas con clave pblica y cifrados asimtricos. p asim


3.1. Criptografa con clave secreta. Criptograf 3.2. Principios de los criptosistemas de clave pblica. p 3.3. Cambio de clave de Diffie-Hellman. Diffie- Hellman. 3.4. El criptosistema RSA. 3.5. El criptosistema de ElGamal. ElGamal.
9

2. Criptosistemas con Clave Secreta 2.1. Cifrado en Bloque (I)


Es aquel cifrado en el que se cifra el mensaje original agrupando los smbolos en grupos (bloques). En este apartado (el 2) estudiaremos varios cifrados modernos en bloque:
Cada bloque de smbolos se cifra siempre de igual manera. Dos mensajes originales iguales, cifrados con la misma clave, producen siempre mensajes cifrados iguales. Para descifrar parte de un mensaje no es preciso descifrarlo completamente desde el principio.

Todos los cifrados en bloque se componen de 4 elementos:


1. 2. 3. 4. Transformacin inicial. Funcin criptogrficamente dbil iterada r veces. Transformacin final. Algoritmo de expansin de clave.

10

2. Criptosistemas con Clave Secreta 2.1. Cifrado en Bloque (II)


Clave

Bloque en claro

Transformacin Inicial

Expansin de Clave Ki

Funcin Criptogrfica

Transformacin Final

Bloque cifrado
11

2. Criptosistemas con Clave Secreta 2.1. Cifrado en Bloque (III)


Transformacin inicial (1): Puede tener una o dos funciones: Transformaci
1. Aleatorizacin de los datos de entrada (sin significado criptogrfico si no depende de la clave [DES]).
Esto hace que desaparezcan bloques con todo ceros o todo unos. Sin significado criptogrfico no depende de la clave

2. Dificulta ataques por anlisis lineal o diferencial (con significado criptogrfico [RC5, IDEA]).

Vueltas intermedias (2):


Funcin no lineal complicada de los datos y la clave. Puede ser unidireccional [DES] o no [IDEA, RC5]. Puede estar formada por una sola operacin muy compleja o por la sucesin de varias transformaciones simples. Las vueltas se enlazan por sumas mdulo 2 bit a bit con los datos que vienen de la transformacin inicial o de vueltas anteriores Se posibilita una involucin. involuci
Involucin cuando se puede repetir el proceso pero en orden inverso, obteniendo el mismo resultado (para descifrar se aplica el mismo algoritmo que para cifrar)

Las vueltas intermedias no han de formar grupo


Varias pasadas no deben equivaler a una

12

2. Criptosistemas con Clave Secreta 2.1. Cifrado en Bloque (IV)


Transformacin final (3): Sirve para que las operaciones de cifrado Transformaci
y descifrado sean simtricas.

Algoritmo de expansin de clave (4): expansi


Convierte la clave de usuario (32-256 bits) en un conjunto de subclaves constituidas por varios cientos de bits en total. Conviene que sea unidireccional, y que el conocimiento de una o varias subclaves no permita deducir las claves anteriores o posteriores. Las subclaves producidas no deben constituir un pequeo subconjunto montono (que se repitan) de todas las posibles.

13

2. Criptosistemas con Clave Secreta 2.2. Cifrados tipo Producto: LUCIFER (I)
Un cifrado tipo producto, segn Shannon (1949), es el que utiliza la composicin de diferentes funciones de cifrado. El resultado de cifrar un mensaje M con t funciones Fi (1it) ser:
E(M)=Ft(...F3(F2(F1(M)))...)

Fi puede ser sustitucin o transposicin. Se trata de que el resultado final sea lo ms aleatorio posible. Esta idea de Feistel fue implantada por Notz y Smith en el dispositivo Lucifer, precursor

del DES.

Se trata simplemente de aplicar varias funciones de manera secuencial sobre los datos a cifrar. Para descifrar, se aplicaran las inversas en el orden contrario, y se conseguira obtener el mensaje original.
14

2. Criptosistemas con Clave Secreta 2.2. Cifrados tipo Producto: LUCIFER (II)

1. El bloque de datos a cifrar de 128 bits se divide a su entrada en dos partes, la alta y la baja 2. A cada uno de los 8 octetos de la parte alta se los somete a una transformacin bajo el control de un bit determinado de la clave 3. El resultado de dicha transformacin se suma Xor con los 8 restantes de la clave 4. Se realiza una transformacin a nivel de bit sobre los 64 bits

6. La parte baja y alta se intercambian, y se realizan hasta 16 vueltas de este tipo, dando lugar al bloque cifrado

5. Se suma el resultado con los octetos de la parte baja del bloque de entrada

15

2. Criptosistemas con Clave Secreta 2.3. DES Data Encryption Standard (I)
1973: el NBS (National Bureau of Standards, USA) organiz un concurso solicitando un algoritmo de cifrado para la proteccin de datos de ordenador en su transmisin y almacenaje. 1974: IBM presenta una propuesta inspirada en LUCIFER. Esta propuesta, modificada, dio lugar al DES. La aprobacin y modificacin de la propuesta se hizo con la supervisin de la NSA (National Security Agency). La NSA impuso la actual longitud de la clave (modesta y desaconsejable). El DES es un algoritmo de cifrado en bloque (64 bits, 8 car. ASCII). La longitud de la clave es de 56 bits (7.2*1016 claves diferentes). La norma exige que el DES se implemente mediante un circuito electrnico integrado. El chip DES es un producto estratgico USA (no se permite exportar sin permiso). 1981: el ANSI (American National Standards Institute, USA) adopt el DES como Data Encryption Algorithm (DEA). La norma no exige implementacin con chip y puede hacerse por software.

16

2. Criptosistemas con Clave Secreta 2.3. DES (II): Estructura


Los pasos del algoritmo son los siguientes:
1. Se hace una permutacin inicial fija (sin valor criptogrfico). 2. Se divide el bloque en dos mitades: derecha e izquierda. 3. Se realiza una operacin modular que se repite 16 veces.
Esta operacin consiste en sumar mdulo 2 la parte izquierda con una funcin F sobre la parte derecha y gobernada por la clave.

4. Se intercambian las partes derecha e izquierda. En la vuelta 16 se omite el intercambio. 5. Se remata el algoritmo con una permutacin final que es la inversa de la inicial.

17

2. Criptosistemas con Clave Secreta 2.3. DES (III): Estructura

18

2. Criptosistemas con Clave Secreta 2.3. DES (IV): Estructura

19

1.2.Criptosistemas con Clave Secreta 2.3. DES (V): Involucin


Para descifrar el DES se repite la operacin modular. Su aplicacin repetida dos veces conduce a los datos originales. No hay que invertir la funcin F sino repetirla. Esto permite que dicha transformacin sea una funcin de un solo sentido, empleando operaciones no lineales.

20

10

2. Criptosistemas con Clave Secreta 2.3. DES (V): Transformaciones inicial y final
PI: Permutacin inicial fija: 58 50 42 34 26 18 10 62 54 46 38 30 22 14 57 49 41 33 25 17 PI-1: Permutacin final fija 40 38 36 34 8 48 16 56 24 64 32 39 6 46 14 54 22 62 30 37 4 44 12 52 20 60 28 35 2 42 10 50 18 58 26 33 7 47 15 55 23 63 31 5 45 13 53 21 61 29 3 43 11 51 19 59 27 1 41 9 49 17 57 25 9 61 53 45 37 29 21 13 2 60 52 44 36 28 20 12 6 64 56 48 40 32 24 16 1 59 51 43 35 27 19 11 5 63 55 47 39 31 23 15 4 8 3 7

PI-1 es la permutacin inversa a PI

PI-1(PI(j)) = j

Ej. El bit segundo del bloque, a travs de la permutacin PI es colocado en la posicin octava, y al final del algoritmo, el bit octavo cifrado es colocado, por PI-1 en la posicin segunda
21

2 Criptosistemas con Clave Secreta 2.3. DES (VI): Manipulaciones


La funcin F es un conjunto de operaciones combinadas.
Primera manipulacin Expandimos los 32 bits de entrada en 48 (aadimos nuevos bits) Se genera la clave correspondiente (hay una clave de entrada que cambiar en cada una de las 16 vueltas)

Segunda manipulacin Se suma la expansin con la clave Los 48 bits se agrupan en 8 bloques de 6 bits, y cada una pasa a una caja que genera 4 bits diferentes ltima manipulacin Se realiza una permutacin de los 32 bits resultantes

22

11

2. Criptosistemas con Clave Secreta 2.3. DES (VII): Manipulaciones


1. Expansin: La primera manipulacin consiste en fabricar un vector Expansi
de 48 bits a partir de los 32 iniciales mediante una expansin lineal.

2. Se combina la clave local de 48 bits con el vector anterior por suma mdulo 2 bit a bit. Se obtienen 48 bits que se agrupan en 8 m grupos de 6 bits.

23

2. Criptosistemas con Clave Secreta 2.3. DES (VIII): Manipulaciones


3. S-Boxes: Cada grupo entra en una de las 8 funciones denominadas
cajas S.
Aportan la no linealidad del DES. En cada caja entran 6 bits pero salen 4. La sustitucin producida no es funcin lineal de la entrada. El bit 1 y 6 indican la fila, los bits centrales indicarn la columna de la S-Box. El elemento de cruce indicar los 4 bits de salida. Al cambiar un bit de la entrada, cambian, al menos, 2 bits de la salida. Los principios para la eleccin de las cajas S jams han sido revelados, y es informacin clasificada por el gobierno de los EEUU.

24

12

2. Criptosistemas con Clave Secreta 2.3. DES (IX): Manipulaciones


S-Boxes:
Bj=b1b2b3b4b5b6 b1b6 row b2b3b4b5 column

Ej. La entrada 101010 en al S-Box nmero 8 seleccionara el 1100 (12), que es el elemento de cruce entre la fila 10 (2) y la columna 0101 (5).

25

2. Criptosistemas con Clave Secreta 2.3. DES (X): Manipulaciones


4. P-Box: Se pasa la informacin por una permutacin lineal fija,
elegida de tal forma que la difusin de bits sea mxima a lo largo del bloque de 32 bits.

El resultado final de esta permutacin es el resultado de la funcin

f en una iteracin

26

13

2. Criptosistemas con Clave Secreta 2.3. DES (XI): Expansin de claves en el DES
La clave inicial se reduce de 64 a 56 bits (eliminando el primer bit de cada 8). Se reordenan los bits restantes (sin significado criptogrfico).

Se generan las 16 subclaves necesarias en las 16 vueltas. Cada subclave est compuesta por 48 bits. Durante el descifrado se toman en orden inverso al de cifrado.

27

2. Criptosistemas con Clave Secreta 2.3. DES (XII): Expansin de claves en el DES
Para obtener las claves, se dividen los 56 bits de la clave inicial en dos mitades de 28 bits. Las mitades se rotan (permutan circularmente) a la izquierda 1 o 2 bits dependiendo de la vuelta. Las vueltas 1, 2, 9 y 16 rotan 1 posicin, y las restantes rotan 2 posiciones. Despus de las rotaciones se vuelven a unir las mitades, teniendo de nuevo 16 grupos de 56 bits. Se seleccionan 48 bits de cada grupo para formar las 16 subclaves, en lo que se denomina permutacin con compresin.

28

14

2. Criptosistemas con Clave Secreta 2.3. DES (XIII): Propiedades Fundamentales


funcin compleja de todos los bits de la clave y todos los bits del texto original. Cambio de los bits de entrada: Un cambio en un bit produce un 50% (aprox.) de cambio en el bloque cifrado. Cambio de los bits de clave: Un cambio en un bit de la clave produce un 50% de cambio en el bloque cifrado. Claves dbiles: d
Existen 4 claves dbiles que provocan que todas las claves k1 a k16 sean iguales. Existen 28 claves semidbiles que producen slo dos o cuatro subclaves parciales diferentes.

Dependencia entre smbolos: Cada bit del texto cifrado es una s

Errores de transmisin: Los errores se propagan a todo el bloque, transmisi


producindose un conjunto de errores despus del descifrado de 64 bits.

29

2. Criptosistemas con Clave Secreta 2.3. DES (XIV): Seguridad del DES
No existe una prueba que garantice que un algoritmo de cifrado sea prcticamente indescifrable. Existen demostraciones de que hay algoritmos vulnerables. El DES es un excelente sistema de cifrado. Aunque el espacio de claves es reducido. Ataque al DES:
En 1998 se construy una mquina masivamente paralela (210000$). Prueba todas las claves del DES en 9 das; en 4.5 das encuentra una clave. El DES Cracker tiene 36864 unidades de prueba de claves, ensayando cada una 2.5*106 claves por segundo. En total ensaya 92.16*109 claves por segundo.

Conclusin: El DES ya no es seguro. Conclusi


Sustituto? Triple DES: clave de 112 bits.

30

15

2. Criptosistemas con Clave Secreta 2.3. DES (XV): Implementacin de Cifrados en Bloque
Los sistemas de cifrado en bloque operan sobre conjuntos de informacin reducidos (bloques). Son adecuados para cifrar pequeos mensajes. Son inadecuados para cifrar grandes cantidades de datos.

Los perfiles se desdibujan pero las siluetas se conservan


31

2. Criptosistemas con Clave Secreta 2.3. DES (XVI): Implementacin de Cifrados en Bloque
Se han especificado cuatro modos de operar con DES: Libro Electrnico de Cdigos (Electronic Code Book - ECB). Encadenamiento de Bloques Cifrados (Cipher Block Chaining CBC). Realimentacin del Texto Cifrado (Cipher Feedback - CFB). Realimentacin de la salida (Output Feedback - OFB). ECB es la forma ms obvia de usar el cifrador de bloques: un bloque de texto plano se cifra y se obtiene un bloque de texto cifrado. Como el mismo bloque de texto plano siempre se cifra obteniendo el mismo bloque de texto cifrado, es tericamente posible crear un libro de cdigos de texto plano y su correspondiente texto cifrado. Sin embargo, si el bloque es de 64 bits, el nmero de posibles bloques de texto distinto es muy largo. En cualquier caso, se puede complicar todava ms la forma de utilizar el cifrado en bloque
32

16

2. Criptosistemas con Clave Secreta 2.3. DES (XVII): Implementacin de Cifrados en Bloque
Encadenamiento de bloques cifrados CBC:
Proporciona un mecanismo de realimentacin al cifrador de bloques El resultado del cifrado del bloque anterior alimenta al cifrado del siguiente bloque (cada bloque cifrado es usado para cifrar el siguiente)
Carga inicialmente en el registro de 64 bits un Vector Inicial que no importa que sea secreto pero si debe ser aleatorio. Convierte al DES en un cifrado en flujo. Puede cifrar mensajes iguales de manera diferente con slo cambiar VI (semilla: tiempo). No cambia el tamao del espacio de claves.

Ci = EK ( Pi Ci 1 )

Pi = Ci 1 Dk (Ci )
33

2. Criptosistemas con Clave Secreta 2.3. DES (XVIII): Implementacin de Cifrados en Bloque
Realimentacin del texto cifrado CFB (1): Realimentaci
Con CBC, el cifrado no puede comenzar hasta que se reciba un bloque de datos completo. Esto puede ser un problema en ciertas redes en la que cuando llega un carcter, ste ha de ser inmediatamente transmitido. Con CFB, el cifrado de datos se puede hacer con unidades ms pequeas que el bloque del DES. CFB puede usar 64 bits o cualquier cantidad menor.
Igual que en CBC, se carga inicialmente en el registro de 64 bits un Vector Inicial que no importa que sea secreto pero si debe ser aleatorio. Se divide el mensaje en claro en bloques de n bits. La operacin de suma mdulo 2 se hace bit a bit sobre bloques de n bits, que pueden variar entre 1 y 64. El registro de desplazamiento se desplaza a la izquierda n bits despus de cada operacin de cifrado (circularmente). Propiedades:
Convierte al DES en un cifrado en flujo. Puede cifrar mensajes iguales de manera diferente con slo cambiar VI (semilla: tiempo). No cambia el tamao del espacio de claves. 34

17

2. Criptosistemas con Clave Secreta 2.3. DES (XIX): Implementacin de Cifrados en Bloque
Realimentacin del texto cifrado CFB (2): Realimentaci

35

2. Criptosistemas con Clave Secreta 2.3. DES (XX): Implementacin de Cifrados en Bloque
Realimentacin de salida OFB (1): Realimentaci
Es exactamente igual que el anterior, pero en lugar de alimentar al algoritmo de cifrado DES con parte del texto resultado de sumar el bloque de texto en claro con el texto cifrado, se hace solamente con parte del texto cifrado (antes de ser sumado con el texto en claro) Tiene las mismas propiedades que el modo CFB, pero tiene algunos problemas adicionales de seguridad.

36

18

2. Criptosistemas con Clave Secreta 2.3. DES (XXII): Cifrado Mltiple


El nico procedimiento para aumentar el espacio de claves de un cifrado en bloque es hacer un cifrado mltiple. Este principio vale para cualquier cifrado en bloque. Aparentemente la seguridad aumenta, pero se puede demostrar que la longitud efectiva de la clave en bits es l=56*(n/2) bits en lugar de l=56*n Forma este cifrado un grupo algebraico? Si es as, este cifrado es intil. En el caso del DES se ha demostrado que no forma grupo.

37

2. Criptosistemas con Clave Secreta 2.3. DES (XXIII): Cifrado Triple


Modo de cifrado del DES [Triple DES] (utilizable con otros cifradores en bloque) consistente en aplicarlo tres veces. No llega a ser un cifrado mltiple, porque no son independientes todas las subclaves. En el DES la longitud efectiva de clave sera 112 bits.

38

19

2. Criptosistemas con Clave Secreta 2.4. IDEA (I)


El precursor de IDEA fue el PES (Proposed Encription Standard), propuesto por Lai y Massey en 1990, y que cifra bloques de 64 bits con una clave de 128 bits. IDEA (International Data Encription Algorithm) es un algoritmo ligeramente mejorado, propuesto por Lai, Massey y Murphy en el Eurocrypt91. En IDEA, tanto los datos en claro como los datos cifrados estn compuestos por bloques de 64 bits, mientras que la clave consta de 128 bits. El cifrado se basa en el concepto de mezclar operaciones aritmticas de grupos algebraicos diferentes. El algoritmo consiste en ocho vueltas de cifrado idnticas seguidas de una transformacin de salida. Aunque los mtodos de criptoanlisis han mejorado, ste es uno de los mejores y ms seguros algoritmos de cifrado de bloque
39

2. Criptosistemas con Clave Secreta 2.4. IDEA (II)


Durante el proceso de cifrado se utilizan operaciones de tres grupos aritmticos diferentes sobre pares de sub-bloques de 16 bits:
Grupo multiplicativo en Z2^16+1 ()
Multiplicacin mdulo 216+1

Grupo aditivo en Z2^16 (+)


Suma mdulo 216

Grupo aditivo en Z2, de las 16-uplas, bit a bit () Xor

Estas operaciones son invertibles en s mismas, pero incompatibles entre s no gozan de la ley distributiva ni asociativa, no forman grupo y la sucesin de ellas no puede dar lugar a cancelacin de operaciones. Los 64 bits del bloque de datos se divide en 4 sub-bloques de 16.
En cada vuelta el bloque de datos de entrada X es dividido en 4 subbloques de 16 bits (X1, X2, X3, X4).

Se realizan 8 vueltas, y cada una emplea una subclave diferente.

40

20

2. Criptosistemas con Clave Secreta 2.4. IDEA (III)


1. Multiplica X1 y la primera subclave 2. Suma X2 y la segunda subclave 3. Suma x3 y la tercera subclave 4. Multiplica X4 y la cuarta subclave 5. Xor el resultado entre 1 y 3 6. Xor del resultado de 2 y 4

7. Multiplica el resultado de 5 con la quinta subclave 8. Suma el resultado de 6 y 7 9. Multiplica el resultado de 8 con la sexta subclave 10. Suma el resultado de 7 y 9 11. Xor del resultado de 1 y 9 12. Xor del resultado de 3 y 9 13. Xor del resultado de 2 y 10 14. Xor del resultado de 4 y 10

41

2. Criptosistemas con Clave Secreta 2.4. IDEA (IV)


Las diferencias con el DES, que lo hacen ms atractivo, son:
El espacio de claves es 2128. Todas las operaciones son algebraicas, sin cajas S de oscura justificacin. No hay operaciones a nivel de bit, facilitando su programacin en alto nivel. Es ms eficiente que los algoritmos de tipo DES, porque a cada vuelta se modifican todos los bits del bloque y no solamente la mitad. Se pueden utilizar todos los modos de operacin definidos para el DES. La expansin de clave se inicia dividindola en 8 subclaves de 16 bits, que constituyen los 8 primeros sub-bloques de clave. A continuacin se rota la clave 25 bits hacia la izquierda y se obtienen los siguientes 8 sub-bloques de clave, y as sucesivamente. El ataque por fuerza bruta resulta impracticable Hay que probar 1038 claves. Los autores han demostrado que IDEA es inmune a ciertos tipos de criptoanlisis
Ms seguro
42

21

2. Criptosistemas con Clave Secreta 2.5. RC5 (I)


El RC5 es un algoritmo de cifrado en bloque simtrico, diseado recientemente por Ronald Rivest. Opera con palabras de tamao variable (w), nmero de vueltas variable (r) y clave secreta de longitud variable (b, en bytes). Consta de tres operaciones primitivas:
Suma mdulo 2w (+) OR exclusivo bit a bit () Rotacin, donde la rotacin de x un nmero y de bits a la izquierda se denota por x<<y.

Antes del cifrado la clave secreta se expande para llenar un array S de 2r+2 palabras.

43

2. Criptosistemas con Clave Secreta 2.5. RC5 (II)


Denotando (A,B) las dos palabras del bloque de entrada (32 bits cada una), el algoritmo es el siguiente: A=A+S[0]; B=B+S[1]; for i=1 to r do A=((AB)<<B)+S[2*i] B=((BA)<<A)+S[2*i+1] Para el descifrado deben realizarse las operaciones inversas en orden inverso.

44

22

Tema 4: Criptografa Moderna


1. Criptosistemas con cifrado en flujo.
1.1. Cifrado en flujo. 1.2. Generadores aleatorios de secuencia cifrante. aleatorios cifrante.

2.

Criptosistemas con clave secreta y cifrados simtricos. sim


2.1. Cifrado en bloque. 2.2. Cifrados tipo producto: LUCIFER. 2.3. El cifrado DES. 2.4. El cifrado IDEA. 2.5. El cifrado RC5.

3. Criptosistemas con clave pblica y cifrados asimtricos. p asim


3.1. Criptografa con clave secreta. Criptograf 3.2. Principios de los criptosistemas de clave pblica. p 3.3. Cambio de clave de Diffie-Hellman. Diffie- Hellman. 3.4. El criptosistema RSA. 3.5. El criptosistema de ElGamal. ElGamal.
45

3. Criptosistemas con Clave Pblica 3.1. Criptografa con Clave Secreta (I)
M: Mensajes; C: Textos cifrados; K: Posibles claves. Un Criptosistema de Clave Secreta es una familia de pares de funciones (Ek,Dk) para cada kK, definidas como Ek:M C, Dk:C M de manera que para mM se verifica Dk(Ek(m))=m. Para utilizar el criptosistema, A y B se ponen de acuerdo y eligen secretamente una clave kK. Si A enva un mensaje m a B, lo cifra, Ek(m)=c, y enva c a B. Para recuperar el mensaje, B descifra c, Dk(c)=m. Los pares de funciones (Ek,Dk) deben ser fciles de computar para los usuarios y deberan ser difciles de computar para un escucha que conociera c, pero no conociera ni m ni k.

46

23

3. Criptosistemas con Clave Pblica 3.1.Criptografa con Clave Secreta (II)


Problemas de la Criptografa de Clave Secreta: Criptograf
1. Distribucin de claves:
Dos usuarios tienen que seleccionar una clave en secreto. Tienen que hacerlo personalmente, o por medio de un canal inseguro.

2. Manejo de claves:
En una red de n usuarios, cada pareja tiene que tener su clave secreta, lo que hace que se tengan n(n-1)/2 claves.

3. Sin firma digital:


Una firma digital es lo anlogo a una firma manual o rbrica, pero en una red de comunicaciones. En los criptosistemas de clave secreta no hay posibilidad de firmar digitalmente los mensajes. El receptor de un mensaje no est seguro de que quien dice que le enva el mensaje sea realmente quien lo ha hecho.

47

3. Criptosistemas con Clave Pblica 3.2.Principios (I)


Se utilizan dos claves para cada participante:
Una para el cifrado que es pblica EAB. Otra para el descifrado que es privada/secreta
En 3.3. se estudia lo que es una funcin tramposa

DAV.

La que realiza el cifrado es una funcin unidireccional con trampa. m=DAV(EAB(m)) Un usuario cifra un mensaje con su clave pblica y otro lo descifra con su clave privada. m=EAB(DAV(m)) Cualquier usuario puede cifrar un mensaje con su clave privada de descifrado y recuperarlo otro usuario con la clave pblica del primero Firma electrnica.

48

24

3. Criptosistemas con Clave Pblica 3.2.Principios (II)


Firma electrnica/digital: Propiedad privativa de un individuo o electr
proceso que se utiliza para firmar mensajes. La informacin de la firma que se aade al mensaje garantiza la autenticidad del remitente. Si A enva un mensaje m cifrado a B, la firma de A debe satisfacer:
B debe ser capaz de validar la firma de A en m. Es imposible para cualquiera, incluido B, falsificar la firma. Si A niega haber firmado un mensaje recibido por B, debe haber un tercero que resuelva la disputa.

La firma electrnica proporciona la autenticidad del remitente y de los datos.

49

3. Criptosistemas con Clave Pblica 3.2.Principios (III)


Diffie y Hellman sugieren que se aplique la complejidad computacional al diseo de algoritmos de cifrado. Los problemas NP-completos se han considerado excelentes para su uso criptogrfico.
Se trata de problemas que no pueden resolverse en un tiempo polinmico viajante, coloreado ptimo de grafos, etc.

La informacin puede cifrarse mediante las operaciones que plantea un problema NP-completo, de forma que criptoanalizar el mensaje cifrado requiera resolver el problema NP-completo empleado en su forma usual, mientras que disponiendo de la clave de descifrado se puede encontrar la solucin de una forma eficiente y fcil.

50

25

3. Criptosistemas con Clave Pblica 3.3.Cambio de Clave de Diffie-Hellman (I)


Diffie y Hellman describieron un protocolo por medio del que dos personas pueden intercambiarse pequeas informaciones secretas Cambio de Clave de Diffie Hellman: por un canal inseguro
A y B seleccionan pblicamente un grupo multiplicativo finito G, de orden n, y un elemento G. A genera un n aleatorio a, calcula a en G y lo transmite a B. B genera un n aleatorio b, calcula b en G y lo transmite a A. A recibe b y calcula (b)a en G. B recibe a y calcula (a)b en G.

Generalizado GDHP. GDHP

A y B poseen un elemento comn y secreto del grupo G: ab. Un escucha podra conocer G, n, , a y b y podra intentar calcular el elemento ab, lo que hasta ahora es un problema intratable. Este problema se conoce como el Problema de Diffie-Hellman Diffie-

51

3. Criptosistemas con Clave Pblica 3.3.Cambio de Clave de Diffie-Hellman (II)


Ejemplo: Sea p el n primo 53. Supongamos G=Z53 con * y sea
=2 un generador. El protocolo de Diffie-Hellman es el siguiente:
A elige a=29, calcula a=22945 (mod 53) y enva 45 a B. B elige b=19, calcula b=21912 (mod 53) y enva 12 a A. A recibe 12 y calcula 12a=122921 (mod 53). B recibe 45 y calcula 45b=451921 (mod 53).

La clave privada o informacin secreta que comparten A y B es 21. Un escucha S conoce Z53, 2, 45 y 12, pero no puede conocer que la informacin secreta compartida por A y B es 21. 45

A
a=29

12 Comparten 21

B
b=19
52

26

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (I): Definiciones


Funcin Unidireccional: Es una funcin invertible, pero de modo Funci que es fcil calcular f(m)=c y es difcil computar f-1(c)=m. Funcin Tramposa: Una funcin unidireccional es tramposa si Funci puede ser invertida fcilmente cuando se conoce alguna informacin adicional extra. Esa informacin se conoce como trampa. Propiedades:
Son de la forma y=f(x); son fciles de calcular en el dominio de f. f-1 / x=f-1(y). f(x) y f-1(y) son computables en sus respectivos dominios. Si slo se conoce f(x)=y es computacionalmente imposible determinar f-1(y) a menos que se disponga de informacin adicional (trampa), que suele corresponder a la clave secreta. Si se verifica f(f-1(x))=x se trata de una permutacin unidireccional con trampa; esta propiedad permite implantar la firma electrnica e implica que el dominio de aplicacin sea nico.

53

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (II): Definiciones


Criptosistema de Clave Pblica: Se define como una familia de P funciones unidireccionales tramposas, {fk}, para cada clave kK, de modo que la trampa t(k) sea fcil de obtener. Adems, para cada kK se debe poder describir un algoritmo eficiente que permita calcular fk, pero de modo que sea intratable la determinacin de k y t(k).

54

27

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (III): Definiciones


Para implementar un criptosistema de clave pblica, cada usuario U elige una clave aleatoria y pblica uK que permite calcular fu; se la denota como Eu y es su clave pblica. La trampa t(u) necesaria para invertir fu es su clave privada. Si A enva un mensaje a B, lo har con la clave pblica de B, Eb, y transmite fb(m)=c. B es el nico capaz de invertir fb y recuperar el mensaje m: f 1 (c) = f 1 (f (m)) = m
b b b

Hay dos funciones candidatas a ser funciones tramposas:


Producto de nmeros enteros, cuya inversa es la factorizacin del nmero obtenido. Exponenciacin discreta, cuya inversa es el logaritmo discreto. Las dos funciones son fciles de computar, mientras que no lo son sus inversas:
Dado n, es difcil determinar su descomposicin en factores primos. Dados a y b, es difcil calcular x de modo que ax=b.
55

3. Criptosistemas con Clave Pblica 2.4. El Criptosistema RSA (IV): Protocolo


Criptosistema RSA: Primera realizacin del modelo de DiffieHellman, desarrollado por Rivest, Shamir y Adleman. El protocolo que sigue es:

1. Cada usuario U elige dos primos p y q y calcula n=pq. U utiliza Zn como grupo, cuyo orden es (n)=(pq)=(p-1)(q-1). Para U es fcil calcular este orden porque conoce p y q. 2. U selecciona un entero positivo e, 1e<(n), que sea primo con el orden del grupo. 3. Mediante el algoritmo de Euclides extendido calcula d como el inverso de e en Zn; entonces ed1 (mod (n)), con 1d<(n). 4. La clave pblica de U es la pareja (n,e) y su clave privada es d. Deben permanecer secretos los nmeros p, q y (n).

Si A desea enviar un mensaje m de Zn a B, utiliza la clave pblica de B (nb,eb) para calcular el valor de meb (mod nb)=c. Para recuperar el mensaje, B calcula cdb=(meb)db=mebdbm (mod nb).
56

28

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (V): Ejemplo


Ejemplo 1: Alfabeto ingls (A-Z, 0-25). Se enva un mensaje a B.
El usuario B elige dos primos: pb=281 y qb=167; calcula nb=281167=46927 y considera el grupo Z46927. El orden es (46927)=280166=46480. B elige el nmero eb=39423 y comprueba que mcd(39423,46480)=1. A continuacin determina el inverso de 39423 mdulo 46480. Este nmero es db=26767. La clave pblica de B es (nb,eb) = (46927,39423), mientras que mantiene en secreto los dems valores. Para enviar un mensaje a B se debe determinar en primer lugar la longitud del mismo. Se tendr en cuenta que vamos a codificar las letras del alfabeto por medio de nmeros en base 26. Como el mensaje ha de ser un elemento del grupo, su longitud no puede exceder de n=46927. Como 263=17576<n<456976=264, el mensaje ha de tener un mximo de tres letras. Para enviar un mensaje ms largo, habr que partirlo en grupos de tres letras. En la prctica la longitud del mensaje es mucho mayor, dado que n es un nmero con muchos ms dgitos.
57

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (VI): Ejemplo


Se enviar a B el mensaje m=YES. Supongamos que somos el usuario A, cuya clave pblica es (na,ea)=(155011,2347) y cuya clave privada es da=151267, con pa=409, qa=379 y (na)=154224. Para enviar el mensaje m hemos de codificarlo, expresndolo en base 26 de modo que el mensaje sea un elemento del grupo considerado Z46927:
YES = Y262 + E26 + S = 24262 + 426 + 18 = 16346 = m

Ahora ciframos m con la clave pblica de B:


c = meb (mod nb) = 1634639423 (mod 46927) = 21166

Decodificamos el mensaje cifrado:


c = 21166 = 1263 + 5262 + 826 + 2 = BFIC

Por tanto, el mensaje a enviar a B es BFIC.

58

29

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (VII): Ejemplo


Para que B pueda recuperar el mensaje, deber codificar los datos recibidos en base 26:
BFIC = 1263 + 5262 + 826 + 2 = 21166 = c

Ahora recuperar m calculando:


m = cdb (mod nb) = 2116626767 (mod 46927) = 16346

Se decodifica m y se obtiene el texto original:


m = 16346 = 24262 + 426 + 18 = YES

59

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (VIII): Firma Digital
Sean A y B usuarios con claves (EAB,DAV) y (EBB,DBV); E: clave de cifrado pblica, D: clave de descifrado secreta

1. A utiliza DAV para firmar el mensaje: s= DAV(m) 2. Cifra la firma s con el algoritmo de cifrado pblico de B: 3. Enva por el medio EBB(s). 4. B descifra el mensaje recibido con su algoritmo secreto: 5. Suponiendo que proceda de A aplica el algoritmo pblico de A:
DBV(EBB(s))=s= DAV(m) EAB(DAV(m))=m EBB(s)= EBB(DAV(m))

B no puede modificar m m porque tendra que crear s=DAV(m) y no conoce DAV. Al aplicar la clave pblica de A, EAB, y obtener m se prueba que el mensaje es autntico y fue firmado por A.
60

30

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (IX)


En la prctica, para agilizar las operaciones se suele elegir una clave pblica pequea, para que quien desee enviar un mensaje lo haga de la forma ms rpida posible. Es frecuente que muchos usuarios utilicen el mismo exponente como su clave pblica (los exponentes ms comunes son 3 y 216+1). Esta situacin no compromete la seguridad del criptosistema y permite que el cifrado de los mensajes sea mucho ms rpida que el descifrado, as como que la verificacin de un mensaje sea mucho ms rpida que la firma digital del mismo.

61

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (X)


En la actualidad, el chip ms rpido para el RSA tiene una velocidad de proceso mayor de 600 kbits/s con un mdulo de 512 bits Puede ejecutar ms de 1000 operaciones de la clave privada del RSA por segundo. En comparacin, en software el criptosistema de clave secreta DES es como mnimo 100 veces ms rpido que el RSA, y en hardware DES es entre 1000 y 10000 veces ms rpido que RSA. A pesar de esta diferencia de ejecucin, el criptosistema RSA (y otros de clave pblica) se utiliza porque permite firmar digitalmente los mensajes que se envan.

62

31

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (XI): Utilizacin del DES
Dado que el RSA es bastante lento en su ejecucin, generalmente se utiliza en conjuncin con el DES del siguiente modo: A cifra m con el DES mediante una clave aleatoria, y a continuacin esta clave DES utilizada se cifra con el criptosistema RSA. Posteriormente, A enva por el canal inseguro la pareja formada por el mensaje cifrado mediante DES y la clave de DES cifrada con RSA. Este protocolo se conoce como envoltura digital RSA. Para recuperar el mensaje recibido, B descifra la clave de DES mediante su clave privada del RSA y luego utiliza la clave obtenida para descifrar el mensaje m. El criptosistema RSA fue patentado en 1983 por Public Key Partners (PKP) en Estados Unidos, y la patente no expira hasta el ao 2000.

63

3. Criptosistemas con Clave Pblica 3.4. El Criptosistema RSA (XII): Seguridad


La seguridad del RSA radica en la dificultad computacional de la factorizacin de grandes nmeros. Est probado que no existe un algoritmo para factorizar un nmero de 200 dgitos en un tiempo razonable. Aunque tiene un enorme coste computacional, el problema de la factorizacin no es inabordable. En 1977 la revista Scientific American ret a sus lectores a factorizar un nmero con 129 dgitos. Durante 17 aos el problema estuvo sin resolver, sin embargo en 1994 un grupo de cientficos y matemticos, usando tiempo de CPU donado por un total de 600 voluntarios a travs de Internet, consiguieron su factorizacin. La resolucin de este problema supone romper una clave RSA de 129 dgitos y tuvo un coste de 1000 billones de operaciones durante un periodo de 8 meses (5000 MIPS-ao). El mensaje codificado deca "The magic words are squeamish ossifrage" que puede traducirse como "las palabras mgicas son delicados quebrantahuesos".
64

32

3. Criptosistemas con Clave Pblica 3.5. El Criptosistema de ElGamal (I)


ElGamal propuso un esquema de clave pblica basado en la exponenciacin discreta sobre el grupo multiplicativo de un cuerpo finito Zp. Los mensajes son elementos de G y A desea enviar un mensaje m a B. El protocolo es el siguiente:
Se selecciona un grupo finito G y un elemento G. Cada usuario A elige un nmero aleatorio a, que ser su clave privada, y calcula a en G, que ser su clave pblica. Para que A enve un mensaje m a B, realiza lo siguiente:
1. Genera un nmero aleatorio v y calcula v en G. 2. A utiliza la clave pblica de B, b, y calcula (b)v y mbv en G. 3. A enva la pareja (v,mbv) a B.

Para recuperar el mensaje original:


1. B calcula (v)b en G. 2. B obtiene m con slo calcular: (mvb) / vb

65

3. Criptosistemas con Clave Pblica 3.5. El Criptosistema de ElGamal (II)


Por seguridad y eficacia, el grupo G y el elemento deben elegirse de modo que se verifique:
Por eficacia: la operacin en G debe ser fcil de aplicar. Por seguridad: el problema del logaritmo discreto en el subgrupo cclico de G generado por , <> debera ser difcil.

Para simplificar el protocolo anterior, puede suponerse que el grupo sobre el que se llevan a cabo las operaciones mencionadas en el protocolo anterior es el grupo multiplicativo del cuerpo Zp Las potencias y productos se efectan mdulo un n primo p.

66

33

4. Ejercicios

1. Utilizando el cifrado en flujo cifrar el mensaje LADRILLO usando el cdigo ASCII y utilizando la clave K indicada.
K = 0110001100000001011110000010100001111110011110011110011001011010

2. Cifrar con el algoritmo DES el mensaje siguiente X utilizando la clave K.


X = 0101010101010101010101010101010101010101010101010101010101010101 K = 1111000011110000111100001111000011110000111100001111000011110000

67

4. Ejercicios

3. Alicia y Bernardo utilizan como grupo Z13* y eligen como generador del mismo =4. Determinar que nmero secreto se intercambiarn por el cambio de clave de Diffie-Hellman si Alicia elige como nmero a1eatorio a=5 y Bernardo elige b=2. 4. Si se utiliza el criptosistema RSA, determinar el criptograma para el mensaje m=152167492, teniendo en cuenta que los parmetros del destinatario, Bernardo, son: nB=143, eB=7 y dB=103, y los del remitente, Alicia, son: nA=161, eA=31 y dA=115. 5. Bernardo utiliza el criptosistema RSA con la siguiente clave pblica: (nB,eB)=(2947,179). Determinar el criptograma que debe enviar Alicia si e1 mensaje es m=MANDA DINERO. Las letras A-Z del alfabeto se codifican con 0-25, el punto es el 26 y el espacio en blanco es el 27.
68

34

4. Ejercicios

6. Si Alicia tiene como clave pblica (nA,eA)=(2773,17), determinar el criptograma que corresponde a la respuesta a1 mensaje del problema anterior: NO TENGO. 7. Enviar el mensaje m=16 a un amigo que trabaja con el criptosistema de ElGamal. Este amigo utiliza los siguientes parmetros: el primo es p=23, el generador del grupo Z23* es =5 y su clave pblica es 19. 8. En el criptosistema de ElGamal se considera el nmero primo p=65537 y el grupo Zp* con generador =5. Enviar a Bernardo, cuya clave pblica es 23467, un mensaje en el que se indique el tipo de moneda a utilizar en determinada transaccin, es decir, m=PTA.

69

35

Você também pode gostar