Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución...

32
Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza su uso, reproducción en computador e impresión en papel sólo para fines docentes, respetando siempre los derechos del autor. Ultima actualización: 10/02/02 Archivo con 32 diapositivas Dr. Jorge Ramió Aguirre Universidad Politécnica de Madrid

Transcript of Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución...

Page 1: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Tema 12Cifrado Exponencial

Curso de Seguridad Informática

Material Docente de Libre Distribución

Curso de Seguridad Informática © Jorge Ramió Aguirre

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza su uso, reproducción en computador e impresión en papel sólo para fines docentes, respetando siempre los derechos del autor.

Ultima actualización: 10/02/02Archivo con 32 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Page 2: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 2

© Jorge Ramió Aguirre Madrid (España) 2002

• En el cifrado del mensaje Ee(M) = C y en el descifrado del criptograma Ed(C) = M, se usa una exponenciación.

• En la operación de cifrado, el subíndice e significa el uso de la clave pública del receptor (R) en el extremo emisor y el subíndice d el uso de la clave privada del receptor (R) en el extremo receptor.

C = EeR(M) = MeR mod nR M = EdR(C) = CdR mod nR

Esta operación se usará para realizar el intercambio de una clave de sesión entre un emisor y un receptor.

Cifrado exponencial con clave del receptor

Page 3: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 3

© Jorge Ramió Aguirre Madrid (España) 2002

• En la operación de cifrado el subíndice d significa el uso de la clave privada del emisor (E) en el extremo emisor y el subíndice e el uso de la clave pública del emisor (E) en el extremo receptor.

C’ = EdE(M) = MdE mod nE M = EeE(C’) = C’eE mod nE

Esta operación se usará para autenticar la identidad de un usuario mediante una firma digital al igual que la

integridad del mensaje.

Cifrado exponencial con clave del emisor

En ambos casos, la operación en emisión como en recepción se hace sobre un bloque de unas pocas centenas de bits.

Page 4: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 4

© Jorge Ramió Aguirre Madrid (España) 2002

Sea el grupo de trabajo n = pq (n) = (p-1)(q-1)

Se eligen una clave pública e y una privada d de forma que: ed mod (n) = 1 ed = k(p-1)(q-1) + 1.

Por el Teorema del Resto Chino se tiene que: Med = M mod n

ssi Med = M mod p Med = M mod q

Por el Teorema de Euler se tiene que:

Mk(n) mod n = 1

para todo M primo con n

Si ed = k(n) + 1

y ...

Válido para cualquier valor M

Cifrado exponencial genérico tipo RSA

Page 5: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 5

© Jorge Ramió Aguirre Madrid (España) 2002

Al cifrar el mensaje M con una clave pública e (en este caso para intercambio de clave, aunque es igual de válido con una clave d en caso de firma digital) tenemos:

Cifrado: C = Me mod n

Descifrado: Cd mod n = (Me)d mod n = Med mod n

Cd mod n = Mk(n)+1 mod n = MMk(n) mod n

Cd mod n = M1 mod n = M mod n

Por lo tanto, la operación Cd mod n recupera el mensaje M.

Comprobación de recuperación de texto

Page 6: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 6

© Jorge Ramió Aguirre Madrid (España) 2002

Sea n = pq = 511 = 55 (n) = (5-1)(11-1) = 40

Mensaje M = 50 = 252 (debe ser un elemento de n)

Se elige e = 3 d = inv[e, (n)] = inv (3,40) = 27

ed mod (n) = 327 mod 40 = 81 mod 40 = 1

C = Me mod n = 503 mod 55 = (252)3 mod 55

C = [(2)3 mod 55 (52)3 mod 55] mod 55 - por reducibilidad -

M = Cd mod n = {[(2)3 mod 55 (52)3 mod 55] mod 55}27 mod 55

M = [(2)327 mod 55 (52)327 mod 55] mod 55

M = [22(n)+1 52(n)+1 52(n)+1] mod 55

Por el Teorema de Euler y del Resto Chino = 2 5 5 mod 55 = 50

Ejemplo de cifrado exponencial genérico

Page 7: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 7

© Jorge Ramió Aguirre Madrid (España) 2002

• El comienzo de los sistemas de clave pública se debe al estudio hecho por Whitfield Diffie y Martin Hellman (1976).

Protocolo de Intercambio de Claves de Diffie y Hellman

• A y B seleccionan un grupo multiplicativo (con inverso) p y un generador de dicho primo, ambos valores públicos.

• A genera un número aleatorio a y envía a B a mod p.

