Eduardo ruiz seguridad y redes

40
Geometr´ ıa algebraica aplicada a la seguridad en telecomunicaciones Eduardo Ruiz Duarte Facultad de Ciencias UNAM Agosto 12, 2010 Eduardo Ruiz Duarte Una introducci´ on a la criptograf´ ıa con curvas

Transcript of Eduardo ruiz seguridad y redes

Page 1: Eduardo ruiz seguridad y redes

Geometrıa algebraica aplicada a la seguridad entelecomunicaciones

Eduardo Ruiz Duarte

Facultad de Ciencias UNAM

Agosto 12, 2010

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 2: Eduardo ruiz seguridad y redes

Agenda

Intro: Criptografıa en telecomm

Conceptos basicos de algebra abstracta

Problema de logaritmo discreto en Zp!

Aplicaciones del PLD en Zp!

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Conclusiones

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 3: Eduardo ruiz seguridad y redes

Introduccion

En las telecomunicaciones hay dos tipos de cifrado muyimportantes

Simetrico: Utiliza la misma llave para cifrar y descifrarDk(Ek(x)) = x

Asimetrico: Utiliza una llave para cifrar y otra para descifrarDs(Ep(x)) = x

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 4: Eduardo ruiz seguridad y redes

Introduccion

Simetricos El simetrico generalmente se usa para cifrar flujos deinformacion, y estos suelen ser muy rapidos.Este tiene una desventaja, requiere una negociacion previa de unallave, Y si las entidades estan separadas, esta llave se tendrıa quenegociarse a traves de un medio no seguro, lo cual serıa absurdo.

Ejemplos de algoritmos simetricos

Rijndael-AES, Blowfish, TEA, A5

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 5: Eduardo ruiz seguridad y redes

Introduccion

Asimetricos Aquı hay dos llaves, publica y privada, la publica seusa para cifrar y la privada para descifrar unicamente, a partir de lallave publica es Turing-intratable el problema de calcular la llaveprivada utilizando algoritmos asimetricos basados en factorizacioen numeros primos o el problema de logaritmo discreto en ciertosgrupos

Ejemplos de algoritmos asimetricos

RSA, Elgamal, XTR, Di!e-Hellman

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 6: Eduardo ruiz seguridad y redes

Conceptos basicos

