Eduardo ruiz seguridad y redes

1,001 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,001
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Eduardo ruiz seguridad y redes

  1. 1. Geometr´ algebraica aplicada a la seguridad en ıa telecomunicaciones Eduardo Ruiz Duarte Facultad de Ciencias UNAM Agosto 12, 2010 Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  2. 2. Agenda Intro: Criptograf´ en telecomm ıa Conceptos b´sicos de algebra abstracta a Problema de logaritmo discreto en Z p × Aplicaciones del PLD en Zp × Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Conclusiones Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  3. 3. Introducci´n o En las telecomunicaciones hay dos tipos de cifrado muy importantes Sim´trico: Utiliza la misma llave para cifrar y descifrar e Dk (Ek (x)) = x Asim´trico: Utiliza una llave para cifrar y otra para descifrar e Ds (Ep (x)) = x Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  4. 4. Introducci´n o Sim´tricos El sim´trico generalmente se usa para cifrar flujos de e e informaci´n, y estos suelen ser muy rapidos. o ´ Este tiene una desventaja, requiere una negociaci´n previa de una o llave, Y si las entidades est´n separadas, esta llave se tendr´ que a ıa negociarse a trav´s de un medio no seguro, lo cual ser´ absurdo. e ıa Ejemplos de algoritmos sim´tricos e Rijndael-AES, Blowfish, TEA, A5 Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  5. 5. Introducci´n o Asim´tricos Aqu´ hay dos llaves, p´blica y privada, la p´blica se e ı u u usa para cifrar y la privada para descifrar unicamente, a partir de la ´ llave p´blica es Turing-intratable el problema de calcular la llave u privada utilizando algoritmos asim´tricos basados en factorizaci´ e o en n´meros primos o el problema de logaritmo discreto en ciertos u grupos Ejemplos de algoritmos asim´tricos e RSA, Elgamal, XTR, Diffie-Hellman Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  6. 6. Conceptos b´sicos a Conjuntos que usaremos: N = {0, 1, 2, 3, ..., ∞} Z = {−∞, ..., −2, −1, 0, 1, 2, ..., ∞} a Q = { b / a, b ∈ Z y b = 0} nZ = {nz/n ∈ Z} Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  7. 7. Conceptos b´sicos a Definicion: Un grupo es un par < G , > tal que G es un conjunto y es una operacion binaria en G que cumple lo siguiente: ∀a, b ∈ G a b ∈ G ( est´ cerrada en G) a ∀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 inversos bajo ) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  8. 8. Conceptos b´sicos a Si para todo a, b ∈ G a b = b a ( conmuta) diremos que G es un 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 introducci´n a la criptograf´ con curvas o ıa
  9. 9. Conceptos b´sicos a Definici´n: Un subgrupo de H ⊂ G es un aquel que forma un o grupo como tal bajo ´ste se denotar´ como H < G e a Se dir´ que G es un grupo finito si |G | = n con n ∈ N e infinito si a |G | = ℵn Ejemplo < 2Z, + > es subgrupo de < Z, + > ya que 2Z ⊂ Z y 2Z son los numeros pares, y la suma que hereda de Z hace que suma de pares sea par Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  10. 10. Conceptos b´sicos a Nota: La siguiente definici´n solo es para grupos abelianos o Definici´n: Un grupo cociente G /S donde < S, ∗ > es subgrupo o de < G , ∗ > es: G /S = {aS / a ∈ G } donde aS = {as / s ∈ S} a cada aS le llamamos clase, ahora construiremos la operaci´n del o cociente G /S Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  11. 11. Conceptos b´sicos a Antes de definir la operaci´n de G /S definamos lo que es el o siguiente 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 f´cil ver que SS = {st / s, t ∈ S} = S a El elemento neutro de G /S es eS = S donde e es el neutro de G y S esto es claro ya que (aS)(eS) = (ae(SS)) = aS Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  12. 12. Conceptos b´sicos a 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 = pares 1 + 2Z = impares 2 + 2Z = pares 3 + 2Z = impares Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  13. 13. Conceptos b´sicos a Continuaci´n ejemplo de grupo cociente o 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 respectivamente Sabemos que la regla de sumar pares con impares, pares con pares e impares con impares es: I +P =I P +P =P I +I =P Por lo tanto este cociente es un grupo de 2 elementos que operan como sumar modulo 2 Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  14. 14. Conceptos b´sicos a Definicion: Un morfismo de grupos < G , ∗ > y < H, > es una funci´n φ : G → H tal que ∀u, v ∈ G o φ(u ∗ v ) = φ(u) φ(v ) una observaci´n es que φ(eG ) = eH y φ(u −1 ) = φ(u)−1 o Definicion: Dados dos grupos < G , ∗ > y < H, >, un isomorfismo entre ellos es un morfismo biyectivo Ejemplo de isomorfismo < R, + > y < R+ , ∗ > son isomorfos con φ(x) = e x ya que φ(a + b) = φ(a) ∗ φ(b) i.e e a+b = e a ∗ e b Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  15. 15. Problema de logaritmo discreto en Z× p Definici´n del PLD: o Sea < G , ∗ > c´ıclico , |G | = n , b ∈ G y < b >= G ⇒ ∀g ∈ G g = b k , k entero y definimos el morfismo de grupos: logb : G → Zn g → [k] de tal manera que b k = g mod n Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  16. 16. Problema de logaritmo discreto en Z× p No existe hasta ahora un algoritmo para calcular esta k en tiempo polinomial dados g y b aunque existen cosas mas r´pidas que a ”intentar todo” como pollard − ρ o la criba de campo de funciones, criba numerica, etc.., tambi´n es muy r´pido si usas tu e a computadora cu´ntica usando el algoritmo de Shor para PLD y la a transformada de fourier cu´ntica :p a Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  17. 17. Aplicaciones del PLD en Zp × Una aplicaci´n del problema de logaritmo discreto es intercambiar o llaves a trav´s de medios no seguros, Martin Hellman, Whitfield e Diffie, Ralph Merkle pensaron en un algoritmo usando el problema de logaritmo discreto y no olvidemos a los que lo descubrieron antes pero por razones de secreto militar no pod´ publicarlo, ıan Malcolm J. Williamson y James H. Ellis de Inglaterra en la GCHQ. Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  18. 18. Aplicaciones del PLD en Zp × Alberto (A) quiere cifrar un mensaje a Berenice (B) pero necesitan un password en com´n, el problema es que no pueden comunicarse u el password ya que podr´ estar intervenidos, y Eulalio (E) podr´ ıan ıa estar capturando su tr´fico a entonces: A y B se ponen de acuerdo en un < Z∗ , ∗ > y en un g ∈ G tal p que g es generador, (N´tese que E ya tiene esta informaci´n) o o A toma un a ∈ Zp , calcula A1 = g a mod p y manda A1 a B B toma un b ∈ Zp , calcula B1 = g b mod p y manda B1 a A a A calcula Sa = B1 mod p B calcula Sb = Ab mod p 1 Sa = Sb ya que Sa = (g b )a = Sb = (g a )b = g ab = S Alberto y Berenice ya tienen un secreto S y no importa que Eulalio conozca A1 , B1 , p y g Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  19. 19. Curvas hiperel´ ıpticas, teoria de divisores y conceptos fundamentales Ahora, ¿Por qu´ no usar otros grupos ? e Variedades abelianas en campos finitos Jacobianas de curvas hiperel´ ıpticas Jacobianas de otras curvas algebraicas Todo el mundo utiliza Z× , es lo mas sencillo de entender pero hay p grupos donde el PLD es mas complejo (o menos investigado) nosotros nos fijaremos hoy en Jacobianas de Curvas hiperelipticas Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  20. 20. Curvas hiperel´ ıpticas, teoria de divisores y conceptos fundamentales Ahora definiremos el grupo abeliano aditivo de una curva el´ ıptica, Consideremos la curva y 2 = x 3 + ax + b tal que la parte derecha no tiene ra´ m´ltiples y a, b ∈ K, K = K ıces u El conjunto: E (K) = {(x, y ) ∈ K × K / y 2 = x 3 + ax + b} ∪ {∞} Forma un grupo abeliano, ∞ es un punto especial que nos hace ver la curva en su versi´n proyectiva o Ya que realmente este conjunto vive en P 2 Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  21. 21. Curvas hiperel´ ıpticas, teoria de divisores y conceptos fundamentales La adici´n P ⊕ Q y el inverso de P (−P) con P, Q ∈ E (K) o cumplen lo siguiente: P = ∞ ⇒ −P = ∞ P = (x, y ) ⇒ −P = (x, −y ) P y Q con coordenada x distinta ⇒ ∃ L P,Q ∩ E (K) {P, Q} (existe un tercer punto que intersecta la recta L P,Q con E (K) que le llamaremos −R (B´zout)) y entonces P ⊕ Q = R e P = −Q ⇒ P ⊕ Q = ∞ P = Q, nos tomamos LP tangente en P a la curva, esta l´ ınea interseca a la curva en otro punto −R, por lo tanto P ⊕P =R Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  22. 22. Curvas hiperel´ ıpticas, teoria de divisores y conceptos fundamentales Ejemplo: y2 = x3 − x Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  23. 23. Curvas hiperel´ ıpticas, teoria de divisores y conceptos fundamentales Si y = λx + b es la recta que pasa por P y Q, al intersectarla con y 2 = x 3 + Ax + B obtenemos P ⊕ Q, y si P = Q obtenemos P ⊕ P derivando impl´ ıcitamente la curva para as´ obtener: ı Sean P = (xp , yp ), Q = (xq , yq ) y R = (xr , yr ) ∈ E (K) tal que car (K) = 2 Si P = Q (coordenada x distinta al menos) P ⊕ Q = R y xr = λ2 − x p − x q yr = λ(xp − xr ) − yp yq −yp λ = xq −xp Si P = Q xr = λ2 − 2xp yr = λ(xp − xr ) − yp 2 3xp +A λ= 2yp Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  24. 24. Curvas hiperel´ ıpticas, teoria de divisores y conceptos fundamentales ıptica sobre F q y P ∈ E (Fq ){∞}, computamos Sea E una curva el´ Q = nP p.a n entero El problema de logaritmo discreto en curvas el´ ıpticas es que dado P y Q obtener n. Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  25. 25. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Existen muchas cosas a considerar para que esto sea seguro... solo mencionar´ uno de los puntos mas importantes el cual es: e Si |E (Fq )| = q existe un morfismo de grupos < E (Fq ), ⊕ >→< Fq , + > ya vimos que en el grupo aditivo, es trivial el problema de logaritmo discreto. Tambi´n hay una manera de dar el morfismo al grupo multiplicativo e Existen documentos del NIST que indican que curvas son las optimas. ´ Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  26. 26. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Pero aqu´ ¿Qu´ sucede utilizando la misma construcci´n ı, e o geom´trica? y 2 = f (x) Deg (f ) = 5 e Aqu´ la linea que pasa por 2 puntos no necesariamente ’choca’ con ı un unico tercer punto vi´ndolo en A 2 ´ e K Tendremos que definir una relaci´n de equivalencia entre puntos y o operar con las clases que nos permitan definir una operaci´n o binaria, para esto es lo que sigue.. divisores. Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  27. 27. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Sea C una curva suave y algebraica sobre K. Un divisor de C es una suma formal finita: D= nP (P) np ∈ Z P∈C Llamaremos Div (C) al conjunto de estos divisores. Ejemplo de divisor D1 = 1(P) − 3(Q) + 2(R) + 3(S) Donde un n´mero finito de coeficientes es no-cero u Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  28. 28. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales 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 el cual denotaremos como Div 0 (C) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  29. 29. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales El divisor de una funci´n f ∈ K(C)∗ (campo de funciones o racionales sobre C) es: Div (f ) = P∈C ordP (f )(P) Intuitivamente ordP (f ) es una medida de la multiplicidad del cero de f, o sea la multiplicidad de la intersecci´n de la curva C con f=0 o A estos divisores les llamamos divisores principales y los denotamos por Princ(C) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  30. 30. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Intuitivamente as´ se define el orden en estos dos casos: ı Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  31. 31. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Estos divisores realmente lo que nos indican en sus coeficientes es que si bajo una una f ∈ K(C)∗ , P es un polo (ordP (f ) < 0) o P es un cero (ordP (f ) > 0) Algunas propiedades de divisores principales sobre C una curva suave algebraica sobre K y con f , g ∈ K(C)∗ ∗ Div (f ) = O ⇔ 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 ≥ 1 ∗ Div (f ) = Div (g ) ⇔ f = cg , c ∈ K Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  32. 32. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Ejemplo de divisores principales en y 2 = x 3 − x (Con cuentas salen los ordPi (L) visto como el homogeneizado de L en P2 , esto es algebraicamente lo que vimos antes con geometr´ ) ıa Div (LP,Q ) = (P) + (Q) + (R) − 3(∞) Div (LP⊕Q,∞ ) = (P ⊕ Q) + (R) − 2(∞) LP,Q Div ( LP⊕Q,∞ ) = Div (LP,Q ) − Div (LP⊕Q,∞ ) = (P) + (Q) − (P ⊕ Q) − (∞) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  33. 33. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Vamos a dar una relaci´n de equivalencia entre divisores para o definir algo que nos pueda servir en criptograf´ ıa Sean D1 , D2 ∈ Div (C) Si D1 − D2 ∈ Princ(C) ⇒ D1 , D2 son linealmente equivalentes y D1 ∼ D2 Ahora.. la relaci´n de equivalencia en Div 0 (C) forma el grupo o Pic 0 (C) (divisores m´dulo la equivalencia lineal) , en otras o palabras: Pic 0 (C) = Div 0 (C)/Princ(C) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  34. 34. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales En curvas el´ ıpticas E (Fq ) ↔ Div 0 (E ) P → (P) − (∞) ∞ → O = (∞) − (∞) Esto nos dice que E ↔ Pic 0 (E ) y P → ((P) − (∞)) por lo tanto ((P) − (∞)) representa a P, Esto nos dice que con las curvas el´ ıpticas se construye el grupo ’tal cual’, los divisores principales son las rectas que pasan por los representantes de (P) y (Q) que definen un unico punto ´ R → (R) − (∞) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  35. 35. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Teorema: Sea C una curva algebraica de g´nero g suave sobre un e campo algebraicamente cerrado ⇒ ∃ una variedad abeliana J(C) ∼ Pic 0 (C), donde J(C) es la jacobiana de C = Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  36. 36. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales R´pidamente con el siguiente teorema clasificamos a los divisores a de una curva de g´nero g: e Def: Una curva hiperel´ ıptica de g´nero g es de la forma e y 2 + h(x)y = f (x), h, f ∈ K[x], Deg (f ) = 2g + 1, Deg (h) ≤ g y f m´nico o En este caso nos interesa que no tenga puntos singulares, o sea que no se anule el gradiente y la curva en alg´n punto. u Teorema: Sea C una curva hiperel´ ıptica de g´nero g sobre K e entonces cada clase de divisores se puede representar de manera unica como: ´ (Pi ) − r (∞) 1≤i ≤r donde r ≤ g , Pi = ∞ Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  37. 37. Curvas hiperel´ ıpticas, teor´ de divisores y conceptos ıa fundamentales Ve´moslo geom´tricamente con un ejemplo: a e Por geometr´ sabemos que en esta curva con g = 2 dados ıa P1 , P2 , Q1 , Q2 podemos encontrar una c´bica que pasa por esos 4 u puntos que al sustituir en la curva C nos dar´n 6 puntos De los a cuales ya conocemos 4, los otros dos los proyectamos con ∞ y obtenemos a los representantes del nuevo divisor . (P1 ) + (P2 ) − 2(∞) + (Q1 ) + (Q2 ) − 2(∞) = (R1 ) + (R2 ) − 2(∞) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  38. 38. 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 relaci´n de equivalencia lineal entre divisores o Defines el representante de cada clase de divisores Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  39. 39. Conclusiones Las curvas el´ ıpticas proveen m´s seguridad, 160 bits son igual a de seguros que 1024 bits RSA Las curvas hiperel´ ıpticas con g=2 bien escogidas de 80 bits son igual de seguras que 1024 bits RSA La teor´ de curvas hiperel´ ıa ıpticas es m´s complicada para a implementar Las curvas el´ıpticas tambi´n sirven para romper RSA e (factorizaci´n) o Se necesita m´s investigaci´n para cifrado con variedades a o abelianas Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa
  40. 40. ¡Gracias! Eduardo Ruiz Duarte beck@math.co.ro http://math.co.ro twitter: @toorandom PGP key fingerprint: 0xFEE7F2A0 Referencias y mas informaci´n en: o 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 curve cryptosystems - Thomas Wollinger Generalized Jacobians in cryptography - Isabelle D´chen` e e A Course in number theory and cryptography - Neal Koblitz Elementary algebraic geometry - Klaus Hulek Algebraic Aspects of cryptography - Neal Koblitz, Alfred Menezes (Appendix, Hyperelliptic curves) Eduardo Ruiz Duarte Una introducci´n a la criptograf´ con curvas o ıa

×