• B genera un número aleatorio b y envía a A b mod p.

• B calcula (a)b mod p = ab mod p y luego destruye b.

• A calcula (b)a mod p = ba mod p y luego destruye a.

• El secreto compartido por A y B es el valor ab mod p.

Intercambio de claves de Diffie y Hellman

Page 8: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 8

© Jorge Ramió Aguirre Madrid (España) 2002

Un intruso que conozca las claves públicas p y e intercepte el valor a mod p que ha transmitido A y

el valor b mod p transmitido por B no podrá descubrir los valores de a, b ni ab mod p ...

salvo que se enfrente al Problema del Logaritmo Discreto (PLD) que, como ya hemos visto, se

vuelve computacionalmente intratable para valores del primo p grandes.

Intercambio de claves de Diffie y Hellman

Page 9: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 9

© Jorge Ramió Aguirre Madrid (España) 2002

CONDICIONES DEL PROTOCOLO:

• El módulo p debe ser un primo grande, al menos 512 bits.

• Interesa que el valor (p-1)/2 también sea primo.

• El generador debe ser una raíz primitiva del módulo p.

Si el módulo es un primo pequeño, se puede hacer un ataque por fuerza bruta dentro de un tiempo razonable.

Si el generador no es una raíz primitiva del grupo p, entonces la operación i mod p (1 i p-1) no genera todos los restos del grupo y esto facilita el ataque por fuerza bruta.

Ejemplo

Condiciones intercambio de claves de D-H

Page 10: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 10

© Jorge Ramió Aguirre Madrid (España) 2002

MALA ELECCIÓN DE LOS PARÁMETROS:

Sean el grupo de trabajo p = 13 y un valor = 3 ... entonces

31 mod 13 = 3 32 mod 13 = 9 33 mod 13 = 1

34 mod 13 = 3 35 mod 13 = 9 36 mod 13 = 1

37 mod 13 = 3 38 mod 13 = 9 39 mod 13 = 1

310 mod 13 = 3 311 mod 13 = 9 312 mod 13 = 1

Se repiten los restos 3, 9 y 1 porque 3 no es un generador de Z13.

Un ataque por fuerza bruta deberá buscar sólo en una tercera parte del espacio de claves y, lo que es peor, la probabilidad de éxito de encontrar un valor verdadero b en b mod p aumenta de 1/12 a 1/3.

La necesidad de una raíz en el protocolo

Page 11: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 11

© Jorge Ramió Aguirre Madrid (España) 2002

Primero intente calcularlo... y luego para comprobar sus resultados, avance.

21 mod 13 = 2 22 mod 13 = 4 23 mod 13 = 8

24 mod 13 = 3 25 mod 13 = 6 26 mod 13 = 12

27 mod 13 = 11 28 mod 13 = 9 29 mod 13 = 5

210 mod 13 = 10 211 mod 13 = 7 212 mod 13 = 1

Ahora sí están todos los restos multiplicativos del cuerpo Z13 porque el resto 2 es un generador dentro de este cuerpo.

¿Y si ahora = 2 ? ¿Y si ahora = 2 ?

Además del 2, ¿qué otros restosserán generadores en Z13?

Serán generadoresg = 2, 6, 7, 11.

La necesidad de una raíz en el protocolo

Page 12: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 12

© Jorge Ramió Aguirre Madrid (España) 2002

• A elige un número a con 1 < a < p-1 y envía a B a mod p

• C intercepta este valor, elige un número c con 1 < c < p-1 y envía a B c mod p

• B elige un número b con 1 < b < p-1 y envía a A b mod p

• C intercepta este valor y envía a A c mod p (valor anterior)

• A y B calculan sus claves kA = (c)a mod p, kB = (c)b mod p

• C calcula también las claves:

• kCA = (a)c mod p

• kCB = (b)c mod p

Por lo tanto, a partir de ahora C tiene “luz verde” y puede interceptar todos los mensajes que se intercambian A y B.

La solución a este

problema es el sellado de

tiempo

¿Es vulnerable el protocolo de D- H?

¿Qué hacer?

Page 13: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 13

© Jorge Ramió Aguirre Madrid (España) 2002

En febrero de 1978 Ron Rivest, Adi Shamir y Leonard Adleman proponen un algoritmo de cifra de clave pública: RSA

Algoritmo

1. Cada usuario elige un grupo n = pq. Trabajará por tanto en Zn.

2. Los valores p y q no se hacen públicos.

3. Cada usuario calcula (n) = (p-1)(q-1).