Conjuntos que usaremos:N = {0, 1, 2, 3, ...,!}Z = {"!, ...,"2,"1, 0, 1, 2, ...,!}Q = { a

b / a, b # Z y b $= 0}nZ = {nz/n # Z}

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 7: Eduardo ruiz seguridad y redes

Conceptos basicos

Definicion: Un grupo es un par < G , ! > tal que G es unconjunto y ! es una operacion binaria en G quecumple lo siguiente:

%a, b # G a ! b # G (! esta cerrada en G)

%a, b, c # G a ! (b ! c) = (a ! b) ! c (! es asociativa)

&e # G tal que g ! e = e ! g = g (G tiene elemento neutro)

%a # G &h # G tal que a ! h = h ! a = e (existen inversosbajo ! )

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 8: Eduardo ruiz seguridad y redes

Conceptos basicos

Si para todo a, b # G a ! b = b ! a (! conmuta) diremos que G esun grupo abeliano y hoy solo trabajaremos con grupos abelianos

Ejemplos de grupos abelianos

< Z,+ > es un grupo abeliano< Q!, ' > es un grupo abeliano< N,+ > no es un grupo abeliano< Mat(R)n!n, ' > no es un grupo< Z, ' > no es un grupo

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 9: Eduardo ruiz seguridad y redes

Conceptos basicos

Definicion: Un subgrupo de H ( G es un aquel que forma ungrupo como tal bajo !este se denotara como H < G

Se dira que G es un grupo finito si |G | = n con n # N e infinito si|G | = )n

Ejemplo

< 2Z,+ > es subgrupo de < Z,+ > ya que 2Z ( Z y2Z son los numeros pares, y la suma que hereda de Z hace quesuma de pares sea par

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 10: Eduardo ruiz seguridad y redes

Conceptos basicos

Nota: La siguiente definicion solo es para grupos abelianos

Definicion: Un grupo cociente G/S donde < S , ' > es subgrupode < G , ' > es:

G/S = {aS / a # G} donde aS = {as / s # S}

a cada aS le llamamos clase, ahora construiremos la operacion delcociente G/S

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 11: Eduardo ruiz seguridad y redes

Conceptos basicos

Antes de definir la operacion de G/S definamos lo que es elsiguiente producto de conjuntos:

ST = {st / s # S y t # T}

Entonces si aS , bS # G/S tenemos que(aS)(bS) = (ab)SS = (ab)S

ya que es facil ver que SS = {st / s, t # S} = S

El elemento neutro de G/S es eS = S donde e es el neutro de G ySesto es claro ya que (aS)(eS) = (ae(SS)) = aS

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 12: Eduardo ruiz seguridad y redes

Conceptos basicos

Ejemplo de grupo cociente

El mas sencillo pero no trivial es con los subgrupos de < Z,+ >tenemos que 2Z < Z entonces:Z/2Z = {n + 2Z / n # Z}

Sus clases son:0 + 2Z = pares1 + 2Z = impares2 + 2Z = pares3 + 2Z = impares

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 13: Eduardo ruiz seguridad y redes

Conceptos basicos

Continuacion ejemplo de grupo cociente

Por lo tanto solo hay dos clases, la clase de los pares e impares* Z/2Z = {I ,P} con I y P impares y pares respectivamenteSabemos que la regla de sumar pares con impares, pares con parese impares con impares es:I + P = IP + P = PI + I = PPor lo tanto este cociente es un grupo de 2 elementos que operancomo sumar modulo 2

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 14: Eduardo ruiz seguridad y redes

Conceptos basicos

Definicion: Un morfismo de grupos < G , ' > y < H,+ > es unafuncion " : G , H tal que %u, v # G

"(u ' v) = "(u) + "(v)

una observacion es que "(eG ) = eH y "(u"1) = "(u)"1

Definicion: Dados dos grupos < G , ' > y < H,+ >, unisomorfismo entre ellos es un morfismo biyectivo

Ejemplo de isomorfismo

< R,+ > y < R+, ' > son isomorfos con "(x) = ex ya que

"(a + b) = "(a) ' "(b) i.e ea+b = ea ' eb

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 15: Eduardo ruiz seguridad y redes

Problema de logaritmo discreto en Z!p

Definicion del PLD:Sea < G , ' > cıclico , |G | = n , b # G y < b >= G * %g # Gg = bk , k entero y definimos el morfismo de grupos:

logb : G , Zn

g -, [k]

de tal manera que bk = g mod n

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 16: Eduardo ruiz seguridad y redes

Problema de logaritmo discreto en Z!p

No existe hasta ahora un algoritmo para calcular esta k en tiempopolinomial dados g y b aunque existen cosas mas rapidas que”intentar todo” como pollard " # o la criba de campo defunciones, criba numerica, etc.., tambien es muy rapido si usas tucomputadora cuantica usando el algoritmo de Shor para PLD y latransformada de fourier cuantica :p

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 17: Eduardo ruiz seguridad y redes

Aplicaciones del PLD en Zp!

Una aplicacion del problema de logaritmo discreto es intercambiarllaves a traves de medios no seguros, Martin Hellman, WhitfieldDi!e, Ralph Merkle pensaron en un algoritmo usando el problemade logaritmo discreto y no olvidemos a los que lo descubrieronantes pero por razones de secreto militar no podıan publicarlo,Malcolm J. Williamson y James H. Ellis de Inglaterra en la GCHQ.

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 18: Eduardo ruiz seguridad y redes

Aplicaciones del PLD en Zp!

Alberto (A) quiere cifrar un mensaje a Berenice (B) pero necesitanun password en comun, el problema es que no pueden comunicarseel password ya que podrıan estar intervenidos, y Eulalio (E) podrıaestar capturando su traficoentonces:

A y B se ponen de acuerdo en un < Z#p, ' > y en un g # G tal

que g es generador, (Notese que E ya tiene esta informacion)

A toma un a # Zp, calcula A1 = ga mod p y manda A1 a B

B toma un b # Zp, calcula B1 = gb mod p y manda B1 a A

A calcula Sa = Ba1 mod p

B calcula Sb = Ab1 mod p

Sa = Sb ya que Sa = (gb)a = Sb = (ga)b = gab = S

Alberto y Berenice ya tienen un secreto S y no importa que Eulalioconozca A1,B1, p y g

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 19: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales

Ahora, ¿Por que no usar otros grupos ?

Variedades abelianas en campos finitos

Jacobianas de curvas hiperelıpticas

Jacobianas de otras curvas algebraicas

Todo el mundo utiliza Z!p , es lo mas sencillo de entender pero hay

grupos donde el PLD es mas complejo (o menos investigado)nosotros nos fijaremos hoy en Jacobianas de Curvas hiperelipticas

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 20: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales

Ahora definiremos el grupo abeliano aditivo de una curva elıptica,Consideremos la curva y 2 = x3 + ax + b tal que la parte derechano tiene raıces multiples y a, b # K, K = KEl conjunto:

E (K) = {(x , y) # K . K / y 2 = x3 + ax + b} / {!}

Forma un grupo abeliano, ! es un punto especial que nos hacever la curva en su version proyectivaYa que realmente este conjunto vive en P2

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 21: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales

La adicion P 0 Q y el inverso de P ("P) con P ,Q # E (K)cumplen lo siguiente:

P = ! * "P = !P = (x , y) * "P = (x ,"y)

P y Q con coordenada x distinta * & LP,Q 1 E (K) \ {P ,Q}(existe un tercer punto que intersecta la recta LP,Q con E (K)que le llamaremos "R (Bezout)) y entonces P 0 Q = R

P = "Q * P 0 Q = !P = Q, nos tomamos LP tangente en P a la curva, esta lıneainterseca a la curva en otro punto "R , por lo tantoP 0 P = R

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 22: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales

Ejemplo:

y2 = x3 " x

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 23: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales

Si y = $x + b es la recta que pasa por P y Q, al intersectarla cony2 = x3 + Ax + B obtenemos P 0 Q, y si P = Q obtenemosP 0 P derivando implıcitamente la curva para ası obtener:

Sean P = (xp, yp), Q = (xq, yq) y R = (xr , yr) # E (K) tal quecar(K) $= 2

Si P $= Q (coordenada x distinta al menos) P 0 Q = R yxr = $2 " xp " xq

yr = $(xp " xr ) " yp

$ = yq"yp

xq"xp

Si P = Qxr = $2 " 2xp

yr = $(xp " xr ) " yp

$ =3x2

p+A2yp

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 24: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales

Sea E una curva elıptica sobre Fq y P # E (Fq)\{!}, computamos

Q = nP p.a n entero

El problema de logaritmo discreto en curvas elıpticas es que dadoP y Q obtener n.

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 25: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Existen muchas cosas a considerar para que esto sea seguro... solomencionare uno de los puntos mas importantes el cual es:Si |E (Fq)| = q existe un morfismo de grupos

< E (Fq),0 >,< Fq,+ >

ya vimos que en el grupo aditivo, es trivial el problema delogaritmo discreto.Tambien hay una manera de dar el morfismo al grupo multiplicativoExisten documentos del NIST que indican que curvas son lasoptimas.

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 26: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Pero aquı, ¿Que sucede utilizando la misma construcciongeometrica? y 2 = f (x) Deg(f ) = 5

Aquı la linea que pasa por 2 puntos no necesariamente ’choca’ conun unico tercer punto viendolo en A2

K

Tendremos que definir una relacion de equivalencia entre puntos yoperar con las clases que nos permitan definir una operacionbinaria, para esto es lo que sigue.. divisores.

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 27: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Sea C una curva suave y algebraica sobre K.Un divisor de C es una suma formal finita:

D =!

P$C

nP(P) np # Z

Llamaremos Div(C) al conjunto de estos divisores.

Ejemplo de divisor

D1 = 1(P) " 3(Q) + 2(R) + 3(S)

Donde un numero finito de coeficientes es no-cero

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 28: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

La suma de divisores es ası:D1 =

"P$C nP(P)

D2 ="

P$C mP(P)

D1 + D2 ="

P$C(nP + mP)(P)

Entonces (Div(C),+) es un grupo con elemento neutro:

O ="

P$C 0(P)

El grado de un divisor es:%(D) =

"P$C nP

Un subgrupo de Div(C) son los X # Div(C) tal que %(X ) = 0 elcual denotaremos como Div 0(C)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 29: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

El divisor de una funcion f # K(C)# (campo de funcionesracionales sobre C) es:

Div(f ) ="

P$C ordP(f )(P)

Intuitivamente ordP (f ) es una medida de la multiplicidad del cerode f, o sea la multiplicidad de la interseccion de la curva C con f=0A estos divisores les llamamos divisores principales y los denotamospor Princ(C)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 30: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Intuitivamente ası se define el orden en estos dos casos:

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 31: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Estos divisores realmente lo que nos indican en sus coeficientes esque si bajo una una f # K(C)# , P es un polo (ordP (f ) < 0) o P esun cero (ordP (f ) > 0)

Algunas propiedades de divisores principales sobre C una curvasuave algebraica sobre K y con f , g # K(C)#

Div(f ) = O 2 f # K#

%(Div(f )) = 0

Div(f ' g) = Div(f ) + Div(g)

Div(f /g) = Div(f ) " Div(g)

Div(f n) = n · Div(f ) %n 3 1

Div(f ) = Div(g) 2 f = cg , c # K#

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 32: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Ejemplo de divisores principales en y 2 = x3 " x

(Con cuentas salen los ordPi (L) visto como el homogeneizado de Len P2, esto es algebraicamente lo que vimos antes con geometrıa )Div(LP,Q) = (P) + (Q) + (R) " 3(!)Div(LP%Q,&) = (P 0 Q) + (R) " 2(!)

Div(LP,Q

LP!Q,") = Div(LP,Q) " Div(LP%Q,&)

= (P) + (Q) " (P 0 Q) " (!)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 33: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Vamos a dar una relacion de equivalencia entre divisores paradefinir algo que nos pueda servir en criptografıa

Sean D1,D2 # Div(C)Si D1 " D2 # Princ(C) * D1,D2 son linealmente equivalentes yD1 4 D2

Ahora.. la relacion de equivalencia en Div 0(C) forma el grupoPic0(C) (divisores modulo la equivalencia lineal) , en otraspalabras:

Pic0(C) = Div 0(C)/Princ(C)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 34: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

En curvas elıpticasE (Fq) 5 Div0(E )P -, (P) " (!)! -, O = (!) " (!)

Esto nos dice que E 5 Pic0(E ) y P , ((P) " (!)) por lo tanto((P) " (!)) representa a P ,Esto nos dice que con las curvas elıpticas se construye el grupo ’talcual’, los divisores principales son las rectas que pasan por losrepresentantes de (P) y (Q) que definen un unico puntoR , (R) " (!)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 35: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Teorema: Sea C una curva algebraica de genero g suave sobre uncampo algebraicamente cerrado * & una variedad abelianaJ(C) 4= Pic0(C), donde J(C) es la jacobiana de C

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 36: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Rapidamente con el siguiente teorema clasificamos a los divisoresde una curva de genero g:Def: Una curva hiperelıptica de genero g es de la formay2 + h(x)y = f (x), h, f # K[x ], Deg(f ) = 2g + 1, Deg(h) 6 gy f monico

En este caso nos interesa que no tenga puntos singulares, o seaque no se anule el gradiente y la curva en algun punto.

Teorema: Sea C una curva hiperelıptica de genero g sobre Kentonces cada clase de divisores se puede representar demanera unica como:

!

1'i'r

(Pi ) " r(!)

donde r 6 g ,Pi $= !Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 37: Eduardo ruiz seguridad y redes

Curvas hiperelıpticas, teorıa de divisores y conceptosfundamentales

Veamoslo geometricamente con un ejemplo:

Por geometrıa sabemos que en esta curva con g = 2 dadosP1,P2,Q1,Q2 podemos encontrar una cubica que pasa por esos 4puntos que al sustituir en la curva C nos daran 6 puntos De loscuales ya conocemos 4, los otros dos los proyectamos con ! yobtenemos a los representantes del nuevo divisor .(P1) + (P2) " 2(!) + (Q1) + (Q2) " 2(!) = (R1) + (R2) " 2(!)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 38: Eduardo ruiz seguridad y redes

Conclusiones

En resumen para construir el grupo de Picard hacemos:

Escoges una curva suave C algebraica

Buscas los divisores de orden cero Div 0(C)

Consideras relacion de equivalencia lineal entre divisores

Defines el representante de cada clase de divisores

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 39: Eduardo ruiz seguridad y redes

Conclusiones

Las curvas elıpticas proveen mas seguridad, 160 bits son igualde seguros que 1024 bits RSA

Las curvas hiperelıpticas con g=2 bien escogidas de 80 bitsson igual de seguras que 1024 bits RSA

La teorıa de curvas hiperelıpticas es mas complicada paraimplementar

Las curvas elıpticas tambien sirven para romper RSA(factorizacion)

Se necesita mas investigacion para cifrado con variedadesabelianas

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas

Page 40: Eduardo ruiz seguridad y redes

¡Gracias! Eduardo Ruiz [email protected]://math.co.rotwitter: @toorandomPGP key fingerprint: 0xFEE7F2A0Referencias y mas informacion en:

Elliptic curves in cryptography - Ian Blake, Gadiel Seroussi,Nigel Smart

Elliptic and hyperelliptic curve cryptography - Henri Cohen,Grehard Frey, Tanja Lange

Software and hardware implementation of hyperelliptic curvecryptosystems - Thomas Wollinger

Generalized Jacobians in cryptography - Isabelle Dechene

A Course in number theory and cryptography - Neal Koblitz

Elementary algebraic geometry - Klaus Hulek

Algebraic Aspects of cryptography - Neal Koblitz, AlfredMenezes (Appendix, Hyperelliptic curves)

Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas