Intercambio de claves Diffie-Hellman.
-
Upload
amador-aparicio -
Category
Education
-
view
881 -
download
0
Transcript of Intercambio de claves Diffie-Hellman.
Criptografía Intercambio deClaves
Intercambio de Claves Diffie-Hellman
Confiable como es, la seguridad que ofrece RSA depende de hacer aritmética con
números gigantescos, lo que determina comunicación muy lenta. Si los mensajes
son documentos extensos, RSA resulta de poca utilidad. Es más fácil usar un
sistema de clave privada pero rápido –DES es el favorito- y resolver el problema de
intercambio de claves de otra manera.
Este problema fue resuelto por Diffie y Hellman en 1976. Su seguridad se basa en
la dificultad de resolver el problema de logaritmos discretos.
Logaritmos discretos. Seguro que ya sabes que el logaritmo de 1000 en base 10
es 3. Esto lo podemos calcular con la calculadora pero lo más interesante para
entender en qué consiste el problema del logaritmo discreto es por qué es 3. La
razón es que 103=1000. Podemos escribirlo en la notación habitual haciendo uso
de la definición de logaritmo:
log10 1000=3 porque103=1000
Logaritmo es sinónimo de exponente. Cada vez que vemos una potencia, desde
otro ángulo veremos un logaritmo. Por ejemplo:
34=81es lomismoque log381=4
En aritmética modular también tenemos logaritmos, siempre que el módulo p sea
un número primo. Se apellidan discretos por oposición a continuos que son los que
conocemos; tiene que ver con la finitud del conjunto donde se definen.
Por ejemplo, para p=7 ( primo), Z7={0 ,1 ,2,3 ,4 ,5 ,6 }. Si ignoramos el 0 obtenemos
Z7¿={1 ,2 ,3 ,4 ,5 ,6 }
en el que se puede multiplicar cerradamente, sin salirse de Z7¿. Es más, el número 3,
por ejemplo, tiene la propiedad que todas sus potencias cubre todo Z7¿. Es decir, cada
elemento de Z7¿ es una potencia de 3 y por ello en Z7
¿ tenemos un logaritmode base3.
En efecto:
POTENCIA LOGARITMO
Seguridad y Alta Disponibilidad Página 1 de 5
Criptografía Intercambio deClaves
30 = 1 log3 1=0
31 = 3 log3 3=1
32 = 2 log3 2=2
33 = 6 log3 6=3
34 = 4 log3 4=4
35 = 5 log3 5=5
Se puede observar que 36=35×3=5×3=15=1(mod 7) lo cual dice que después de
cubrir Z7¿, las potencias de 3 se repiten cíclicamente.
En todo este pareo hay una base fija que es 3 y cada elemento de Z7¿ tiene un
logaritmo en base 3. No todo elemento sirve de base, como es el caso de 2 cuyas
potencias no cubren todo Z7¿ (verifícalo). Cinco (5) en cambio sí que puede ser
base:
(50 ,51 ,52 ,53 ,54 ,55 )=(1 ,5 ,4 ,6 ,2 ,3 )
Ejercicio. Halla todos los elementos que sirvan de base para logaritmos en Z11¿ .
A los elementos que puedan servir de base de logaritmos se llaman generadores,
pues con sus potencias generan todo Zp¿ . Una propiedad de los números primos es
que cada Zp¿ tiene al menos un generador, y a esta verdad se la da la importancia
que merece:
Si pes primo ,existeα∈Z p¿ tal que {αn :entero }=Z p¿
Por ello, si α es generador de Zp¿, todo elemento x∈Z p
¿ tiene un logaritmo de base α
módulo p.
El problemadellogaritmo discreto. En un grupo abeliano finito G (habitualmente
pensamos en el grupo multiplicativo del anillo Z /mZ o en un grupo multiplicativo
de un cuerpo finito) es sencillo calcular ax para un elemento de a∈G y un entero x.
Sin embargo, conocidos a , y∈G , y una potencia de a, en general es muy difícil
calcular x∈N talqueax= y . Dicho problema se conoce con el nombre del
Problemadel Logaritmo Discreto.
Seguridad y Alta Disponibilidad Página 2 de 5
Criptografía Intercambio deClaves
Intercambio de claves de Diffie-Hellman. El problema del logaritmo discreto fue
utilizado por Diffie y Hellman como un medio seguro para el intercambio de claves
entre dos usuarios a través de un canal inseguro. El sistema para ello es
relativamente simple: supongamos que dos usuarios A y B desean ponerse de
acuerdo en una clave común para un sistema de intercambio de clave privada.
Supongamos que dicha clave debe ser un elemento de un cuerpo finito Fq, siendo
q una potencia de un número primo p (ambos pueden ser públicos). El método es
el siguiente:
1. Conciertan un generador β del grupo Fq¿.
2. A elige un entero a (que mantiene en secreto), calcula βa y lo transmite a B.
B hace lo propio, elige b y transmite βb.
3. A y B toman como clave secreta βab.
La hipótesis de Diffie y Hellman era que es computacionalmnete intratable calcular
βab conocidos βa y βb (que pueden ser conocidos por cualquier escucha en el canal).
Se considera (aunque no está probado) que el problema es equivalente a calcular a
a partir de βa (o b a partir de βb), es decir, equivalente a resolver el problema del
logaritmo discreto.
Basados en el problema del logaritmo discreto hay varios sistemas de clave pública
(El Gamal, Massey-Omura) y de firma digital, notablemente el sistema DSS (Digital
Estándar Signature) propuesto por el NIST (National Institute of Standars and
Tecnology, USA) como sistema de firma digital estándar.
Ejemplo de intercambio de claves en un canal inseguro.
Acuerdo públicoen acción. A través de un medio inseguro (Internet por ejemplo),
Alicia y Benito se ponen de acuerdo en usar un número primo p muy grande y un
generador G de Zp¿ (el intruso Malory detecta ambos números). Alicia escoge un
entero a< p que usará como exponente y mantiene el secreto. Benito hace lo
propio, escoge un número b< p que usará como exponente y también mantiene en
secreto.
Seguridad y Alta Disponibilidad Página 3 de 5
Criptografía Intercambio deClaves
Intercambio declaves en acción. Con su exponente secreto Alicia calcula Ga(mod p)
que envía a Benito (el intruso Malory lo intercepta). Benito por su parte calcula
Gb(mod p) que envía a Alicia (Malory lo vuelve a interceptar y ve los resultados de
Ga yG b, pero nove∋a∋b).
Alicia recibe Gb y con su exponente secreto calcula (G¿¿a)b ¿. Benito hace lo
propio: recibe Ga y con su exponente secreto calcula ¿. Como
(G¿¿b)a=Gba=Gab=(G¿¿a)b=K ¿¿,
Alicia y Benito comparten el número K que nadie más conoce.
Malory (intruso)enacción. Malory conoce G ,Gab y p. No conoce a. Tiene un
problema de logaritmo discreto. Tendrá que recurrir a otros medios. Podría usar
su computadora más veloz para calcular potencias sucesivas de G :G2,G3 ,G 4 ,…
hasta encontrar un exponente que le dé Ga. Si el primo p es de más de 200 dígitos,
el proceso le puede durar varios años.
Ejemplo. Trabajemos a escala microscópica para entender bien este problema.
Alicia y Benito acuerdan el número p=2003 y el generador G=106. Todo el mundo
sabe que ellos usan ( p=2003 yG=106).
Alicia escoge su exponente (cabalístico) a=381, no lo revela a nadie y calcula
Ga (mod p )=106381 (mod 2003 )=1717 ,
y envía 1717 a Benito.
Benito coge su exponente ¿de buena suerte¿ b=751, no lo revela a nadie y calcula:
Gb (mod p )=106751 (mod 2003 )=158 ,
Seguridad y Alta Disponibilidad Página 4 de 5
Criptografía Intercambio deClaves
y le envía 158 a Alicia.
Alicia, en secreto, hace el cálculo
158381 ( mod2003 )=1193
Benito, en secreto, hace el cálculo
17177511 (mod 2003 )=1193
y K=1193 es la clave que comparten.
El intruso Malory conoce p=2003, el generador G=106 y Ga=1717. Su problema es
hallar:
log106 1717(mod2003) ó log106 158(mod 2003)
Con un número p de 4 cifras, CALC puede obtener una respuesta, pero si p tuviera
200 cifras o más, el cálculo de cualquiera de los dos logaritmos sería muy costoso
en términos de tiempo.
Ejercicio. (CALC) Imagina que tú eres Malory, el intruso. Navegas por los portales
de Alicia y Benito y en ambos hallas ( p=43 yG=18). Luego ves el misterioso
número 11 en la página de Benito y el misterioso número 15 en la página de
Benito. ¿Puedes determinar el número secreto que Alicia y Benito comparten?
Bibliografía
[1] Manuel J. Lucena López. Criptografía y Seguridad en Computadores.
Universidad de Jaén. Versión 4-0.9.0
[2] Jorge M. López. Conceptos Básicos de Criptografía.
[3] Félix Delgado de la Mata, Criptografía. Universidad de Valladolid.
Seguridad y Alta Disponibilidad Página 5 de 5