TALLER DE DETECTIVES: DESCIFRANDO MENSAJES

Anuncio
TALLER DE DETECTIVES:
DESCIFRANDO MENSAJES SECRETOS
MARÍA CHARA
[email protected]
Resumen. Notas del taller para estudiantes “Taller de Detectives: descifrando mensajes secretos”
dictado durante el tercer festival de matemática AniMATE π de la Facultad de Ingenierı́a Quı́mica
de la Universidad Nacional del Litoral.
1.
Introducción
Desde hace ya mucho tiempo, el hombre ha intentado asegurar la privacidad en sus comunicaciones. La idea es asegurarse, que el mensaje que envı́a un emisor a un receptor, no pueda ser
entendido ni alterado por otras personas. Una forma de mantener esta privacidad en el envı́o de
mensajes, es transformando el mensaje de tal forma que resulte incomprensible para un tercero
pero fácilmente descifrable por el destinatario del mensaje. Los principales problemas asociados
al envı́o de mensajes son: que el emisor no tiene la seguridad, que sea solamente el receptor, quien
esta recibiendo el mensaje; que el mensaje recibido por el receptor, no haya sufrido alteraciones y
que el receptor tenga la seguridad, que el mensaje recibido provenga del emisor apropiado.
La palabra criptografı́a es de origen griego (conjunción de kiptós que significa oculto y grapho
que significa escribir) y designa al estudio de numerosas técnicas ideadas para enmascarar un
texto, que originalmente tratan sobre la protección o el ocultamiento de la información frente a
observadores no autorizados. El ciptoanálisis, en cambio, es el el área de estudio que se preocupa
de descifrar mensajes sin conocer el método del cifrado.
A través de la criptografı́a la información puede ser protegida contra el acceso no autorizado,
su interceptación, su modificación y la inserción de información extra. También puede ser usada
para prevenir el acceso y uso no autorizado de los recursos de una red o sistema informático y para
prevenir a los usuarios la denegación de los servicios a los que sı́ están permitidos. Modernamente,
la criptografı́a es la metodologı́a para proveer la seguridad de las redes telemáticas, incluyendo la
identificación de entidades y autenticación, el control de acceso a los recursos, la confidencialidad
de los mensajes transmitidos, la integridad de los mensajes y su no repudio.
Una manera de tratar de asegurar la información, es tomar el mensaje que se desea enviar y
mediante una regla apropiada esconderlo, luego enviar el mensaje cifrado al receptor, y éste último
aplicando una regla inversa a la usada por el emisor, recupera el mensaje original. Como es de
1
2
MARÍA CHARA
suponer, esto presupone un acuerdo entre el emisor y el receptor, con respecto a las reglas que se
usarán.
En la jerga de la criptografı́a, la información original que debe protegerse se denomina texto en
claro o texto plano. El cifrado es el proceso de convertir el texto plano en un galimatı́as ilegible,
denominado texto cifrado o criptograma. Por lo general, la aplicación concreta del algoritmo de
cifrado (también llamado cifra) se basa en la existencia de una clave: información secreta que
adapta el algoritmo de cifrado para cada uso distinto.
Las dos técnicas más sencillas de cifrado, en la criptografı́a clásica, son la sustitución (que
supone el cambio de significado de los elementos básicos del mensaje -las letras, los dı́gitos o los
sı́mbolos-) y la trasposición (que supone una reordenación de los mismos); la gran mayorı́a de las
cifras clásicas son combinaciones de estas dos operaciones básicas.
El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la
clave. El protocolo criptográfico especifica los detalles de cómo se utilizan los algoritmos y las
claves (y otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos, algoritmos de cifrado, procesos de gestión de claves y actuaciones de los usuarios, es lo que
constituyen en conjunto un criptosistema, que es con lo que el usuario final trabaja e interactúa.
1.1.
Tipos de criptosistemas. Existen dos tipos fundamentales de criptosistemas o sistemas
de cifrado:
§ Criptosistemas simétricos o de clave privada. Son aquellos que emplean una misma clave k
tanto para cifrar como para descifrar. Presentan el inconveniente de que para ser empleados
en comunicaciones la clave k debe estar en posesión tanto en el emisor como en el receptor,
lo cual nos lleva preguntarnos cómo transmitirles a los participantes en la comunicación esa
clave de forma segura.
§ Criptosistemas asimétricos o de clave pública, que emplean una doble clave (kp, kP ). kp se
la conoce como clave privada y kP se la conoce como clave pública. Una de ellas sirve para la
transformación de cifrado y la otra para la transformación de descifrado. Estos criptosistemas
deben cumplir además que el conocimiento de la clave pública kP no permita calcular la
clave privada kp. Sin la clave privada (que no es deducible a partir de la clave pública) un
observador no autorizado del canal de comunicación será incapaz de descifrar el mensaje
cifrado.
En la práctica se emplea una combinación de estos dos tipos de criptosistemas, puesto que
los criptosistemas asimétricos presentan el inconveniente de ser computacionalmente mucho más
costosos que los primeros. En el mundo real se hace uso de la criptografı́a asimétrica para codificar las claves simétricas y poder ası́ enviarlas a los participantes en la comunicación incluso a
TALLER DE DETECTIVES
3
través de canales inseguros. Después se codificarán los mensajes (más largos) intercambiados en
la comunicación mediante algoritmos simétricos, que suelen ser más eficientes.
2.
Criptosistemas simétricos
Comenzaremos mirando algunos ejemplos de criptosistemas simétricos.
2.1.
Transformaciones del César.
Uno de los primeros métodos conocidos para esconder mensajes, es el que usaba Julio César, el
cual consistı́a en sustituir cada letra por la letra que estaba una cierta cantidad de lugares más a
la derecha en la abecedario (volviendo a partir desde la primera letra después de la última).
Notemos que usando los 27 sı́mbolos del alfabeto, mas los sı́mbolos −, · y ?, tenemos sólo 30
transformaciones de César distintas.
Si desplazamos 12 posiciones cada letra, obtenemos la siguiente tabla de alfabeto:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
Ñ
O
P
Q
R
S
T
U
V
W
X
Y
Z
-
·
?
M
N
Ñ
O
P
Q
R
S
T
U
V
W
X
Y
Z
-
·
?
A
B
C
D
E
F
G
H
I
J
K
L
Bajo esta transformación la palabra ENIGMA se convierte en PYTRXM.
Utilizando la rueda del César, se pueden encriptar y desencriptar fácilmente muchos mensajes.
L MN
J K
Ñ
O PQR
S
N Ñ
O
T
Z - ·
X Y
?
W
AB CD
E
· ?
I
D E F
G
B C
A GH I J KL H
M
F
Q R S T U
P
WX Y Z V
UV
Figura 1. Rueda para cifrar y descifrar mensajes utilizando transformaciones del César
Si podemos describir la tranformación mediante una la fórmula matemática entonces podremos automatizar fácilmente las operaciones de cifrado y descifrado mediante la programación de
algoritmos que podrán ser luego ejecutados por una computadora.
4
MARÍA CHARA
Para hacer más operativo el método de Julio César, le vamos a incorporar un poco de matemática. Con este fin realicemos los siguientes pasos.
Primero: Asignemos a cada sı́mbolo un número entre 0 y 29 de la siguiente manera
K
L
M
N
Ñ
O
P
Q
R
S
T
U
V
W
X
Y
Z
·
A
B
C
D
E
F
G
H
I
J
-
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Segundo: Sustituyamos cada letra de nuestro mensaje, por el número asignado:
E N
I G M A
4 13 8 6 12 0
Por lo tanto el mensaje original, numéricamente, se verı́a ası́:
4 13 8 6 12 0
Tercero: Ahora, a nuestro mensaje numérico cifrado, apliquemos la transformación del César,
“Sumar 12”:
4
13
8
6
12
0
+12 +12 +12 +12 +12 +12
16
25
20
18
24
12
Entonces la versión numérica del mensaje encriptado es
16 25 20 18 24 12
Cuarto: En nuestro mensaje numérico cifrado, sustituyamos los números por las letras correspondientes:
16 25 20 18 24 12
P
Y
T
R
X M
Y por lo tanto el mensaje a enviar es
PYTRXM
que es el mismo que encontramos antes.
Como es de suponer, el receptor para recuperar el mensaje, deberá conocer la clave en cuestión,
y aplicar la regla inversa, es decir, asignar a cada letra el número que le corresponde, luego a cada
número restarle 12, y finalmente sustituir cada número por su letra correspondiente.
?
TALLER DE DETECTIVES
5
Al revisar con más cuidado el método descripto, nos damos cuenta que surgen algunos aspectos
especiales, por ejemplo,
18 + 12 = 30 = 0
19 + 12 = 31 = 1
20 + 12 = 32 = 2
lo que está indicando que la suma que se usa en el método del César, no es la suma usual de
número enteros. En efecto, la usada en este método es suma módulo 30. ¿Qué significa esto? A
continuación aclaramos matemáticamente este punto.
Recordemos que cuando dividimos dos números enteros a y b tenemos siempre dos enteros
únicos, q y r (llamados cociente y resto) tales que
a = q · b + r,
con 0 ≤ r < |b|.
Decimos que dos enteros x e y son congruentes módulo n (natural) si x e y tienen el mismo
resto cuando los dividimos por n, es decir, si
x = q1 · n + r
y = q2 · n + r.
y
En este caso escribimos
x≡y
mód n
o decimos que x e y son iguales módulo n.
Entonces para hacer la suma de dos enteros x + y módulo n tenemos que seguir la siguiente
regla:
(
x+y
mód n =
x+y
si x + y < n
r
si x + y ≥ n
donde r es el resto de dividir a x + y por n.
Por ejemplo si queremos hacer una trasformación de César sumando 25, y queremos transformar
el sı́mbolo ?, tenemos que
29 + 25 = 54 ≡ 24
mód 30
pues
54 = 1 · 30 + 24
y por lo tanto ? se transforma en X.
En la actualidad, este sistema no se utiliza nunca, puesto que es extremadamente inseguro, ya que
basta conocer una sola equivalencia entre letras para determinar completamente la clave. En efecto,
supongamos que conocemos que a una cierta letra representada por el número x le corresponde
6
MARÍA CHARA
otra representada por el número y. En tal caso, la clave k puede conocerse despejándola de la
ecuación x + k ≡ y
mód 30 y por lo tanto puede descifrarse el texto completo.
Más aún, por más que no se conozca ninguna equivalencia, se puede tratar de descifrar la clave
utilizando el análisis de frecuencia, cuya idea general consiste en determinar la letra o las letras
que más aparecen en un texto cifrado, pues muy probablemente corresponderán a las letras con
mayor frecuencia estadı́stica del idioma en que fue redactado el texto claro. En un texto corto tal
vez no se pueda hacer tal análisis, pero en este caso se puede proceder por prueba y error ya que
sólo hay que probar con 30 claves diferentes.
2.2.
Transformaciones multiplicativas.
Volvamos al método de Julio César, donde la clave es “sumar n” para algún n, no nulo. Como
una manera de variar el método de Julio César, se puede intentar cambiar la clave, “sumar” por
“multiplicar”. Exploremos esta variante. Elijamos, por ejemplo, “multiplicar por 5”. En este caso
la multiplicación también se hace módulo 30, es decir, seguimos la regla
(
x·y
si x · y < n
x · y mód n =
r
si x · y ≥ n
donde r es el resto de dividir a x · y por n.
En este caso vamos a tener que:
Sı́mbolo
A
B
C
D
E
F
G
H
I
···
Número correspondiente
0
1
2
3
4
5
6
7
8
···
Número multiplicado por 5 módulo 30
0
5
10
15
20
25
0
5
10
···
Sı́mbolo cifrado
A
F
K
O
T
Y
A
F
K
···
Por lo tanto, es claro que la clave de multiplicar por 5 módulo 30 no sirve. ¿Será que no se
puede usar la multiplicación? ¿Se puede usar la multiplicación, pero el número 5 no se comporta
bien? Veamos qué pasa si elegimos otro número, ejemplo 7. En este caso las letras, manteniendo
el esquema anterior, van a quedar de la siguiente manera:
Sı́mbolo
A
B
C
D
E
F
G
H
I
J
K
L
M
N
Ñ
Número correspondiente
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Número multiplicado por 7 módulo 30
0
7
14
21
28
5
12
19
26
3
10
17
24
1
8
Sı́mbolo cifrado
A
H
Ñ
U
·
F
M
S
Z
D
K
Q
X
B
I
Sı́mbolo
O
P
Q
R
S
T
U
V
W
X
Y
Z
-
·
?
Número correspondiente
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Número multiplicado por 7 módulo 30
15
22
29
6
13
20
27
4
11
18
25
2
9
16
23
Sı́mbolo cifrado
O
V
?
G
N
T
-
E
L
R
Y
C
J
P
W
TALLER DE DETECTIVES
7
En este caso sı́ obtuvimos una clave adecuada, ya que cada sı́mbolo se transforma en uno y sólo
uno de los sı́mbolos cifrados. Entonces el sistema funciona con 7 y no con 5 Si se vuelve a probar
con otros números se descubre que el método funciona bien con todos los números entre 1 y 29
que no tienen factores primos comunes con el 30, es decir, aquellos números que son coprimos (o
primos relativos) con el 30. Este resultado es un caso particular de la siguiente propiedad.
Proposición 1. Sean a y n enteros, con a < n. Si a y n son coprimos, entonces los siguientes
números, módulo n, son todos distintos:
a, 2a, 3a, 4a, . . . , (n − 1)a.
Ahora bien, supongamos que se ha cifrado un mensaje usando, la clave de multiplicar por
7 (módulo 30). Ahora si un receptor recibe un mensaje cifrado, entonces para decodificar puede
hacer la tabla que se ha usado para cifrar o puede tratar de encontrar la regla inversa. Por ejemplo,
en la clave de sumar un entero, la regla inversa era restar ese número módulo n, pero ahora ¿por
cuánto habrá que multiplicar cada número del mensaje cifrado para recuperar la versión numérica
del mensaje original?
Tenemos que buscar un número k tal que multiplicado por 7 módulo 30 nos de 1, éste será el
inverso multiplicativo de 7 módulo 30. Si miramos en la tabla anterior vemos que el número que
buscamos es el 13, es decir, en módulo 30 el número 13 es el inverso multiplicativo del número 7.
Luego, para descifrar el mensaje, el receptor deberá multiplicar cada número del mensaje por 13
módulo 30 para recuperar el mensaje original.
2.3.
Algunas variantes.
Ya hemos visto que para cifrar la versión numérica de un mensaje se pueden usar las claves de
sumar módulo 30 cualquier número entero positivo, o bien multiplicar módulo 30 por cualquier
entero coprimo con 30. Una idea interesante es tratar de combinar ambos métodos. Por ejemplo,
elegir un número entero positivo b, y un número a coprimo con 30, y usar como clave para encriptar
el cambiar cada númreo N de la versión numérica del mensaje por aN + b módulo 30, es decir,
aplicar la transformación:
N −→ aN + b mód 30.
La pregunta que surge naturalmente es si se comporta bien, es decir, si al aplicarla al abecedario
se obtiene o no una permutación del abecedario. Como es de suponer, el problema estarı́a en el caso
que existan dos letras diferentes, que con esta clave, se cifren por una misma letra. El siguiente
resultado da la respuesta.
8
MARÍA CHARA
Proposición 2. Sean a, b y n enteros positivos. Si a y n son coprimos, entonces los siguientes
números, módulo n, son todos distintos:
a + b, 2a + b, 3a + b, 4a + b, . . . , (n − 1)a + b.
2.4.
Sustituciones polialfabéticas.
El sistema de sustitución polialfabética consiste en elegir una palabra o frase que se constituirá la
clave y se coloca tanta veces como sea necesario arriba del texto claro. Para cifrar cada letra del
texto claro se observa qué letra de la clave tiene por encima, y se le aplica la transformación de
César correspondiente al número de dicha letra.
Ejemplo 3. Por ejemplo, supongamos que el texto claro comienza diciendo EL-SECRETO-ES y
la palabra clave elegida es MICLAVE. El cifrado será entonces:
M
I
C
L
A
V
E
M
I
C
L
A
V
···
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
···
transformación correspondiente
12
8
2
11
0
22
4
12
8
2
11
0
22
···
texto claro
E
L
-
S
E
C
R
E
T
O
-
E
S
···
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
···
clave numérica
4
11
27
19
4
2
18
4
20
15
27
4
19
···
transformamos
+12
+8
+2
+11
+0
+22
+4
+12
+8
+2
+11
+0
+22
···
clave numérica cifrada
16
19
29
9
4
24
22
16
28
17
8
4
11
···
texto cifrado
P
S
?
J
E
X
V
P
·
Q
I
E
L
···
clave
Entonces el texto cifrado a mandar comenzará con
PS?JEXVP·QIEL
Observar que con éste método la letra E del mensaje original se transformó primero en P y luego
en E y por lo tanto una misma letra del mensaje original puede ser representada por diferentes
letras del texto cifrado y recı́procamente, una misma letra del texto cifrado puede representar
diferentes letras del texto claro, lo cuál lo hace más difı́cil de quebrar. Sin embargo, este sistema
no es invulnerable ya que pueden atacarse con un análisis de frecuencia más fino, y por lo tanto,
tampoco se usa en la actualidad.
3.
Criptosistemas asimétricos
En los métodos de las secciones anteriores tenemos el problema de la distrubución de las claves.
En efecto, si dos personas quieren intercambiar un mensaje secreto, el emisor debe primero codificarlo. Para ello necesita una clave, que deberá comunicar previamente al receptor. Como ésta
puede ser interceptada, debrı́a a vez ser codificada, para lo cuál también necesitarı́a una clave y
ası́ sucesivamente. Para arreglar este problema se puede utilizar una clave pública, que no requiere
TALLER DE DETECTIVES
9
un intercambio previo y explı́cito de la clave, o se puede utilizar algo llamado intercambio de claves
para acordar una clave común.
3.1.
El sistema RSA.
A modo de ejemplo consideremos el siguiente problema.
Ejemplo 4. Supongamos que Bob, que vive en Springfield, le quiere mandar a Alicia, que vive
en el Paı́s de las Maravillas, un mensaje de manera que sólo ella pueda leer su contenido. El
problema es que el correo entre ambos lugares es bastante corrupto, los carteros abren y leen
toda la correspondencia que no esté protegida. Sin embargo, dejan pasar paquetes que contengan
objetos pero sin mensajes. ¿Cómo puede hacer Bob entonces para mandar el mensaje?
Para resolver este problema, se inventó lo que hoy se conoce como criptografı́a de clave pública.
Y se basa en que cada individuo de la comunicación posee dos claves propias, una pública (que
cualquiera pueda conocer) y una privada (que sólo él conoce). La primera de estas claves la puede
saber cualquier persona y se utiliza para encriptar los mensajes y la segunda es la única que
permite desencriptar.
En el ejemplo, para que Bob pueda mandar el mensaje a Alicia, deberı́a primero avisarle que le
quiere mandar un mensaje. Para que esto sea posible, Alicia le envı́a por correo a Bob un candado
abierto, del que sólo Alicia tiene la llave. Bob recibe el candado, escribe el mensaje, lo pone en
una caja y la cierra con el candado (ahora Bob no puede leer el mensaje, puesto que está dentro
de la caja y él no tiene la llave para abrir el candado). Bob le envı́a la caja a Alicia y ella la abre
con su llave.
En este ejemplo, el candado es la clave pública de Alicia, y la llave de la cerradura es su clave
privada. La idea detrás de este ejemplo es la que se utiliza para el criptosistema RSA, que es uno
de los más populares sistemas de clave pública, y debe su nombre a las iniciales de los apellidos
de sus autores Ron Rivest, Adi Shamir y Len Adleman quienes en 1977 describieron el algoritmo.
3.2.
Intercambio de claves.
La idea de utilizar una clave pública para el intercambio de claves fue introducida en 1976 por
dos especialistas norteamericanos en criptografı́a, W. Diffie y M. Hellman, que idearon un sistema
basado en ciertas funciones de la aritmética modular que permiten acordar una clave entre dos
partes sin necesidad de que ésta sea transmitida.
Un ejemplo ilustrativo es el siguiente.
Ejemplo 5. Supongamos ahora, que el servicio de correos se ha vuelto más corrupto aún. Los
carteros no sólo leen toda la correspondencia sino que también abren y roban todos los objetos
que no están protegidos. Lo único que no pueden abrir son las cajas protegidas con candado.
10
MARÍA CHARA
Supongamos que Bob le quiere enviar a Alicia un collar como regalo de cumpleaños. Si envı́a
el regalo en una caja sin candado se lo van a robar. Si utilizan el método anterior, el candado
nunca le llegará a Bob puesto que los carteros se lo robarán. ¿Cómo puede hacer Bob, utilizando
únicamente el servicio de correos, para enviar el collar a Alicia?
La idea detrás de la resolución de este problema es lo que se conoce como intercambio de claves.
Para que el collar le llegue a Alicia, Bob deberá hacer lo siguiente. Primero tendrá que poner el
collar en una caja y ponerle un candado (del cual sólo él tiene la llave) y mandárselo a Alicia.
Alicia cuando reciba el paquete no va a poder abrirlo, puesto que no tiene la llave del candado,
pero puede ponerle a la caja otro candado, uno de ella, del cuál sı́ tenga la llave y mándarselo de
nuevo a Bob (ahora con dos candados). Bob al recibir la caja puede quitar su candado puesto que
tiene la llave, pero no puede abrirla pues todavı́a tiene el candado de Alicia. Finalmente le envı́a,
nuevamente, la caja a Alicia y ella con su llave puede abrir la caja y obtener el collar.
3.3.
¿Y la matemática dónde aparece?
Los dos últimos problemas, tienen una formulación matemática que es sencilla de describir ya
que utilizan herramientas básicas, pero muy poderosas, de la aritmética modular, y pueden ser
implementados computacionalmente.
En el ejemplo del criptosistema RSA en el que Bob le quiere mandar un mensaje codificado
a Alicia, para fabricar sus claves, cada usuario elige dos números primos grandes p y q y hace
público su producto n = p · q. Luego elige al azar un número e entre 1 y φ(n) (donde φ(·) denota
a la función de Euler), coprimo con φ(n) que también hace público y calcula su inverso módulo
φ(n), al que llama d y lo guarda en secreto. Luego cada usuario tiene una clave pública kP = (n, e)
y una clave privada kp = (p, q, d).
De esta forma se generan las claves. Veamos ahora cómo se utiliza el sistema.
Supongamos que la clave pública de Alicia es kP (A) = (n, e) y que Bob ya la conoce.
Como primer paso, debe convertir el mensaje a enviar en un número natural x.
Luego, tiene que calcular y = xe mód n que será el mensaje cifrado y envı́arle este número
y a Alicia.
Usando su clave privada, Alicia puede calcular x = y d mód n lo que le permite decodificar
el mensaje, es decir, conocer x.
La seguridad de este sistema está basada en la dificultad de factorizar números de gran tamaño.
Para el intercambio de claves, supongamos que denotamos con A a Alicia y con B a Bob, que
desean acordar una clave k para luego utilizarla para cifrar mensajes con algún sistema.
El algoritmo consiste en los siguientes pasos:
TALLER DE DETECTIVES
11
A y B eligen un número primo p y un generador g del grupo multiplicativo Z∗p . Estos dos
valores son públicos.
A elige un número 1 < a < p − 1 y le envı́a a B g a mód p.
B elige un número 1 < b < p − 1 y le envı́a a A g b mód p.
B calcula (g a )b mód p = g ab mód p.
A calcula (g b )a mód p = g ba mód p.
La clave secreta que sólo comparten A y B es g ab mód p.
Ejemplo 6. Supongamos que p = 79, g = 3 y que A y B han elegido a 19 y a 28 como sus
respectivas claves privadas. En este caso, la clave será
k = (319 )28 ≡ 3728 ≡ 45
mód 79.
Un intruso que conoce g y p y que intercepte g a mód p y g b mód p no podrá descubrir g ab
mód p porque es incapaz de descubrir el valor de a y b, a menos que resuelva un logaritmo en
un campo discreto de números, ya que necesitarı́a descubrir los valores de a o b en las ecuaciones
u = g a ó v = g b . Afortunadamente para la seguridad del sistema, resolver este problema tiene un
orden exponencial a p y por lo tanto no se conoce ningún algoritmo eficiente que permita despejar
el exponente en las ecuaciones anteriores.
Sin embargo, el intercambio de Diffie-Hellman es sensible a un ataque de “hombre en el medio”
(“man in the middle”) y por lo tanto no puede utilizarse sin una autentificación de usuario.
Descargar