protocolo diffie - hellman

30
Protocolo Diffie - Hellman T I C r i p t o 2 0 2 1 Tomás Caram Santiago Curi Santiago Freire Bruno Hernández Juan Pablo Martínez Jimena Mignaco Alfredo Viola Formalización matemática del acuerdo de claves

Upload: others

Post on 22-Dec-2021

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protocolo Diffie - Hellman

Protocolo Diffie - Hellman

T I C r i p t o 2 0 2 1

Tomás CaramSantiago Curi

Santiago FreireBruno Hernández

Juan Pablo MartínezJimena Mignaco

Alfredo Viola

Formalización matemática del acuerdo de claves

Page 2: Protocolo Diffie - Hellman

Recapitulación

En base a lo que aprendimos anteriormente con las

sustancias de colores, vamos a ver su analogía con el

protocolo real.

Page 3: Protocolo Diffie - Hellman

BugsAbuelita

Ambos emplearán en común un númeroprimo 𝒑 y un número 𝒈 entre 1 y 𝑝 − 1

con la propiedad especial de que∀𝑥 ∈ {1,… , 𝑝 − 1} ∶ ∃𝑒 ∈ ℕ / 𝑔𝑒 ≡ 𝑥 (𝑚𝑜𝑑 𝑝)

“𝑔𝑒 es congruente con 𝑥 módulo 𝑝”

“𝑥 es el resto de dividir 𝑔𝑒 entre 𝑝”

20 ≡ 1 (𝑚𝑜𝑑 11)

Por ejemplo, con 𝒑 = 𝟏𝟏 y 𝒈 = 𝟐 :

g

21 ≡ 2 𝑚𝑜𝑑 11

22 ≡ 4 𝑚𝑜𝑑 1123 ≡ 8 (𝑚𝑜𝑑 11)

24 ≡ 5 (𝑚𝑜𝑑 11)

25 ≡ 10 (𝑚𝑜𝑑 11)

26 ≡ 9 𝑚𝑜𝑑 11

27 ≡ 7 𝑚𝑜𝑑 11

28 ≡ 3 (𝑚𝑜𝑑 11)

29 ≡ 6 (𝑚𝑜𝑑 11)

28 = 256 = 𝟏𝟏 × 23 + 3 ≡ 3 (𝑚𝑜𝑑 𝟏𝟏)

Page 4: Protocolo Diffie - Hellman

BugsAbuelita

Ambos emplearán en común un númeroprimo 𝒑 y un número 𝒈 entre 1 y 𝑝 − 1

con la propiedad especial de que∀𝑥 ∈ {1,… , 𝑝 − 1} ∶ ∃𝑒 ∈ ℕ / 𝑔𝑒 ≡ 𝑥 (𝑚𝑜𝑑 𝑝)

20 ≡ 1 (𝑚𝑜𝑑 11)

Por ejemplo, con 𝒑 = 𝟏𝟏 y 𝒈 = 𝟐 :

g

21 ≡ 2 𝑚𝑜𝑑 11

22 ≡ 4 𝑚𝑜𝑑 1123 ≡ 8 (𝑚𝑜𝑑 11)

24 ≡ 5 (𝑚𝑜𝑑 11)

25 ≡ 10 (𝑚𝑜𝑑 11)

26 ≡ 9 𝑚𝑜𝑑 11

27 ≡ 7 𝑚𝑜𝑑 11

28 ≡ 3 (𝑚𝑜𝑑 11)

29 ≡ 6 (𝑚𝑜𝑑 11)

Observar que con los exponentes de 0,… , 𝑝 − 2 se obtienen todos

los números requeridos

Page 5: Protocolo Diffie - Hellman

La Abuelita elige unexponente secreto

(por ejemplo, 𝑎 = 5)

Abuelita Bugs

a

𝒑 = 𝟏𝟏

Generadorcomún(𝑔 = 2)

g

Page 6: Protocolo Diffie - Hellman

b

Bugs elige unexponente secreto

(por ejemplo, 𝑏 = 9)

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

𝒑 = 𝟏𝟏

Generadorcomún(𝑔 = 2)

g

Page 7: Protocolo Diffie - Hellman

Secreto deBugs

(𝑏 = 9)

Secreto dela Abuelita

(𝑎 = 5)

Ambos elevan a su exponente secretoel elemento g en común y reducen

módulo 𝑝 el resultado

Abuelita Bugs

g

a

g

b

𝒈𝒂 (𝒎𝒐𝒅 𝒑) 𝒈𝒃 (𝒎𝒐𝒅 𝒑)

𝟐𝟓 ≡ 𝟏𝟎 (𝒎𝒐𝒅 𝟏𝟏) 𝟐𝟗 ≡ 𝟔 (𝒎𝒐𝒅 𝟏𝟏)

𝒑 = 𝟏𝟏𝒈 = 𝟐

Page 8: Protocolo Diffie - Hellman

Luego ponen su resultadoreducido módulo 𝒑

a disposición en el canal público

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

𝒑 = 𝟏𝟏

