13.08.2013 Views

Tema 4: Criptografía Moderna - Grupo Alarcos

Tema 4: Criptografía Moderna - Grupo Alarcos

Tema 4: Criptografía Moderna - Grupo Alarcos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Tema</strong> 4: <strong>Criptografía</strong> Criptograf a <strong>Moderna</strong><br />

1. Criptosistemas con cifrado en flujo.<br />

1.1. Cifrado en flujo.<br />

1.2. Generadores “aleatorios<br />

aleatorios” de secuencia cifrante. cifrante<br />

2. Criptosistemas con clave secreta y cifrados simétricos.<br />

sim tricos.<br />

2.1. Cifrado en bloque.<br />

2.2. Cifrados tipo producto: LUCIFER.<br />

2.3. El cifrado DES.<br />

2.4. El cifrado IDEA.<br />

2.5. El cifrado RC5.<br />

3. Criptosistemas con clave pública p blica y cifrados asimétricos.<br />

asim tricos.<br />

3.1. <strong>Criptografía</strong> Criptograf a con clave secreta.<br />

3.2. Principios de los criptosistemas de clave pública. p blica.<br />

3.3. Cambio de clave de Diffie-Hellman<br />

Diffie Hellman.<br />

3.4. El criptosistema RSA.<br />

3.5. El criptosistema de ElGamal. ElGamal<br />

1. Criptosistemas con Cifrado en Flujo<br />

1.1. Cifrado en Flujo (I)<br />

El cifrado Vernam Vernam verifica las condiciones condiciones de de secreto secreto perfecto perfecto<br />

(Shannon Shannon).<br />

Es el único procedimiento de cifrado incondicionalmente seguro.<br />

Tiene el inconveniente de que requiere un bit de clave por cada bit<br />

de texto claro.<br />

Hacer llegar una clave tan grande a emisor y receptor por un canal<br />

seguro desbordaría la propia capacidad del canal En la práctica<br />

se utiliza el cifrado en flujo.<br />

El emisor A, con una clave corta (secreta) y un algoritmo<br />

determinístico (público) genera una secuencia binaria {Si } cuyos<br />

elementos se suman módulo 2 con los correspondientes bits de<br />

texto claro mi , dando lugar a los bits de texto cifrado ci . Esta<br />

secuencia {ci} es la que se envía a través de un canal público.<br />

En recepción, B, con la misma clave y el mismo algoritmo genera<br />

la misma secuencia cifrante, que se suma modulo 2 con la<br />

secuencia cifrada, dando lugar a los bits de texto claro.<br />

1<br />

2<br />

1


1. Criptosistemas con Cifrado en Flujo<br />

1.1. Cifrado en Flujo (II)<br />

1. Criptosistemas con Cifrado en Flujo<br />

1.1. Cifrado en Flujo (III)<br />

El cifrado en flujo es una involución:<br />

El procedimiento de cifrado y descifrado es el mismo.<br />

Como la secuencia cifrante se ha obtenido a partir de un algoritmo<br />

determinístico, el cifrado en flujo ya no considera secuencias<br />

perfectamente aleatorias, sino solamente pseudo-aleatorias.<br />

Lo que se pierde en cuanto a seguridad (condiciones condiciones de de Shannon) Shannon<br />

se gana en viabilidad.<br />

La única información que han de compartir emisor y receptor es la<br />

clave secreta, cuya longitud oscila entre 120-150 bits.<br />

En la actualidad, y en general para todos los cifrados de clave<br />

privada, lo que se hace es enviar la clave privada al destinatario<br />

mediante un procedimiento de clave pública (procedimiento más<br />

costoso, pero válido para textos cortos), y una vez que ambos<br />

disponen ya de la clave, se procede a aplicar el esquema de cifrado<br />

en flujo.<br />

3<br />

4<br />

2


1. Criptosistemas con Cifrado en Flujo<br />

1.2. Generadores “aleatorios” de Secuencia Cifrante (I)<br />

Es difícil evaluar cuando una secuencia binaria es suficientemente<br />

segura para su utilización en <strong>Criptografía</strong>. Pero al menos se<br />

consideran los siguientes criterios:<br />

11-- Periodo: Periodo<br />

Es el número de elementos a partir del cual se repite la<br />

secuencia.<br />

El periodo ha de ser al menos tan largo como la longitud<br />

del texto a cifrar.<br />

En la práctica, periodo del orden de 1038 .<br />

1. Criptosistemas con Cifrado en Flujo<br />

1.2. Generadores “aleatorios” de Secuencia Cifrante (II)<br />

22-- Distribucióón Distribuci n de de ceros ceros y y unos: unos<br />

En una secuencia, diferentes muestras de determinada longitud han<br />

de estas uniformemente distribuidas a lo largo de toda ella.<br />

0<br />

… 01001101001110110010001101010001 …<br />

1<br />

Racha: Racha Se denomina racha de longitud k a una sucesión de k dígitos<br />

iguales entre dos dígitos distintos.<br />

La función de autocorrelacióónn autocorrelaci AC(k) de una secuencia periódica de<br />

periodo T se define como AC(k)=(A-D)/T.<br />

A: número de coincidencias, D: número de no coincidencias con la<br />

secuencia desplazada cíclicamente k posiciones.<br />

Si k es múltiplo de T, la correlación está en fase y AC(k)=1.<br />

Si no, la autocorrelación está fuera de fase: AC(k)∈[-1,1].<br />

0<br />

0<br />

1<br />

1<br />

0<br />

0<br />

1<br />

1<br />

0<br />

0<br />

0<br />

0<br />

1<br />

1<br />

1<br />

k No coincidencias Coincidencias<br />

1<br />

0<br />

1<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

1<br />

0<br />

1<br />

0<br />

1<br />

1<br />

0<br />

0<br />

1<br />

Secuencia de 3 unos<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

1<br />

0<br />

0<br />

1<br />

0<br />

0<br />

0<br />

1<br />

1<br />

0<br />

1<br />

0<br />

0<br />

5<br />

6<br />

3


1. Criptosistemas con Cifrado en Flujo<br />

1.2. Generadores “aleatorios” de Secuencia Cifrante (III)<br />

Postulados Postulados de de pseudoaleatoriedad pseudoaleatoriedad de de Golomb: Golomb<br />

G1: En cada periodo de la secuencia, el nº de unos tiene que ser<br />

aproximadamente igual al número de ceros; la diferencia entre uno y<br />

otro no debe exceder de la unidad.<br />

G2: En cada periodo de la secuencia considerada, la mitad de las<br />

rachas tienen longitud 1, una cuarta parte tiene longitud 2, una<br />

octava parte tienen longitud 3, etc. Además, para cada longitud de las<br />

rachas, habrá el mismo número de rachas de ceros que de unos.<br />

G3: La autocorrelación AC(k) fuera de fase es constante para todo<br />

valor de k.<br />

Una secuencia finita que verifique estos postulados tiene las<br />

propiedades de una secuencia binaria de distribución uniforme.<br />

G1: Unos y ceros aparecen con la misma probabilidad.<br />

G2: Los diversos n-gramas ocurren con la probabilidad correcta.<br />

G3: El cómputo de coincidencias entre un secuencia y su versión<br />