4. Cada usuario elige una clave pública e que sea parte del cuerpo n y que cumpla: mcd [e, (n)] = 1.

5. Cada usuario calcula la clave privada d = inv [e,(n)].

6. Se hace público el grupo n y la clave e.

7. Se guarda en secreto la clave d.Pueden destruirse ahora p, q y (n).

Algoritmo de cifra RSA

Page 14: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 14

© Jorge Ramió Aguirre Madrid (España) 2002

¿Qué fortaleza tendrá este algoritmo ante ataques?

El intruso que desee conocer la clave secreta d a partir de los valores públicos n y e se enfrentará al Problema de la Factorización de Números Grandes (PFNG) puesto que la solución para conocer esa clave privada pasa por deducir el valor del Indicador de Euler (n) = (p-1)(q-1) para así poder encontrar el inverso de la clave pública d = inv [e,(n)].

Existen, no obstante, otros tipos de ataques a este sistema que no pasan por la factorización de n.

Fortaleza del algoritmo RSA

Page 15: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 15

© Jorge Ramió Aguirre Madrid (España) 2002

Grupo n = 91 = 713; (n) = (713) = (7-1)(13-1) = 72 M = 48Elegimos e = 5 pues mcd (5,72) = 1 d = inv(5,72) = 29CIFRADO:C = Me mod n = 485 mod 91 = 5245.803.968 mod 91 = 55DESCIFRADO:M = Cd mod n = 5529 mod 91 = 48 ... 5529 ya es “número grande”

5529 es un número con 51 dígitos...5529 = 295473131755644748809642476009391248226165771484375¿Cómo podemos acelerar esta operación?

¿Algo más óptimo?Exponenciación rápida1ª opción: usar reducibilidad

Ejemplo de cifrado y descifrado con RSA

Page 16: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 16

© Jorge Ramió Aguirre Madrid (España) 2002

• En xy mod n se representa el exponente y en binario.

• Se calculan los productos x2j con j = 0 hasta n-1, siendo n

el número de bits que representan el valor y en binario.

• Sólo se toman en cuenta los productos en los que en la posición j del valor y en binario aparece un 1.

j2x

Calcular z = 1237 mod 221 = 207

1237 es un número de 40 dígitos

Ejemplo

Un método de exponenciación rápida

Page 17: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 17

© Jorge Ramió Aguirre Madrid (España) 2002

Calcular z = 1237 mod 221 = 207

3710 = 1001012

mod 221

j 0 1 2 3 4 5x = 12

12 144 183 118 1 1Bits 5 4 3 2 1 0

z = 121831 mod 221 = 207

En vez de 36 multiplicaciones y sus reducciones módulo 221 en cada paso ... 72 operaciones...

Hemos realizado cinco multiplicaciones (para j = 0 el valor es x) con sus reducciones módulo 221, más dos al final y su correspondiente reducción. Un ahorro superior al 80% .

interesante

Ejemplo de exponenciación rápida

122 mod 2211442 mod 221

x2j

Page 18: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 18

© Jorge Ramió Aguirre Madrid (España) 2002

Hallar x = AB mod n• Obtener representación

binaria del exponente B de k bits:

B2 bk-1bk-2...bi...b1b0

• Hacer x = 1• Para i = k-1, ..., 0 hacer

x = x2 mod n

Si (bi = 1) entonces

x = xA mod n

Ejemplo: calcule 1983 mod 918310 = 10100112 = b6b5b4b3b2b1b0x = 1

i=6 b6=1 x = 1219 mod 91 = 19 x = 19

i=5 b5=0 x = 192 mod 91 = 88 x = 88

i=4 b4=1 x = 882 19 mod 91 = 80 x = 80

i=3 b3=0 x = 802 mod 91 = 30 x = 30

i=2 b2=0 x = 302 mod 91 = 81 x = 81

i=1 b1=1 x = 812 19 mod 91 = 80 x = 80

i=0 b0=1 x = 802 19 mod 91 = 24 x = 24

= 24

1983 = 1,369458509879505101557376746718e+106 (calculadora Windows)

Algoritmo de exponenciación rápida

Page 19: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 19

© Jorge Ramió Aguirre Madrid (España) 2002

Taher ElGamal propone en 1985 un algoritmo de cifra que hace uso del Problema del Logaritmo Discreto PLD.

o Se elige un grupo multiplicativo Zp*, p es primo grande.

o Del grupo p se elige una raíz , generador del grupo.

o Cada usuario elige un número aleatorio dentro de p.