Generadorcomún(𝑔 = 2)

g

Page 9: Protocolo Diffie - Hellman

𝟕

Supongamos que además de ellos alguien más

calculó una exponenciación módulo 𝑝 con base g

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

𝒑 = 𝟏𝟏

Generadorcomún(𝑔 = 2)

g

Page 10: Protocolo Diffie - Hellman

CoyoteSecreto del

Coyote(𝑐 = ?)

Sin embargo, tuvo laprecaución de correrla cortina y no pudimosver su exponente𝑐 secreto

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Generadorcomún(𝑔 = 2)

g

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

𝟕

Resultado delCoyote

𝒑 = 𝟏𝟏

Page 11: Protocolo Diffie - Hellman

La Abuelita tomael resultado módulo 𝑝

entregado por Bugs

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

𝒑 = 𝟏𝟏

Page 12: Protocolo Diffie - Hellman

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

Resultado deBugs

𝟔

Bugs se copia elresultado módulo 𝑝

de la Abuelita

𝒑 = 𝟏𝟏

Page 13: Protocolo Diffie - Hellman

Entonces cuando cada uno tenga el resultado de la exponenciación

módulo 𝑝 que hizo el otro . . .

Abuelita Bugs

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

𝟕

Resultado delCoyote

𝒑 = 𝟏𝟏

Resultado deBugs

𝟔

Resultado dela Abuelita

𝟏𝟎

Generadorcomún(𝑔 = 2)

g

Page 14: Protocolo Diffie - Hellman

Abuelita BugsSecreto de

Bugs(𝑏 = 9)

Secreto dela Abuelita

(𝑎 = 5)a b

Resultadode Bugs

(6)

Resultado dela Abuelita

(10)

𝒈𝒃

(𝒎𝒐𝒅 𝒑)

𝒈𝒃𝒂≡ 𝒈𝒃𝒂 (𝒎𝒐𝒅 𝒑)

𝟔𝟓 ≡ 𝟏𝟎 (𝒎𝒐𝒅 𝟏𝟏)

𝒈𝒂

(𝒎𝒐𝒅 𝒑)

𝟏𝟎𝟗 ≡ 𝟏𝟎 (𝒎𝒐𝒅 𝟏𝟏)

𝒈𝒂 𝒃 ≡ 𝒈𝒂𝒃 (𝒎𝒐𝒅 𝒑)

Ambos elevan a su exponente secretoel resultado del otro y reducen

el cálculo módulo 𝑝

𝒑 = 𝟏𝟏𝒈 = 𝟐

Page 15: Protocolo Diffie - Hellman

𝟏𝟎𝟏𝟎

Sin conocer cuál era el exponente secreto del otro,obtuvieron el MISMO valor módulo 𝑝

Abuelita Bugs

Page 16: Protocolo Diffie - Hellman

𝟏𝟎

Abuelita Bugs

Este valor 𝑲 entre 1 y 𝑝 − 1es la clave secreta

de la Abuelita y Bugs

𝟏𝟎

𝑲 ≡ 𝒈𝒃𝒂(𝒎𝒐𝒅 𝒑) 𝑲 ≡ 𝒈𝒂 𝒃(𝒎𝒐𝒅 𝒑)

𝑲 ≡ 𝒈𝒂𝒃(𝒎𝒐𝒅 𝒑)

Page 17: Protocolo Diffie - Hellman

¿Cuál es el exponente secreto del Coyote?

Resultado delCoyote

Primera “garantía de seguridad”

𝟕

Page 18: Protocolo Diffie - Hellman

¿Qué hizo el Coyote?Secreto del

Coyote(𝑐 = ?)

g

𝟐𝒄 ≡ 𝟕 (𝒎𝒐𝒅 𝟏𝟏)

{0, … , 𝑝 − 2}

Page 19: Protocolo Diffie - Hellman

¿Podemos probar cada número 𝑐 ∈ {0,… , 𝑝 − 2},

uno por uno, hasta dar con el que 2𝑐 ≡ 7 (𝑚𝑜𝑑 𝑝)?

Sí, si buscamos secuencialmente vemos que 𝑐 = 7.

Entonces precisamos que 𝑝 sea un número muy grande (mayor que la cantidad estimada de átomos en el Universo).

Pero queremos resistir ataques de fuerza bruta.

Page 20: Protocolo Diffie - Hellman

En general, calcular las exponenciaciones módulo 𝑝es una operación fácil de hacer, aún con números inmensos.

Sin embargo, dado 𝑔𝑐 (𝑚𝑜𝑑 𝑝) hallar el exponente𝑐 es muy difícil si se elige 𝑝 lo suficientemente grande.

Este es el problema llamado logaritmo discreto.

Page 21: Protocolo Diffie - Hellman

Se conjetura que no existe ningún algoritmo eficiente para resolver todas las instancias del logaritmo discreto.

Dicha conjetura es la base de la seguridad de este protocolo, que fue presentado por Diffiey Hellman en 1976.

Page 22: Protocolo Diffie - Hellman