desplazada no aporta ninguna información sobre el periodo de la<br />

secuencia, a menos que ésta se desplace sobre sí misma un múltiplo<br />

de dicho periodo.<br />

1. Criptosistemas con Cifrado en Flujo<br />

1.2. Generadores “aleatorios” de Secuencia Cifrante (IV)<br />

33-- Imprevisibilidad:<br />

Imprevisibilidad<br />

La secuencia cifrante ha de ser imprevisible.<br />

Dada una porción de secuencia de cualquier longitud, un<br />

criptoanalista no podría predecir el siguiente dígito con una<br />

probabilidad de acierto superior a 1/2.<br />

44-- Facilidad Facilidad de de implementacióónn:<br />

implementaci<br />

La secuencia tiene que ser fácil de generar con medios electrónicos<br />

para poder ser aplicada en el cifrado/descifrado.<br />

Aspectos técnicos: Velocidad de generación, coste, tamaño, consumo,<br />

etc.<br />

Ejemplo: Ejemplo: Generadores Generadores basados basados en en congruencias congruencias lineales lineales<br />

Xi+1=(aXi+b)(mod m)<br />

Xi+1=(5Xi+3)(mod 16) {1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3, 2, 13, 4,<br />

7, 6, 1, 8, ….}<br />

Ahí comienza un nuevo periodo<br />

7<br />

8<br />

4


<strong>Tema</strong> 4: <strong>Criptografía</strong> Criptograf a <strong>Moderna</strong><br />

1. Criptosistemas con cifrado en flujo.<br />

1.1. Cifrado en flujo.<br />

1.2. Generadores “aleatorios<br />

aleatorios” de secuencia cifrante. cifrante<br />

2. Criptosistemas con clave secreta y cifrados simétricos.<br />

sim tricos.<br />

2.1. Cifrado en bloque.<br />

2.2. Cifrados tipo producto: LUCIFER.<br />

2.3. El cifrado DES.<br />

2.4. El cifrado IDEA.<br />

2.5. El cifrado RC5.<br />

3. Criptosistemas con clave pública p blica y cifrados asimétricos.<br />

asim tricos.<br />

3.1. <strong>Criptografía</strong> Criptograf a con clave secreta.<br />

3.2. Principios de los criptosistemas de clave pública. p blica.<br />

3.3. Cambio de clave de Diffie-Hellman<br />

Diffie Hellman.<br />

3.4. El criptosistema RSA.<br />

3.5. El criptosistema de ElGamal. ElGamal<br />

2. Criptosistemas con Clave Secreta<br />

2.1. Cifrado en Bloque (I)<br />

Es aquel cifrado en el que se cifra el mensaje original agrupando<br />

los símbolos en grupos (bloques).<br />

En este apartado (el 2) estudiaremos varios cifrados modernos en<br />

bloque:<br />

Cada bloque de símbolos se cifra siempre de igual manera.<br />

Dos mensajes originales iguales, cifrados con la misma clave,<br />

producen siempre mensajes cifrados iguales.<br />

Para descifrar parte de un mensaje no es preciso descifrarlo<br />

completamente desde el principio.<br />

Todos los cifrados en bloque se componen de 4 elementos:<br />

1. Transformación inicial.<br />

2. Función criptográficamente débil iterada r veces.<br />

3. Transformación final.<br />

4. Algoritmo de expansión de clave.<br />

9<br />

10<br />

5


2. Criptosistemas con Clave Secreta<br />

2.1. Cifrado en Bloque (II)<br />

Bloque en claro<br />

Clave<br />

Expansión<br />

de Clave<br />

K i<br />

Transformación<br />

Inicial<br />

Función<br />

Criptográfica<br />

Transformación<br />

Final<br />

2. Criptosistemas con Clave Secreta<br />

2.1. Cifrado en Bloque (III)<br />

Transformacióón Transformaci n inicial inicial (1): Puede tener una o dos funciones:<br />

Bloque cifrado<br />

1. Aleatorización de los datos de entrada (sin significado criptográfico si no<br />

depende de la clave [DES]).<br />

Esto hace que desaparezcan bloques con todo ceros o todo unos.<br />

Sin significado criptográfico no depende de la clave<br />

2. Dificulta ataques por análisis lineal o diferencial (con significado criptográfico<br />

[RC5, IDEA]).<br />

“Vueltas Vueltas intermedias” intermedias (2):<br />

Función no lineal complicada de los datos y la clave.<br />

Puede ser unidireccional [DES] o no [IDEA, RC5].<br />

Puede estar formada por una sola operación muy compleja o por la sucesión de<br />

varias transformaciones simples.<br />

Las vueltas se enlazan por sumas módulo 2 bit a bit con los datos que vienen de<br />

la transformación inicial o de vueltas anteriores Se posibilita una involución.<br />

involuci n.<br />

Involución cuando se puede repetir el proceso pero en orden inverso, obteniendo el<br />

mismo resultado (para descifrar se aplica el mismo algoritmo que para cifrar)<br />

Las vueltas intermedias no han de formar grupo<br />

Varias pasadas no deben equivaler a una<br />

11<br />

12<br />

6


2. Criptosistemas con Clave Secreta<br />

2.1. Cifrado en Bloque (IV)<br />

Transformacióón Transformaci n final final (3): Sirve para que las operaciones de cifrado<br />

y descifrado sean simétricas.<br />

Algoritmo Algoritmo de de expansióón expansi n de de clave clave (4):<br />

Convierte la clave de usuario (32-256 bits) en un conjunto de<br />

subclaves constituidas por varios cientos de bits en total.<br />

Conviene que sea unidireccional, y que el conocimiento de una o<br />

varias subclaves no permita deducir las claves anteriores o<br />

posteriores.<br />

Las subclaves producidas no deben constituir un pequeño<br />

subconjunto monótono (que se repitan) de todas las posibles.<br />

2. Criptosistemas con Clave Secreta<br />

2.2. Cifrados tipo Producto: LUCIFER (I)<br />

Un cifrado tipo producto, según Shannon Shannon (1949), es el que utiliza<br />

la composición de diferentes funciones de cifrado.<br />

El resultado de cifrar un mensaje M con t funciones Fi (1≤i≤t) será:<br />

E(M)=Ft(...F3(F2(F1(M)))...) Fi puede ser sustitución o transposición.<br />

Se trata de que el resultado final sea lo más aleatorio posible.<br />

Esta idea de Feistel fue implantada por Notz y Smith en el<br />

dispositivo Lucifer, Lucifer precursor del DES.<br />

Se trata simplemente de aplicar varias funciones de manera<br />

secuencial sobre los datos a cifrar. Para descifrar, se aplicarían las<br />

inversas en el orden contrario, y se conseguiría obtener el mensaje<br />

original.<br />

13<br />

14<br />

7


2. Criptosistemas con Clave Secreta<br />

2.2. Cifrados tipo Producto: LUCIFER (II)<br />

6. La parte baja y alta se<br />

intercambian, y se realizan<br />

hasta 16 vueltas de este<br />

tipo, dando lugar al bloque<br />

cifrado<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES – Data Encryption Standard (I)<br />

1. El bloque de datos a<br />

cifrar de 128 bits se divide<br />

a su entrada en dos<br />

partes, la alta y la baja<br />

