Top Banner
Criptografía de clave pública Elgamal Emmanuel Ramírez Martínez 1
17

Cifrado Elgamal

Dec 10, 2015

Download

Documents

Elgamal
Criptografia
Cifrado
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cifrado Elgamal

Criptografía de clave pública

Elgamal

Emmanuel Ramírez Martínez

1

Page 2: Cifrado Elgamal

2

Criptografía de Clave PúblicaCriptografía de Clave Pública

ElGamal

Basado en la dificultad de calcular logaritmos discretos.

Claves de 1024 bits.

Page 3: Cifrado Elgamal

Algoritmo ElGamal

Fue diseñado en un principio para producir firmas digitales, pero posteriormente se extendió también para codificar mensajes.

Se basa en el problema de los logaritmos discretos

Algoritmo: Se escoge un número primo n y dos números aleatorios

p y x menores que n. Se calcula entonces la expresión:

y = px (mod n)

La clave pública es (p, y, n), mientras que la clave privada es x.

Page 4: Cifrado Elgamal

Algoritmo ElGamal

Firmas Digitales de ElGamal

Escoger un número k aleatorio, tal que mod(k,n-1) =1, y calcular:

a = pk(mod n)

b = (m-xa)k-1 (mod (n-1))

La firma la constituye el par (a, b). En cuanto al valor k, debe mantenerse en secreto y ser diferente cada vez.

La firma se verifica comprobando que yaab = pm (mod n)

Codificación de ElGamal

Para codificar el mensaje m se escoge primero un número aleatorio k primo relativo con (n-1), que también será mantenido en secreto. Calculamos:

a = pk (mod n)

b = ykm (mod n)

El par (a, b) es el texto cifrado, de doble longitud que el texto original.

Para decodificar se calcula

m = b * a-x (mod n)

Page 5: Cifrado Elgamal

5

Criptosistema de ElGamal: clavesCriptosistema de ElGamal: claves

Generación de claves:

La clave pública es (p, , a).

La clave privada es el número a.

Page 6: Cifrado Elgamal

6

Criptosistema de ElGamal: cifradoCriptosistema de ElGamal: cifrado y descifrado y descifrado

Cifrado:

1. B obtiene la clave pública de A: (p, , a),

2. B representa el mensaje que quiere enviar, m, en el conjunto

{0, 1, ..., p – 1}, troceándolo si es preciso,

3. B genera un número aleatorio v, 0 < v < p – 1,

4. B calcula v (mod. p), y m ·(a)v (mod. p).

5. B envía a A el par (,).

Page 7: Cifrado Elgamal

7

Criptosistema de ElGamal: cifradoCriptosistema de ElGamal: cifrado y descifrado y descifrado

Descifrado:

1. A utiliza su clave privada, a, para calcular

a (v)a (mod. p) en G y su inverso p – 1 – a (mod. p)

2. El resultado lo multiplica por para obtener m:

p – 1 – a – a m a (mod. p) m (mod. p)

Page 8: Cifrado Elgamal

8

Criptosistema de ElGamal: Criptosistema de ElGamal: seguridadseguridad

Por seguridad y eficacia, el grupo G y el elemento deben

elegirse de forma que se verifiquen las siguientes condiciones:

La operación en G debería ser “fácil” de aplicar.

Por seguridad el problema del logaritmo discreto en el subgrupo

cíclico de G generado por debería ser “difícil”.

Page 9: Cifrado Elgamal

9

EjemploEjemplo ElGamal: ElGamal: determinación de la clave.determinación de la clave.

Consideremos p = 15485863, el grupo (Z15485863)* y un generador de dicho grupo

= 7.

A elige a=28236 y calcula a 728236 12506884 (mod. 15485863) Este par es la clave privada y pública de A.

B elige b=21702 y calcula b 721702 8890431 (mod. 15485863) Este par es la clave privada y pública de B.

Page 10: Cifrado Elgamal

10

EjemploEjemplo ElGamal: ElGamal: cifrado del mensaje.cifrado del mensaje.

Supongamos que A quiere mandar a B el mensaje m=HIJO

Codificamos el mensaje utilizando el alfabeto de 26 letras:

H7, I8, J9,O 14

con lo que el mensaje sería:

m = 7 · 263+8 · 262+9 · 26+14 = 128688

Page 11: Cifrado Elgamal

11

EjemploEjemplo ElGamal: ElGamal: cifrado del mensaje.cifrado del mensaje.

A elige el número v = 480 y calcula

7480 (mod. 15485863) 12001315 (mod. 15485863)

(b)v 8890431480 9846598 (mod. 15485863)

m ·(a)v 1286688 · 9846598 8263449 (mod. 15485863)

Page 12: Cifrado Elgamal

12

EjemploEjemplo ElGamal: ElGamal: cifrado del mensaje.cifrado del mensaje.

A codifica la pareja (12001315, 8263449) en base 26:

12001315= 1 · 265 +0 · 264 +6 · 263+21 · 262+11 · 26+1 BAGVLB

8263449= 18 · 264 +2 · 263+4 · 262+0 · 26+25 SCEAZ

y envía a B la pareja (BAGVLB, SCEAZ).

Page 13: Cifrado Elgamal

13

EjemploEjemplo ElGamal: ElGamal: descifrado del mensaje.descifrado del mensaje.

B codifica la pareja (BAGVLB, SCEAZ) en base 26:

BAGVLB = 1·265+0·264+6·263+21·262+11·26+1 = 12001315 =

SCEAZ= 18·264+2·263+4·262+0·26+25 = 8263449 =

B calcula b 1200131521702 9846598 (mod. 15485863)

y su inverso p–1–b 1200131515464160 14823281 (mod. 15485863)

Page 14: Cifrado Elgamal

14

EjemploEjemplo ElGamal: ElGamal: descifrado del mensaje.descifrado del mensaje.

Finalmente B calcula el mensaje inicial:

p – 1 – a 14823281 · 8263449 128688 (mod. 15485863)

que codificado en base 26 es el mensaje inicial:

128688 = 7 · 263+8 · 262+9 · 26+14 HIJO

Page 15: Cifrado Elgamal

15

Firma digital ElGamal.Firma digital ElGamal.

El esquema diseñado por ElGamal para firmar digitalmente un

mensaje es el siguiente:

A genera un número aleatorio h tal que MCD(h,p-1)=1.

A calcula el elemento r h (mod. p) .

A resuelve la congruencia m a · r +h ·s (mod. p-1).

La firma digital de A para el mensaje m es el par (r,s).

Page 16: Cifrado Elgamal

16

Firma digital ElGamal.Firma digital ElGamal.

Para que el receptor B del mensaje compruebe la firma de A

realiza el siguiente protocolo:

B calcula rs (h)s (mod. p)

B calcula el elemento (a)r (mod. p)

B calcula (a)r · (h)s (mod. p) y comprueba que es igual a

m (mod. p)

Page 17: Cifrado Elgamal

17

Firma digital ElGamal.Firma digital ElGamal.

Para conseguir la falsificación de la firma de A en el mensaje m,

un escucha tendría que resolver la ecuación

m =(a)r · rs

con las incógnitas r y s. Si fija r y trata de resolver la ecuación

en s se encontraría con un problema de logaritmo discreto,

mientras que si fija s e intenta resolver la ecuación para r se

encontraría con una congruencia exponencial mixta para la que

no hay algoritmo conocido (Problema de la firma digital de

ElGamal)