Supongamos que ahora Bugs quiere

descubrir la clave secreta de

la Abuelita y el Coyote . . .

Segunda “garantía de seguridad”

Page 23: Protocolo Diffie - Hellman

Generadorcomún(𝑔 = 2)

g 𝟕

Resultado delCoyote

Resultado dela Abuelita

𝟏𝟎

¿A qué información tuvo acceso Bugs?

Recordar lo que nosotros vimos… o no tanto

2

5

2

?

Page 24: Protocolo Diffie - Hellman

La clave secreta de la Abuelita y el Coyote es el resultado de:

Generadorcomún(𝑔 = 2)

Secreto dela Abuelita

(𝑎 = 5)

𝑲 ≡ 𝒈𝒂𝒄(𝒎𝒐𝒅 𝒑)

Secreto delCoyote(𝑐 = ?)

Page 25: Protocolo Diffie - Hellman

Si Bugs multiplicara los resultados entregados por cada participante:

Bugs precisa despejar el secreto de la Abuelita o el Coyote (𝒂 o 𝒄, resp.)

𝒈𝒂𝒈𝒄 ≡ 𝒈𝒂+𝒄(𝒎𝒐𝒅 𝒑)

Los exponentes quedan sumando!

Page 26: Protocolo Diffie - Hellman

Problema de Diffie - Hellman

Se conoce:

• un primo 𝒑,

• un generador 𝒈 de los números {1,… , 𝑝 − 1},

• 𝑨 ≡ 𝒈𝒂 (𝑚𝑜𝑑 𝑝) y

• 𝑩 ≡ 𝒈𝒃(𝑚𝑜𝑑 𝑝)

Se debe hallar:

𝑲 ≡ 𝒈𝒂𝒃(𝑚𝑜𝑑 𝑝)

Page 27: Protocolo Diffie - Hellman

gb

𝒈𝒃 (𝒎𝒐𝒅 𝒑)

ga

𝒈𝒂 (𝒎𝒐𝒅 𝒑)

𝟔𝟏𝟎

a

Terminología del paradigma asimétrico

• Al exponente secreto de cada participante se le conoce como clave secreta (o clave privada), y sólo es conocido por su propietario.

• El valor de 𝑔𝑎(𝑚𝑜𝑑 𝑝) y 𝑔𝑏(𝑚𝑜𝑑 𝑝) es la clave pública de cada participante. Está asociada con el dueño de la clave privada y es conocida por todos.

• Hay una función exponenciación modular que toma como entradas un exponente secreto y una base 𝑔, y permite obtener los valores módulo 𝑝 anteriores.

• Hay una función logaritmo discreto que a partir de un valor público 𝑥 ∈ {1,… , 𝑝 − 1}, devuelve el exponente secreto 𝑒 tal que 𝑔𝑒 ≡ 𝑥 (𝑚𝑜𝑑 𝑝). En otras palabras, es la inversa de exponenciar.

b

Page 28: Protocolo Diffie - Hellman

𝒈𝒂

(𝒎𝒐𝒅 𝒑)

b

𝒈𝒂𝒃(𝒎𝒐𝒅 𝒑)

• La función exponenciar es fácil de realizar si se tiene el exponente.

• No se conoce una forma eficiente de realizar la función logaritmo discreto, a menos que se tenga el exponente secreto, se eleve la base 𝑔 y luego se observe que al reducir módulo 𝑝 da el valor público.

• Funciones que son fáciles de implementar pero para las cuales no se conoce una forma eficiente de implementar la función inversa, se las conoce como funciones “unidireccionales” (one way, en inglés).

• No se conocen maneras eficientes de lograr el secreto compartido de dos participantes usando sólo su información pública.

• Para generar la clave compartida entre A y B, cada uno debe usar su clave secreta y la clave pública del otro.

𝒈𝒃

(𝒎𝒐𝒅 𝒑)

a

𝒈𝒃𝒂(𝒎𝒐𝒅 𝒑)

Page 29: Protocolo Diffie - Hellman

Secreto dela Abuelita

(𝑎 = 5)

a

Secreto deBugs

(𝑏 = 9)

b

Resultado delCoyote

Secreto delCorrecaminos

Abuelita Bugs

Problema del tercero en el medio

Resultado dela Abuelita

𝟏𝟎

Resultado deBugs

𝟔

𝒑 = 𝟏𝟏

Generadorcomún(𝑔 = 2)

g

𝟑

Correcaminos ¿Qué pasa si Correcaminos se hace pasar por

Coyote?

Page 30: Protocolo Diffie - Hellman

Abuelita La Abuelita piensa que acuerda una clave con el Coyote, pero en realidad lo está haciendo con el

Correcaminos

𝑲 ≡ 𝒈𝒄 𝒂

(𝑚𝑜𝑑 𝑝)

𝑲 ≡ 𝒈𝒂 𝒄

(𝑚𝑜𝑑 𝑝)

Hay que certificar la identidad de los participantes!

Correcaminos

Tenemos el problema deltercero en el medio.

Coyote no se enterade nada!