2. A cada uno de los 8<br />

octetos de la parte alta se<br />

los somete a una<br />

transformación bajo el<br />

control de un bit<br />

determinado de la clave<br />

3. El resultado de dicha<br />

transformación se suma<br />

Xor con los 8 restantes de<br />

la clave<br />

4. Se realiza una<br />

transformación a nivel de<br />

bit sobre los 64 bits<br />

5. Se suma el resultado<br />

con los octetos de la parte<br />

baja del bloque de entrada<br />

1973: el NBS (National Bureau of Standards, USA) organizó un<br />

concurso solicitando un algoritmo de cifrado para la protección de<br />

datos de ordenador en su transmisión y almacenaje.<br />

1974: IBM presenta una propuesta inspirada en LUCIFER.<br />

Esta propuesta, modificada, dio lugar al DES.<br />

La aprobación y modificación de la propuesta se hizo con la<br />

supervisión de la NSA (National Security Agency). La NSA impuso la<br />

actual longitud de la clave (modesta y desaconsejable).<br />

El DES es un algoritmo de cifrado en bloque (64 bits, 8 car. ASCII).<br />

La longitud de la clave es de 56 bits (7.2*10<br />

16<br />

16 claves diferentes).<br />

La norma exige que el DES se implemente mediante un circuito<br />

electrónico integrado.<br />

El chip DES es un producto estratégico USA (no se permite exportar<br />

sin permiso…).<br />

1981: el ANSI (American National Standards Institute, USA) adoptó el<br />

DES como Data Encryption Algorithm (DEA). La norma no exige<br />

implementación con chip y puede hacerse por software.<br />

15<br />

8


2. Criptosistemas con Clave Secreta<br />

2.3. DES (II): Estructura<br />

Los pasos pasos del del algoritmo algoritmo son los siguientes:<br />

1. Se hace una permutación inicial fija (sin valor criptográfico).<br />

2. Se divide el bloque en dos mitades: derecha e izquierda.<br />

3. Se realiza una operación modular que se repite 16 veces.<br />

Esta operación consiste en sumar módulo 2 la parte izquierda con una<br />

función F sobre la parte derecha y gobernada por la clave.<br />

4. Se intercambian las partes derecha e izquierda. En la vuelta 16 se<br />

omite el intercambio.<br />

5. Se remata el algoritmo con una permutación final que es la inversa<br />

de la inicial.<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (III): Estructura<br />

17<br />

18<br />

9


2. Criptosistemas con Clave Secreta<br />

2.3. DES (IV): Estructura<br />

1.2. 1. 2.Criptosistemas<br />

Criptosistemas con Clave Secreta<br />

2.3. DES (V): Involución<br />

Para descifrar el DES se repite la<br />

operación modular.<br />

Su aplicación repetida dos veces<br />

conduce a los datos originales.<br />

No hay que invertir la función F<br />

sino repetirla.<br />

Esto permite que dicha<br />

transformación sea una función<br />

de un solo sentido, empleando<br />

operaciones no lineales.<br />

19<br />

20<br />

10


2. Criptosistemas con Clave Secreta<br />

2.3. DES (V): Transformaciones inicial y final<br />

PI: Permutación inicial fija:<br />

58<br />

62<br />

57<br />

61<br />

PI-1: Permutación final fija<br />

40<br />

38<br />

36<br />

34<br />

50<br />

54<br />

49<br />

53<br />

8<br />

6<br />

4<br />

2<br />

42<br />

46<br />

41<br />

45<br />

48<br />

46<br />

44<br />

42<br />

34<br />

38<br />

33<br />

37<br />

16<br />

14<br />

12<br />

10<br />

26<br />

30<br />

25<br />

29<br />

56<br />

54<br />

52<br />

50<br />

PI-1 es la permutación inversa a PI PI-1(PI(j)) = j<br />

18<br />

22<br />

17<br />

21<br />

24<br />

22<br />

20<br />

18<br />

10<br />

14<br />

9<br />

13<br />

64<br />

62<br />

60<br />

58<br />

2<br />

6<br />

1<br />

5<br />

32<br />

30<br />

28<br />

26<br />

Ej. El bit segundo del bloque, a través de la permutación PI es colocado en la posición octava,<br />

y al final del algoritmo, el bit octavo cifrado es colocado, por PI-1 en la posición segunda<br />

2 Criptosistemas con Clave Secreta<br />

2.3. DES (VI): Manipulaciones<br />

La función F es un conjunto de operaciones combinadas.<br />

Segunda manipulación<br />

Se suma la expansión<br />

con la clave<br />

Los 48 bits se agrupan<br />

en 8 bloques de 6 bits,<br />

y cada una pasa a una<br />

“caja” que genera 4<br />

bits diferentes<br />

Última manipulación<br />

Se realiza una<br />

permutación de los 32<br />

bits resultantes<br />

60<br />

64<br />

59<br />

63<br />

39<br />

37<br />

35<br />

33<br />

52<br />

56<br />

51<br />

55<br />

7<br />

5<br />

3<br />

1<br />

44<br />

48<br />

43<br />

47<br />

47<br />

45<br />

43<br />

41<br />

36<br />

40<br />

35<br />

39<br />

15<br />

13<br />

11<br />

9<br />

28<br />

32<br />

27<br />

31<br />

55<br />

53<br />

51<br />

49<br />

20<br />

24<br />

19<br />

23<br />

23<br />

21<br />

19<br />

17<br />

12<br />

16<br />

11<br />

15<br />

63<br />

61<br />

59<br />

57<br />

4<br />

8<br />

3<br />

7<br />

31<br />

29<br />

27<br />

25<br />

21<br />

Primera manipulación<br />

Expandimos los 32 bits<br />

de entrada en 48<br />

(añadimos nuevos bits)<br />

Se genera la clave<br />

correspondiente (hay<br />

una clave de entrada<br />

que cambiará en cada<br />

una de las 16 vueltas)<br />

22<br />

11


2. Criptosistemas con Clave Secreta<br />

2.3. DES (VII): Manipulaciones<br />

1. 1. Expansióónn: Expansi La primera manipulación consiste en fabricar un vector<br />

de 48 bits a partir de los 32 iniciales mediante una expansión<br />

lineal.<br />

2. Se combina la clave local de 48 bits con el vector anterior por<br />

suma suma móódulo m dulo 22 bit a bit. Se obtienen 48 bits que se agrupan en 8<br />

grupos de 6 bits.<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (VIII): Manipulaciones<br />

3. 3. SS--Boxes Boxes: Cada grupo entra en una de las 8 funciones denominadas<br />

cajas S.<br />

Aportan la no linealidad del DES.<br />

En cada caja entran 6 bits pero salen 4.<br />

La sustitución producida no es función lineal de la entrada.<br />

El bit 1 y 6 indican la fila, los bits centrales indicarán la columna de la<br />

S-Box. El elemento de cruce indicará los 4 bits de salida.<br />

Al cambiar un bit de la entrada, cambian, al menos, 2 bits de la salida.<br />

Los principios para la elección de las cajas S jamás han sido<br />

revelados, y es información clasificada por el gobierno de los EEUU.<br />

23<br />

24<br />

12


2. Criptosistemas con Clave Secreta<br />

