Vous êtes sur la page 1sur 41

Seguridad en Redes

Tema 3.
Sistemas criptogrficos de clave
asimtrica

Principios
2

Cada usuario utiliza una pareja de claves, una pblica y otra privada.
Si se cifra con una slo 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 pblica y
criptogramas.

Principios
3

Se puede ofrecer servicios de:

Confidencialidad: cifra con clave pblica del receptor.


Autenticacin: 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
pblica del receptor y el resultado con la privada del emisor.
Veremos en otros temas formas ms eficientes de ofrecer los dos
servicios.
Categoras de uso de criptosistemas de clave publica y algoritmos:

Cifrado/descifrado: servicio de confidencialidad (RSA)


Firma digital: servicio de autenticacin (RSA, DSS)
Intercambio de clave: clave de sesin entre dos comunicantes (Diffie-Hellman)

Requisitos de un sistema clave pblica


4

Diffie y Hellman postularon los requisitos que deba cumplir sin proponer un algoritmo:

Computacionalmente fcil de generar un par de claves pblica y privada.

Computacionalmente fcil para el emisor generar el texto cifrado a partir del texto en claro y la
clave pblica del receptor.

Computacionalmente fcil para el receptor de recuperar el texto en claro a partir del texto cifrado
y la clave privada.

Computacionalmente difcil para un oponente determinar la clave privada a partir de la


pblica.

Computacionalmente difcil para un oponente recuperar el texto en claro a partir de la clave


pblica y el texto cifrado.

Podemos aadir un nuevo requerimiento vlido para algunas aplicaciones:

La funcin de cifrado y descifrado pueden ser aplicadas en cualquier orden.

Se utilizan funciones trampa o de un solo sentido:

Es fcil calcular la funcin.

Es difcil calcular la inversa de la funcin, a no ser que se conozca un dato denominado clave.

Criptoanlisis
5

Tres posibles mtodos:

Fuerza bruta sobre la clave:


Probar con todas las posibles claves.
Se puede evitar haciendo la clave suficientemente larga.

Clculo de clave privada:


Calcular la clave privada a partir de la pblica.
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 pblica todos las
posibles valores del mensaje y comparando con el texto cifrado.
En este caso la longitud de la clave pblica de cifrado no hace ms seguro el
sistema.

Algoritmo RSA. Procedimiento.


6

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 pblica: {n, e}
El receptor conoce la clave privada: {n, d}

Algoritmo RSA. Requisitos.


7

Debe cumplir los siguientes requisitos:

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


n.
Es relativamente fcil calcular Me y Cd para todo M < n.
Es imposible determinar d dados e y n.

Algoritmo RSA. Ejemplo.


8

Clave privada {77, 119}; clave pblica {5, 119}, M = 19.


Ciframos M: C = 195 mod 119 = 66
Recuperamos M: M = 6677 mod 119 = 19

RSA: Base Terica


9

Corolario del teorema de Euler: dados dos nmeros primos p y q y


dos nmeros 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 funcin de Euler: nmero de enteros positivos menores
que n y relativamente primos a n, es decir (mcd(entero,n)=1.
Podemos obtener la relacin 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

RSA: Obtencin de la clave


10

Esquema de generacin de clave:


Seleccionar los primos p y q (secreto): p= 7, q = 17.
Calcular n = pq (pblico): 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) (pblico): e = 5
Calcular d tal que de = 1 mod (n) y d < (n) (privado): d = 77

Consideraciones computacionales
11

Cifrado/descifrado:

Para las exponenciaciones aplicar el algoritmo de exponenciacin rpida


realizando los producto con aritmtica modular.

Consideraciones computacionales
12

Generacin de clave:

Buscar dos nmeros primos grandes (puede ser un trabajo costoso):


Procedimiento habitual que determinar si un nmero aleatorio es primos:

El procedimiento puede llegar a ser largo cuando n es grande (los primos cerca de N
estn espaciados una media de logN).
Seleccionar e o d y calcular el otro:
Buscar un nmeros aleatorio (e) relativamente primo con (n). La probabilidad
de que un nmero aleatorio sea relativamente primo con (n) es 0.6. Probamos que
mcd((n), e)=1.
Calculamos d a partir de e con el clculo de la inversa: d = e -1 mod (n).
El algoritmo extendido de Euclides realiza ambas operaciones.

Buscar nmero 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 nmero suficiente de valores aleatorios a, se acepta como primo.
Si no, hay que buscar otro valor de n.

Seguridad de RSA
13

