Intercambio de claves Diffie-Hellman.

7
Criptografía Intercambio de Claves Intercambio de ClavesDiffie-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 logaritmosdiscretos. 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 10 3 =1000. Podemos escribirlo en la notación habitual haciendo uso de la definición de logaritmo: log 10 1000=3 porque 10 3 =1000 Logaritmo es sinónimo de exponente. Cada vez que vemos una potencia, desde otro ángulo veremos un logaritmo. Por ejemplo: 3 4 =81 es lo mismoque log 3 81=4 En aritmética modular también tenemos logaritmos, siempre que el módulo p sea un número primo. Se apellidan discretos Seguridad y Alta Disponibilidad Página 1 de 7

Transcript of Intercambio de claves Diffie-Hellman.

Page 1: 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

Page 2: Intercambio de claves Diffie-Hellman.

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

Page 3: Intercambio de claves Diffie-Hellman.

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

Page 4: Intercambio de claves Diffie-Hellman.

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

Page 5: Intercambio de claves Diffie-Hellman.

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