2.3. DES (IX): Manipulaciones<br />

SS--Boxes Boxes:<br />

Bj=b1b2b3b4b5b6 b1b6 row<br />

b2b3b4b5 column<br />

Ej. La entrada<br />

101010 en al S-Box<br />

número 8<br />

seleccionaría el<br />

1100 (12), que es<br />

el elemento de<br />

cruce entre la fila<br />

10 (2) y la columna<br />

0101 (5).<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (X): Manipulaciones<br />

4. 4. PP--Box Box: Se pasa la información por una permutación lineal fija,<br />

elegida de tal forma que la difusión de bits sea máxima a lo largo<br />

del bloque de 32 bits.<br />

El resultado final de<br />

esta permutación es el<br />

resultado de la función<br />

f en una iteración<br />

25<br />

26<br />

13


2. Criptosistemas con Clave Secreta<br />

2.3. DES (XI): Expansión de claves en el DES<br />

La clave inicial se reduce de 64 a 56 bits (eliminando el primer bit<br />

de cada 8).<br />

Se reordenan los bits restantes (sin significado criptográfico).<br />

Se generan las 16 subclaves necesarias en las 16 vueltas.<br />

Cada subclave está compuesta por 48 bits. Durante el descifrado se<br />

toman en orden inverso al de cifrado.<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (XII): Expansión de claves en el DES<br />

Para obtener las claves, se dividen los 56 bits de la clave inicial en<br />

dos mitades de 28 bits.<br />

Las mitades se rotan (permutan circularmente) a la izquierda 1 o 2<br />

bits dependiendo de la vuelta. Las vueltas 1, 2, 9 y 16 rotan 1<br />

posición, y las restantes rotan 2 posiciones.<br />

Después de las rotaciones se vuelven a unir las mitades, teniendo<br />

de nuevo 16 grupos de 56 bits.<br />

Se seleccionan 48 bits de cada grupo para formar las 16 subclaves,<br />

en lo que se denomina permutación con compresión.<br />

27<br />

28<br />

14


2. Criptosistemas con Clave Secreta<br />

2.3. DES (XIII): Propiedades Fundamentales<br />

Dependencia Dependencia entre entre síímbolos s mbolos: Cada bit del texto cifrado es una<br />

función compleja de todos los bits de la clave y todos los bits del<br />

texto original.<br />

Cambio Cambio de de los los bits bits de de entrada: entrada Un cambio en un bit produce un<br />

50% (aprox.) de cambio en el bloque cifrado.<br />

Cambio Cambio de de los los bits bits de de clave: clave Un cambio en un bit de la clave<br />

produce un 50% de cambio en el bloque cifrado.<br />

Claves Claves déébiles d biles:<br />

Existen 4 claves “débiles” que provocan que todas las claves k1 a k16 sean iguales.<br />

Existen 28 claves “semidébiles” que producen sólo dos o cuatro<br />

subclaves parciales diferentes.<br />

Errores Errores de de transmisióónn: transmisi Los errores se propagan a todo el bloque,<br />

produciéndose un conjunto de errores después del descifrado de<br />

64 bits.<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (XIV): Seguridad del DES<br />

No existe una prueba que garantice que un algoritmo de cifrado<br />

sea prácticamente indescifrable.<br />

Existen demostraciones de que hay algoritmos vulnerables.<br />

El DES es un excelente sistema de cifrado.<br />

Aunque el espacio de claves es reducido.<br />

Ataque al DES:<br />

En 1998 se construyó una máquina masivamente paralela (210000$).<br />

Prueba todas las claves del DES en 9 días; en 4.5 días encuentra una<br />

clave.<br />

El DES Cracker tiene 36864 unidades de prueba de claves, ensayando<br />

cada una 2.5*106 claves por segundo. En total ensaya 92.16*109 claves por segundo.<br />

Conclusióónn: Conclusi El DES ya no es seguro.<br />

¿Sustituto? Triple DES: clave de 112 bits.<br />

29<br />

30<br />

15


2. Criptosistemas con Clave Secreta<br />

2.3. DES (XV): Implementación de Cifrados en Bloque<br />

Los sistemas de cifrado en bloque operan sobre conjuntos de<br />

información reducidos (bloques).<br />

Son adecuados para cifrar pequeños mensajes.<br />

Son inadecuados para cifrar grandes cantidades de datos.<br />

Los perfiles se desdibujan pero las siluetas se conservan<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (XVI): Implementación de Cifrados en Bloque<br />

Se han especificado cuatro modos de operar con DES:<br />

Libro Electrónico de Códigos (Electronic Code Book - ECB).<br />

Encadenamiento de Bloques Cifrados (Cipher Block Chaining -<br />

CBC).<br />

Realimentación del Texto Cifrado (Cipher Feedback - CFB).<br />

Realimentación de la salida (Output Feedback - OFB).<br />

ECB es la forma más obvia de usar el cifrador de bloques: un bloque<br />

de texto plano se cifra y se obtiene un bloque de texto cifrado.<br />

Como el mismo bloque de texto plano siempre se cifra<br />

obteniendo el mismo bloque de texto cifrado, es teóricamente<br />

posible crear un “libro de códigos” de texto plano y su<br />

correspondiente texto cifrado.<br />

Sin embargo, si el bloque es de 64 bits, el número de<br />

posibles bloques de texto distinto es muy largo.<br />

En cualquier caso, se puede complicar todavía más la forma de<br />

utilizar el cifrado en bloque<br />

31<br />

32<br />

16


2. Criptosistemas con Clave Secreta<br />

2.3. DES (XVII): Implementación de Cifrados en Bloque<br />

Encadenamiento Encadenamiento de de bloques bloques cifrados cifrados –– CBC: CBC<br />

Proporciona un mecanismo de realimentación al cifrador de bloques<br />

El resultado del cifrado del bloque anterior alimenta al cifrado del<br />

siguiente bloque (cada bloque cifrado es usado para cifrar el siguiente)<br />

Carga inicialmente en el registro de 64 bits un Vector Inicial que no importa<br />

que sea secreto pero si debe ser aleatorio.<br />

Convierte al DES en un cifrado en flujo.<br />

Puede cifrar mensajes iguales de manera diferente con sólo cambiar VI<br />

(semilla: tiempo).<br />

No cambia el tamaño del espacio de claves.<br />

Ci<br />

= E<br />

i<br />

P ⊕<br />

K ( Pi<br />

⊕ C −1<br />

i = Ci−1<br />

Dk<br />

i<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (XVIII): Implementación de Cifrados en Bloque<br />

)<br />

( C )<br />

Realimentacióón Realimentaci n del del texto texto cifrado cifrado –– CFB CFB (1): (1)<br />

Con CBC, el cifrado no puede comenzar hasta que se reciba un bloque<br />

de datos completo. Esto puede ser un problema en ciertas redes en la<br />

que cuando llega un carácter, éste ha de ser inmediatamente<br />

transmitido.<br />

Con CFB, el cifrado de datos se puede hacer con unidades más<br />

pequeñas que el bloque del DES. CFB puede usar 64 bits o cualquier<br />

cantidad menor.<br />

Igual que en CBC, se carga inicialmente en el registro de 64 bits un Vector<br />