Tipos de ataque a RSA:

Fuerza bruta: se soluciona haciendo claves ms largas aunque en ese caso el cifrado/descifrado es ms
lento.

Ataque matemtico: 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: Cuntos residuos tiene n?

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

Ataque de temporizacin:

Se basa en la observacin de distintos tiempos de ejecucin para determinados valores aplicados a


operaciones de los algoritmos (exponenciacin rpida).

Sabiendo el tiempo de ejecucin 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) multiplicndolo por un nmero aleatorio R antes de pasarlo por el
algoritmo. El receptor multiplica por la inversa R-1 mod A. Utilizado por RSA.

Gestin de claves
14

Dos aspectos:
Tcnicas

de distribucin de clave pblica

Anuncio

pblico de clave pblica


Autoridad de certificacin
Distribucin
Esquema

de clave secreta mediante clave pblica

sencillo
Con confidencialidad y autenticacin
Esquema hbrido

Anuncio pblico de clave pblica


15

Si se dispone de un algoritmo de clave pblica como RSA, se puede difundir la


clave pblica de un usuario a un gran nmero de participantes.

Por ejemplo, los usuarios de PGP difunden su clave pblica en mensajes que
envan a foros pblicos (grupos de noticias de USENET y listas de distribucin de
correo de Internet).

Plantea el inconveniente de que alguien puede falsificar un anuncio pblico


hacindose pasar por otro usuario.

Autoridad de Certificacin
16

Un certificado contiene la clave pblica de un usuario y otra


informacin como tiempo de expiracin e identidad del usuario.
El certificado es generado y gestionado por una autoridad de
certificacin.
El certificado est cifrado con la clave privada de la autoridad de
certificacin, por lo tanto tenemos garantas de su autenticidad e
integridad.
Requisitos de este esquema:

El certificado es pblico.
Cualquiera puede comprobar que el certificado es autentico.
Slo la autoridad de certificacin puede generar y actualizar certificados.
Cualquier participante puede verificar la validez del certificado: dentro de fecha
de validez (se comprueba su tiempo de validez).

Certificados
17

Documento que contiene la clave pblica de un interlocutor


Formato: nombre del sujeto, emisor del certificado, periodo

de validez, clave pblica 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 Revocacin de Certificados: CRL.
Verificar si un certificado est en la CRL antes de usar su
clave pblica.
OCSP: propuesta alternativa de CRL, con consulta on-line
especifica sobre un certificado concreto (no de la lista
completa).

Infraestructura PKI
18

Una infraestructura PKI tiene:

Autoridad de certificacin: genera los certificados


Autoridad de registro: identificacin y registro previo a la emisin
del certificado
Autoridades de repositorio, almacenamiento y recuperacin de
certificados y CRL.
Autoridades de generacin y distribucin de CRLs.

Adems puede tener:

Autoridades de sellado de tiempo.


Autoridades de atributos.
Terceras partes de confianza para provisin de servicios como no
repudio o anonimato.

Modelo de confianza:

Los usuarios deben decidir si confan en una autoridad de


certificacin.

19

Arquitecturas de CAs
rbol jerrquico Puro

Autoridades de orden superior que certifican otras de orden inferior.


Certificacin mutua en la entre CAs root
Slo certificados directos

CAROOT

CA

CA

CAROOT

CA

CA
CA

CA

CA

CA

CA
CA

CA

CA

Arquitecturas de CAs
20

rbol jerrquico

Puede haber atajos y CAs con varios padres

CAROOT

CA

CA

CAROOT

CA

CA
CA

CA

CA

CA

CA
CA

CA

CA

Arquitecturas de CAs
21

Arquitecturas Jerrquicas conectadas mediante un puente


CA Puente

CAROOT
CA
CA

CA

CAROOT

CA

CA

CA

CAROOT

CA

CA
CA
CA

CA

CA
CA

CA

CA

CA

CA

CA

Intercmbio de clave Diffie-Hellman


22

Permite a dos usuarios intercambiar una clave segura.


Se basa en la dificultad de calcular logaritmos

discretos:

Si a es raz primitiva de un nmero primo p: ai mod p; 1 i p-1


son distintos y generan los nmeros 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)

Intercmbio de clave Diffie-Hellman


23

Procedimiento para intercambio de clave entre A y B:


Valores pblicos conocidos por A y B:

nmero primo p grande


nmero a < p y raz primitiva de p.

A selecciona XA < p y calcula y enva a B YA (pblico):YA a X mod p


X
Y

