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