Tema 3. Sistemas criptograficos de clave asimetrica.pdf

41
Tema 3. Sistemas criptográficos de clave asimétrica Seguridad en Redes

Transcript of Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Page 1: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Tema 3.

Sistemas criptográficos de clave

asimétrica

Seguridad en Redes

Page 2: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Principios

Cada usuario utiliza una pareja de claves, una pública y otra privada.

Si se cifra con una sólo se puede descifrar con la otra.

Hay un algoritmo de cifrado y otro de descifrado.

Seguridad: debe ser inviable averiguar la clave privada conociendo el algoritmo de cifrado y descifrado, la clave pública y criptogramas.

2

Page 3: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Principios

Se puede ofrecer servicios de:

Confidencialidad: cifra con clave pública del receptor.

Autenticación: cifra con privada de emisor.

En ambos casos el receptor descifra con la clave asociada a la de cifrado.

Se puede aplicar ambos servicios: se cifra primero con la clave pública del receptor y el resultado con la privada del emisor.

Veremos en otros temas formas más eficientes de ofrecer los dos servicios.

Categorías de uso de criptosistemas de clave publica y algoritmos:

Cifrado/descifrado: servicio de confidencialidad (RSA)

Firma digital: servicio de autenticación (RSA, DSS)

Intercambio de clave: clave de sesión entre dos comunicantes (Diffie-Hellman)

3

Page 4: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Requisitos de un sistema clave pública

Diffie y Hellman postularon los requisitos que debía cumplir sin proponer un algoritmo:

Computacionalmente fácil de generar un par de claves pública y privada.

Computacionalmente fácil para el emisor generar el texto cifrado a partir del texto en claro y la

clave pública del receptor.

Computacionalmente fácil para el receptor de recuperar el texto en claro a partir del texto cifrado

y la clave privada.

Computacionalmente difícil para un oponente determinar la clave privada a partir de la

pública.

Computacionalmente difícil para un oponente recuperar el texto en claro a partir de la clave

pública y el texto cifrado.

Podemos añadir un nuevo requerimiento válido para algunas aplicaciones:

La función de cifrado y descifrado pueden ser aplicadas en cualquier orden.

Se utilizan funciones trampa o de un solo sentido:

Es fácil calcular la función.

Es difícil calcular la inversa de la función, a no ser que se conozca un dato denominado clave.

4

Page 5: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Criptoanálisis

Tres posibles métodos:

Fuerza bruta sobre la clave:

Probar con todas las posibles claves.

Se puede evitar haciendo la clave suficientemente larga.

Cálculo de clave privada:

Calcular la clave privada a partir de la pública.

Hasta la fecha no se ha demostrado que no se pueda hacer.

Todos los algoritmos actuales son sospechosos, incluso RSA.

Fuerza bruta sobre el mensaje:

Aplicable a mensajes cortos confidenciales (pe. una clave DES de 56 bits).

Se puede averiguar el mensaje en claro cifrando con la clave pública todos las

posibles valores del mensaje y comparando con el texto cifrado.

En este caso la longitud de la clave pública de cifrado no hace más seguro el

sistema.

5

Page 6: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Algoritmo RSA. Procedimiento.

Desarrollado por Ron Rivest, Adi Shamir y Len Adleman en el MIT 1977.

Consiste en un cifrador de bloque en el que el texto en claro y cifrado se

consideran un entero entre 0 y n-1 (longitud de bloque log2(n) bits).

Procedimiento:

Siendo M el bloque en claro, el bloque cifrado es: C = Me mod n

Para recuperar el bloque en claro se hace: M = Cd mod n = Med mod n

El emisor conoce la clave pública: {n, e}

El receptor conoce la clave privada: {n, d}

6

Page 7: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Algoritmo RSA. Requisitos.

Debe cumplir los siguientes requisitos:

Es posible encontrar e, d y n tal que Med = M mod n para todo M <

n.

Es relativamente fácil calcular Me y Cd para todo M < n.

Es imposible determinar d dados e y n.

7

Page 8: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Algoritmo RSA. Ejemplo.

Clave privada {77, 119}; clave pública {5, 119}, M = 19.

Ciframos M: C = 195 mod 119 = 66

Recuperamos M: M = 6677 mod 119 = 19

