BVNM
BVNM
BVNM
Universidad de Murcia
Facultad de Matemáticas
CURVAS ELÍPTICAS
Autor: Supervisor:
Sara N. Matheu Garcı́a Dr. Ángel del rı́o mateos
22 de junio de 2015
Algebrista te volviste
refinado hasta la esencia
oligarca de la ciencia
matemático bacán.
Enzo R. Gentile
1
Índice general
Lista de figuras 3
Lista de tablas 5
Resumen 6
Abstract 9
Introducción 13
1. Nociones básicas 16
1.1. Cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2. El espacio afı́n y el espacio proyectivo . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.1. El espacio afı́n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.2. El espacio proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.3. Orden de intersección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.4. Puntos singulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2
Sara N. Matheu Garcı́a
Bibliografı́a 60
3
Índice de figuras
1. MBED Córtex M3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Suma de puntos. Fuente: [7] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Adding points. Source: [7] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Proceso criptográfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5. Internet de las cosas. Fuente: [23] . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4
Índice de tablas
2.1. Intersecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5
Resumen
El objetivo del presente trabajo es estudiar los fundamentos matemáticos sobre los que se
basan las curvas elı́pticas. Aunque se introducen definiciones nuevas, la mayorı́a de ellas derivan
de conceptos vistos en las asignaturas de Ampliación de Álgebra Lineal y Geometrı́a, Grupos y
Anillos y Ecuaciones Algebraicas, luego cualquier estudiante deberı́a ser capaz de entender este
documento con relativa facilidad. Sin embargo, como el álgebra no deja de ser abstracta, para
facilitar el entendimiento se ha intentado refrescar todos esos conceptos que pueden estar un
poco olvidados en nuestra memoria, antes de pasar a definir otros nuevos.
El estudio de las curvas elı́pticas no es un tema realmente nuevo. Las curvas elı́pticas han ocu-
pado un papel central en matemáticas desde hace tres siglos y sus notables propiedades aritméti-
cas y geométricas han encontrado aplicación en múltiples problemas y campos matemáticos. Su
empleo en criptografı́a es sin embargo reciente, pudiéndose situar su inicio en el año 1985, gracias
a Miller1 y Koblitz2 .
La criptografı́a es la ciencia encargada del estudio y diseño de sistemas que permiten ocultar
información. Desde sus inicios, esta capacidad de encubrimiento se ha basado en la dificultad
que supondrı́a a una entidad no autorizada obtener la información original en un conjunto de
datos cifrado. Actualmente, en tiempos donde el avance tecnológico en la informática y las te-
lecomunicaciones es cada vez mayor, donde se estima que cada dı́a Google procesa cerca de 25
petabytes de datos, que Facebook comparte más de 10 millones de fotografı́as y que en Youtube
se sube una hora de vı́deo cada segundo, la criptografı́a se ha hecho indispensable. Las cuentas de
correo electrónico, las redes sociales, las transacciones bancarias por cajero electrónico o a través
de Internet, entre muchos otros, están protegidos mediante criptosistemas, es decir, un conjunto
de procedimientos que garantizan la seguridad de la información. Es ası́ como el uso de la crip-
tografı́a, aún sin saberlo la mayorı́a de las personas, se ha convertido en una realidad del dı́a a dı́a.
6
RESUMEN Sara N. Matheu Garcı́a
y otra privada que se utiliza para descifrar. Estos algoritmos son más lentos y necesitan claves
más grandes, pero son necesarios para poder suministrar una clave simétrica a ambas partes de
la comunicación.
Actualmente uno de los protocolos criptográficos asimétricos que más se utilizan es RSA. El
problema es que cada vez es se necesitan claves más grandes, ya que la potencia de cálculo de los
ordenadores se va incrementando dı́a a dı́a, y una clave pequeña puede ser descifrada fácilmente.
¿Qué pasará cuando las claves que cifran nuestros datos sean tan grandes que no puedan ser
procesadas en esos pequeños dispositivos de los que hablábamos? Una posible solución es el uso
de protocolos criptográficos con curvas elı́pticas. En aquellas aplicaciones que requieren un nivel
de seguridad bastante elevado (con lo cual, la longitud de las claves aumenta considerablemente),
la criptografı́a de curvas elı́pticas puede proporcionar el nivel de seguridad parecido destinando
menos recursos para conseguirlo. Esto significa que su uso en esos dispositivos limitados pue-
de proporcionar un nivel de seguridad muy elevado sin necesidad de incrementar su coste de
producción. Actualmente, existen empresas que están realizando estudios de curva elı́ptica en
plataformas como MBED [29].
Una vez que tenemos todos los conceptos básicos asimilados, en el Capı́tulo 2 definiremos
al fin lo que es una curva elı́ptica. Veremos dos maneras de presentarla, una más general, la
ecuación general de Weierstrass,
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 ,
y una más sencilla para cuerpos con caracterı́stica distinta de dos y tres, la ecuación simplificada
de Weierstrass,
y 2 = x3 + Ax + B,
donde todos los coeficientes se toman en el cuerpo fijado para la curva elı́ptica.
7
RESUMEN Sara N. Matheu Garcı́a
Veremos que la suma está bien definida, es decir, que ese tercer punto existe y demostraremos
que las curvas elı́pticas junto a esta operación de suma, es un grupo abeliano. El culmen de este
trabajo es la demostración de la propiedad asociativa, algo que ocupará la mayor parte de este
capı́tulo, para ser exactos toda la Sección 2.3. Antes de entrar de lleno en la demostración, la
Subsección 2.3.1 se encargará de dejar claros los pasos que vamos a dar y el punto clave, el
Teorema 2.3.2. De esta manera, el lector no deberı́a perderse durante su desarrollo.
ax = b
con x ∈ N y a, b ∈ G.
En curvas elı́pticas, con notación aditiva, el problema equivale a dados dos puntos de la curva,
encontrar el escalar por el cual se multiplicó uno para obtener el otro. No es un problema trivial
siempre y cuando hagamos una buena elección del grupo de curvas elı́pticas. En este mismo
capı́tulo veremos diferentes algoritmos existentes para intentar resolver este problema: Fuerza
bruta, Index Calculus, Baby Step-Giant Step, algoritmos ρ y λ de Pollard y algoritmo de Pohlig-
Hellman.
Por último, en el Capı́tulo 4 pasaremos a ver cómo se aplican las curvas elı́pticas a la crip-
tografı́a. Los protocolos criptográficos de curva elı́ptica se basan en otros protocolos existentes
de gran importancia, que será necesario estudiar antes. Veremos las operaciones criptográficas
en general y como se resuelven en RSA, DH, DSA y AES. La última sección de este capı́tulo,
la Sección 4.6, se dedica exclusivamente a estudiar las diferentes operaciones criptográficas utili-
zando curvas elı́pticas.
8
Abstract
The aim of the present work is to study the mathematical foundations on which the elliptical
curves are based. Although new definitions are introduced, the majority of they derive from
concepts seen in the subjects of Extension of Linear Algebra and Geometry, Groups and Rings
and Algebraic Equations, then any student should be able to understand this document with
relative facility. Nevertheless, since the algebra does not stop being abstract, to facilitate the
understanding, we have tried to refresh all these concepts that can be a bit forgotten in our
memory, before defining new others.
The study of the elliptical curves is not a really new topic. Elliptic curves have occupied
a central paper in mathematics for three centuries and his notable arithmetical and geometric
properties have found application in multiple problems and mathematical fields. Nevertheless,
his employment in cryptography is recent, around the year 1985, thanks to Miller3 and Koblitz4 .
Cryptography, from Greek kryptos, ”hidden, secret” and graphos, ”writing”, is the practice
and study of hiding information. It is the science used to transform the content of a message using
a key, that is ciphering the message, so that if we send it through an insecure communication
channel, nobody can decrypt it, only the recipient of the message.
There are evidences of the usage of cryptography 4000 years ago, in the egyptian town of
Menet Khufu where the hieroglyphic inscriptions on the tomb of the nobleman KHNUMHOTEP
II were written with unusual symbols to confuse or obscure the meaning of the inscriptions. Over
time, with the arrival of machines, they replaced humans in the task of cipher messages. In 1916,
it was patented in Netherlands one of the first cipher machines, the Arvid Gerhard Damm’s
machine, and in 1918, the famous machine ENIGMA. These machines were used exclusively to
protect army’s messages. However, just 40 years ago, this science has advanced a lot due to the
introduction of computer system communications, and the rise of the Internet. Currentl crypto-
graphy is very present in our lifes, protecting each piece of information that we send through
the net. Our money or the confidentiality of our personal data depends of the security of every
process taking part in. The keystone for offering secure access and protected communications is
the cryptography.
In a world where it is estimated that Google processes 25 petabytes of data everyday, Fa-
cebook shares more than 10 millions of photographys and every second, in Youtube, there is a
new hour of video, cryptography has become essential. Email accounts, social networks, electronic
transactions, all of them are protected by cryptosystems, that is, a set of algorithms that guaran-
tee the information security. That is how cryptography, even without knowing it, is a daily reality.
Another field of the technology also grows: The Internet of the things (IoT). This concept
comprises the union of the physical objects and the electronics, software, sensors and connecti-
vity in order that it could achieve a major value and service across the exchange of information
with the manufacturer, operator and other devices connected. Each of these objects is capable of
interoperating in the current infrastructure of Internet. Nowadays, there already exist washers
with WiFi; fridges that know the food that they contain and prepare for you the shopping list,
lamps that they know when they have to turn on; ”smart cities”, where the illumination system is
3 V. Miller: Use of elliptic curves in Cryptography, 1985
4 N. Koblitz: Elliptic Curve Cryptography, 1987
9
ABSTRACT Sara N. Matheu Garcı́a
efficient due to the information of many sensors, where the citizens use his mobile phone to inter-
act with the services of the city, where the pollution is controlled... In a not very distant future,
all the common objects of our house and city will be able to have connection to Internet, facili-
tating his management from the laptop, the tablet, the mobile phone or from a remote control
center. Obviously, all these connections need to be protected (for example, we do not want that
anybody with bad intentions turn on the lights while we are on vacation and, as a consequence,
we receive an important receipt of electricity ...). These small devices are not conventional com-
puters, that is, they do not have a great computacional power, a great RAM or a great hard disk.
In any case, the basis to guaranteeing secure access and protected communications is the
cryptography, whose objetives are to ensure that the information is accessible only for an aut-
horized person (confidentiality); that the message has not been manipulated (integrity); that
the issuer has not been impersonated (authenticity); and that it is not possible that an issuer
a message can deny that he sends it. Issuer and recipient have proofs that the receipt and the
sending respectively has been carried out by the other part (non-repudiation).
Cryptography is typically divided into symmetric and asymmetric. The symmetric algorithms
are characterized by the use of the same key to cipher and decipher. Both parts (issuer and re-
ceiver) must know the same key in advance. These algorithms are fast and use a key size of few
bits (128, 256...). Unlike them, the asymmetric algorithms have two keys, the public key, that
is available for anyone that wants to use it and the private key, that only his owner knows. In
general, these algorithms are slower and need bigger keys (1024 bits, 2048 ...), but they are ne-
cessary to distribute a symmetric key to both entities in the communication or to do operations
of digital signature [6] (authentication).
Nowadays one of the more used algorithms is RSA. The problem is that there is an increa-
sing need of bigger keys, since the calculation power of regular computers is increasing day by
day, and a small key can be attacked easily. What will happen when the keys to cipher our
information are so big that could not be processed in these small devices of restricted resources?
The alternative is the use of elliptic curve algorithms. In those applications that need a high
enough level of security, the cryptography of elliptical curves can provide this level destining
fewer resources to obtain it. This means that in these limited devices, they can provide a very
high security level very high without increasing the production cost of constrained devices. In
particular, as we will see, the key size is smaller, and it implies fewer requirements of memory
and offer faster cryptographic operations.
This work analyzes and studies the elliptical curve from a point of view of the mathematics
that support this cryptographic scheme.
In order to know the mathematical base of this type of cryptography, we will need to start
in Chapter 1 by remembering and extending our knowledge of finite fields Fq of order q, since
elliptic curves are defined on them. Also we will revise the affine space and projective space in
Section 1.2 because we are going to represent the points of the elliptic curve using the named
homogeneous coordinates of the projective space, that will allow us to treat the points at the
infinite as a common points. In this chapter we will see new concepts as singular points, flexes
and the most important of all: intersection order. Intersection order can be defined both in the
affine space and in the proyective space and in this chapter we will see that this concept is well
defined, that is, it always exists. We will study a series of interesting properties that will allow
10
ABSTRACT Sara N. Matheu Garcı́a
us to manipulate it better.
As soon as we have assimilated all the basic concepts, in Chapter 2 we will define what is
an elliptic curve. We will see two ways of presenting. One way, more general, using Weierstrass’s
general equation,
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 ,
and other way, more simple, for bodies with characteristic different from two and three, using
simplified equation of Weierstrass,
y 2 = x3 + Ax + B,
where all the coefficients are in the field fixed for the elliptic curve.
In an elliptic curve, points can be added of the following way (Figure 3): If we have two points
P, Q belonging to an elliptic curve, we can draw the line trough P and Q (if P = Q, it will be
the tangent). This line will intersect the curve in the third point R. We will define P + Q = −R
as the symmetrical of R across the axis x.
In Section 2.2, we will see that the sum is well defined, that is, that this third point exists
and we will proof that elliptic curves with this operation, are an abelian group. The high point
of this work is the proof of the associative property, something that will occupy most of this
chapter, to be exact all Section 2.3. Before entering in the proof, Subsection 2.3.1 will introduce
us in the proof in order that we have clear the steps that we are going to give and we have clear
the key point, the Theorem 2.3.2, so that we do not get lost during his development.
In Chapter 3 we will study the Discreet Logarithm Problem, problem on which is based the
safety of the elliptic curves cryptography. Formally and for any finite group G, the Discreet
Logarithm Problem is to solve an equation of the type
ax = b
with x ∈ N and a, b ∈ G.
11
ABSTRACT Sara N. Matheu Garcı́a
It is not a trivial problem as long as we let’s do a good choice of the elliptic curve group.
In this same chapter we will see different existing algorithms to try to solve this problem: Brute
force, Index Calculus, Baby Step-Giant Step, ρ and λ algorithms of Pollard and Pohlig-Hellman’s
algorithm.
Finally, in Chapter 4 we will see elliptic curves cryptography. The elliptic curves cryptograp-
hic protocols are based on other existing protocols of great importance, which will be necessary
to study before. We will see the cryptographic operations in general and how they are solved in
RSA, DH, DSA and AES. The last section of this chapter, Section 4.6, studies exclusively the
different cryptographic operations using elliptic curves.
12
Introducción
Existen evidencias del uso de la criptografı́a durante la civilización egipcia hace nada menos
que 4000 años donde se encontró sobre la tumba de un noble llamado Khnumhotep II un mesaje
cifrado. Con el paso del tiempo y la llegada de las máquinas, éstas pasaron a relevar a los huma-
nos de la ardua tarea de cifrar los mensajes. En 1916, se patentó en Holanda una de las primeras
máquinas cifradoras, la máquina de Arvid Gerhard Damm y en 1918, la más famosa de todas:
ENIGMA, creada por Arthur Scherbius. ENIGMA se lanzó inicialmente al mercado comercial,
pero como la mayorı́a de este tipo de máquinas, acabó usándose para proteger mensajes del
ejército. Sin embargo, desde hace apenas 40 años, esta ciencia avanza a pasos agigantados debi-
do a la introducción de los sistemas informáticos en las comunicaciones y al auge de Internet.
Actualmente está muy presente en nuestras vidas protegiendo cada trozo de información que
mandamos por la red. Nuestro dinero o la confidencialidad de nuestros datos personales depende
de que todos los procesos que intervienen sean suficientemente seguros.
Los objetivos de la criptografı́a son garantizar que la información sea accesible únicamen-
te por una persona autorizada (confidencialidad); que el mensaje no haya sido manipulado
(integridad); que el emisor no haya sido suplantado (autenticidad); y que tanto emisor como
receptor tengan pruebas de que la recepción y el envı́o respectivamente se ha llevado a cabo por
la otra parte (no repudio).
13
Estado del arte
Como dijimos al principio, la criptografı́a es una ciencia que va creciendo cada vez más. La in-
formación que transmitimos puede ser muy sensible como tarjetas de crédito y cuentas bancarias
y necesitamos protegerla. Actualmente uno de los protocolos criptográficos que más se utilizan
es RSA. El problema es que cada vez es se necesitan claves más grandes, ya que la potencia
de cálculo de los ordenadores se va incrementando dı́a a dı́a, y una clave pequeña puede ser
descifrada fácilmente5 .
implica romper RSA. Ası́ se puede ir viendo qué tamaño de clave puede ser descifrada. http://es.wikipedia.
org/wiki/Competici%C3%B3n_de_factorizaci%C3%B3n_RSA
14
ESTADO DEL ARTE Sara N. Matheu Garcı́a
las luces y la lavadora mientras estemos de vacaciones y nos venga una importante factura de la
luz...). ¿Qué pasará cuando las claves de RSA sean tan grandes que no puedan ser procesadas en
estos dispositivos? Una posible solución es el uso de protocolos criptográficos con curvas elı́pticas.
Lo bueno que tienen estos protocolos es que con una clave más pequeña, proporcionan la
misma seguridad que RSA, lo que se traduce en menor memoria para almacenarlas y menor
tiempo de cálculo. Perfecto para esos dispositivos.
El estudio de las curvas elı́pticas no es un tema realmente nuevo. Las curvas elı́pticas han ocu-
pado un papel central en matemáticas desde hace tres siglos y sus notables propiedades aritméti-
cas y geométricas han encontrado aplicación en múltiples problemas y campos matemáticos. Su
empleo en criptografı́a es sin embargo reciente, pudiéndose situar su inicio en el año 1985, gracias
a Miller6 y Koblitz7 . Actualmente, existen empresas que están realizando estudios de criptografı́a
de curva elı́ptica en dispositivos de recursos limitados como la plataforma MBED. Este trabajo
puede consultarse en [29].
La curvas elı́pticas también se utilizan en programas tan cotidianos como el Windows Me-
dia Player para proteger las claves de las licencias que autorizan a reproducir contenidos con
DRM[33](Gestión digital de derechos) o en protocolos tan actuales como los bitcoins[22]. Los
reproductores de Blu-Ray y la Play Station 3[27] implementan una tecnologı́a similar para evitar
la copia de contenidos mientras que la Wii[16] hace uso de las curvas elı́pticas para asegurar
que nadie hace trampa cuando guardamos una partida on-line [12]. Los smartphones también
utilizan curva elı́pticas para cifrar la información que transmiten. Incluso los nuevos pasaportes
alemanes usan las curvas elı́pticas para proteger los datos biomédicos que almacenan. Aunque
quizá el ejemplo más influyente de uso criptografı́a con curvas elı́pticas es la Suite B[21] del go-
bierno de los Estados Unidos. Dicha suite es un estándar federal de protección de documentos que
actualmente usa algoritmos basados exclusivamente en curvas elı́pticas para cifrar documentos
clasificados como crı́ticos o confidenciales.
15
Capı́tulo 1
Nociones básicas
Comencemos introduciendo unas nociones básicas que serán fundamentales a la hora de se-
guir el texto.
A partir de ahora, K denotará un cuerpo, todos los espacios vectoriales serán espacios
vectoriales sobre K, todos los polinomios tendrán coeficientes en K, lo que denotaremos como
f ∈ K[x] y trabajaremos sobre anillos conmutativos.
Definición 1.1.1. Sea un polinomio f ∈ K[x] de grado m. Se dice que a ∈ K es un cero o una
raı́z de f si f (a) = 0. Además, se dice que a es un cero f de multiplicidad r ∈ Z+ si (x − a)r |f
y (x − a)r+1 - f .
Definición 1.1.2. Una extensión de cuerpos es un par (K, F ), donde F es un cuerpo y K es
un subcuerpo. Lo denotaremos de la forma F/K y diremos que F es una extensión de K.
Definición 1.1.3. Sea K un cuerpo, f ∈ K[x] con deg(f)= r ≥ 1. Decimos que f se escinde o
factoriza completamente sobre K cuando se verifica:
f = c(x − a1 )(x − a2 ) · · · (x − ar )
Definición 1.1.7. Sea G un grupo y sea C un subconjunto suyo. El menor subgrupo de G que
contiene a C se denomina subgrupo generado por C y se denota hCi. Si hCi = G, se dice que
C es un conjunto generador de G.
Definición 1.1.8. Un grupo G es cı́clico si existe un elemento g ∈ G tal que hgi = G. En tal
caso, se dice que g es un generador de G.
16
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
17
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
18
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
Notación. Si E/F es una extensión de cuerpos y α ∈ E, entonces F [α] denota el menor subcuerpo
de E que contiene a F y a α.
Proposición 1.1.19. Sea F = K una extensión de cuerpos algebraica, sea f ∈ K[x] un
polinomio no constante y sea α ∈ F un elemento arbitrario. Diremos que:
Teorema 1.1.20 (Teorema del elemento primitivo). Si F/K es una extensión finita y separable,
entonces F/K es simple, es decir, existe α ∈ F tal que F = K[α].
Demostración. Puede encontrarse en [26].
Para construir un cuerpo finito con q = pn elementos para un p primo y un entero positivo
n, usamos la siguiente proposición:
Sα : F [x] −→ E
f −→ f (α)
no es inyectiva. Como E es un cuerpo, el núcleo P de Sα es un ideal de F [x] y P = (Irr(α, F )),
donde Irr(α, F ) es el polinomio irreducible mónico de F [x] que tiene a α como cero. La dimensión
de F [α] sobre F es el grado de este polinomio.
Ası́, si q = pn con n primo, por el Teorema 1.1.20 se tiene que Fq = Fp [α] para algún α ∈ Fq y
como Fq tiene dimensión n sobre F , el polinomio Irr(α, Fp ) tiene grado n, pues por el Primer
Teorema de Isomorfı́a, Fq ' Fp [x]/p.
19
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
ϕ : K 2 = A2 (K) → A2 (K) = K 2
De esta manera los puntos del espacio proyectivo son en realidad rectas vectoriales que pasan
por el origen.
x1 xn−1
Si P = (x1 , ...xn ) y xn 6= 0, tenemos que [x1 , ..., xn ] = , ..., , 1 . En el caso xn = 0
xn xn
se denominan puntos del infinito, [x1 , ..., xn−1 , 0].
Además, tenemos la inclusión del espacio afı́n en el plano proyectivo
An (K) ,→ Pn (K)
del infinito.
Veamos que ocurre con los polinomios cuando estamos en el espacio proyectivo. Nos van a
interesar especialmente este tipo de polinomios:
20
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
Definición 1.2.8. Un polinomio se dice que es homogéneo cuando es suma de monomios del
mismo grado.
Ası́, podemos homogeneizar un polinomio f (x1 , ..., xn ) añadiéndole una tercera variable
xn+1 que complete los grados de los monomios, por ejemplo si f (x, y) = y 2 − x3 − ax − b entonces
el homogeneizado de f es F (x, y, z) = y 2 z − x3 − axz 2 − bz 3 .
De la misma manera, podemos deshomogeneizar un polinomio homogéneo evaluando en
el uno la variable extra que hemos añadido, volviendo al polinomio original. Ası́ obtenemos la
siguiente proposición:
Proposición 1.2.9. Sea f (x1 , ...xn−1 ) un polinomio de grado m, y sea F (x1 , ...xn ) el polinomio
f homogeneizado. Entonces se cumple:
Definición 1.2.11. Una recta en el plano proyectivo P2 (K) es el conjunto de puntos [x, y, z] ∈
P2 (K) que satisfacen una ecuación ax + by + cz para un (a, b, c) ∈ K 3 \ (0, 0, 0).
Obsérvese que los puntos (x, y, z) ∈ K 3 para los que [x, y, z] está en la recta de ecuación
ax + by + cz = 0 forman un subespacio vectorial V de dimensión 2 de K 3 . Por tanto, estos puntos
pueden ser dados por ecuaciones paramétricas:
x = a1 u + b1 v
y = a2 u + b2 v (1.2)
z = a3 u + b3 v
donde u, v ∈ K y (u, v) 6= (0, 0), de forma que (a1 , a2 , a3 ), (b1 , b2 , b3 ) es una base de V , o
matricialmente:
x a1 b1
y = a2 b2 u
. (1.3)
v
z a3 b3
Con lo que la recta está formada por los puntos con coordenadas homogéneas [x, y, z] que se
pueden expresar como en (1.2) (equivalentemente (1.3)) con (u, v) ∈ P1 (K).
Si todos los pares (ai , bi ) fuesen múltiplos, (ai , bi ) = λi (aj , bj ), entonces (x, y, z) =
x(1, λ2 , λ3 ), luego en el espacio proyectivo no tendrı́amos una recta, sino un punto. Para asegurar
que (1.3) efectivamente representa una recta en el espacio proyectivo, utilizamos la siguiente
proposición, cuya demostración es evidente por lo que acabamos de explicar.
21
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
ϕ : P2 (K) → P2 (K)
22
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
Tenemos un sistema de ecuaciones con tres ecuaciones y tres incógnitas, cuyo determinante
es no nulo, ya que los puntos P1 , P2 , P3 no están alineados. Por la regla de Cramer, este sistema
tiene una solución única (r0 , s0 , t0 ), lo que completa la prueba.
Proposición 1.2.16. Dados P1 , P2 , P3 , P4 ∈ P2 (K), tres de ellos no alineados, y Q1 , Q2 , Q3 , Q4 ∈
P2 (K) cumpliendo lo mismo, existe un único cambio de coordenadas ϕ tal que ϕ(Pi ) = Qi para
i = 1, 2, 3.
Demostración. Por la Proposición 1.2.15, existe un cambio de coordenadas ψ que lleva P1 a
[1, 0, 0], P2 a [0, 1, 0], P3 a [0, 0, 1] y P4 a [1, 1, 1].
Por la misma proposición, existe otro cambio de coordenadas γ que lleva Q1 a [1, 0, 0], Q2 a
[0, 1, 0], Q3 a [0, 0, 1] yQ4 a [1, 1, 1].
Tomando ϕ = γ −1 ◦ ψ, tenemos lo que queremos.
Si C es la curva determinada por el polinomio F y ϕ es un cambio de coordenadas,
denotaremos F ϕ = F ◦ ϕ−1 .
Observación. Si tenemos una curva proyectiva F (K) ∈ K[x, y, x], y tomamos P ∈ F (K),
podemos elegir ϕ cambio de coordenadas que nos lleve P a donde queramos, por ejemplo
ϕ(P ) = (0, 0) = [0, 0, 1].
Definición 1.2.17. El grado de una curva del plano afı́n o proyectivo es el grado del polinomio
que la representa. En el caso en el que una curva pueda representarse mediante varios polinomios,
por ejemplo x, x2 , se tomará el de menor grado.
Definición 1.2.18. Dos curvas C1 y C2 se dice que son equivalentes si existe un cambio de
coordenadas afines φ (coordenadas homogéneas en el caso de curvas proyectivas) tal que P ∈ C1
si y sólo si P ∈ C2 .
x = a1 t + b1 , y = a2 t + b2 . (1.16)
23
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
x = a1 u + b1 v, y = a2 u + b2 v, z = a3 u + b3 v. (1.17)
Demostración. Como [u0 , v0 ] 6= [0, 0] (recordemos que esto no lo permitimos), supongamos sin
pérdida de generalidad que v0 6= 0. En caso contrario, la demostración serı́a análoga tomando
u0 . Sea pues m = grado(G) y sea g(u) = G(u, v0 ). Pm
Observemos que si g(u) ≡ 0, entonces g(u) = G(u, v0 ) = i=0 ai ui v0m−i = 0, y entonces
G(u, v) ≡ 0, que está en contradicción con la hipótesis de la proposición.
Utilizando Ruffini, dividimos por la mayor potencia de (u−u0 )P que divide a g(u) y obtenemos
m
g(u) = (u−u0 )k h(u), para algún k ≥ 0 y algún polinomio h(x) = i=k bm−i xm−i con h(u0 ) 6= 0,
m−k
ya que hemos tomado la máxima potencia por la que podemos dividir. Sea H(u, v) = v vm h( uvv 0 ).
0
Vamos a ver que H es homogéneo de grado m-k:
m uv m−i v m−k m
0
X X
H(u, v) = bm−i = bm−i um−i v0−i v i−k
v v0m
i=k i=k
luego cada monomio tiene grado m − i + i − k = m − k, por tanto H es homogéneo de grado m-k.
Además, por ser G homogéneo de grado m,
u v m uv v m uv v m uv k uv
m 0 0 0 0
G(u, v) = v G ,1 = mG , v0 = g = m − u0 h =
v v0 v v0 v v0 v v
Veamos ahora unos lemas que nos dan el valor del orden en caso de intersección o tangencia.
Esto nos será útil para trabajar con él en las sucesivas demostraciones.
Lema 1.2.22. Sea S(u, v) 6≡ 0 un polinomio homogéneos de grado 3. Entonces S(u, v) tiene
como mucho 3 ceros [u, v] ∈ P1 (K) contando multiplicidades.
Demostración. Factorizamos S a la mayor potencia de v, digamos v k . Entonces S(u, v) se anula
con orden k en [1, 0] y S(u, v) = v k S0 (u, v) con S0 (1, 0) 6= 0.
Como S0 (u, 1) es un polinomio de grado 3-k, puede tener como máximo 3-k ceros, contando
multiplicidades (tendrá exactamente 3-k si el cuerpo sobre el que trabajamos es algebraicamente
cerrado).
Todos los puntos [u, v] 6= [1, 0] pueden ser escritos de la forma [u, 1] , dividiendo entre v 6= 0,
luego S0 (u, v) tiene como máximo 3-k ceros, y por tanto S(u, v) tiene como mucho k + 3 − k = 3
ceros en P1 (K).
24
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
Definición 1.2.25. Un punto P de una curva proyectiva con ecuación F (x, y, z) = 0 se dice que
es singular si Fx0 (P ) = Fy0 (P ) = Fz0 (P ) = 0. En caso contrario se dice que es no singular. Una
curva se dice no singular si no tiene puntos singulares.
Observación. Que una punto sea no singular, equivalente a la existencia de la recta tangente en
ese punto, ya que recordemos la recta tangente en el punto P = (x, y, z) a una curva dada por
un polinomio F tiene la forma:
∂F ∂F ∂F
(P )X + (P )Y + (P )Z = 0.
∂x ∂y ∂z
Lema 1.2.26. Si F (x, y, z) = 0 define una curva C y P es un punto no singular de C, entonces
existe una única recta en P2 (K) que corta a C con orden al menos 2 en P , y es la tangente a C
en P.
Demostración. Sea L una recta que corta a C con orden k ≥ 1. Parametrizamos L de la forma
(1.17) y sustituimos en F obteniendo Fe(u, v) = F (a1 u + b1 v, a2 u + b2 v, a3 u + b3 v). Sea [u0 , v0 ] el
punto correspondiente a P, es decir, P = (a1 u0 + b1 v0 , a2 u0 + b2 v0 , a3 u0 + b3 v0 ).
Usando la Proposición 1.2.21 tenemos que Fe(u, v) = (v0 u − u0 v)k H(u, v), para algún
polinomio H(u, v) con H(u0 , v0 ) 6= 0. Por tanto:
Feu (u, v) = kv0 (v0 u − u0 v)k−1 H(u, v) + (v0 u − u0 v)k Hu (u, v),
Fev (u, v) = −ku0 (v0 u − u0 v)k−1 H(u, v) + (v0 u − u0 v)k Hv (u, v).
Teniendo en cuenta que k ≥ 1, tenemos dos casos:
Si k ≥ 2 entonces Fev (u0 , v0 ) = Feu (u0 , v0 ) = 0.
Si k = 1 entonces Fev (u0 , v0 ) = v0 y Feu (u0 , v0 ) = u0 . Como [u0 , v0 ] ∈ P1 (K), u0 6= 0 ó v0 6= 0,
con lo que (Feu (u0 , v0 ), Fev (u0 , v0 )) 6= (0, 0).
25
NOCIONES BÁSICAS Sara N. Matheu Garcı́a
Por tanto, k ≥ 2 si y solo si Fev (u0 , v0 ) = Feu (u0 , v0 ) = 0. Usando la regla de la cadena,
tenemos que
Feu (u0 , v0 ) = a1 Fx (P ) + a2 Fy (P ) + a3 Fz (P ) = 0,
(1.18)
Fev (u0 , v0 ) = b1 Fx (P ) + b2 Fy (P ) + b3 Fz (P ) = 0.
Observemos que como L es una recta dada por la ecuación Ax + By + Cz = 0, con
a = (a1 , a2 , a3 ) y b = (b1 , b2 , b3 ) base de L, entonces las ecuaciones (1.18) solo se anulan si
(Fx (P ), Fy (P ), Fz (P )) ∼ (A, B, C), con lo que la recta tangente a C en P, que recordemos que
era Fx (P )x + Fy (P )y + Fz (P )z = 0, es la única que cumple que Feu (u0 , v0 ) = Fev (u0 , v0 ) = 0.
26
Capı́tulo 2
2.1. Definición
Una vez establecidos estos conceptos previos, podemos dar paso a la definición de curva
elı́ptica:
Definición 2.1.1. Una curva elı́ptica E es una curva proyectiva irreducible no singular de
grado 3.
Veamos como podemos reducir esta definición a una curva más especı́fica después de un cam-
bio de coordenadas:
i j k
P
Tomemos F ∈ K[x, y, z] cúbico, F = i+j+k=3 axi y j z k x y z . Vamos a tomar el punto
P = (0, 1, 0) y vamos a exigirle que P ∈ F (K). Si evaluamos en P , solo nos queda ay3 , y como
queremos que se anule, pedimos que
ay3 = 0.
Como queremos que F sea no singular, tiene que tener recta tangente en P, TP (F ). Vamos a
ver que salvo un cambio de coordenadas TP (F ) = z, es decir, que la recta tangente a F en P es
la recta del infinito. Para ello, consideramos el cambio de coordenadas φ(X, y, z) = (z, x, y) que
hace φ(P ) = φ(0, 1, 0) = (0, 0, 1). Obtenemos ası́ un nuevo polinomio F φ (x, y) = F φ−1 (x, y, 1) =
F (y, 1, x) = f1 + (cosas de grado ≥ 2) = ay2 z x + axy2 y + (cosas de grado ≥ 2). Y si queremos
que no sea singular, necesariamente ay2 z 6= 0 ó axy2 6= 0.
De esta manera, si TP (F ) = f1 ◦ φ(x, y, z) = f1 (z, x, y) = ay2 z z + axy2 x = z, entonces
axy2 = 0,
y por tanto
ay2 z 6= 0.
Luego de momento ya tenemos que nuestra curva elı́ptica pasa por el punto (0, 1, 0) y que su
tangente en ese punto es la recta del infinito.
Ahora le vamos a pedir que P sea un punto de inflexión. Llamemos L = z a la recta tangente
en P. Entonces Lφ = Lφ−1 = L(y, 1, x) = x. Si parametrizamos la recta x = 0 como α(t) = (0, t),
tenemos que F φ (α(t)) = F φ−1 (0, t, 1) = F (t, 1, 0) = ax3 t3 + ax2 y t2 . Como queremos que P sea
un punto de inflexión, su multiplicidad debe ser 3 ó más, y por tanto
ax2 y = 0.
Por último queremos que ax3 y ay2 z sean opuestos y no nulos. Ası́, podemos dividir por ax3
y que aparezca 1 y -1. Para ello hacemos un nuevo cambio de coordenadas, pero debemos tener
27
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
cuidado con los cambios que hagamos ahora, puesto que no deben modificar las condiciones
que ya tenemos. No pueden mover la recta del infinito ni nuestro punto [0, 1, 0]. Tomamos
pues, φ−1 (x, y, z) = (t−1 x, t−1 y, z). Entonces F ◦ φ−1 = −i i −j j k
P
i+j+k=3 axi y j z k t x t y z =
i j k −3 −2
P
i+j+k=3 cxi y j z k x y z . Como queremos que cx3 = t ax3 = −cy2 z = −t ay2 z , tomamos
−ax3
t= , hacemos el cambio de variable, dividimos por ax3 , y ya podemos suponer que ax3 = −1
ay2 z
y ay2 z = 1.
Finalmente, renombrando los coeficientes obtenemos la ecuación
y 2 z + a1 xyz + a3 yz 2 = x3 + a2 x2 z + a4 xz 2 + a6 z 3 ,
y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 (2.1)
Observación. El punto del infinito, denotado O ó ∞ se considerará situado en lo alto del eje y.
Ası́, una recta pasará por el infinito cuando sea vertical. En el desarrollo anterior, corresponde
al punto P = [0, 1, 0].
28
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Observación. Consideremos la curva elı́ptica E dada por (2.1). Veamos qué puntos de E están
en el infinito. Para ello, hacemos z = 0 y obtenemos x3 = 0, luego x = 0 y por tanto [0, 1, 0] es
el único punto de E que está en el infinito (este es nuestro punto del infinito). De esta manera se
tiene que las rectas que pasan por [0, 1, 0] son las de ecuación Ax + Bz = 0 con (A, B) 6= (0, 0),
es decir, la recta del infinito z = 0 y las que en coordenadas afines tienen la forma x = x0 , o sea,
las rectas verticales.
Proposición 2.1.4. Sea una
P curva C no singular cúbica sobre K definida por F (x, y, z) = 0 y
sea L una recta. Entonces P ∈P2 (K) ordL,P (F ) es 0, 1 ó 3.
que mantiene la recta del infinito y P0 pero cambia φ(P1 ) = [0, 1, 0]. De esta forma L, que
pasa por P0 y P1 , es L = x. Parametrizamos L como α(t) = (0, t) y sustituimos en F φ
teniendo en cuenta que la curva tiene que pasar por P1 = [0, 0, 1]. Obtenemos
29
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
• Si ayz2 6= 0, entonces
(2.5) nos dice que ordL,P1 (F ) = 1 y que también existe el punto
−ayz2
P2 = 0, , 1 ∈ L ∩ F . Puedo intercambiar los papeles de P1 y P2 , llegando a
ay2 z P
que ordL,P2 (F ) = 1. Ası́, P ∈P2 (K) ordL,P (F ) = 1 + 1 + 1 = 3.
Citamos también el Teorema de Hasse, un importante resultado que nos permite dar una
cota superior al número de puntos de una curva elı́ptica.
Teorema 2.1.5 (Hasse). Si E es una curva elı́ptica sobre el cuerpo Fq , de q elementos entonces
√
||E| − q − 1| ≤ 2 q.
Proposición 2.2.1. Sea E una curva elı́ptica definida por la ecuación (2.1). Sean P1 = (x1 , y1 )
6 ∞. Entonces P1 + P2 = P3 = (x3 , y3 ) donde
y P2 = (x2 , y2 ) puntos de E con P1 , P2 =
x3 = m2 + a1 m − a2 − x1 − x2 , y3 = −(m + a1 )x3 − b − a3 ,
siendo y −y
2 1
si P1 6= P2 ,
x2 − x1
m= 2
3x1 + 2a2 x1 + a4 − a1 y1
si P1 = P2 ,
2y1 + a1 x1 + a3
30
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
y x −y x
1 2 2 1
si P1 6= P2 ,
x2 − x1
b= 3
−x1 + a4 x1 + 2a6 − a3 y1
si P1 = P2 .
2y1 + a1 x1 + a3
Además se cumple que P + ∞ = P para cualquier P ∈ E.
Demostración. Vamos a comenzar calculando la recta que pasa por P1 y P2 , y = mx + b.
Si P1 6= P2 , podemos calcular sin ningún problema la pendiente de la recta L que une P1 con
P2 ,
y2 − y1
m=
x2 − x1
y el término independiente sustituyendo (x, y) por las coordenadas de p2 ,
y1 x2 − y2 x1
b= .
x2 − x1
Si P1 = P2 , la recta que pasa por ambos puntos es la tangente a la curva en P1 . Calculamos
dy
la pendiente m = dx derivando implı́citamente (2.1):
3x21 + 2a2 x1 + a4 − a1 y1
m= .
2y1 + a1 x1 + a3
Obtenemos la recta que queremos y = mx+b a partir de la recta tangente y −y1 = m(x−x1 ).
Despejando, y = mx + (y1 − mx1 ) y por tanto b = y1 − mx1 . Es decir,
−x31 + a4 x1 + 2a6 − a3 y1
b= .
2y1 + a1 x1 + a3
Una vez que tenemos la recta que pasa por ambos puntos, estamos en disposición de calcular
P3 . Denotemos F (x, y) = 0 a la ecuación (2.1) igualada a cero. La intersección de la curva con
la recta que pasa por P1 y P2 , y = mx + b, se obtiene haciendo F (x, mx + b) = 0. Luego las
coordenadas x de P1 , P2 y P3 serán las raı́ces de esa expresión, es decir
a2 − m2 − a1 m = −(x1 + x2 + x3 ),
y por tanto,
x3 = m2 + a1 m − a2 − x1 − x2 ,
y3 = −(m + a1 )x3 − b − a3 .
Por último, supongamos que uno de los dos puntos es ∞. Entonces la recta L que pasa por P1
y P2 = ∞ es vertical. Haciendo L∩E obtenemos P10 y calculando el simétrico con respecto al eje x,
como L es vertical, obtenemos justamente P1 , luego efectivamente P1 +∞ = P1 para todo P1 ∈ E.
31
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Veamos ahora el caso en que char(K) no es dos ni tres, siendo K el cuerpo donde está definida
la curva. Esto nos permite usar la definición de curva elı́ptica con la ecuación simplificada de
Weierstrass y obtener unas fórmulas más simples para la suma de puntos:
Proposición 2.2.2. Sea E una curva elı́ptica definida por la ecuación (2.2). Sean P1 = (x1 , y1 )
y P2 = (x2 , y2 ) puntos de E con P1 , P2 6= ∞. Entonces si x1 = x2 pero y1 6= y2 ó P1 = P2 e
y1 = 0, entonces P1 + P2 = ∞. En otro caso, P1 + P2 = P3 = (x3 , y3 ), con x3 = m2 − 2x1 ,
y3 = m(x3 − x1 ) − y1 , donde
3x21 + A
si x1 = x2 ,
m= 2y1
y2 − y1 si x1 6= x2 .
x2 − x1
Demostración. Si x1 6= x2 , podemos calcular sin ningún problema la pendiente de la recta L que
une P1 con P2 :
y2 − y1
m= ,
x2 − x1
luego la ecuación de L es y = m(x − x1 ) + y1 . Calculamos la intersección de L con la curva E
sustituyendo la ecuación de L en la de E y desarrollamos
(m(x − x1 ) + y1 )2 = x3 + Ax + B,
x3 − m2 x2 − (2m − A − 2x1 m2 )x − (m2 x21 + y12 − 2mx1 − B) = 0.
Esta ecuación no es fácil de resolver. Sin embargo, podemos usar las fórmulas de Cardano-
Vietta para calcular la raı́z que nos falta. La otras dos raı́ces son las coordenadas x de P1 y P2 .
Tenemos pues, que
x1 + x2 + x3 = −m2 (−1) = m2 ,
luego x3 = m2 − x1 − x2 y sustituyendo y3 = m(x1 − x3 ) + y1 . Finalmente, haciendo la simetrı́a
de y3 con respecto al eje x, se obtiene y3 = m(x3 − x1 ) − y1 .
Si P1 = P2 pero y1 6= 0, la recta que pasa por ambos puntos es la recta tangente. Calculamos
la pendiente de la tangente de manera usual, calculando la derivada:
y 2 = x3 + Ax + B,
dy
2y = 3x2 + A,
dx
luego,
dy1 3x2 + A
m= = 1 .
dx1 2y1
Por tanto L viene dada por la ecuación y = m(x − x1 ) + y1 . Haciendo la intersección con E:
(m(x − x1 ) + y1 )2 = x3 + Ax + B,
x3 − m2 x2 − (2m − A − 2x1 m2 )x − (m2 x21 + y12 − 2mx1 − B) = 0.
Podemos volver a utilizar Cardano Vietta, ya que aunque solo conocemos una raı́z, x1 , es una
raı́z doble. De esta manera obtenemos, ya haciendo la simetrı́a
x1 + x1 + x3 = −m2 (−1) = m2 ,
x3 = m2 − 2x1 ,
y3 = m(x1 − x3 ) − y1 .
Si x1 = x2 pero y1 6= y2 , la recta L que une P1 y P2 es vertical, luego cortará a la curva en
el infinito. Haciendo el simétrico de ∞ respecto al eje x, obtenemos el mismo punto ∞, y como
hemos considerado el ∞ en los dos extremos del eje y, tenemos que P1 + P2 = ∞.
Si P1 = P2 e y1 = 0, la recta L serı́a una recta vertical (la pendiente se hace infinita) y por
el mismo razonamiento que en el caso anterior, se obtiene que P1 + P2 = ∞.
32
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
La propiedad del elemento neutro se tiene por la definición de la suma, ya que vimos que
P + ∞ = P.
Observación. Hay que tener cuidado a la hora de calcular −P . Si P = (x0 , y0 ), y la curva viene
dada con la ecuación simplificada de Wieierstrass, −P = (x0 , −y0 ), ya que la curva es simétrica
con respecto al eje x. Sin embargo esto es muy diferente cuando se usa la ecuación generalizada
de Weierstrass. En este caso, para encontrar −P , hay que calcular la intersección de la curva con
la recta vertical que pasa por P, es decir x = x0 . Tenemos pues,
y + a1 x0 y + a3 y = x30 + a2 x20 + a4 x0 + a6 .
Esta ecuación no es fácil de resolver, pero usando Cardano-Vietta y conociendo una de las
soluciones, y0 , tenemos:
y + y0 = −a1 x0 − a3 ,
y = −a1 x0 − a3 − y0 ,
luego si P = (x0 , y0 ), se tiene que −P = (X0 , −a1 x0 − a3 − y0 ).
2.3. La asociatividad
Consideremos una curva elı́ptica E y los puntos P, Q, R ∈ E. Para evitarnos simetrı́as, en vez
de probar la igualdad (P +Q)+R = P +(Q+R), probaremos que −((P +Q)+R) = −(P +(Q+R)).
Para calcular −((P + Q) + R) (Figuras 2.2, 2.4 y 2.6) y −(P + (Q + R)) (Figuras 2.3, 2.5 y 2.7)
necesitamos calcular las rectas
l1 = P Q, m2 = ∞, P + Q, l3 = R, P + Q,
(2.6)
m1 = QR, l2 = ∞, Q + R, m3 = P, Q + R,
33
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Figura 2.4: −((P + Q) + R), con P = Q Figura 2.5: −(P + (Q + R)), con P = Q
P12 = l1 ∩ m2 = P Q ∩ ∞, P + Q = −(P + Q) ∈ E,
P13 = l1 ∩ m3 = P Q ∩ P, Q + R = P ∈ E,
P21 = l2 ∩ m1 = ∞, Q + R ∩ QR = −(Q + R) ∈ E,
P22 = l2 ∩ m2 = ∞, Q + R ∩ ∞, P + Q = ∞ ∈ E,
P23 = l2 ∩ m3 = ∞, Q + R ∩ P, Q + R = Q + R ∈ E,
P31 = l3 ∩ m1 = R, P + Q ∩ QR = R ∈ E,
P32 = l3 ∩ m2 = R, P + Q ∩ ∞, P + Q = P + Q ∈ E.
El único punto del que no podemos decir nada, es P33 . Para demostrar que este punto efecti-
vamente está en la curva, necesitaremos el concepto de orden de intersección y una serie de lemas
que nos servirán para probarlo. Luego los pasos que seguiremos para demostrar la asociatividad
serán ver que P33 ∈ E, estudiar los casos que nos podemos encontrar como que algún punto
Pij = ∞, algunas rectas mi y li sean iguales o que sean tangentes a la curva y deducir que
estemos en el caso que estemos, siempre se cumple la asociatividad.
2.3.1. Preparatorio
La clave para demostrar que P33 está en la curva es el siguiente Teorema:
Teorema 2.3.2. Sea C(x, y, z) un polinomio cúbico homogéneo que describe una curva C en
P2 (K). Sean l1 , l2 , l3 y m1 , m2 , m3 rectas en P2 (K) tales que li 6= mj para todo i, j = 1, 2, 3. Sea
Pij = li ∩ mj . Supongamos que Pij es un punto no singular en C para todo par (i, j) 6= (3, 3).
34
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Figura 2.6: −((P + Q) + R), con Q = R Figura 2.7: −(P + (Q + R)), con Q = R
Además, requerimos que si para algún i hay k ≥ 2 puntos Pi1 , Pi2 , Pi3 iguales, entonces li corte
a C con orden al menos k en ese punto, y que si para algún j hay k ≥ 2 puntos P1j , P2j , P3j
iguales, entonces mj corte a C con orden al menos k en ese punto. Con estas hipótesis, se tiene
que P33 ∈ C.
La demostración de este teorema no es nada trivial. De hecho, hemos extraı́do varios lemas
que se utilizan durante todo el desarrollo, que se enunciarán tras acabar la demostración, de
forma que sea más fácil de seguir y se tengan claros los puntos clave.
Demostración. Parametrizamos l1 de la forma (1.17). Sustituyendo en C(x, y, z) obtene-
mos C(u,e v) = C(a1 u + b1 v, a2 u + b2 v, a3 u + b3 v). Como l1 pasa por P11 , P12 , P13 , sean
[u1 , v1 ], [u2 , v2 ], [u3 , v3 ] los parámetros en l1 correspondientes a esos puntos. Como estos pun-
tos están en C, se tiene que C(u e i , vi ) = 0, para todo i = 1, 2, 3. Sea mj con ecuación
dj x + ej y + fj z = 0. Sustituyendo la parametrización de l1 en la ecuación, obtenemos la ecuación
de la intersección mj ∩l1 , m e j (u, v). Como Pij ∈ mj , se tiene que m e j (uj , vj ) = 0, j = 1, 2, 3. Como
l1 6= mj y los ceros de m e j son los puntos de mj ∩ l1 , m e j se anula solo en P1j , por tanto m e j 6≡ 0,
luego m e 1 (u, v)m e 2 (u, v)m e 3 (u, v) 6≡ 0 es un polinomio cúbico no nulo y homogéneo, que se anula
en los puntos [ui , vi ] con i = 1, 2, 3. Además, si k de los puntos Pij son los mismos, entonces k de
las funciones m e j con j = 1, 2, 3 se anulan en ese punto, luego m e 1 (u, v)m e 2 (u, v)m e 3 (u, v) se anula
con orden al menos k en dicho punto, es decir, (vi u − ui v)k divide a m e 1 (u, v)me 2 (u, v)me 3 (u, v).
Por tanto, podemos aplicar el Lema 2.3.3 tomando S = m e 1 (u, v)m e 2 (u, v)m e 3 (u, v) y R = C. e
Ası́, existe una constante α 6= 0 tal que C(u, v) = αm e e 1 (u, v)m e 2 (u, v)m e 3 (u, v). Llamemos
C1 (x, y, z) = C(x, y, z) − αm1 (x, y, z)m2 (x, y, z)m3 (x, y, z).
35
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
C1 (x, y, z) = a3 (y, z)(ax + by + cz)3 + a2 (y, z)(ax + by + cz)2 + a1 (y, z)(ax + by + cz) + a0 (y, z).
C1 (x, y, z) = a3 (y, z)(ax + by + cz)3 + a2 (y, z)(ax + by + cz)2 + a1 (y, z)(ax + by + cz),
y entonces C1 (x, y, z) = C(x, y, z) − αm1 (x, y, z)m2 (x, y, z)m3 (x, y, z) es múltiplo de l1 =
ax + by + cz. Análogamente, volviendo a aplicar el Lema 2.3.3 con S = e l1 (u, v)e
l2 (u, v)e
l3 (u, v) y
R = C y repitiendo el proceso, tenemos que C(x, y, z)−βl1 (x, y, z)l2 (x, y, z)l3 (x, y, z) es múltiplo
e
de m1 (x, y, z) para algún β ∈ K r {0}. De esta manera tenemos que
D(x, y, z) = C − αm1 (x, y, z)m2 (x, y, z)m3 (x, y, z) − βl1 (x, y, z)l2 (x, y, z)l3 (x, y, z)
Por hipótesis, P22 , P23 , P32 son ceros de C, l1 l2 l3 y m1 m2 m3 , por tanto también son ceros de
D. Veamos que D ≡ 0. Si l ≡ 0, se tiene directamente que D ≡ 0, ası́ que supongamos que l 6≡ 0,
es decir l(x, y, z) = 0 define una recta, y procedamos por reducción al absurdo:
1. P32 6= P22 : Supongamos que P32 = P22 . En este caso, ordm2 ,P22 (l1 m1 l) ≥ 2, y por el Lema
1.2.26tenemos que m2 es tangente a C en P22 . Esto obliga a que l = m2 . Vamos a verlo:
Como P12 = l1 ∩ m2 y P22 = l2 ∩ m2 , si m1 (P22 ) = 0, entonces P21 = P22 . Esto implica
que ordl2 ,P22 (C) ≥ 2 y por tanto l2 es la recta tangente a C en P22 . Por la unicidad del
Lema 1.2.26 se tendrı́a l2 = m2 , en contra de las hipótesis. Por tanto m1 (P22 ) 6= 0, luego
ordm2 ,P22 (l1 l) = ordm2 ,P22 (l1 m1 l) ≥ 2. Si l1 (P22 ) 6= 0 entonces ordm2 ,P22 (l) ≥ 2 y eso
implica que l = m2 , que es lo que querı́amos. En caso contrario, P22 ∈ l1 ∩ m2 = P12 , luego
P12 = P22 = P23 , y por tanto ordm2 ,P22 (C) ≥ 3. Como hemos probado que m1 (P22 ) 6= 0 y
estamos en la hipótesis de que l1 (P22 ) = 0 pero l1 6= m2 , entonces ordm2 ,P22 (l) ≥ 2 y por
el Lema 1.2.26, l = m2 , como querı́amos ver.
Llegados a este punto, tenemos que si P32 = P22 entonces l = m2 . Usando el Lema
(2.3.5), P23 ∈ l, m2 , l2 , m3 y por tanto P22 = P23 , lo que implica que l2 es tangente a
C en P22 . Como P32 = P22 entonces m2 es tangente a C en P22 y por la unicidad del
Lema 1.2.26, necesariamente l2 = m2 , lo que está en contradicción con las hipótesis, luego
obligatoriamente P32 6= P22 .
2. P23 6= P22 : Es análogo al caso anterior, cambiando las mi por li y viceversa.
3. P23 = P22 ó P22 = P32 : Si no fuese ası́, l y l2 serı́an ambas rectas (la única) que contienen
a P23 y P22 , y por otro lado, l y m2 serı́an rectas que contienen a P22 y P32 . Por tanto
l2 = l = m2 , en contra de las hipótesis.
De esta manera, todas las posibilidades nos han llevado a contradicciones, lo que significa
que l(x, y, z) ≡ 0 y por tanto, D ≡ 0, luego quedarı́a C = αl1 l2 l3 + βm1 m2 m3 , pero como
l3 y m3 se anulan en P33 se tendrı́a C(P33 ) = 0, con lo que concluye la prueba de este
teorema.
Pasamos a enunciar y demostrar los lemas que hemos ido utilizando en la demostración:
Lema 2.3.3. Sea R(u, v) y S(u, v) polinomios homogéneos de grado 3. Supongamos que hay tres
puntos [ui , vi ], con i = 1, 2, 3, no necesariamente distintos donde S y R se anulan. Supongamos
que si k de esos puntos son iguales, R y S se anulan con orden al menos k en ese punto, es decir
(vi u − ui v)k divide a R y S. Entonces existe una constante α tal que R = αS.
36
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Demostración. Sea [u0 , v0 ] ∈ P1 (K) cumpliendo que [u0 , v0 ] 6= [ui , vi ] para todo i = 1, 2, 3.
Por el Lema 1.2.22, S puede tener como mucho tres ceros y por tanto [u0 , v0 ] ya no puede ser
raı́z de S (serı́a una cuarta raı́z), o sea S(u0 , v0 ) 6= 0. Si consideramos α = R(u 0 ,v0 )
S(u0 ,v0 ) entonces
R(u, v) − αS(u, v) es un polinomio homogéneo cúbico que se anula en los cuatro puntos [ui , vi ],
con i = 0, 1, 2, 3 y por tanto se tiene que R − αS ≡ 0, es decir, R = αS.
Lema 2.3.4. Si Pij = Pik con i, j, k ∈ {1, 2, 3} y j 6= k, entonces ordli ,Pij (C) ≥ 2. Además,
ordli ,Pij (mj mk ) ≥ 2 y ordli ,Pij (D) ≥ 2. Análogamente, si Pji = Pki con j 6= k, entonces
ordmi ,Pji (D) ≥ 2.
Demostración. Como Pji = Pki y Pki ∈ mi tenemos que ordmi ,Pki (lj ) = ordmi ,Pki (lk ) = 1,
esto último por el Lema 1.2.26 y sabiendo que lj 6= mi 6= lk . Por tanto, sumando tenemos que
ordmi ,Pki (αlj lk li ) ≥ 2. Sabemos que ordmi ,Pki (βmj mk mi ) = ∞, ya que tenemos intersección de
mi consigo misma. Como D = C − αm1 m2 m3 − βl1 l2 l3 es suma de tres términos, que como
acabamos de ver, cada uno se anula con orden al menos dos, se tiene que ordmi ,Pki (D) ≥ 2.
Lema 2.3.5. l(P22 ) = l(P23 ) = l(P32 ) = 0
Demostración. Demostraremos que l(P23 ) = 0, los otros casos son análogos.
Vamos a ver primero que m1 (P23 )l(P23 ) = 0. Para ello, analizamos dos situaciones:
1. Supongamos primero que P13 6= P23 : Si esto ocurre, se tiene que l1 (P23 ) 6= 0, ya que
si fuese cero, se tendrı́a que P23 ∈ l1 además de que P23 ∈ l2 , m3 por definición, luego
P23 = P13 = l1 ∩ m3 y esto serı́a una contradicción. Por tanto, como D(P23 ) = 0 se tiene
que m1 (P23 )l(P23 ) = 0.
2. Supongamos ahora que P13 = P23 : En este caso se tiene que por las hipótesis del Teorema
2.3.2 que ordm3 ,P23 (C) ≥ 2 y por el Lema 1.2.26, m3 es tangente a C en P23 . Además, como
P13 = P23 , por el Lema 2.3.4 se tiene que ordm3 ,P23 (D) ≥ 2. Pero ordm3 ,P23 (l1 ) = 1, luego
usando la segunda forma de describir D, es decir D = l1 m1 l, tenemos que ordm3 ,P23 (m1 l) =
ordm3 ,P23 (D) − ordm3 ,P23 (l1 ) ≥ 1 y por tanto m1 (P23 )l(P23 ) = 0.
Como en ambos casos m1 (P23 )l(P23 ) = 0, si m1 (P23 ) 6= 0 entonces l(P23 ) = 0, y ya he-
mos terminado. Ası́ que supongamos que m1 (P23 ) = 0, es decir, P23 ∈ m1 (además de tener
P23 ∈ m3 , l2 por definición), por tanto como l2 y m1 se intersectan en un único punto, necesa-
riamente P23 = P21 , y por el Lema 2.3.4 ordl2 ,P23 (D) ≥ 2. Volviendo a usar la segunda forma de
escribir D, se tiene que ordl2 ,P23 (l1 l) ≥ 1 y por tanto l1 (P23 )l(P23 ) = 0.
Si l1 (P23 ) = 0, entonces P23 ∈ l1 , l2 , m3 , por tanto P13 = P23 , y por las hipótesis de 2.3.2,
m3 es tangente a C en P23 y P23 es un punto no singular de C, luego por el Lema 1.2.26,
necesariamente l2 = m3 que está en contradicción con las hipótesis de 2.3.2. Luego la única
opción es l1 (P23 ) 6= 0 y por tanto l(P23 ) = 0.
l1 l2 l3
m1 Q −(Q + R) R
m2 −(P + Q) ∞ P +Q
m3 P Q+R X
37
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Vamos a analizar todos los posibles casos para demostrar que la asociatividad se cumple en
todos ellos. Primero trataremos los casos triviales, donde algún punto es ∞ o los puntos son
colineales:
2. P +Q = ∞: Entonces (P +Q)+R = ∞+R = R. Por otro lado, para calcular la suma Q+R
se necesita la recta L a través de Q y R, que corta a E en −(Q + R). Como P + Q = ∞,
la reflexión de Q con respecto al eje x es P , luego la recta simétrica L0 de L, pasa por
P, −R, Q + R. La suma P + (Q + R) se calcula con la recta que pasa por P y Q + R, que es
precisamente L0 , luego el tercer punto de intersección con E es −R, y por tanto haciendo
la simetrı́a P + (Q + R) = R, y se cumple la asociatividad.
3. Q + R = ∞: Es análogo al anterior.
4. P, Q y R son colineales: En este caso la asociatividad es trivial, ya que al ser colineales
trabajamos sobre la misma recta y solo pasamos de un punto de intersección a otro.
Como el caso en que uno de los puntos P, Q, R, P +Q ó Q+R es ∞ ya ha sido estudiado, vamos
a asumir que todos los puntos de la tabla 2.1 son finitos, excepto ∞ y quizás X. Consideremos
por separado los siguientes casos:
8. l3 = m2 : Análogo al anterior.
38
EL GRUPO DE LAS CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
De esta manera, en todos los casos se obtiene que la suma es asociativa y por tanto las curvas
elı́pticas forman un grupo abeliano.
39
Capı́tulo 3
ax = b (3.1)
con x ∈ N y a, b ∈ G.
La dificultad de este problema varı́a según el grupo G que elijamos. Por ejemplo, si G es Zn ,
el problema es resolver una ecuación de congruencias del tipo ax ≡ b mod n, que no es más que
resolver la ecuación diofántica ax + ny = b utilizando el Algoritmo de Euclides.
Sin embargo, si G es el grupo de las unidades de Zn ó Fq , el problema es considerablemente más
difı́cil.
Sabemos, por la proposición 1.1.12, que F∗q es cı́clico de orden q-1. Por tanto podrı́amos pen-
sar que como F∗q ' (Zq−1 , +), el problema es igual de difı́cil en ambos. Sin embargo eso solo
serı́a cierto si conociésemos un isomorfismo f : Zq−1 −→ F∗q explı́cito para el cual pudiésemos
calcular tanto f (x) comof −1 (y) para x ∈ Zq−1 , y ∈ F∗q .
Observemos que la ecuación (3.1) tiene solución si y sólo si b está en el subgrupo cı́clico
generado por a, luego en la práctica se puede suponer que G es cı́clico y por tanto isomorfo
a (Zn , +), teniendo en cuenta lo dicho en el párrafo anterior. En resumen, la dificultad de este
problema no depende de la estructura de G, sino de la forma de presentar los elementos del grupo.
Además de todo esto, el grupo G escogido tiene que tener un algoritmo rápido de cálculo
para que los procesos criptográficos sean factibles.
Este algoritmo de exponenciación rápida unido a los rápidos cálculos de las curvas elı́pticas,
hacen que éstas cumplan ese requisito de factibilidad.
40
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
En las siguientes secciones veremos algunos de los algoritmos existentes para el cálculo del
logaritmo discreto. Algunos son más generales y funcionan en cualquier grupo que tomemos y
otros solo sirven para grupos especiales que cumplen alguna condición.
3.2. Index-Calculus
Este algoritmo no es general. Solo puede utilizarse en ciertos grupos como los grupos multipli-
cativos de los cuerpos finitos. Esta pérdida de generalidad se compensa con una mayor eficiencia,
ya que saca provecho de las particularidades de estos grupos.
La idea es calcular el logaritmo para varios primos pequeños y usar esa información para cal-
cular el logaritmo para un número aleatorio. Vamos a ver previamente que el logaritmo discreto
transforma el producto en suma, igual que ocurre con el logaritmo clásico y después veremos
qué hace este algoritmo con un ejemplo.
Sea p primo y g generador del grupo cı́clico Fp∗ . Entonces todo h ≡ 0 (mod p) puede ser
escrito de la forma h ≡ g k para cierto entero k unequı́vocamente determinado módulo p − 1.
Denotemos Lg (h) el logaritmo discreto de h respecto a g y p, es decir, Lg (h) es un entero (no
único) que cumple
g Lg (h) ≡ h (mod p).
31 ≡ 3 (mod 1217)
324 ≡ −22 · 7 · 13 (mod 1217)
325 ≡ 53 (mod 1217)
330 ≡ −2 · 52 (mod 1217)
354 ≡ −5 · 11 (mod 1217)
387 ≡ 13 (mod 1217)
41
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
Al ser F∗1216 cı́clico, F∗1216 =< g >n =< 3 >. Si factorizamos 1216, obtenemos 1216 = 26 19. Como
p
g genera Cn si y solo si g n 6= 1 para todo p|n con p primo, g 608 genera un subgrupo de orden dos.
Sin embargo, el único subgrupo de orden dos es < −1 >, luego < −1 >2 =< g 608 >2 y por tanto,
como 3 es el generador, 3608 ≡ −1 (mod p), es decir L3 (−1) = 608. De esta manera obtenemos:
La primera ecuación nos da que L3 (3) ≡ 1 (mod 1216) y aplicando el Algoritmo de Eu-
clides obtenemos de la tercera que L3 (5) ≡ 819 (mod 1216) y de la sexta que L3 (13) ≡ 87
(mod 1216). De la cuarta obtenemos L3 (2) ≡ 30 − 608 − 2 · 819 ≡ 216 (mod 1216), de la
quinta que L3 (11) ≡ 54 − 608 − L3 (5) ≡ 1059 (mod 1216) y por último, de la segunda,
L3 (7) ≡ 24 − 608 − 2L3 (2) − L3 (13) ≡ 113 (mod 1216). De esta manera conocemos todos
los logaritmos discretos de todos los elementos de la base de factores.
Una vez hecho el preprocesamiento, calculamos 3j · 37 (mod p) para varios valores aleatorios
de j hasta que obtengamos un entero que pueda ser expresado como producto de primos de B.
En nuestro caso, encontramos que
Por tanto,
L3 (37) = 3L3 (2) + L3 (7) + L3 (11) − 16 ≡ 588(mod 1216),
y obtenemos que 3588 ≡ 37 (mod 1217).
Observación. El tamaño de B es importante. Si B es muy pequeño, va a ser difı́cil encontrar
potencias de g que factoricen con primos de B y si B es muy grande, el álgebra necesaria para
resolver los logaritmos de B será impracticable. p
El tiempo de ejecución esperado de este algoritmo es exp( 2ln(p)ln(ln(p)) [31], mucho más
rápido (cuando se pueda aplicar) que los que vamos a ver a continuación.
42
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
3. Calculamos los puntos Q − jmP con j = 0, 1, ..., m − 1 hasta que uno coincida con alguno
de la lista anterior.
4. Si iP = Q − jmP , tenemos que Q = kP con k ≡ i + jm (mod N).
Este método funciona. Como m2 > N , podrı́amos asumir que la solución de kP = Q, satisface
0 ≤ k < m2 . Tomamos k = k0 + mk1 con k0 ≡ k (mod m) y 0 ≤ k0 < m, y k1 = (k − k0 )/m.
Entonces 0 ≤ k1 < m. Cuando i = k0 y j = k1 , tenemos que
Q − k1 mP = kP − k1 mP = k0 P,
El punto iP se calcula sumando P (un ”baby step”) a (i − 1)P . El punto Q − jmP se calcula
sumando −mP (un ”giant step”) a (Q − (j − 1)mP . De ahı́ el nombre.
No necesitamos conocer el valor exacto de N, solo una cota superior. Par curvas elı́pticas
√
sobre Fq podemos usar el Teorema de Hasse 2.1.5 obteniendo que m2 ≥ q + 1 + 2 q.
Ejemplo. Sea G = E(F41 ), donde E está dada por y 2 = x3 +2x+1. Sean P = (0, 1) y Q = (30, 40).
Por el teorema de Hasse 2.1.5, como el orden de G es como mucho 54, tomaremos m = 8.
(0, 1), (1, 39), (8, 23), (38, 38), (23, 23), (20, 28), (26, 9).
punto en el que nos paramos debido a que coincide con 7P . Como estamos en j = 2, tenemos
que (30, 40) = (7 + 2 · 8)P = 23P , y por tanto k = 23.
43
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
Una implementación sencilla serı́a√guardar todos los Pi hasta encontrar una coincidencia,
algo que lleva un tiempo del orden de N , igual que el algoritmo anterior. Sin embargo podemos
hacerlo mejor. La idea clave es que una vez que hay una coincidencia de dos subı́ndices que
difieren en d, todas las subsecuencias de subı́ndices que difieran en d van a coincidir también.
Esta es precisamente la periodicidad mencionada anteriormente. Por tanto, podemos calcular
pares (Pi , P2i ) para i = 1, 2, ..., pero solo guardar el par actual, no guardamos los anteriores, ya
que pueden ser calculados de la siguiente manera:
El problema reside en como elegir una función f apropiada. Aparte de que f actúe de
manera aleatoria, algo nada trivial, necesitamos ser capaces de extraer información útil de una
coincidencia. Vamos a ver como hacerlo para obtener el valor del logaritmo:
1. Dividimos G en s subconjuntos disjuntos S1 , S2 , ..., Ss de aproximadamente igual tamaño.
2. Elegimos 2s enteros aleatorios ai , bi mod N, i = 1, .., s.
3. Tomamos Mi = ai P + bi Q.
4. Definimos f (g) = g + Mi , si g ∈ Mi .
La mejor manera de interpretar f es dar un paseo aleatorio por G, donde los posibles pasos
son los elementos Mi .
6. Cuando encontramos una coincidencia Pj0 = Pi0 , entonces tenemos que uj0 P + vj0 Q =
ui0 P + vi0 Q, y por tanto (ui0 − uj0 )P = (vj0 − vi0 )Q.
7. Si mcd(vj0 − vi0 , N ) = d, tenemos que k ≡ (vj0 − vi0 )−1 (ui0 − uj0 ) (mod N/d).
Esto nos da d posibilidades para k. Normalmente d suele ser pequeño, luego podemos probar
todas las posibilidades hasta que tengamos Q = kP .
44
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
Si en vez de guardar todos los puntos P0 , P1 , ..., P58 hasta encontrar una coincidencia,
calculamos los pares (Pi , P2i ) y solo guardamos el par actual, encontramos que en i = 53 está la
coincidencia de P53 = P106 . Con esto se obtiene que
620P + 557Q = P53 = P106 = 1217P + 1131Q,
y por tanto 597P + 574Q = ∞ y ası́ k = 499, como antes.
Cuando solo hay dos puntos aleatorios inicialmente, tenemos dos paseos aleatorios que con el
tiempo tendrán un punto en común, y a partir de él serán iguales. La representación gráfica de
este proceso recuerda a la letra griega lambda, de ahı́ su nombre. Este algoritmo también suele
llamarse algoritmo del canguro, haciendo la analogı́a de que a partir de canguros domados, po-
niendo trampas, se intenta averiguar desde donde partió el canguro salvaje, la solución a nuestro
logaritmo.
Al igual
√ que el algoritmo anterior, se espera encontrar una coincidencia en un tiempo del
orden de N , pero si lo paralelizamos, el tiempo puede mejorar significativamente.
45
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
La idea de Pohlig-Hellman es encontrar k mod (qiei ) para cada i, y usar el Teorema Chino de
los Restos para combinarlos y obtener k (mod N).
con 0 ≤ ki < q. Vamos a evaluar k mod (q e ) para determinar sucesivamente k0 , k1 , ..., ke−1 . El
procedimiento es el siguiente:
N
1. Calculamos T = j | 0 ≤ j ≤ q − 1 como conjunto ordenado.
q
2. Hacemos r = 0 y Qr = Q0 = Q.
3. Mientras que r < e:
N
a) Calculamos Qr que ha de ser un elemento de T. Calculamos kr de forma que
q r+1
N
Qr sea el elemento kr + 1 de la lista T.
q
b) Hacemos Qr+1 = Qr − kr q r P.
c) r = r + 1.
De esta manera tenemos
N N
Qr = ki0 P
q r+1 q
y
Qr+1 = Qr − kr0 q r P.
Por tanto
Qr+1 = Q−(k00 +k10 q+...+kr0 q r )P = [(k0 −k00 )+(k1 −k10 )q+...+(kr −kr0 )q r +kr+1 q r+1 +...+ke−1 q e−1 ]P.
46
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
y entonces
N N N
ki0 P = i+1 Qi = ki P.
q q q
N
Y como P tiene orden q y 0 ≤ ki , ki0 < q, necesariamente ki = ki0 .
q
Ejemplo. Sea G = E(F599 ), donde E es la curva elı́ptica dada por y 2 = x3 + 1. Sean
P = (60, 19), Q = (277, 239). Puede probarse que el orden de P es N = 600, pero no es el
objetivo de este ejemplo. Queremos resolver Q = kP para algún k. La factorización en primos
de N es 600 = 23 · 3 · 52 .
Vamos a calcular k mod 8, mod 3 y mod 25, para después combinarlos y obtener k mod 600
(el teorema chino de los restos nos permite hacerlo).
N N
Q = ∞ = 0 · ( P ),
2 2
tenemos que k0 = 0 y que Q1 = Q − 0P = Q.
Como
N N
)Q1 = 150Q1 = (598, 0) = 1 · P,
(
4 2
tenemos que k1 = 1, y por tanto Q2 = Q1 − 1 · 2 · P = (35, 243).
Como
N N
)Q2 = 75Q2 = ∞ = 0 · P,
(
8 2
tenemos que k2 = 0, y por tanto k = 0 + 1 · 2 + 0 · 4 + ... ≡ 2 (mod 8).
N N
Q = (0, 598) = 2 · P,
3 3
tenemos que k0 = 2 y por tanto k ≡ 2 (mod 3).
k mod 25: Tenemos que T = {∞, (84, 179), (491, 134), (491, 465), (84, 420)}. Como
N
Q = (84, 179)
5
tenemos que k0 = 1 y por tanto Q1 = Q − 1 · P = (130, 129).
Como
N
(
)Q1 = (491, 465),
25
tenemos que k1 = 3, y por tanto k = 1 + 3 · 5 + ... ≡ 16 (mod 25).
47
EL PROBLEMA DEL LOGARITMO DISCRETO Sara N. Matheu Garcı́a
48
Capı́tulo 4
Los algoritmos simétricos son más eficientes, pues las operaciones aritmético lógicas llevadas
a cabo son de ejecución rápida en ordenadores (desplazamiento de bits, AND, OR, XOR...).
Además, sólo se necesita una clave y no necesitan de ningún tercero que certifique que una clave
pública pertenece a una cierta entidad fiable. El problema viene cuando queremos establecer la
clave común, que es lo que se conoce como distribución de claves simétricas. No podemos man-
darla sin cifrar porque cualquier persona la podrı́a ver y no habrı́a servido para nada. Tampoco
podemos asegurar quién es el autor de un mensaje, ya que ambos extremos comparten la clave.
Este problema es el que resuelven los algoritmos asimétricos, que normalmente no se utilizan
para cifrar mensajes debido a que su coste es más alto (la clave es más grande y las operacio-
nes matemáticas involucradas son más costosas), sino que se emplean para establecer la clave
simétrica de manera segura. Estos algoritmos garantizan el resto de propiedades criptográficas
que los algoritmos simétricos no pueden garantizar, como el no repudio.
49
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Las operaciones criptográficas que nos van a interesar especialmente son las de cifrado
y descifrado, intercambio de claves simétricas y firma digital (ası́ como la verificación de
dicha firma). Veamos en que consisten cada uno de ellas para más tarde centrarnos en las
particularidades de cada algoritmo.
50
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
Una vez conocidas estas operaciones básicas, para poder adentrarnos en el mundo de las curvas
elı́pticas necesitamos conocer unas nociones básicas de los algoritmos de criptografı́a asimétrica
más conocidos y utilizados, que constituyen la base de los algoritmos con curvas elı́pticas. Nos
referimos a RSA, DSA y DH.
4.2. RSA
Este algoritmo fue ideado en 1977 por Ron Rivest, Adi Shamir y Leonard Adleman (las le-
tras RSA son las iniciales de sus apellidos). Es el más empleado en la actualidad, sencillo de
comprender e implementar, aunque la longitud de sus claves es bastante considerable, ya que ha
pasado desde sus 200 bits originales a los 2048 bits que se usan actualmente. RSA es la suma
de dos de los algoritmos más importantes de la historia: el Máximo Común Divisor de Euclı́des
(Grecia, 450-377 A.C.) y el Pequeño Teorema de Fermat1 (Francia, 1601-1665).
Cada participante genera las claves necesarias que se utilizarán para cifrar y descifrar
siguiendo el siguiente procedimiento:
Elegimos dos números primos aleatorios, p y q de la misma longitud. Esto puede hacerse
mediante un test de primalidad, es decir, eligiendo números al azar, y viendo si son primos
hasta que lo consigamos.
1 Puede encontrarse el enunciado y la demostración en la bibliografı́a [5].
51
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
52
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
atacante puede usar este diccionario para descifrar el contenido del mensaje. El padding asegura
que m no caerá en el rango de textos sin cifrar inseguros, y que dado un mensaje, una vez que
este rellenado se cifrará, por lo que se incrementarı́a el diccionario haciendo intratable realizar
ese ataque. Por eso la necesidad del padding. Las funciones de padding son invertibles, luego se
puede recuperar el mensaje original disponiendo del mensaje rellenado.
4.3. DH
El algoritmo de Diffie-Hellman fue publicado en 1976 por Whitfield Diffie y Martin Hellman.
Este algoritmo permite acordar una clave secreta entre dos máquinas, a través de un canal
inseguro y enviando únicamente dos mensajes. La clave secreta resultante no puede ser
descubierta por un atacante, aunque éste obtenga los dos mensajes enviados por el protocolo. La
principal aplicación de este protocolo es acordar una clave simétrica con la que posteriormente
cifrar las comunicaciones entre dos máquinas. Actualmente se conoce que es vulnerable a ataques
de middle-in-the-man (MitM): un atacante podrı́a situarse entre ambas máquinas y acordar una
clave simétrica con cada una de las partes, haciéndose pasar por el individuo A de cara al B y
viceversa. Una vez establecidas las 2 claves simétricas, el atacante harı́a de puente entre los dos,
descifrando toda la comunicación y volviéndola a cifrar para enviársela al receptor legı́timo. Para
corregir la vulnerabilidad del protocolo, éste debe ser utilizado conjuntamente con algún sistema
que autentique los mensajes. Nosotros lo veremos posteriormente utilizado junto con las curvas
elı́pticas. Veamos como se intercambian las claves:
Tanto el emisor (A) como el receptor (B) acuerdan un primo n y g un generador de Z∗p .
Las condiciones para que este algoritmo funcione son que n sea suficientemente grande y que
(n − 1)/2 sea primo. La validez del secreto k depende de la intratabilidad del logaritmo discreto
para n grande, luego conociendo g, n, X e Y es muy costoso calcular k. El problema del logaritmo
discreto es también la base de los algoritmos de curva elı́ptica.
Observación. A pesar de que DH utilice el grupo Z∗p , este algoritmo se puede trasladar a cualquier
otro.
4.4. DSA
El algoritmo de firma digital (DSA, Digital Signature Algorithm) es un estándar del Gobierno
Federal de los Estados Unidos de América o FIPS para firmas digitales desde 1993. Lo propuso el
National Institute of Standards and Technology (NIST) en 1991. Con el certificado DSA es más
fácil estar al dı́a en cuanto a normas gubernamentales, ya que lo respaldan las agencias federales
(incluyendo el cambio obligatorio a las claves de 2048 bits). Este algoritmo (como su nombre lo
indica) sirve para firmar y no para cifrar información.
53
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
54
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
4.5. AES
AES (Advanced Encryption Standard) también conocido como Rijndael, es un esquema de
cifrado por bloques adoptado en el año 2003 como un estándar de cifrado por el gobierno
de los Estados Unido. El cifrado fue desarrollado por dos criptólogos belgas, Joan Daemen y
Vincent Rijmen, ambos estudiantes de la Katholieke Universiteit Leuven, y enviado al proceso
de selección AES bajo el nombre Rijndael”. Trabaja con bloques de 128 bits y con claves de 128,
192 y 256 bits. Dependiendo del tamaño de la clave, el número de rondas va desde 10 hasta 14.
Este algoritmo considera ciclos con cuatro transformaciones matemáticas: ByteSub (sustitución
de bytes), ShiftRow (desplazamiento de filas), MixColumns (multiplicación de columnas), y
AddRoundKey (se aplica un or-exclusivo entre los bits del texto y la llave). En el último ciclo
sólo se ejecutan las siguientes transformaciones: ByteSub, ShiftRow y AddRoundKey.
4.6. ECC
Los criptosistemas de curva elı́ptica (ECC) fueron inventados por Neal Koblitz y Victor
Miller in 1985. En las siguientes secciones veremos como se realizan las principales operaciones
criptográficas utilizando las operaciones sobre el grupo de las curvas elı́pticas.
En la tabla 4.1 pueden verse los valores actuales usuales para las claves pública y privada.
Observación. Nótese que sobre el entero d no hay más restricción que el rango [0,q-1], al contrario
que en RSA, que debı́a de ser primo. Este es principalmente el motivo por el cual la generación
de claves es más rápida en curvas elı́pticas.
55
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
56
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
ECIES
ECIES fue creado por Bellare y Rogaway y propuesto como estándar por Victor Shoup en el
año 2001. ECIES combina un mecanismo de encapsulación de la clave (KEM) con un mecanismo
de encapsulación de los datos (DEM). El sistema saca por separado una clave para cifrar y una
clave MAC a partir de un secreto compartido. Primero, los datos se encriptan simétricamente,
y después el texto cifrado se autentica con el MAC. Por último, el secreto común se encripta
usando el par de claves pública/privada. La salida de la función de cifrado es la tupla {K, C, T },
donde K es el secreto compartido cifrado, C es el texto cifrado y T es la etiqueta de autenticación.
Por tanto, ECIES necesita dos funciones hash H1 , H2 y una función de cifrado simétrico Ek
(dependiente de la clave k). Una vez que se han establecido las claves públicas y privadas de los
participantes, si A quiere mandar un mensaje a B, tendrá que hacer:
B calcula Z = KprivB R.
B calcula H1 (R, Z) y escribe la salida como k1 ||k2 .
B calcula H2 (C, k2 ). Si no es igual a t, B para y rechaza el descifrado. Y si es igual a t,
continúa.
B calcula m = Dk1 (C), donde Dk1 es la función de descifrado para Ek1 .
3 Más información en http://en.wikipedia.org/wiki/Key_derivation_function
57
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
ElGamal
Veamos como un caso representativo de la otra opción para cifrar con curvas elı́pticas, el
algoritmo de ElGamal.
A calcula e = H(m), donde H es una función hash como por ejemplo SHA-1, y lo pasa a
entero.
A calcula s = k −1 (e + KprivA r) mod n. Si s = 0, vuelve al primer paso.
Finalmente, la firma del mensaje m es (r, s).
58
CRIPTOGRAFÍA CON CURVAS ELÍPTICAS Sara N. Matheu Garcı́a
. Por tanto,
u1 G + u2 KpubA = (u1 + u2 d)G = kG
y entonces v = r, como querı́amos ver.
59
Bibliografı́a
[3] BONEH, D. (1999) “Twenty Years of Attacks on the RSA Cryptosystem” en American
Mathematical Society (AMS), Vol. 46, No. 2, p. 203-213. <http://crypto.stanford.edu/
~dabo/pubs/papers/RSA-survey.pdf> [Consulta: 4 de abril de 2015]
[4] CAMPOS, J. (2011) El algoritmo de Diffie-Hellman. <http://www.javiercampos.es/blog/
2011/07/22/el-algoritmo-de-diffie-hellman/> [Consulta: 16 de junio de 2015]
[5] CHAN, H.L. y NORRISH, M.(2013) “Proofs of Fermat’s Little Theorem” en Journal of
Formal Reasoning, Vol 6, No. 1, p. 63-87. <http://jfr.unibo.it/article/view/3728>
[Consulta: 30 de mayo de 2015]
[6] FIPS (2013). Digital Signature Standard (DSS). FIPS 186. Gaithersburg,: FIPS. <https:
//oag.ca.gov/sites/all/files/agweb/pdfs/erds1/fips_pub_07_2013.pdf>
[7] GELCA, R. (2014). “Un problema de geometrı́a combinatoria y las curvas elı́pticas”
en Universo.math, Vol 1,Núm 3, Artı́culo 5. <http://universo.math.org.mx/2014-3/
olimpiada/un-problema-de-geometria.html> [Consulta: 15 de junio de 2015]
[8] GOLDREICH, O., GOLDWASSER, S. y MICALI, S. (1986) How to cons-
truct random functions. Massachusetts: Instituto tecnológico de Massachusetts.
<http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Pseudo%
20Randomness/How%20To%20Construct%20Random%20Functions.pdf>. [Consulta: 30 de
mayo de 2015]
[9] HOLME, A. (2010). Geometry: Our Cultural Heritage, p. 321-323.
[10] HUGUET, L., RIFÀ, J. y TENA, J.G. Criptografı́a con curvas elı́pticas. Cataluña: Univer-
sidad abierta de Cataluña. p. 41-46,55-59. <http://www.exabyteinformatica.com/uoc/
Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_4).pdf> [Con-
sulta: 25 de mayo de 2015]
[11] KNAPP, A. W. (1992). Elliptic Curves, p. 38-44,75-76.
[14] MENEZES, J., MENEZES A. y VANSTONE, S.(2001). The Elliptic Curve Digital Signature
Algorithm (ECDSA). Canadá: Universidad de Waterloo. p. 24-27. <http://cs.ucsb.edu/
~koc/ccs130h/notes/ecdsa-cert.pdf>. [Consulta: 13 de abril de 2015]
60
BIBLIOGRAFÍA Sara N. Matheu Garcı́a
[18] PÉRISSÉ, M.C. (2008). Firma digital en la Web Semántica: Aplicación en la Biblioteca Di-
gital. Argentina. <http://www.cyta.com.ar/biblioteca/bddoc/bdlibros/cifrado_xml/
cifrado_xml.htm> [Consulta: 16 de junio de 2015]
[19] INFORMATION SECURITY STACK EXCHANGE. Rho. <http://goo.gl/TDhB2a>
[Consulta: 19 de junio de 2015]
[20] Portal de la Facultad de Ingenierı́a Eléctrica de la Universidad Técnica Eslovaca en
Bratislava. Proyecto ECDLP. <http://ecdlp.aspone.cz/index.html> [Consulta: 19 de
junio de 2015]
[21] Portal oficial de la NSA. <https://www.nsa.gov/ia/programs/suiteb_cryptography/>.
[Consulta: 4 de abril de 2015]
[22] PREUKSCHAT, A. (2014) Bitcoins y la criptografı́a
de curva elı́ptica. <http://www.oroyfinanzas.com/2014/01/
criptografia-curva-eliptica-bitcoin-por-que-utiliza-ecdsa/> [Consulta: 4
de abril de 2015]
61
BIBLIOGRAFÍA Sara N. Matheu Garcı́a
62