a
mod p
B selecciona XB < p y calcula y enva a A YB (pblico): B
A calcula la clave: K (YB ) X mod p
X
B calcula la clave: K (YA ) mod p

XA

a,p, YA
YB

A
K

XB
B
K

Intercmbio de clave Diffie-Hellman


24

Criptanlisis:

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 difcil 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.


B
A

Kac

A
C

Kbc

Distribucin de clave secreta compartidas


25

Una vez distribuida de forma segura la clave pblica, puede ser utilizada para
ofrecer confidencialidad y autenticacin.

Su uso con grandes volmenes de datos plantea el problema de la lentitud de sus


algoritmos con respecto a los de clave simtrica.

Por este motivo se suele utilizar como medio de distribucin de claves secretas de
forma segura.

Ejemplo:
IDa, Kpua
Kpua[Ks]
A

Ks[M]

Ks

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 envindole su clave pblica [IDa, Kpue]

Otros algoritmos

26

ECC (Elliptic Curve Criptography)

Algoritmos basados ecuaciones cbicas de curvas elpticas.

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

Estandarizacin: IEEE P1363

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

ECC vs RSA:

ECC clave ms corta.

Es ms Rpido?

ECC vs RSA
Procesamiento

Tamao 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

27

Curvas Elpticas
28

Curvas elpticas

del tipo: y2 + axy + by = x3 + cx2 + dx + e


Las curvas elpticas, al igual que otros problemas (e.g. DH)
de clave pblica 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; ab G


Asociativa: (ab) c = a(b c) para todo a,b,c G
Conmutativa: (ab) = (ba) para todo a,b G
Elemento identidad: hay un e G tal que ae= ea=a
Elemento inverso: por cada a G, hay un a G tal que aa= aa=e

ECC sobre nmeros reales


29

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:

Simtricas 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 adicin 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 interseccin de una recta con la curva:

Recta vertical que intersecciona con ECC en el punto P:

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

P + (-P) = O.

S es la interseccin con la recta tangente en Q con la curva:

Q + Q = 2Q = S

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

-T

Ejemplo E(5,3)
31

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

x
-8

-6

-4

-2

-5

Cifrado
32

En el cifrado se utiliza la operacin bsica: kP

K constante
P punto de la curva

Se realiza repitiendo las operaciones bsicas:

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

Ejemplo:

11P = 2(2(2P))+2P+P

ECC: descripcin algebraica de la adicin


33

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:

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

= (yQ-yP)/(xQ-xP)
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

ECC sobre Zp: curvas primas


34

Ms 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 ecuacin 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.
Clculo 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 multiplicacin se define como una repeticin de adiciones:
kP = P + P + P + P++P, k veces

Puntos en un campo finito


35

Si sumamos dos puntos, obtendremos otro punto de la curva.

Inters 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

Seguridad de ECC
36

Debe haber un nmero grande de puntos.


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

Si p es grande, N es aproximadamente el nmero de

elementos en Zp (N p).

Criptografa con ECC


37

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 fcil.


Calcular k = P/Q mod p Q = P/k mod p, con k

suficientemente grande es difcil.

ECC Diffie Hellman


38

A:

PA = nAG; G pblico, nA secreto


B: PB = nBG; nB secreto

A
n

G, PA

PB

K = PAnB = PBnA = nAnBG

B
n

Cifrado/descifrado con ECC


39

Dada la curva elptica Ep(a,b) y un punto de la misma G

Clave privada de A/B: nA/ nB


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

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

A
n

L = kG
M = Pm + kPB

Cm = (L,M)

B
n

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

Tamao de clave
40

Tamao recomendado de clave 160, con seguridad

equivalente a una clave simtrica de 80 bits a una de RSA


de 1024 bits.
NIST ha publicado una lista de curvas elpticas
recomendadas de 5 tamaos distintos de claves: 80, 112,
128, 192, 256.
Desafo de Certicom (ao 2003):
Objetivo: romper una clave ECC de 109 bits con un ataque
masivo en paralelo basado en el ataque del cumpleaos
Recursos: ms de 10000 PC's de tipo Pentium
Tiempo: funcionamiento continuo durante 540 das.
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.

Conclusiones
41

La criptografa asimtrica ofrece: confidencialidad,

autenticacin, no repudio, intercambio de secretos


Ms lenta que la simtrica
Claves ms largas que en la simtrica
Necesidad de distribuir claves pblicas de forma
confiable
Los algoritmos ECC: mejor procesamiento y claves
de tamao ms reducido

Vous aimerez peut-être aussi