o Esta será la clave privada.

o Cada usuario calcula mod p.

o Junto con p es la clave pública.

Para descubrir la clave privadael atacante deberá enfrentarse

al Problema del LogaritmoDiscreto para un valor p alto.

Para descubrir la clave privadael atacante deberá enfrentarse

al Problema del LogaritmoDiscreto para un valor p alto.

Características

Algoritmo de cifra de ElGamal

Page 20: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 20

© Jorge Ramió Aguirre Madrid (España) 2002

El usuario B ha elegido su clave privada b dentro del cuerpo del número primo p que es público.

El usuario B ha hecho pública su clave b mod p.

El emisor A genera un número aleatorio de sesión y calcula mod p.

Con la clave pública de B (b) el emisor A calcula:

(b) mod p y M(b) mod p

A envía a B el par: C = [ mod p, M (b) mod p]

Operación Cifrado: A cifra un mensaje M que envía a B

Operación de cifra con ElGamal

Page 21: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 21

© Jorge Ramió Aguirre Madrid (España) 2002

El usuario B recibe C = [ mod p, M (b) mod p].

B toma el valor mod p y calcula ()b mod p.

B descifra el criptograma C haciendo la siguiente división: [M (b) mod p ] / [()b mod p] (b) = ()b

El paso anterior es posible hacerlo porque existirá el inverso de ()b en el grupo p al ser p un primo. Luego:

[M (b) {inv ()b, p}] mod p = M

Operación Descifrado: B descifra el criptograma C que envía A

Operación de descifrado con ElGamal

Page 22: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 22

© Jorge Ramió Aguirre Madrid (España) 2002

Adelaida (A) enviará a Benito (B) el mensaje M = 10 cifrado dentro del cuerpo p = 13 que usa Benito.

Claves públicas de Benito: p = 13, = 6, (b) mod p = 2

Adelaida A elige por ejemplo = 4 y calcula:

() mod p = 64 mod 13 = 9

(b)v mod p = 24 mod 13 = 3

M(b)v mod p = 103 mod 13 = 4

Envía a B () mod p, M(b)v mod p = [9, 4]

CIFRADO

Ejemplo de cifrado con ElGamal

Page 23: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 23

© Jorge Ramió Aguirre Madrid (España) 2002

DESCIFRADOLa clave privada de Benito es b = 5

Benito recibe: [() mod p, M(b)v mod p] = [9, 4]

Benito calcula:

()b mod p = 95 mod 13 = 3

[M(b)v] inv[()b, p] = 4 inv (3, 13) = 4 9

M = 4 9 mod 13 = 10 (se recupera el mensaje)

Recuerde que debe ser una raíz de p. Como ya hemos visto, si no es una raíz, aunque sí puede hacerse la cifra, se facilitará el ataque al Problema del Logaritmo Discreto.

Ejemplo de descifrado con ElGamal

Page 24: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 24

© Jorge Ramió Aguirre Madrid (España) 2002

Ejemplo

Si el mensaje M es mayor que el módulo de trabajo (n = pq para RSA y p para ElGamal)

¿cómo se generan los bloques del mensaje a cifrar?

El mensaje M se transforma en números y éstos se dividen en bloques de de g-1 dígitos, siendo g el número de dígitos del módulo de trabajo: el valor n para RSA y p para ElGamal.

Consideraciones sobre el bloque

Page 25: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 25

© Jorge Ramió Aguirre Madrid (España) 2002

Se representará el mensaje en su valor ANSI decimal.

n = pq = 89127 = 11.303 bloques de cuatro dígitos

(n) = 11.088; e = 25; d = inv (25, 11.088) = 10.201

M = Olé = 079 108 233 M = 0791 0823 3

M1 = 7.85310201 mod 11.303 = 0791

M2 = 2.46010201 mod 11.303 = 0823

M3 = 6.97010201 mod 11.303 = 3

DESCIFRADOCIFRADOC1 = 79125 mod 11.303 = 7.853

C2 = 82325 mod 11.303 = 2.460

C3 = 325 mod 11.303 = 6.970

Se recupera el mensaje agrupando en bloques de 4 dígitos excepto el último

Ejemplo de elección del bloque con RSA

Page 26: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 26

© Jorge Ramió Aguirre Madrid (España) 2002

Stephen Pohlig y Martin Hellman proponen en enero de 1978 (sólo un mes antes que el RSA) un algoritmo de cifra de clave

secreta que hace uso del problema del Logaritmo Discreto

