Tema 4: Criptografía Moderna - Grupo Alarcos
Tema 4: Criptografía Moderna - Grupo Alarcos
Tema 4: Criptografía Moderna - Grupo Alarcos
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