Beruflich Dokumente
Kultur Dokumente
Diffie-Hellman
El protocolo criptogrfico Diffie-Hellman,[1] debido a Whitfield Diffie y Martin Hellman, (DiffieHellman
Problem->DHP) es un protocolo de establecimiento de claves entre partes que no han tenido contacto previo,
utilizando un canal inseguro, y de manera annima (no autentificada).
Se emplea generalmente como medio para acordar claves simtricas que sern empleadas para el cifrado de una
sesin (establecer clave de sesin). Siendo no autenticado, sin embargo, provee las bases para varios protocolos
autenticados.
Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un
cuerpo finito.
Versin bsica
Descripcin
Diffie-Hellman.
Para dos partes Alice y Bob que intentan establecer una clave secreta y un adversario Mallory, la versin bsica es
como sigue:
Se establecen un primo
y un generador
al azar, calcula
, y enva
, y enva
a Bob
a Alice
. En efecto, lo podemos demostrar usando
:
Alice:
Para
Bob:
Diffie-Hellman
Ataques
Ataques pasivos
Un adversario Mallory que poseyera p, g, A y B, podra calcular el secreto compartido si tuviera tambin uno de los
valores privados (a o b). Obtener a o b a patir de A o B invirtiendo la funcin (
y
) es el problema del logaritmo discreto en
computacionalmente siempre que p sea un nmero primo grande de 200 o ms dgitos y que no cumplan ciertas
caractersticas debilitantes.[3]
Ataques activos
El protocolo es sensible a ataques activos del tipo Man-in-the-middle. Si la comunicacin es interceptada por un
tercero, ste se puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se dispone de ningn
mecanismo para validar la identidad de los participantes en la comunicacin. As, el "hombre en el medio" podra
acordar una clave con cada participante y retransmitir los datos entre ellos, escuchando la conversacin en ambos
sentidos. Una vez establecida la comunicacin simtrica el atacante tiene que seguir en medio interceptado y
modificando el trfico para que no se den cuenta. Observar que para que el ataque sea operativo el atacante tiene que
conocer el mtodo de cifrado simtrico que ser utilizado. Basarse en la ocultacin de algoritmo simtrico de cifrado
no cumple con los principios de Kerckhoffs (la efectividad del sistema no debe depender de que su diseo
permanezca en secreto).
Para evitar este tipo de ataque se suele usar una o ms de las siguientes tcnicas:
Control de tiempos
Autenticacin previa de las partes. Por ejemplo usar en protocolo de capa subyacente autenticacin. Podramos
primero establecer una conexin TLS y sobre esa capa aplicar el algoritmo de Diffie-Hellman
Autenticacin del contenido. Por ejemplo podramos usar MAC sobre el contenido de los mensajes
Diffie-Hellman
Ejemplo
Alice
Sec
Bob
Calc
Calc
Sec
p, g
p, g
ga mod
p
g mod
p
56 mod 23 = 8.
3. Bob elige un nmero secreto b=15, luego enva a Alice (gb
mod p)
515 mod 23 = 19.
4. Alice calcula (gb mod p)a mod p
196 mod 23 = 2.
5. Bob calcula (ga mod p)b mod p
815 mod 23 = 2.
Valores mucho ms grandes de a,b y p se necesitaran para hacer este ejemplo seguro. Dado que es muy sencillo
probar todos los valores posibles de gab mod 23 (habr, como mximo, 22 valores, inclusive si a y b son nmeros
grandes).
Generalizaciones
Aumentando el nmero de partes
La idea del algoritmo podemos generalizarla a la negociacin de claves entre ms de dos entidades.Veamos un
ejemplo para tres entidades y a partir de ah podemos aumentar el nmero de partes de forma fcil:
1. Las partes (Alice, Bob y Carol) se ponen de acuerdo en los parmetros del algoritmo
2. Las partes generan sus propias claves privadas llamadas , , y respectivamente.
3. Alice calcula
4.
5.
6.
7.
8.
9.
Bob calcula
Carol calcula
Bob calcula
Carol calcula
Alice calcula
Carol calcula
and
y lo enva a Bob.
y lo enva a Carol.
y la usa como su clave secreta.
y lo enva a Carol.
y lo enva a Alice.
y lo usa como su clave secreta.
y lo enva a Alice.
y lo enva a Bob.
y lo usa como su clave secreta.
Diffie-Hellman
Cambiando de grupo
Podemos generalizar el protocolo y sus derivados si en lugar de basarnos en el grupo
grupos que cumplan las condiciones necesarias para poder aplicar el algoritmo (GDHP<-Generalized Diffie-Hellman
Problem)
Formalizacin
1. Los usuarios A y B seleccionan pblicamente un grupo multiplicativo finito G de orden n y generador
cuya operacin multiplicacin es una operacin de una va (no tiene inversa o difcilmente invertible)
2. El usuario A genera un nmero aleatorio a,
, calcula
y transmite este elemento a B,
manteniendo secreto a
3. El usuario B genera un nmero aleatorio b,
, calcula
manteniendo secreto b
4. El usuario A recibe
y calcula
5. El usuario B recibe
y calcula
6. A y B poseen un elemento comn secreto del grupo
Ejemplos
Ejemplos de grupos que podramos usar: El grupo multiplicativo anlogo de los campos de Galois
, el grupo de
Referencias
[1] Diffie, W. y M.E.Hellman. "New directions in cryptography", IEEE Transactions on Information Theory 22 (1976), pp. 644-654.
[2] Aqu UNIQ-math-0-f8bd4a9a31d43c0d-QINU es el conjunto de los enteros menores que p que son primos relativos de p, que es un grupo
bajo la multiplicacin mdulo p.
[3] Gordon, D. M. Designing and Detecting Trapdoors for Discrete Log. Cryptosystems. Advances in Cryptology-CRYPTO92, Berlin:Springer
Verlag pp 66-75
[4] N. Borisov,"Off-the-Record Communication or, Why Not To Use PGP"
Bibliografa adicional
Menezes, A.J., P.C. van Oorschot y S.A. Vanstone. Handbook of Applied Cryptography. Boca Raton, Fl.: CRC
Press, 1997.
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported
//creativecommons.org/licenses/by-sa/3.0/