Se elige un grupo multiplicativo Zp*, p es un primo grande.

Cada usuario elige una clave e, que sea primo relativo con el grupo (p) = p-1 y luego calcula d = inv (e, (p)].

La clave secreta serán los valores e y d.

Características

Algoritmo de cifra de Pohlig y Hellman (1)

Page 27: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 27

© Jorge Ramió Aguirre Madrid (España) 2002

Para romper la cifra, el atacante se enfrentará al Problema del Logaritmo Discreto PLD, que para un valor de p alto es

computacionalmente intratable. El algoritmo es anterior al RSA pero al ser de clave secreta, carece de firma digital. Además, no puede

competir en velocidad con los algoritmos típicos de clave secreta como DES, TDES, IDEA, RC2, CAST, etc.

Para romper la cifra, el atacante se enfrentará al Problema del Logaritmo Discreto PLD, que para un valor de p alto es

computacionalmente intratable. El algoritmo es anterior al RSA pero al ser de clave secreta, carece de firma digital. Además, no puede

competir en velocidad con los algoritmos típicos de clave secreta como DES, TDES, IDEA, RC2, CAST, etc.

CIFRADO

C = Me mod p

DESCIFRADO

M = Cd mod p

Ejemplo

Algoritmo de cifra de Pohlig y Hellman (2)

Page 28: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 28

© Jorge Ramió Aguirre Madrid (España) 2002

C = Me mod p = 6515 mod 263; 10015 mod 263;

10515 mod 263; 24315 mod 263; 11515 mod 263

C = 245; 143; 179; 86; 101

A cifra un mensaje M que envía a B

p = 263 (p) = 262; e = 15 d = inv(15,262) = 35

Sea M = Adiós = 65 100 105 243 115

Como se usa el código ANSI, podremos cifrar en bloques de un carácter pues el módulo p es algo mayor que 256.

Operación Cifrado:

Operación de cifra Pohlig y Hellman

Page 29: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 29

© Jorge Ramió Aguirre Madrid (España) 2002

M = Cd mod p = 24535 mod 263; 14335 mod 263;

17935 mod 263; 8635 mod 263; 10135 mod 263

M = 065; 100; 105; 243; 115

Convirtiéndolo al código ANSI: M = Adiós

B descifra el criptograma C enviado por A

p = 263; d = inv(15,262) = 35

C = 245; 143; 179; 86; 101

Operación Descifrado:

Operación de descifrado Pohlig y Hellman

Page 30: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 30

© Jorge Ramió Aguirre Madrid (España) 2002

El problema de la Factorización de Números Grandes PFNG tiene una complejidad similar al del Logaritmo Discreto PLD: ambos suponen un tiempo de ejecución no polinomial.

Número de pasos que debe realizar el algoritmo PFNG:

e{ln(n)ln[ln(n)]}

n = 60 dígitos 2,71011 pasos

n = 100 dígitos 2,31015 pasos

n = 200 dígitos 1,21023 pasos

Sistema que consuma 1 seg por paso:

3 días

74 años

3,8109 años

El PLD es equivalente: número de pasos e{ln(p)ln[ln(p)]}

Fortaleza de la cifra exponencial

Page 31: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 31

© Jorge Ramió Aguirre Madrid (España) 2002

Los valores primos deben elegirse apropiadamente:

Sistema RSA

a) p y q deben diferir en unos pocos dígitos.

b) p y q no deben ser primos muy cercanos.

c) Longitud mínima de p y q: 250 bits.

d) Valores de (p-1) y (q-1) del Indicador de Euler deben tener factores primos grandes.

e) El mcd entre p-1 y q-1 debe ser pequeño.

¿Cómo?

Para el sistema de ElGamal basta elegir un primo muy grande

Elección de los números primos

Page 32: Tema 12 Cifrado Exponencial Curso de Seguridad Informática Material Docente de Libre Distribución Curso de Seguridad Informática © Jorge Ramió Aguirre.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 32

© Jorge Ramió Aguirre Madrid (España) 2002

Primos seguros: se elige r un primo grande de modo que:

p = 2r + 1 y q = 2p + 1 también sean primos

EJEMPLO: Si r es el primo de 4 dígitos 1.019:

p = 21.019 + 1 = 2.039 Es primo q = 22.039 + 1 = 4.079 Es primo p-1 = 2.038; q-1 = 4.078

p-1 = 21.019; q-1 = 22.039 mcd (p, q) = 2

El módulo será n = pq = 8.317.081

Números primos seguros

Fin del Tema 12

Cumplen la condición