Eduardo ruiz seguridad y redes
-
Upload
futura-networks -
Category
Documents
-
view
798 -
download
1
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Curvas hiperelıpticas, teoria de divisores y conceptosfundamentales
Ejemplo:
y2 = x3 " x
Eduardo Ruiz Duarte Una introduccion a la criptografıa con curvas
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
¡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