Inicial que no importa que sea secreto pero si debe ser aleatorio.<br />

Se divide el mensaje en claro en bloques de n bits.<br />

La operación de suma módulo 2 se hace bit a bit sobre bloques de n bits,<br />

que pueden variar entre 1 y 64.<br />

El registro de desplazamiento se desplaza a la izquierda n bits después de<br />

cada operación de cifrado (circularmente).<br />

Propiedades:<br />

Convierte al DES en un cifrado en flujo.<br />

Puede cifrar mensajes iguales de manera diferente con sólo cambiar VI<br />

(semilla: tiempo).<br />

No cambia el tamaño del espacio de claves.<br />

33<br />

34<br />

17


2. Criptosistemas con Clave Secreta<br />

2.3. DES (XIX): Implementación de Cifrados en Bloque<br />

Realimentacióón Realimentaci n del del texto texto cifrado cifrado –– CFB CFB (2): (2)<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (XX): Implementación de Cifrados en Bloque<br />

Realimentacióón Realimentaci n de de salida salida –– OFB OFB (1): (1)<br />

Es exactamente igual que el anterior, pero en lugar de alimentar al<br />

algoritmo de cifrado DES con parte del texto resultado de sumar el<br />

bloque de texto en claro con el texto cifrado, se hace solamente con<br />

parte del texto cifrado (antes de ser sumado con el texto en claro)<br />

Tiene las mismas propiedades que el modo CFB, pero tiene algunos<br />

problemas adicionales de seguridad.<br />

35<br />

36<br />

18


2. Criptosistemas con Clave Secreta<br />

2.3. DES (XXII): Cifrado Múltiple<br />

El único procedimiento para aumentar el espacio de claves de un cifrado en<br />

bloque es hacer un cifrado múltiple.<br />

Este principio vale para cualquier cifrado en bloque.<br />

Aparentemente la seguridad aumenta, pero se puede demostrar que la<br />

longitud efectiva de la clave en bits es<br />

l=56*(n/2) bits en lugar de l=56*n<br />

¿Forma este cifrado un grupo algebraico? Si es así, este cifrado es inútil.<br />

En el caso del DES se ha demostrado que no forma grupo.<br />

2. Criptosistemas con Clave Secreta<br />

2.3. DES (XXIII): Cifrado Triple<br />

Modo de cifrado del DES [Triple DES] (utilizable con otros cifradores<br />

en bloque) consistente en aplicarlo tres veces.<br />

No llega a ser un cifrado múltiple, porque no son independientes<br />

todas las subclaves.<br />

En el DES la longitud efectiva de clave sería 112 bits.<br />

37<br />

38<br />

19


2. Criptosistemas con Clave Secreta<br />

2.4. IDEA (I)<br />

El precursor de IDEA fue el PES PES (Proposed Encription Standard),<br />

propuesto por Lai y Massey en 1990, y que cifra bloques de 64 bits<br />

con una clave de 128 bits.<br />

IDEA IDEA (International Data Encription Algorithm) es un algoritmo<br />

ligeramente mejorado, propuesto por Lai, Massey y Murphy en el<br />

Eurocrypt’91.<br />

En IDEA, tanto los datos en claro como los datos cifrados están<br />

compuestos por bloques de 64 bits, mientras que la clave consta<br />

de 128 bits.<br />

El cifrado se basa en el concepto de mezclar operaciones<br />

aritméticas de grupos algebraicos diferentes.<br />

El algoritmo consiste en ocho vueltas de cifrado idénticas seguidas<br />

de una transformación de salida.<br />

Aunque los métodos de criptoanálisis han mejorado, éste es uno<br />

de los mejores y más seguros algoritmos de cifrado de bloque<br />

2. Criptosistemas con Clave Secreta<br />

2.4. IDEA (II)<br />

Durante el proceso de cifrado se utilizan operaciones de tres<br />

grupos aritméticos diferentes sobre pares de sub-bloques de 16<br />

bits:<br />

<strong>Grupo</strong> multiplicativo en Z 2^16+1 (⊗)<br />

Multiplicación módulo 2 16 +1<br />

<strong>Grupo</strong> aditivo en Z 2^16 (+)<br />

Suma módulo 216<br />

<strong>Grupo</strong> aditivo en Z 2, de las 16-uplas, bit a bit (⊕)<br />

Xor<br />

Estas operaciones son invertibles en sí mismas, pero<br />

incompatibles entre sí no gozan de la ley distributiva ni<br />

asociativa, no forman grupo y la sucesión de ellas no puede dar<br />

lugar a cancelación de operaciones.<br />

Los 64 bits del bloque de datos se divide en 4 sub-bloques de 16.<br />

En cada vuelta el bloque de datos de entrada X es dividido en 4 subbloques<br />

de 16 bits (X1, X2, X3, X4).<br />

Se realizan 8 vueltas, y cada una emplea una subclave diferente.<br />

39<br />

40<br />

20


2. Criptosistemas con Clave Secreta<br />

2.4. IDEA (III)<br />

1. Multiplica X1 y la<br />

primera subclave<br />

2. Suma X2 y la<br />

segunda subclave<br />

3. Suma x3 y la<br />

tercera subclave<br />

4. Multiplica X4 y la<br />

cuarta subclave<br />

5. Xor el resultado<br />

entre 1 y 3<br />

6. Xor del resultado<br />

de 2 y 4<br />

2. Criptosistemas con Clave Secreta<br />

2.4. IDEA (IV)<br />

7. Multiplica el<br />

resultado de 5 con<br />

la quinta subclave<br />

8. Suma el resultado<br />

de 6 y 7<br />

9. Multiplica el<br />

resultado de 8 con<br />

la sexta subclave<br />

10. Suma el<br />

resultado de 7 y 9<br />

11. Xor del<br />

resultado de 1 y 9<br />

12. Xor del<br />

resultado de 3 y 9<br />

13. Xor del<br />

resultado de 2 y 10<br />

14. Xor del<br />

resultado de 4 y 10<br />

Las diferencias diferencias con con el el DES, DES que lo hacen más atractivo, son:<br />

El espacio de claves es 2<br />

42<br />

128 .<br />

Todas las operaciones son algebraicas, sin cajas S de oscura<br />

justificación.<br />

No hay operaciones a nivel de bit, facilitando su programación en alto<br />

nivel.<br />

Es más eficiente que los algoritmos de tipo DES, porque a cada vuelta<br />

se modifican todos los bits del bloque y no solamente la mitad.<br />

Se pueden utilizar todos los modos de operación definidos para el<br />

DES.<br />

La expansión de clave se inicia dividiéndola en 8 subclaves de 16 bits,<br />

que constituyen los 8 primeros sub-bloques de clave. A continuación<br />

se rota la clave 25 bits hacia la izquierda y se obtienen los siguientes<br />

8 sub-bloques de clave, y así sucesivamente.<br />

El ataque por fuerza bruta resulta impracticable Hay que probar<br />

1038 claves.<br />

Los autores han demostrado que IDEA es inmune a ciertos tipos de<br />

criptoanálisis<br />

Más seguro<br />

41<br />

21


2. Criptosistemas con Clave Secreta<br />

2.5. RC5 (I)<br />

El RC5 RC5 es un algoritmo de cifrado en bloque simétrico, diseñado<br />