8

Page 9: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

RSA: Base Teórica

Corolario del teorema de Euler: dados dos números primos p y q y dos números enteros n y m de forma que n = pq y 0 < m < n, y dado un valor arbitrario k:

mk(n)+1 = mk(p-1)(q-1)+1 m mod n

(n) es la función de Euler: número de enteros positivos menores que n y relativamente primos a n, es decir (mcd(entero,n)=1.

Podemos obtener la relación deseada si ed = k(n)+1 que equivale a:

ed 1 mod (n)

d e-1 mod (n)

e y d son inversas multiplicativas, ambos valores son por lo tanto relativamente primos con (n): mcd((n), d)=1; mcd((n), e)=1

9

Page 10: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

RSA: Obtención de la clave

Esquema de generación de clave:

Seleccionar los primos p y q (secreto): p= 7, q = 17.

Calcular n = pq (público): n = 7*17 = 119

Calcular (n) = (p-1)(q-1) (privado): (n) = 6*16 = 96

Seleccionar e tal que mcd((n), e)=1, 1 < e < (n) (público): e = 5

Calcular d tal que de = 1 mod (n) y d < (n) (privado): d = 77

10

Page 11: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Consideraciones computacionales

Cifrado/descifrado:

Para las exponenciaciones aplicar el algoritmo de exponenciación rápida realizando los producto con aritmética modular.

11

Page 12: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Consideraciones computacionales

Generación de clave:

Buscar dos números primos grandes (puede ser un trabajo costoso):

Procedimiento habitual que determinar si un número aleatorio es primos:

Buscar número aleatorio impar n.

Buscar un entero aleatorio a < n.

Aplicar un test de primalidad como Miller-Rabin. Si n falla el test rechazarlo.

Si n pasa el test con un número suficiente de valores aleatorios a, se acepta como primo. Si no, hay que buscar otro valor de n.

El procedimiento puede llegar a ser largo cuando n es grande (los primos cerca de N están espaciados una media de logN).

Seleccionar e o d y calcular el otro:

Buscar un números aleatorio (e) relativamente primo con (n). La probabilidad de que un número aleatorio sea relativamente primo con (n) es 0.6. Probamos que mcd((n), e)=1.

Calculamos d a partir de e con el cálculo de la inversa: d = e -1 mod (n).

El algoritmo extendido de Euclides realiza ambas operaciones.

12

Page 13: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Seguridad de RSA

Tipos de ataque a RSA:

Fuerza bruta: se soluciona haciendo claves más largas aunque en ese caso el cifrado/descifrado es más

lento.

Ataque matemático: tres aproximaciones

Factorizar n en sus dos factores primos: conocidos p y q se calcula (n) y d.

Determinar (n) directamente a partir de n: ¿Cuántos residuos tiene n?

Determinar d directamente a partir de e y n: logaritmos discretos.

Ataque de temporización:

Se basa en la observación de distintos tiempos de ejecución para determinados valores aplicados a

operaciones de los algoritmos (exponenciación rápida).

Sabiendo el tiempo de ejecución se puede intuir el valor.

Se puede evitar este ataque con varios tipos de medidas:

Forzar al algoritmo a dar resultados en un tiempo constante. Pierde rendimiento.

Dar un retardo aleatorio al algoritmo para confundir al atacante.

Blindar el valor a proteger (texto cifrado) multiplicándolo por un número aleatorio R antes de pasarlo por el

algoritmo. El receptor multiplica por la inversa R-1 mod A. Utilizado por RSA.

13

Page 14: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Gestión de claves

Dos aspectos:

Técnicas de distribución de clave pública

Anuncio público de clave pública

Autoridad de certificación

Distribución de clave secreta mediante clave pública

Esquema sencillo

Con confidencialidad y autenticación

Esquema híbrido

14

Page 15: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Anuncio público de clave pública

Si se dispone de un algoritmo de clave pública como RSA, se puede difundir la

clave pública de un usuario a un gran número de participantes.

Por ejemplo, los usuarios de PGP difunden su clave pública en mensajes que

envían a foros públicos (grupos de noticias de USENET y listas de distribución de

correo de Internet).

Plantea el inconveniente de que alguien puede falsificar un anuncio público

haciéndose pasar por otro usuario.

15

Page 16: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Autoridad de Certificación

Un certificado contiene la clave pública de un usuario y otra

información como tiempo de expiración e identidad del usuario.

El certificado es generado y gestionado por una autoridad de

certificación.

El certificado está cifrado con la clave privada de la autoridad de

certificación, por lo tanto tenemos garantías de su autenticidad e

integridad.

Requisitos de este esquema:

El certificado es público.

Cualquiera puede comprobar que el certificado es autentico.

Sólo la autoridad de certificación puede generar y actualizar certificados.

Cualquier participante puede verificar la validez del certificado: dentro de fecha

de validez (se comprueba su tiempo de validez).

16

Page 17: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Certificados

Documento que contiene la clave pública de un interlocutor

Formato: nombre del sujeto, emisor del certificado, periodo de validez, clave pública del sujeto, uso (firma, cifrado de claves…)…Firma de la autoridad.

Tipos: identidad, rol, atributo…

Esquemas: X.509, SPKI…

Los certificados se pueden revocar.

Se mantiene una Lista de Revocación de Certificados: CRL.

Verificar si un certificado está en la CRL antes de usar su clave pública.

OCSP: propuesta alternativa de CRL, con consulta on-line especifica sobre un certificado concreto (no de la lista completa).

17

Page 18: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Infraestructura PKI

Una infraestructura PKI tiene: Autoridad de certificación: genera los certificados Autoridad de registro: identificación y registro previo a la emisión

del certificado Autoridades de repositorio, almacenamiento y recuperación de

certificados y CRL. Autoridades de generación y distribución de CRLs.

Además puede tener: Autoridades de sellado de tiempo. Autoridades de atributos. Terceras partes de confianza para provisión de servicios como no

repudio o anonimato.

Modelo de confianza: Los usuarios deben decidir si confían en una autoridad de

certificación.

18

Page 19: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Arquitecturas de CAs19

Árbol jerárquico Puro Autoridades de orden superior que certifican otras de orden inferior.

Certificación mutua en la entre CAs root

Sólo certificados directos

CAROOT

CA CA

CA CA CA CA

CAROOT

CA CA

CA CA CA CA

Page 20: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Árbol jerárquico Puede haber atajos y CAs con varios padres

20

Arquitecturas de CAs

CAROOT

CA CA

CA CA CA CA

CAROOT

CA CA

CA CA CA CA

Page 21: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

CAROOT

CA CA

CA CA CA CA

CAROOT

CA CA

CA CA CA CA

CAROOT

CA CA

CA CA CA CA

CA Puente

Arquitecturas de CAs

Arquitecturas Jerárquicas conectadas mediante un puente

21

Page 22: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Intercámbio de clave Diffie-Hellman

Permite a dos usuarios intercambiar una clave segura.

Se basa en la dificultad de calcular logaritmos discretos:

Si a es raíz primitiva de un número primo p: ai mod p; 1 i p-1

son distintos y generan los números desde 1 hasta p-1.

Para un entero b y una raiz primitiva a de un primo p, se puede

encontrar el exponente i que cumpla: b = ai mod p;

i es el logaritmo discreto (o índice) de b para la base a mod p: i =

inda,p(b)

22

Page 23: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Intercámbio de clave Diffie-Hellman

Procedimiento para intercambio de clave entre A y B:

Valores públicos conocidos por A y B: número primo p grande

número a < p y raíz primitiva de p.

A selecciona XA < p y calcula y envía a B YA (público):

B selecciona XB < p y calcula y envía a A YB (público):

A calcula la clave:

B calcula la clave:

paY AX

A mod

paY BX

B mod

pYK AX

B mod)(

pYK BX

A mod)(

BA

a,p, YAXA

XBYB

K K

23

Page 24: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

24

Intercámbio de clave Diffie-Hellman

Criptanálisis:

El oponente conoce: p, a, YA, YB.

Para calcular la clave K debe calcular previamente xB = inda,p(YB) o xA = inda,p(YA) y este

es un problema difícil si p es grande (logaritmos discretos).

Puede sufrir un ataque del intermediario:

Un atacante se pone en medio de A y B.

Se hace pasar por B ante A: intercambia una clave Kac.

Se hace pasar por A ante B: intercambia una clave Kbc.

A BC

AB

Kac Kbc

Page 25: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Distribución de clave secreta compartidas

Una vez distribuida de forma segura la clave pública, puede ser utilizada para

ofrecer confidencialidad y autenticación.

Su uso con grandes volúmenes de datos plantea el problema de la lentitud de sus

algoritmos con respecto a los de clave simétrica.

Por este motivo se suele utilizar como medio de distribución de claves secretas de

forma segura.

Ejemplo:

25

A B

IDa, Kpua

Kpua[Ks]Ks

Ks[M]

Puede sufrir el ataque del intermediario: un intruso E puede meterse en medio de A y B y

hacer creer a B que es A enviándole su clave pública [IDa, Kpue]

Page 26: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

26

Otros algoritmos

ECC (Elliptic Curve Criptography)

Algoritmos basados ecuaciones cúbicas de curvas elípticas.

Ofrece igual seguridad con clave de menor longitud y menor carga.

Estandarización: IEEE P1363

http://www.deviceforge.com/articles/AT4234154468.html

ECC vs RSA:

ECC clave más corta.

¿Es más Rápido?

Page 27: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

ECC vs RSA

Tamaño de la clave

RSA ECC

1024 bits ≡ 160 bits

1536 bits ≡ 192 bits

2048 bits ≡ 224 bits

3020 bits ≡ 256 bits

7680 bits ≡ 384 bits

15380 bits ≡ 521 bits

Procesamiento

27

Page 28: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Curvas elípticas del tipo: y2 + axy + by = x3 + cx2 + dx + e

Las curvas elípticas, al igual que otros problemas (e.g. DH)

de clave pública se definen sobre un Grupo Abeliano

{G,●}.

● es un operador binario que opera con elementos: a,b є G

Propiedades:

Grupo cerrado: Si a,b є G; a●b є G

Asociativa: (a●b) ●c = a●(b ●c) para todo a,b,c є G

Conmutativa: (a●b) = (b●a) para todo a,b є G

Elemento identidad: hay un e є G tal que a●e= e●a=a

Elemento inverso: por cada a є G, hay un a’ є G tal que a●a’= a’●a=e

Curvas Elípticas28

Page 29: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

29

ECC sobre números reales

Limitamos la curva a la familia: y2 = x3 + ax + b

E(a,b) expresa una determinada curva para unos valores de a y b.

Ejemplo: E(1,1); y2 = x3 + x + 1

Propiedades:

Simétricas respecto a Y=0

Tienen un punto singular O llamado punto cero o punto en el infinito

E(a,b) debe cumplir 4a3+27b2 ≠ 0 para que x3 + ax + b no tenga factores repetidos.

Se define el operador adición con las siguientes reglas para que la curva sea un Grupo Abeliano (P, Q, T y S son puntos de la curva):

P+O = P, O es el elemento identidad

El negativo de P = (x,y) es –P = (x,-y); P+(-P)=O

P, Q y T son los tres puntos de intersección de una recta con la curva:

P + Q + T = O; P + Q = -T.

Recta vertical que intersecciona con ECC en el punto P:

P + (-P) = O.

S es la intersección con la recta tangente en Q con la curva:

Q + Q = 2Q = S

Page 30: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

http://www.cryptomathic.com/labs/ellipticcurvedemo.html

T

-T

30

Page 31: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Ejemplo E(5,3)

y^2=x^3-5x+3

y=x+2

-8 -6 -4 -2 2 4 6 8

-5

5

x

y

31

Page 32: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Cifrado

En el cifrado se utiliza la operación básica: kP

K constante

P punto de la curva

Se realiza repitiendo las operaciones básicas:

P+Q

2P; caso particular en el que P=Q.

Ejemplo: 11P = 2(2(2P))+2P+P

32

Page 33: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

ECC: descripción algebraica de la adición

Dada la curva E(a,b)

Dos puntos de la curva P (xP,yP) y Q (xQ,yQ)

Pendiente de la recta que pasa por P y Q:

∆ = (yQ-yP)/(xQ-xP)

Si llamamos R = P+Q (-R es el tercer punto de intersección T)

xR= ∆2-xP-xQ

yR= ∆(xP-xR)- yP

Si P = Q; P + P = 2P = R, Con yP ≠ 0.

xR= [(3xP2+a)/2yP]2-2xP

yR= [(3xP2+a)/2yP] (xP-xR) - yP

33

Page 34: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

ECC sobre Zp: curvas primas

Más apropiado para hacer implementaciones software

y2 mod p = (x3 + ax + b) mod p

Ep(a,b) debe cumplir (4a3+27b2) mod p ≠ 0 mod p; Grupo Abeliano

Hay un conjunto finito de puntos (x, y) que satisface la ecuación de la curva. Donde x, y < p.

La suma de dos puntos da otro punto del conjunto finito.

P+ O = P

Dado P(xP, yP), existe inverso –P (xP, -yP). P- P = O.

Cálculo de la suma:

xR= (∆ 2-xP-xQ) mod p

yR= (∆(xP-xR)- yP) mod p

Si P ≠ Q; ∆ = ((yQ-yP)/(xQ-xP) )mod p

Si P = Q; ∆ = ((3xP2+a)/2yP) mod p

La multiplicación se define como una repetición de adiciones:

kP = P + P + P + P+…+P, k veces

34

Page 35: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Puntos en un campo finito Si sumamos dos puntos, obtendremos otro punto de la curva.

Interés en puntos x e y con valores comprendidos entre 0 y p-1.

Otros puntos tienen su equivalente en estos puntos.

Puntos de la curva E23(1,1): y2 mod 23 = (x3 + x + 1) mod 23

0, 1 6,4 12,19

0, 22 6,19 13,7

1, 7 7,11 13,16

1, 16 7,12 17,3

3, 10 9,7 17,20

3, 13 9,16 18,3

4, 0 11,3 18,20

5, 4 11,20 19,5

5, 19 12,4 19,18

35

Page 36: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Seguridad de ECC

Debe haber un número grande de puntos.

N es el número de puntos en Ep(a,b): p+1-2p1/2 ≤ N ≤ p+1+2p1/2

Si p es grande, N es aproximadamente el número de elementos en Zp (N ≈ p).

36

Page 37: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Criptografía con ECC

Operaciones de tipo: P = k Q mod p Puntos de la curva: P y Q є Ep(a, b)

Constante: k < p

Calcular P conocidos k y Q es fácil.

Calcular k = P/Q mod p ó Q = P/k mod p, con k suficientemente grande es difícil.

37

Page 38: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

A: PA = nAG; G público, nA secreto B: PB = nBG; nB secreto

K = PAnB = PBnA = nAnBG

AnA

B

nB

G, PA

PB

ECC Diffie Hellman38

Page 39: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Cifrado/descifrado con ECC

Dada la curva elíptica Ep(a,b) y un punto de la misma G Clave privada de A/B: nA/ nB

Clave pública de A/B: PA= nAG/ PB= nBG A cifra Pm con la clave pública de B:

Genera k Calcula el criptograma Cm = {L, M}

L = kG M = Pm + kPB

B descifra: M - nBL Desarrollando: Pm + kPB - nB(kG) = Pm + knBG - nB(kG) = Pm

A nA

BnB

Cm = (L,M)

39

Page 40: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

Tamaño de clave

Tamaño recomendado de clave 160, con seguridad equivalente a una clave simétrica de 80 bits a una de RSA de 1024 bits.

NIST ha publicado una lista de curvas elípticas recomendadas de 5 tamaños distintos de claves: 80, 112, 128, 192, 256.

Desafío de Certicom (año 2003): Objetivo: romper una clave ECC de 109 bits con un ataque

masivo en paralelo basado en el ataque del cumpleaños

Recursos: más de 10000 PC's de tipo Pentium

Tiempo: funcionamiento continuo durante 540 días.

Si la clave es de 163 bits (valor recomendado), se estima una cantidad de recursos necesaria 108 veces mayor que los utilizados en éste desafio.

40

Page 41: Tema 3. Sistemas criptograficos de clave asimetrica.pdf

La criptografía asimétrica ofrece: confidencialidad,

autenticación, no repudio, intercambio de secretos

Más lenta que la simétrica

Claves más largas que en la simétrica

Necesidad de distribuir claves públicas de forma

confiable

Los algoritmos ECC: mejor procesamiento y claves

de tamaño más reducido

Conclusiones41