recientemente por Ronald Rivest.<br />

Opera con palabras de tamaño variable (w), número de vueltas<br />

variable (r) y clave secreta de longitud variable (b, en bytes).<br />

Consta de tres operaciones primitivas:<br />

Suma módulo 2w (+)<br />

OR exclusivo bit a bit (⊕)<br />

Rotación, donde la rotación de x un número y de bits a la izquierda se<br />

denota por x


<strong>Tema</strong> 4: <strong>Criptografía</strong> Criptograf a <strong>Moderna</strong><br />

1. Criptosistemas con cifrado en flujo.<br />

1.1. Cifrado en flujo.<br />

1.2. Generadores “aleatorios<br />

aleatorios” de secuencia cifrante. cifrante<br />

2. Criptosistemas con clave secreta y cifrados simétricos.<br />

sim tricos.<br />

2.1. Cifrado en bloque.<br />

2.2. Cifrados tipo producto: LUCIFER.<br />

2.3. El cifrado DES.<br />

2.4. El cifrado IDEA.<br />

2.5. El cifrado RC5.<br />

3. Criptosistemas con clave pública p blica y cifrados asimétricos.<br />

asim tricos.<br />

3.1. <strong>Criptografía</strong> Criptograf a con clave secreta.<br />

3.2. Principios de los criptosistemas de clave pública. p blica.<br />

3.3. Cambio de clave de Diffie-Hellman<br />

Diffie Hellman.<br />

3.4. El criptosistema RSA.<br />

3.5. El criptosistema de ElGamal. ElGamal<br />

3. Criptosistemas con Clave Pública P blica<br />

3.1. <strong>Criptografía</strong> con Clave Secreta (I)<br />

M: Mensajes; C: Textos cifrados; K: Posibles claves.<br />

Un Criptosistema Criptosistema de de Clave Clave Secreta Secreta es una familia de pares de<br />

funciones (Ek ,Dk ) para cada k∈K, definidas como Ek :MC, Dk :CM<br />

de manera que para m∈M se verifica Dk (Ek (m))=m.<br />

Para utilizar el criptosistema, A y B se ponen de acuerdo y eligen<br />

secretamente una clave k∈K.<br />

Si A envía un mensaje m a B, lo cifra, Ek (m)=c, y envía c a B.<br />

Para recuperar el mensaje, B descifra c, Dk (c)=m.<br />

Los pares de funciones (Ek ,Dk ) deben ser “fáciles” de computar<br />

para los usuarios y deberían ser “difíciles” de computar para un<br />

escucha que conociera c, pero no conociera ni m ni k.<br />

45<br />

46<br />

23


3. Criptosistemas con Clave Pública P blica<br />

3.1.<strong>Criptografía</strong> con Clave Secreta (II)<br />

Problemas Problemas de de la la Criptografíía Criptograf a de de Clave Clave Secreta: Secreta<br />

1. Distribución de claves:<br />

Dos usuarios tienen que seleccionar una clave en secreto.<br />

Tienen que hacerlo personalmente, o por medio de un canal inseguro.<br />

2. Manejo de claves:<br />

En una red de n usuarios, cada pareja tiene que tener su clave secreta, lo<br />

que hace que se tengan n(n-1)/2 claves.<br />

3. Sin firma digital:<br />

Una firma digital es lo análogo a una firma manual o rúbrica, pero en una<br />

red de comunicaciones.<br />

En los criptosistemas de clave secreta no hay posibilidad de firmar<br />

digitalmente los mensajes.<br />

El receptor de un mensaje no está seguro de que quien dice que le envía el<br />

mensaje sea realmente quien lo ha hecho.<br />

3. Criptosistemas con Clave Pública P blica<br />

3.2.Principios (I)<br />

Se utilizan dos claves para cada participante:<br />

Una para el cifrado que es pública E AB.<br />

Otra para el descifrado que es privada/secreta D AV.<br />

La que realiza el cifrado es una función unidireccional con trampa.<br />

En 3.3. se estudia lo que es una función tramposa<br />

m=D AV (E AB (m)) Un usuario cifra un mensaje con su clave<br />

pública y otro lo descifra con su clave privada.<br />

m=E AB (D AV (m)) Cualquier usuario puede cifrar un mensaje con<br />

su clave privada de descifrado y recuperarlo otro usuario con la<br />

clave pública del primero Firma electrónica.<br />

47<br />

48<br />

24


3. Criptosistemas con Clave Pública P blica<br />

3.2.Principios (II)<br />

Firma Firma electróónica/digital<br />

electr nica/digital: Propiedad privativa de un individuo o<br />

proceso que se utiliza para firmar mensajes. La información de la<br />

firma que se añade al mensaje garantiza la autenticidad del<br />

remitente.<br />

Si A envía un mensaje m cifrado a B, la firma de A debe satisfacer:<br />

B debe ser capaz de validar la firma de A en m.<br />

Es imposible para cualquiera, incluido B, falsificar la firma.<br />

Si A niega haber firmado un mensaje recibido por B, debe haber un<br />

tercero que resuelva la disputa.<br />

La firma electrónica proporciona la autenticidad del remitente y de<br />

los datos.<br />

3. Criptosistemas con Clave Pública P blica<br />

3.2.Principios (III)<br />

Diffie y Hellman sugieren que se aplique la complejidad<br />

computacional al diseño de algoritmos de cifrado.<br />

Los problemas NP-completos se han considerado excelentes para<br />

su uso criptográfico.<br />

Se trata de problemas que no pueden resolverse en un tiempo<br />

polinómico viajante, coloreado óptimo de grafos, etc.<br />

La información puede cifrarse mediante las operaciones que<br />

plantea un problema NP-completo, de forma que criptoanalizar el<br />

mensaje cifrado requiera resolver el problema NP-completo<br />

empleado en su forma usual, mientras que disponiendo de la clave<br />

de descifrado se puede encontrar la solución de una forma<br />

eficiente y fácil.<br />

49<br />

50<br />

25


3. Criptosistemas con Clave Pública P blica<br />

3.3.Cambio de Clave de Diffie-Hellman (I)<br />

Diffie y Hellman describieron un protocolo por medio del que dos<br />

personas pueden intercambiarse pequeñas informaciones secretas<br />

por un canal inseguro Cambio Cambio de de Clave Clave de de Diffie Diffie Hellman: Hellman<br />

A y B seleccionan públicamente un grupo multiplicativo finito G, de<br />

orden n, y un elemento α∈G.<br />

A genera un nº aleatorio a, calcula αa en G y lo transmite a B.<br />

B genera un nº aleatorio b, calcula αb en G y lo transmite a A.<br />

A recibe αb y calcula (αb ) a en G.<br />

B recibe αa y calcula (αa ) b en G.<br />

A y B poseen un elemento común y secreto del grupo G: αab .<br />

Un escucha podría conocer G, n, α, αa y αb y podría intentar<br />

calcular el elemento αab , lo que hasta ahora es un problema<br />

intratable.<br />

Este problema se conoce como el Problema Problema de de Diffie--Hellman<br />

Diffie Hellman<br />

Generalizado Generalizado –– GDHP. GDHP<br />

3. Criptosistemas con Clave Pública P blica<br />

3.3.Cambio de Clave de Diffie-Hellman (II)<br />

Ejemplo: Ejemplo Sea p el nº primo 53. Supongamos G=Z53 con * y sea<br />

α=2 un generador.<br />

El protocolo de Diffie-Hellman es el siguiente:<br />

A elige a=29, calcula αa =229≡45 (mod 53) y envía 45 a B.<br />

B elige b=19, calcula αb =219≡12 (mod 53) y envía 12 a A.<br />

A recibe 12 y calcula 12a =1229≡21 (mod 53).<br />

B recibe 45 y calcula 45b =4519≡21 (mod 53).<br />

La clave privada o información secreta que comparten A y B es 21.<br />

Un escucha S conoce Z53 , 2, 45 y 12, pero no puede conocer que la<br />

información secreta compartida por A y B es 21.<br />

45<br />

A B<br />

12<br />

Comparten 21<br />

a=29 b=19<br />

51<br />

52<br />

26


3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (I): Definiciones<br />

Funcióón Funci n Unidireccional: Unidireccional Es una función invertible, pero de modo<br />

que es “fácil” calcular f(m)=c y es “difícil” computar f-1 (c)=m.<br />

Funcióón Funci n Tramposa: Tramposa Una función unidireccional es tramposa si<br />

puede ser invertida fácilmente cuando se conoce alguna<br />

información adicional extra. Esa información se conoce como<br />

trampa. Propiedades:<br />

Son de la forma y=f(x); son fáciles de calcular en el dominio de f.<br />

∃ f-1 / x=f-1 (y).<br />

f(x) y f-1 (y) son computables en sus respectivos dominios.<br />

Si sólo se conoce f(x)=y es computacionalmente imposible<br />

determinar f-1 (y) a menos que se disponga de información adicional<br />

(trampa), que suele corresponder a la clave secreta.<br />

Si se verifica f(f-1 (x))=x se trata de una permutación unidireccional<br />

con trampa; esta propiedad permite implantar la firma electrónica e<br />

implica que el dominio de aplicación sea único.<br />

3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (II): Definiciones<br />

Criptosistema Criptosistema de de Clave Clave Púública P blica: Se define como una familia de<br />

funciones unidireccionales tramposas, {fk }, para cada clave k∈K,<br />

de modo que la trampa t(k) sea fácil de obtener. Además, para<br />

cada k∈K se debe poder describir un algoritmo eficiente que<br />

permita calcular fk , pero de modo que sea intratable la<br />

determinación de k y t(k).<br />

53<br />

54<br />

27


3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (III): Definiciones<br />

Para implementar implementar un criptosistema de clave pública, cada usuario<br />

U elige una clave aleatoria y pública u∈K que permite calcular fu ;<br />

se la denota como Eu y es su clave pública. La trampa t(u)<br />

necesaria para invertir fu es su clave privada.<br />

Si A envía un mensaje a B, lo hará con la clave pública de B, Eb , y<br />

transmite fb (m)=c. B es el único capaz de invertir fb y recuperar el<br />

mensaje m: 1<br />

1<br />

(c) = f (f (m)) = m<br />

−<br />

−<br />

fb b b<br />

Hay dos funciones candidatas a ser funciones tramposas:<br />

Producto de números enteros, cuya inversa es la factorización del<br />

número obtenido.<br />

Exponenciación discreta, cuya inversa es el logaritmo discreto.<br />

Las dos funciones son fáciles de computar, mientras que no lo son sus<br />

inversas:<br />

Dado n, es difícil determinar su descomposición en factores primos.<br />

Dados a y b, es difícil calcular x de modo que a x =b.<br />

3. Criptosistemas con Clave Pública P blica<br />

2.4. El Criptosistema RSA (IV): Protocolo<br />

Criptosistema Criptosistema RSA: RSA Primera realización del modelo de Diffie-<br />

Hellman, desarrollado por Rivest, Shamir y Adleman.<br />

El protocolo protocolo que sigue es:<br />

1. Cada usuario U elige dos primos p y q y calcula n=p·q. U utiliza Zn como grupo, cuyo orden es φ(n)=φ(p·q)=(p-1)·(q-1). Para U es fácil<br />

calcular este orden porque conoce p y q.<br />

2. U selecciona un entero positivo e, 1≤e


3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (V): Ejemplo<br />

Ejemplo Ejemplo 1: 1 Alfabeto inglés (A-Z, 0-25). Se envía un mensaje a B.<br />

El usuario B elige dos primos: pb=281 y qb=167; calcula<br />

nb=281·167=46927 y considera el grupo Z46927. El orden es φ(46927)=280·166=46480. B elige el número eb=39423 y comprueba que mcd(39423,46480)=1.<br />

A continuación determina el inverso de 39423 módulo 46480. Este<br />

número es db=26767. La clave pública de B es (nb,eb) =<br />

(46927,39423), mientras que mantiene en secreto los demás valores.<br />

Para enviar un mensaje a B se debe determinar en primer lugar la<br />

longitud del mismo. Se tendrá en cuenta que vamos a codificar las<br />

letras del alfabeto por medio de números en base 26.<br />

Como el mensaje ha de ser un elemento del grupo, su longitud no<br />

puede exceder de n=46927. Como 263 =17576


3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (VII): Ejemplo<br />

Para que B pueda recuperar el mensaje, deberá codificar los datos<br />

recibidos en base 26:<br />

BFIC = 1·26 3 + 5·26 2 + 8·26 + 2 = 21166 = c<br />

Ahora recuperará m calculando:<br />

m = c db (mod nb ) = 21166 26767 (mod 46927) = 16346<br />

Se decodifica m y se obtiene el texto original:<br />

m = 16346 = 24·26 2 + 4·26 + 18 = YES<br />

3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (VIII): Firma Digital<br />

Sean A y B usuarios con claves (E AB ,D AV ) y (E BB ,D BV ); E: clave de<br />

cifrado pública, D: clave de descifrado secreta<br />

A m<br />

B<br />

1. A utiliza D AV para firmar el mensaje: s= D AV(m)<br />

2. Cifra la firma s con el algoritmo de cifrado público de B:<br />

E BB (s)= E BB (D AV (m))<br />

3. Envía por el medio E BB(s).<br />

4. B descifra el mensaje recibido con su algoritmo secreto:<br />

D BV (E BB (s))=s= D AV (m)<br />

5. Suponiendo que proceda de A aplica el algoritmo público de A:<br />

E AB (D AV (m))=m<br />

B no puede modificar mm’ porque tendría que crear s’=D AV (m’) y<br />

no conoce D AV . Al aplicar la clave pública de A, E AB , y obtener m se<br />

prueba que el mensaje es auténtico y fue firmado por A.<br />

59<br />

60<br />

30


3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (IX)<br />

En la práctica, para agilizar las operaciones se suele elegir una<br />

clave pública pequeña, para que quien desee enviar un mensaje lo<br />

haga de la forma más rápida posible.<br />

Es frecuente que muchos usuarios utilicen el mismo exponente<br />

como su clave pública (los exponentes más comunes son 3 y<br />

2 16 +1). Esta situación no compromete la seguridad del<br />

criptosistema y permite que el cifrado de los mensajes sea mucho<br />

más rápida que el descifrado, así como que la verificación de un<br />

mensaje sea mucho más rápida que la firma digital del mismo.<br />

3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (X)<br />

En la actualidad, el chip más rápido para el RSA tiene una<br />

velocidad de proceso mayor de 600 kbits/s con un módulo de 512<br />

bits Puede ejecutar más de 1000 operaciones de la clave<br />

privada del RSA por segundo.<br />

En comparación, en software el criptosistema de clave secreta DES<br />

es como mínimo 100 veces más rápido que el RSA, y en hardware<br />

DES es entre 1000 y 10000 veces más rápido que RSA.<br />

A pesar de esta diferencia de ejecución, el criptosistema RSA (y<br />

otros de clave pública) se utiliza porque permite firmar<br />

digitalmente los mensajes que se envían.<br />

61<br />

62<br />

31


3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (XI): Utilización del DES<br />

Dado que el RSA es bastante lento en su ejecución, generalmente<br />

se utiliza en conjunción con el DES del siguiente modo: A cifra m<br />

con el DES mediante una clave aleatoria, y a continuación esta<br />

clave DES utilizada se cifra con el criptosistema RSA.<br />

Posteriormente, A envía por el canal inseguro la pareja formada<br />

por el mensaje cifrado mediante DES y la clave de DES cifrada con<br />

RSA. Este protocolo se conoce como envoltura envoltura digital digital RSA. RSA<br />

Para recuperar el mensaje recibido, B descifra la clave de DES<br />

mediante su clave privada del RSA y luego utiliza la clave obtenida<br />

para descifrar el mensaje m.<br />

El criptosistema RSA fue patentado en 1983 por Public Key<br />

Partners (PKP) en Estados Unidos, y la patente no expira hasta el<br />

año 2000.<br />

3. Criptosistemas con Clave Pública P blica<br />

3.4. El Criptosistema RSA (XII): Seguridad<br />

La seguridad del RSA radica en la dificultad computacional de la<br />

factorización de grandes números.<br />

Está probado que no existe un algoritmo para factorizar un<br />

número de 200 dígitos en un tiempo razonable.<br />

Aunque tiene un enorme coste computacional, el problema de la<br />

factorización no es inabordable.<br />

En 1977 la revista Scientific American retó a sus lectores a<br />

factorizar un número con 129 dígitos. Durante 17 años el<br />

problema estuvo sin resolver, sin embargo en 1994 un grupo de<br />

científicos y matemáticos, usando tiempo de CPU donado por un<br />

total de 600 voluntarios a través de Internet, consiguieron su<br />

factorización. La resolución de este problema supone romper una<br />

clave RSA de 129 dígitos y tuvo un coste de 1000 billones de<br />

operaciones durante un periodo de 8 meses (5000 MIPS-año). El<br />

mensaje codificado decía "The magic words are squeamish<br />

ossifrage" que puede traducirse como "las palabras mágicas son<br />

delicados quebrantahuesos".<br />

63<br />

64<br />

32


3. Criptosistemas con Clave Pública P blica<br />

3.5. El Criptosistema de ElGamal (I)<br />

ElGamal propuso un esquema de clave pública basado en la<br />

exponenciación discreta sobre el grupo multiplicativo de un<br />

cuerpo finito Zp .<br />

Los mensajes son elementos de G y A desea enviar un mensaje m<br />

a B. El protocolo protocolo es el siguiente:<br />

Se selecciona un grupo finito G y un elemento α∈G.<br />

Cada usuario A elige un número aleatorio a, que será su clave<br />

privada, y calcula αa en G, que será su clave pública.<br />

Para que A envíe un mensaje m a B, realiza lo siguiente:<br />

1. Genera un número aleatorio v y calcula αv en G.<br />

2. A utiliza la clave pública de B, αb , y calcula (αb ) v y m·αbv en G.<br />

3. A envía la pareja (αv ,m·αbv ) a B.<br />

Para recuperar el mensaje original:<br />

1. B calcula (αv ) b en G.<br />

2. B obtiene m con sólo calcular: (m·αvb ) / αvb 3. Criptosistemas con Clave Pública P blica<br />

3.5. El Criptosistema de ElGamal (II)<br />

Por seguridad y eficacia<br />

seguridad y eficacia, el grupo G y el elemento α deben elegirse<br />

de modo que se verifique:<br />

Por eficacia: la operación en G debe ser “fácil” de aplicar.<br />

Por seguridad: el problema del logaritmo discreto en el subgrupo<br />

cíclico de G generado por α, debería ser “difícil”.<br />

Para simplificar el protocolo anterior, puede suponerse que el<br />

grupo sobre el que se llevan a cabo las operaciones mencionadas<br />

en el protocolo anterior es el grupo multiplicativo del cuerpo Z p <br />

Las potencias y productos se efectúan módulo un nº primo p.<br />

65<br />

66<br />

33


4. Ejercicios<br />

1. Utilizando el cifrado en flujo cifrar el mensaje “LADRILLO” usando<br />

el código ASCII y utilizando la clave K indicada.<br />

K = 0110001100000001011110000010100001111110011110011110011001011010<br />

2. Cifrar con el algoritmo DES el mensaje siguiente X utilizando la<br />

clave K.<br />

X = 0101010101010101010101010101010101010101010101010101010101010101<br />

K = 1111000011110000111100001111000011110000111100001111000011110000<br />

4. Ejercicios<br />

3. Alicia y Bernardo utilizan como grupo Z13* y eligen como<br />

generador del mismo α=4. Determinar que número secreto se<br />

intercambiarán por el cambio de clave de Diffie-Hellman si Alicia<br />

elige como número a1eatorio a=5 y Bernardo elige b=2.<br />

4. Si se utiliza el criptosistema RSA, determinar el criptograma para<br />

el mensaje m=152167492, teniendo en cuenta que los parámetros<br />

del destinatario, Bernardo, son: nB=143, eB=7 y dB=103, y los del<br />

remitente, Alicia, son: nA=161, eA=31 y dA=115.<br />

5. Bernardo utiliza el criptosistema RSA con la siguiente clave<br />

pública: (nB,eB)=(2947,179). Determinar el criptograma que debe<br />

enviar Alicia si e1 mensaje es m=”MANDA DINERO”. Las letras A-Z<br />

del alfabeto se codifican con 0-25, el punto es el 26 y el espacio en<br />

blanco es el 27.<br />

67<br />

68<br />

34


4. Ejercicios<br />

6. Si Alicia tiene como clave pública (nA,eA)=(2773,17), determinar<br />

el criptograma que corresponde a la respuesta a1 mensaje del<br />

problema anterior: “NO TENGO”.<br />

7. Enviar el mensaje m=16 a un amigo que trabaja con el<br />

criptosistema de ElGamal. Este amigo utiliza los siguientes<br />

parámetros: el primo es p=23, el generador del grupo Z23* es<br />

α=5 y su clave pública es 19.<br />

8. En el criptosistema de ElGamal se considera el número primo<br />

p=65537 y el grupo Zp* con generador α=5. Enviar a Bernardo,<br />

cuya clave pública es 23467, un mensaje en el que se indique el<br />

tipo de moneda a utilizar en determinada transacción, es decir,<br />

m=”PTA”.<br />

69<br />

35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!