You are on page 1of 20

Revista Integracin

Escuela de Matemticas
Universidad Industrial de Santander
Vol. 24, No. 1, 2006, pg. 3150
Criptograa usando curvas hiperelpticas
Alonso Seplveda Castellanos

Resumo. Neste trabalho apresentamos propriedades das curvas hiperelp-


ticas e seus Jacobianos, visando a implementao de criptossistemas de
chave pblica. Tambm mostramos o algoritmo de Cantor para somar
pontos na variedade Jacobiana, importante para efetividade dos crip-
tossistemas, e um algoritmo para atacar o problema do logaritmo discre-
to sobre estes grupos. A intratabilidade deste problema essencial para
a segurana do criptossistema.
Abstract. In this work we present some properties of the hyperelliptical
curves and their Jacobians, aiming at the implementation of criptossys-
tems of public key. Also we show the algorithm of Cantor to add points
in the Jacobian manifold, which is important for the eectiveness of crip-
tossystems, and an algorithm to attack the problem of the discrete lo-
garithms on these groups. The untractability of this problem is essential
for the security of criptossystems.
1. Introduo
Em 1989 Koblitz [4] introduziu pela primeira vez os criptossistemas hi-
perelpticos, os quais baseiam sua segurana na resoluo do problema
do logaritmo discreto sobre o Jacobiano da curva. Introduzimos a teoria
bsica de curvas hiperelpticas e seus Jacobianos com o m de propor
grupos que sirvam para implementar criptossistemas de chave pblica.
Fixamos K um corpo perfeito de caracterstica p 0,

K seu fecho al-
gbrico e g um inteiro positivo.
0
Palavras chaves: Criptograa, Curvas Hiperelpticas, Logaritmo Discreto.
0
MSC2000: Primaria: 11T71, 11G05. Secundaria: 11G16, 94A60.
0
Bolsista do Cnpq, Instituto de Matemtica, Estatistica e Computao Cientica IMECC,
Unicamp-Brasil, e-mail: alonsosc@ime.unicamp.br.
31
32 Alonso Seplveda Castellanos
1.1. Generalidades
As curvas hiperelpticas so uma classe especial de curvas algbricas e
podem ser vistas como uma generalizao das curvas elpticas [1].
Denio 1.1. Uma curva hiperelptica H sobre K so os zeros no plano
projetivo P
2
(

K) de uma equao da forma
Y
2
Z
2g1
+h(X/Z)Y Z
2g
= f(X/Z)Z
2g+1
, (1)
onde
(1) f K[X], mnico e de grau 2g + 1;
(2) h K[X], h = 0 ou de grau no mximo g;
(3) A curva H no singular em todo ponto P = (x : y : 1).
O nmero g um invariante da curva chamado o gnero, (veja [3, p. 196]).
A condio (3) na denio acima equivalente a que o sistema
Y
2
+h(X)Y f(X) =0,
2Y +h(X) =0,
h(X)

Y f

(X) =0
no tenha soluo em

K

K. Da equao (1) temos que a curva H
intercepta a reta Z = 0 no ponto
O = (0 : 1 : 0) ,
e assim podemos considerar a H como sendo a unio deste ponto com os
zeros (X, Y )

K

K do polinmio
F = F(X, Y ) := Y
2
+h(X)Y f(X) . (2)
Se a caracterstica p maior que dois, ento o polinmio da equao
(2) pode ser considerado como F = Y
2
f(X) fazendo a mudana de
variveis: Y Y h(X)/2, com f(X) um polinmio mnico de grau
2g + 1.
Seja L um corpo tal que K L

K. O conjunto H(L) de pontos
racionais de Hsobre L est formado pelo ponto O e os zeros (x, y) LL
[Revista Integracin
Criptograa usando curvas hiperelpticas 33
do polinmio F em (2). Para K = F
q
e L = F
q
n, denotamos por n
L
o
nmero de pontos racionais de H sobre L; ento
n
L
= q
n
+ 1
g

i=1
(
i
+
i
) , (3)
onde os
i
, i = 1, . . . , g, so inteiros algbricos tal que |
i
| = q
n/2
. Temos
que

i
=
n
i
, para i = 1, . . . , g, (4)
onde os
i
e seus conjugados so razes de um polinmio com coecientes
em Z[t] da forma
h(t) = t
2g
+a
1
t
2g1
+. . .+a
g
t
g
+qa
g1
t
g1
+q
2
a
g2
t
g2
+. . .+q
g1
a
1
t+q
g
.
(5)
De (3) obtemos a chamada cota de Hasse-Weil para H(L), a saber,
|n
L
(q
n
+ 1)| 2

q
n
g .
Agora seja S
i
:= #H(F
q
i ) (q
i
+ 1). De (3) e (4) aplicados com n = i,
temos
S
i
=
g

j=1
(
n
i
+

n
i
) , para i 1 .
Assim por exemplo, da Equao (5), a
1
= S
1
, 2a
2
= S
2
+ S
1
a
1
, e em
geral temos as seguintes frmulas de recorrncia utilizando as frmulas
de Newton (ver [6, Cor. V.1.17]):
ia
i
= S
i
+
i1

j=1
S
ij
a
j
.
Vemos ento que o polinmio h(t) em (5) se determina completamente
se conhecemos S
i
para i = 1, . . . , g. Em particular, com esta informao
podemos calcular #H(F
q
i ) para i g + 1.
Sobre H est denida uma involuo : H H denida por (x, y)
(x, y h(x)) e (O) = O. Este automorsmo ser essencial para deter-
minar os divisores reduzidos sobre a o Jacobiano da curva.
Um divisor D sobre H uma soma formal de pontos de H, D =

P
v
P
(D)P, onde cada v
P
(D) um inteiro e diferente de zero somente
para um nmero nito de pontos. O conjunto sup(D) dos pontos P onde
v
P
(D) = 0 chamado de suporte de D. O conjunto de divisores de H
ser denotado por Div(H).
Vol. 24, No. 1, 2006]
34 Alonso Seplveda Castellanos
O grau de um divisor D est denido por deg(D) :=

P
v
P
(D). Para um
corpo L tal que K L

K, dizemos que D est denido sobre L, se para
todo automorsmo de Hdenido sobre L temos que D

= D. Para dois
divisores D
1
=

P
v
P
(D
1
)P, D
2
=

P
v
P
(D
2
)P Div
L
(H), denimos
mdc(D
1
, D
2
) :=

P=O
min{v
P
(D
1
), v
P
(D
2
)}P mO,
com deg(mdc(D
1
, D
2
)) = 0. Denamos
Div
0
L
(H) := Div
L
(H) Kernel(deg);
este conjunto um subgrupo de Div
L
(H).
1.2. Corpo de funes racionais
Os elementos do anel L[H] := L[X, Y ]/(F), onde (F) o ideal de L[X, Y ]
gerado por F, podem ser considerados funes polinomiais g : H P
1
(

K)
com g(P) = se e somente se P = O. Sendo F absolutamente irre-
dutvel, L[H] um domnio de integridade, e portanto est denido seu
corpo quociente L(H); este chamado o Corpo de Funes Racionais de
H sobre L. Para R L[X, Y ], denotemos por

R a sua classe em L[H].
Podemos identicar cada constante a L con a e X com

X. Seja y :=

Y .
Ento tomando classes, temos que F(X, y) = 0, isto ,
y
2
+h(X)y f(X) = 0 .
Desta forma, cada elemento de L[H] pode ser reduzido de maneira nica
para polinmios da forma
A(X) +B(X)y .
Observe que isto signica que L[H] um mdulo livre de posto dois sobre
L[X]. Finalmente, temos que L(H) = L(X, y), pois [L(H): L(X)] = 2 e
[L(H): L(y)] = 2g + 1.
Seja L =

K. Seja r

K(H), P H, P = O. Dizemos que r est denida
em P ou que r regular em P, se existem funes polinomiais R, S tais
que r = R/S e S(P) = 0; neste caso r(P) := R(P)/S(P).
No caso de que r no possa ser denido em P, este ponto dito um plo
de r, e denimos r(P) := . Se r est denido em P e r(P) = 0, P
chamado de zero de r. Observamos que r = 0 tem um nmero nito de
polos e zeros. Com efeito, os zeros P = (a
P
, b
P
) de r so os zeros de uma
[Revista Integracin
Criptograa usando curvas hiperelpticas 35
funo polinomial da forma A(X)+B(X)y, onde A, B

K[X]. Podemos
supor mdc(A(X), B(X)) = 1, logo
(A(X) +B(X)y)(A(X) B(X)(y +h(X)))
uma funo polinomial em X e portanto o nmero de coordenadas a
P
para P nito. Como A(a
P
) + B(a
P
)b
P
= 0 e B(a
P
) = 0 (do contrrio
(X a
P
) ser um divisor de A(X) e B(X)), ento b = A(a
P
)/B(a
P
).
O mesmo raciocnio serve para os plos.
1.3. Divisores principais
A cada funo racional no nula r associamos um divisor de grau zero
sobre H, chamado de divisor principal:
div(r) :=

PH
v
P
(r)P ,
onde P sup(div(r)) se e somente se P um zero ou P um polo de
r. Para P H e r = 0, v
P
(0) := +. Em

K(H) \ {0} temos que v
P
satisfaz as seguintes propriedades:
(1) v
P
(rr
1
) = v
P
(r) +v
P
(r
1
);
(2) v
P
(r + r
1
) min{v
P
(r), v
P
(r
1
)} (e temos a igualdade se v
P
(r) =
v
P
(r
1
)).
Neste caso v
P
chamada de valorao ou de ordem em P. Para r =
R/S

K(H), r = 0, v
P
(r) ser por denio v
P
(R) v
P
(S). Denotamos
o conjunto destes divisores por P
K
(H) e dizemos que dois divisores D
1
e
D
2
sobre Hso linearmente equivalentes, escrevemos D
1
D
2
, se D
1
D
2
um divisor principal.
1.4. Divisores semi-reduzidos
Um divisor de grau zero D =

P=O
v
P
(D)PmO, onde m 0, v
P
(D)
0 para todo P, chamado semi-reduzido se:
Para P tal que (P) = P, se P sup(D) ento (P) sup(D);
Se (P) = P, comP = O, v
P
(D) = 1.
Vol. 24, No. 1, 2006]
36 Alonso Seplveda Castellanos
Lema 1.2. Todo divisor de grau zero linearmente equivalente a um
divisor semi-reduzido.
Demonstrao. Temos
D =

PH
v
P
(D)P =

P,P=(P)
v
P
(D)P +

P=O,(P)=P
v
P
(D)P mO.
Seja P = (P) e denamos m
P
:= min{v
P
(D), v
(P)
(D)}. Logo
v
P
(D)P +v
(P)
(D)(P) 2m
P
O + (max{v
P
(D), v
(P)
(D)} m
P
)R,
onde R P ou (P).
Se P = (P), e n
P
:= v
p
(D) um inteiro par, temos n
P
P n
P
O; caso
contrrio se n
P
= 2n + 1, n
P
P 2nO +P.
1.5. Divisores reduzidos
Fixemos D um divisor semi-reduzido,
D =

P=(P),P=O
P +

P=(P)
v
P
(D)P mO.
D chamado reduzido se

P=O
v
P
(D) = m g, onde g o gnero de H.
Teorema 1.3. Existe um nico divisor reduzido D
1
tal que D D
1
.
A seguir mostraremos um lema que ser de grande utilidade na demons-
trao do teorema acima. Assim, seja D
1
um divisor de grau zero, pelo
lema (1.2) podemos supor que D
1
D. Para P sup(D) \ {O}, P =
(a
P
, b
P
), denamos
A = A(X) :=

P
(X a
P
)
v
P
(D)


K[X] .
Lema 1.4. Existe um nico polinmio B = B(X)

K[X] tal que:
(1) deg(B) < deg(A);
(2) Para P sup(D) \ {O}, B(a
P
) = b
P
;
(3) B
2
+Bh(X) f(X) 0 (mod A).
[Revista Integracin
Criptograa usando curvas hiperelpticas 37
Alm disso, D = div(A, B) := mdc(div(A), div(B y)). Para r

K(H),
observamos que a notao r 0 (mod A) signica que r = As onde
v
P
(s) 0.
Demonstrao. Primeiro mostramos uma verso local do lema.
Armao: Para P sup(D), P = O, existe um nico polinmio
R = R
P
(X) tal que
(i) deg(R) < v
P
(D), (ii) R(a
P
) = b
P
,
(iii) R
2
+Rh(X) f(X) 0 (mod (X a
P
)
v
P
(D)
).
Caso P = (P). Como v
P
((y b
P
)/(x a
P
)) 0, y = b
P
+ (X
a
P
)A, com nico A

K(H) tal que v
P
(A) 0. Repetindo este processo
por substitues do tipo A = (A A(P)) + A(P), obtemos uma nica
representao para y do tipo
y = b
P
+c
1
(X a
P
) +. . . +c
v
P
(D)1
(X a
P
)
v
P
(D)1
+(X a
P
)
v
P
(D)
R
1
,
onde v
P
(R
1
) 0. Logo denimos
R = R
P
(X) := b
P
+c
1
(X a
P
) +. . . +c
v
P
(D)1
(X a
P
)
v
P
(D)1
.
Este polinmio claramente satisfaz (i), (ii) e a propriedade (iii) segue
do fato que y R (mod (X a
P
)
v
P
(D)
) (observe que v((R y)/(x
a
P
)
v
P
(D)
0 pois R y = (x a
P
)
v
P
(D)
)R
1
).
Caso P = (P). Aqui v
P
(D) = 1, e temos que R = R
P
:= b
P
. Para
demonstrar a forma global do teorema, aplicamos o Teorema Chins dos
Restos em A e os R
P
, e da obtemos que existe um nico polinmio B =
B(X) tal que deg(B) < deg(A) e B(X) R
P
(mod (Xa
P
)
v
P
(D)
). Este
B claramente satisfaz (1) e (2), (3) devido ao fato de que os fatores de
A so co-primos entre si. A unicidade segue-se da prova. Finalmente
mostramos que D o mdc dos divisores div(A) e div(B y).
Seja P = (a, b) tal que P = (P); temos que v
P
(B y) 1 por (2) e
que v
P
(A) = 2. Para mostrar que de fato v
P
(B y) = 1, consideremos a
funo
N = N(X) := B
2
+Bh(X) f(X) = (B y)(B +y +h);
logo (2) implica v
P
(N) 1. Armamos que v
P
(N) = 1; para isto bastar
mostrar que N

(a) = 0. Temos N

(X) = 2BB

+B

h(X)+Bh(X)

f(X)

.
Logo, avaliando em P, usando (2) e o fato que b = b h(a), obtemos
N

(a) = bh

(a) f

(a) = 0, pois H no singular em P. Obtemos assim


que v
P
(D) = 1.
Vol. 24, No. 1, 2006]
38 Alonso Seplveda Castellanos
Seja P tal que P = (P). De (3), (Ry)(R+y +h(X)) = R
2
+Rh(X)
f(X) = Ar onde v
P
(r) 0. Logo v
P
(By) = v
P
(A) +v
P
(r), pois P no
ponto xo. Portanto, o mdc(A, By) =

P=O
v
P
(D)P mO = D.
Observao 1.5. Sejam A e B dois polinmios satisfazendo as condies
(1) e (3) do lema anterior. Ento o divisor D := mdc(div(A), div(By))
semi-reduzido.
Demonstrao. Seja P = (a
P
, b
P
) sup(div(A)). Para P = (P) e de
(3) temos que v
P
(By) = v
P
(A)+v
P
(s) onde v
P
(s) 0, logo v
P
(By)
v
P
(A) e v
(P)
(B y) = 0. Para P = (P) e da condio (3) segue-se
(B y)(P) = 0, logo v
P
(B y) 1. Armamos que v
P
(B y) = 1.
Dado
N(X) = (B y)(B +y +h) = B
2
+Bh f,
temos que N(a
P
) = 0 e N

(a
P
) = 0, pois P = O no ponto singular da
curva.
Demonstrao do Teorema 1.3. Primeiro mostramos a existncia de
este tipo de divisores. Podemos supor que D = D
0
:= D
0
0
mO um
divisor semi-reduzido do Lema 1.2 tal que

P=O
v
P
(D
0
) g +1, onde g
o gnero de H. Assim, podemos escolher P
1
, . . . , P
g+1
do suporte de D
(no necessariamente diferentes) e considerar o divisor semi-reduzido
E = E
0
:= P
1
+. . . +P
g+1
(g + 1)O.
Pelo lema anterior, existem polinmios A = A
0
e B = B
0
tal que
div(B y) = P
1
+. . . +P
g+1
+Q
1
+. . . +Q
g
(2g + 1)O.
Seja D = F
0
+P
1
+. . . +P
g+1
mO. Logo
Ddiv(By) = F
0
Q
1
. . .Q
g
(m2g1)O D
1
:= D
1
0
(m1)O,
sendo que D
1
pode ser assumido semi-reduzido. Agora a prova de existn-
cia termina por induo sobre m, pois o grau do novo divisor construdo,
no mnimo diminui em 1.
Para mostrar a unicidade destes divisores, escolhemos D
1
, D
2
divisores
reduzidos tal que D D
1
e D D
2
. Como deg(D
1
D
2
) = 0, pelo
Lema 1.2, D
1
D
2
D
3
, onde D
3
o divisor semi-reduzido obtido da
prova do lema. Seja P H tal que m := v
P
(D
1
) = n := v
P
(D
2
);
considerando D
1
D
2
ou D
2
D
1
, podemos supor que m 1 e que
algum dos seguintes casos podem ocorrer:
[Revista Integracin
Criptograa usando curvas hiperelpticas 39
(1) n = 0 e v
(P)
(D
2
) = 0;
(2) 1 n < m;
(3) 1 v
(P)
(D
2
) m.
Logo pela escolha de D
3
temos que v
P
(D
3
) 1 para todos os casos
acima. De fato, nos Casos (1) e (2) v
P
(D
3
) = (m n) 1 e no caso
(3) (P) = P; da propriedade P + (P) 2O e da construo de D
3
segue a armao. Agora como D
3
0, existe r

K(H) tal que D
3
=
div(r); pela denio de D
3
, o nico polo de r O e assim r = A(X) +
B(X)y, onde A(X), B(X)

K[X]. Para i = 1, 2, 3 escrevamos D
i
=

P=O
v
P(i)
(D
i
)P d
i
O, onde d
i
:=

P=O
v
P(i)
(D
i
). Pela denio de
divisor reduzido, d
1
g e d
2
g, pelo tanto ca claro que d
3
2g.
Mostraremos que B(X) = 0. Suponhamos que B(X) = 0; como
v
O
(A(X)) = v
O
(B(X)y), ento v
O
(r) = min{v
O
(A(X)), v
O
(B(X)y}.
Daqui temos que v
O
(B(X)y) < v
O
(A(X)), pois do contrrio
2deg(B(X)) (2g + 1) v
O
(A(X)) = v
O
(r) = d
3
2g,
o qual falso. Assim temos,
v
O
(B(X)) (2g + 1) = v
O
(r) = d
3
e da d
3
2g + 1 + 2deg(B(X)), o que no verdade; portanto r = A(X)
com deg(A(X)) 1. Tome Q = (a, b) H tal que A(a) = 0, logo pela
denio de (Q), temos que Q, (Q) sup(D
3
), o qual contraditrio
com a denio de D
3
. Logo conclumos que D
1
= D
2
.
2. O Jacobiano de H
O Jacobiano J = J
H
de H o grupo quociente
Div
0
/P ,
onde Div
0
= Div
0
H
o grupo de divisores de grau zero sobre H e P = P
H
o subgrupo de divisores principais de Div
0
.
2.6. Pontos racionais do Jacobiano
Para aplicaes criptogrcas usando o mtodo Die-Hellman ou ElGa-
mal, de interesse o estudo de subgrupos nitos do Jacobiano da curva
Vol. 24, No. 1, 2006]
40 Alonso Seplveda Castellanos
hiperelptica escolhida. Em nosso caso, consideraremos subgrupos nitos
do Jacobiano da curva denida sobre K = F
q
. um fato que J est
tambm denido sobre K. Seja L uma extenso nita de K e D um divi-
sor denido sobre L. Pelo Teorema 1.3 existe um nico divisor reduzido
D
1
=

P
v
P
(D
1
)P tal que D D
1
, e pela deninio de divisor reduzido
temos que

P
v
P
(D
1
) g, onde g o gnero da curva. Assim, existe
um nmero nito de possibilidades para obter divisores reduzidos, logo
obtemos um nmero nito de elementos do Jacobiano. Seja K := F
q
,
L = F
q
n e N
L
:= #J
L
(H). Se sabe que N
L
pode-se calcular a partir dos
inteiros
i
em (3). De fato temos [6, Theorem. V1.15]
N
L
=
g

i=1
(1
i
)(1
i
) . (6)
Logo, usando que |
i
| = q
n/2
, se obtm:
(q
n/2
1)
2g
N
L
(q
n/2
+ 1)
2g
.
Exemplo 2.1. Consideremos a curva H denida pelo polinmio
F(X, Y ) := Y
2
+Y X
3
X = 0, ento para L = F
n
q
temos que:
N
L
:= #J
L
(H) =

2
2n
+ 2
n
+ 1 se n 1, 5 (mod 6),
(2
n
+ 2
n/2
+ 1)
2
se n 2, 4 (mod 6),
(2
n
1)
2
se n 3 (mod 6),
(2
n/2
1)
4
se n 0 (mod 6).
Seja L =

K. Pelo Teorema 1.3, a cada classe [D] J
K
lhe corresponde
um nico divisor reduzido D
R
. De fato o mapa [D] D
R
dene um
sistema completo de representantes para os elementos de J
K
(H).
2.7. Soma de Divisores no Jacobiano
Aqui apresentaremos o algoritmo de Koblitz [4], que uma generalizao
dos algoritmos de Cantor [2] para computar ecientemente a soma de
divisores reduzidos no J
L
(H), o qual s fez para o caso em que a carac-
terstica do corpo era diferente de dois e h(X) = 0. A seguir descrevemos
em forma geral estes algoritmos.
Algoritmo 1. Dados dois divisores D
1
, D
2
J
Fq
(H) semi-
reduzidos, ao aplicar o algoritmo este devolve um divisor D
0
semi-
reduzido, equivalente ao divisor D
1
+D
2
.
[Revista Integracin
Criptograa usando curvas hiperelpticas 41
Algoritmo 2. Dado um divisor semi-reduzido D
0
de grau
0
, ao
aplicar o algoritmo, este devolve um divisor D semi-reduzido tal que
D
0
D e <
0
, onde o grau de D. Aplicando sucessivamente
este algoritmo achamos um divisor reduzido equivalente a D
0
.
A seguir os passos a efetuar para cada algoritmo:
Algoritmo 1. Sejam D
1
= div(A
1
, B
1
) e D
2
= div(A
2
, B
2
) divisores
semi-reduzidos sobre a curva Y
2
+ h(X)Y = f(X) denidos sobre K,
onde h, f K[X] e A
1
, B
1
, A
2
, B
2
K[X]. A seguir, descrevemos os
passos formalmente para aplicar este algoritmo.
(1) Usando o algoritmo de Euclides sobre K[X], achamos d
1
, e
1
, e
2

K[X] tal que
d
1
= mdc(A
1
, A
2
) e d
1
= e
1
A
1
+e
2
A
2
.
(2) Usando outra vez o algoritmo de Euclides, achamos d, c
1
, c
2
K[X]
tal que
d = mdc(d
1
, B
1
+B
2
+h) e d = c
1
d
1
+c
2
(B
1
+B
2
+h).
(3) Sejam s
1
= c
1
e
1
, s
2
= c
2
e
2
e s
3
= c
2
; ento temos que
d = s
1
A
1
+s
2
A
2
+s
3
(B
1
+B
2
+h). (7)
(4) O divisor D

= div(A, B) o divisor semi-reduzido equivalente a


D
1
+D
2
, tal que
A

= A
1
A
2
/d
2
, (8)
e
B

=
s
1
A
1
B
2
+s
2
A
2
B
1
+s
3
(B
1
B
2
+f)
d
(mod A) . (9)
A seguir, mostramos que o divisor D

acima, um divisor semi-reduzido


e equivalente a D
1
+D
2
. A prova est dividida em trs partes:
Mostremos que A

e B

so funes polinomiais. Claramente A

uma funo polinomial, pois d divide A


1
e A
2
; ento d
2
divide A
1
A
2
.
Usando a equao (7), podemos escrever
B

=
s
1
A
1
B
2
+s
2
A
2
B
1
+s
3
(B
1
B
2
+f)
d
Vol. 24, No. 1, 2006]
42 Alonso Seplveda Castellanos
como sendo
B
2
(d s
2
A
2
s
3
(B
1
+B
2
+h)) +s
2
A
2
B
1
+s
3
(B
1
B
2
+f)
d
=
B
2
+
s
2
A
2
(B
2
B
1
) s
3
(B
2
2
+B
2
h) f
d
.
Pela denio de D
2
temos que A
2
divide B
2
2
+ B
2
h f, logo B

tambm uma funo polinomial.


Agora mostramos que D

= div(A

, B

) um divisor semi-reduzido.
Seja
B

=
s
1
A
1
B
2
+s
2
A
2
B
1
+s
3
(B
1
B
2
+f)
d
+sA

,
com s K[X]. Subtraindo y a cada lado temos que
(B

y) =
s
1
A
1
B
2
+s
2
A
2
B
1
+s
3
(B
1
B
2
+f) yd
d
+sA

=
s
1
A
1
(B
2
y) +s
2
A
2
(B
1
y) s
3
(B
1
y)(B
2
y)
d
+sA

,
e como (B

y)(B

y) = (B

y)(B

+y +h) = B
2
+B

hf, ento
podemos ver que para A

dividir B
2
+ B

h f, suciente mostrar
que o produto A
1
A
2
divide o produto de
s
1
A
1
(B
2
y) +s
2
A
2
(B
1
y) s
3
(B
1
y)(B
2
y)
com
(s
1
A
1
(B
2
y) +s
2
A
2
(B
1
y) s
3
(B
1
y)(B
2
y));
isto imediato, pois A
1
divide B
2
1
+B
1
hf = (B
1
y)(B
1
y) e A
2
divide B
2
2
+B
2
h f = (B
2
y)(B
2
y). Portanto, pela Observao
(1.5) o div(A

, B

) um divisor semi-reduzido.
Por ltimo, mostramos que D

D
1
+ D
2
. Seja P = (a, b) H(L).
Temos dois casos a considerar:
(1) Se P = (P).
(1.a) Suponhamos que v
P
(D
1
) = m
1
,v
(P)
(D
1
) = 0, v
P
(D
2
) = m
2
e
v
(P)
(D
2
) = 0, onde m
1
, m
2
0. Logo, v
P
(B
1
y) m
1
e
v
P
(B
2
y) m
2
. Se m
1
= 0 ou m
2
= 0, ento v
P
(d
1
) = 0,
[Revista Integracin
Criptograa usando curvas hiperelpticas 43
implicando que v
P
(d) = 0 e v
P
(A

) = m
1
+ m
2
. Se m
1
, m
2
1,
ento temos que (B
1
+ B
2
+ h) = 2a + h(a) = 0, logo v
P
(d) = 0
e v
P
(A

) = m
1
+m
2
; da equao (9) segue que
v
P
(B

y) min{m
1
+m
2
, m
2
+m
1
, m
1
+m
2
} = m
1
+m
2
.
Portanto, v
P
(D

) = m
1
+m
2
.
(1.b) Suponha que v
P
(D
1
) = m
1
e v
(P)
(D
2
) = m
2
, onde m
1
m
2

1. Ns temos que v
P
(A
1
) = m
1
, v
P
(a
2
) = m
2
, v
P
(D
1
) = m
2
,
v
P
(B
1
y) m
1
, v
P
(B
2
y) = 0 e v
(P)
(B
2
y) m
2
. A
ltima desigualdade implica que v
P
(B
2
+ h + y) m
2
e daqui
v
P
(B
1
+B
2
+ h) m
2
ou (B
1
+B
2
+h) = 0. Logo, v
P
(d) = m
2
e v
P
(A

) = m
1
m
2
. Da equao (9) temos
v
P
(B

y) min{m
1
+ 0, m
2
+m
1
, m
1
+ 0} m
2
= m
1
m
2
.
Portanto v
P
(D

) = m
1
m
2
.
(2) Se P = (P).
(2.a) Suponhamos que v
P
(D
1
) = 1 e v
P
(D
2
) = 1. Ento, v
P
(A
1
) = 2,
v
P
(A
2
) = 2 e v
P
(d
1
) = 2. Temos que (B
1
+ B
2
+ h)(a) = 2b +
h(a) = 0, logo v
P
(B
1
+B
2
+h) 2 ou (B
1
+B
2
+h) = 0; ento
v
P
(d) = 2 e v
P
(A

) = 0. Portanto, v
P
(D

) = 0.
(2.b) Suponhamos que v
P
(D
1
) = 1 e v
P
(D
2
) = 0, logo v
P
(A
1
) = 2,
v
P
(A
2
) = 0. Daqui temos v
P
(d
1
) = v
P
(d) = 0 e v
P
(A

) = 2.
Como v
P
(A
2
) = 0, e da equao (9) temos v
P
(B

y) 1, da
equao (9) podemos dizer que v
P
(B

y) 2 s se v
P
(s
2
A
2
+
s
3
(B
2
y)) 1. Se isto acontece, ento v
P
(s
2
A
2
+s
3
(B
2
+h+y))
1 (ou s
2
A
2
+ s
3
(B
1
+ B
2
+ h) = 0). Isto implica que da equao
(7) v
P
(d) 1, contradio. Logo v
P
(B

y) = 1, e portanto
v
P
(D

) = 1.
Exemplo 2.2. Consideremos a curva hiperelptica H denida por Y
2
+
(X
2
+X)Y = X
5
+X
3
+1, de gnero 2 sobre o corpo F
2
5 = F
2
[X]/(X
5
+
X
2
+ 1).
(1) Sejam P = (
30
, 0), (P) = (
30
,
16
), Q
1
= (0, 1) e Q
2
= (1, 1),
onde um gerador do subgrupo multiplicativo de F
2
5. Denamos
os divisores reduzidos D
1
= P + Q
1
2O e D
2
= (P) + Q
2
2O.
Primeiro achamos os polinmios A
1
, B
1
, A
2
, B
2
F
2
5[X] tais que
D
1
= div(A
1
, B
1
) e D
2
= div(A
2
, B
2
). Ento temos que A
1
=
Vol. 24, No. 1, 2006]
44 Alonso Seplveda Castellanos

Psup(D1)
(X a
P
)
v
P
(D1)
, logo A
1
= X(X +
30
). Usando as
condies do lema (1.4), obtemos B
1
= X + 1. Anlogamente,
temos que A
2
= (X+
30
)(X+1) e B
2
=
23
X+
12
. A seguir, apli-
camos o Algoritmo (1) para achar o divisor semi-reduzido equivalente
soma de D
1
e D
2
. Logo, calculamos d
1
= mdc(A
1
, A
2
) = X +
30
tal que
d
1
= A
1
+A
2
e d = mdc(d
1
, B
1
+B
2
+h) = X +
30
,
assim d = d
1
. Ento,
A

= A
1
A
2
/d
2
= X(X + 1), e B

1 (mod A

).
Dos polinmios acima, segue-se
div(A

) = 2Q
1
+ 2Q
2
4O
e
div(B

y) = div(y + 1) = Q
1
+Q
2
+
3

i=1
P
i
5O,
onde P
i
= Q
1
, Q
2
. Portanto, D

= div(A

, B

) = Q
1
+Q
2
2O.
(2) Sejam D
1
= P + Q
1
2O e D
2
= Q
1
+ Q
2
2O. Ento D
1
=
div(A
1
, B
1
) e D
2
= div(A
2
, B
2
) onde A
1
= X(X+
30
), B
1
= X+1,
A
2
= X(X + 1) e B
2
= 1. Logo, como d = d
1
= X, obtemos
A

= (X +
30
)(X + 1), e B


14
X +
13
(mod A

) .
Daqui,
div(A

) = 2Q
2
+P +(P) 4O
e
div(B

y) = Q
2
+P +
3

i=1
P
i
5O, tal que P
i
= Q
2
, P, (P),
portanto, D

= div(A

, B

) = Q
2
+P 2O.
Algoritmo 2. Seja D

= div(A

, B

) um divisor semi-reduzido; o proce-


dimento a seguir acha um divisor D = div(A, B) reduzido e equivalente a
D

tal que deg(A) < deg(A

). Aplicando sucessivamente este algoritmo,


achamos um divisor reduzido

D = div(a,

b) equivalente a D

tais que
dega g. Ento,
A = (f hb b
2
)/A

(10)
[Revista Integracin
Criptograa usando curvas hiperelpticas 45
e
B = (h B) (mod A); (11)
se c o coeciente lder de A, ento A = c
1
A. A seguir, mostramos que
o Algoritmo (2) devolve um divisor equivalente a D

e de menor grau.
(1) Mostremos que deg(A) deg(A

). Seja m = deg(A

), e n = deg(B

),
onde m > n e m g + 1. Logo deg(A) = max{2g + 1, 2n} m.
Se m = g + 1, ento deg(A) = g < deg(A

). Se m > g + 1, ento
max{2g + 1, 2n} 2(m1), logo deg(A) (m2) deg(A

).
(2) D = div(A, B) um divisor semi-reduzido. De (10) f B

hB
2
=
AA

, ento passando mdulo A a ambos lados e aplicando (11) temos


que
f + (B +h)h (B +h)
2
0 (mod A).
Simplicando ca f Bh B
2
0 (mod A). Portanto A divide
(f BhB
2
), e aplicando o Lema 1.4 conclumos que D = div(A, B)
um divisor semi-reduzido.
(3) Escrevamos o divisor D

da seguinte forma:
D

P=(P)
n
P
P +

P=(P)
P mO.
Pela prova do lema (1.4) podemos escrever
div(A

) =

P=(P)
n
P
P +

P=(P)
n
P
(P) +

P=(P)
2P ()O,
div(B

y) =

P=(P)
m
P
P +

P=(P)
P +

PH

s
P
P ()O,
onde m
P
n
P
, s
P
1 e H

= H\(sup(D

){(P) : P sup(D

)}
{O}). Como (B
2
+B

h f) = (B

y)(B

+y +h), temos que


div(B
2
+B

h f) =

P=(P)
m
P
P +

P=(P)
m
P
(P)+

P=(P)
2P +

PH

s
P
P +

PH

s
P
(P) ()O;
Vol. 24, No. 1, 2006]
46 Alonso Seplveda Castellanos
assim, usando a equao (10) temos
div(A) = div(B
2
+B

h f) div(A

) =
=

P=(P)
t
P
P +

P=(P)
t
P
(P) +

PH

s
P
P +

PH

s
P
(P) ()O,
onde t
P
= m
P
n
P
. Como B = h B

+ sA, onde s K[X],


para P = (a, b) sup(div(A)), temos que B(a) = h(a) B

(a) +
s(a)A(a) = h(a) b. Ento
div(B y) =

P=(P)
r
P
(P) +

PH

w
P
(P) +

H
z
P
P ()O,
onde r
P
t
P
, w
P
s
P
e

H o conjunto H\ sup(div(By)). Logo,
div(A, B) =

P=(P)
t
P
(P) +

PH

s
P
(P) ()O

P=(P)
t
P
P

PH

s
P
P ()O
= D div(B

y) .
Portanto D D

. Notemos que o divisor D = div(A, B) reduzido


se e somente se deg(A) g, onde g o gnero da curva.
Exemplo 2.3. Seja a curva H : Y
2
+ (X
2
+ X)Y = X
5
+ X
3
+ 1 de
gnero 2 denida sobre F
2
5. Consideremos o divisor semi-reduzido D

=
(0, 1) +(1, 1) +(
5
,
15
) 3O. Ento D

= div(A

, B

), onde A

= X(X+
1)(X+
5
) e B

=
17
X
2
+
17
X+1. Agora, calculamos os polinmios A
e B tais que D = div(A, B) o divisor reduzido equivalente a D

. Ento,
A = (X +
28
)(X +
29
) , e B
23
X +
21
(mod A) .
Logo,
div(A) = (
28
,
7
) + (
28
,
16
) + (
29
, 0) + (
29
, ) 4O
e,
div(B +y) = (
28
,
7
) + (
29
, 0) +
3

i=1
P
i
5O.
Portanto D = div(A, B) = (
28
,
7
) + (
29
, 0) 2O.
[Revista Integracin
Criptograa usando curvas hiperelpticas 47
Exemplo 2.4. Considerando a curva H denida por
Y
2
+XY = X
5
+ 5X
4
= 6X
2
+X + 3,
de gnero 2 sobre o corpo F
7
, seja o divisor semi-reduzido
D

= div(A

, B

) = div(X
7
+ 2X
6
+ 3X
5
+ 6X
3
+ 4X + 5,
5X
6
+ 5X
5
+ 6X
4
+ 4X
3
+ 5X
2
+ 4).
Achemos o divisor reduzido D equivalente a D

. Aplicando o Algoritmo
(2) a D

obtemos o divisor
D

1
= div(A

1
, B

1
) = div(x
5
+ 6x
3
+ 6x
2
+ 6x + 1, 3x
4
+ 6x
2
+ 6x + 1).
Como o grau de A

1
e 5 g = 2 o gnero da curva, ento continuamos
aplicando o algoritmo at ter um divisor reduzido. Assim,
D = div(A, B) = div(x
2
+x + 5, 4x + 4) .
3. Criptossistemas usando curvas hiperelpticas
A implementao de novos grupos em criptossistemas de chave pblica
que baseiam a segurana no problema do logaritmo discreto (por exem-
plo, Die-Hellman e ElGamal) cada vez mais importante para lograr
um nvel maior de segurana. O Jacobiano de curvas hiperelpticas
um grupo com as caractersticas adequadas para aplicar na criptograa
baseado tambm na intratabilidade deste problema.
Denio 3.1. O Problema do logaritmo Discreto sobre o Jacobiano
de Curvas Hiperelpticas J
H
(F
q
n) (HECDLP) denido, dados dois di-
visores D
1
e D
2
sobre F
q
n, como o problema de determinar um inteiro
m, se existe, tal que [D
2
] = m[D
1
] em J
H
(F
q
n), ou equivalentemente,
mD
1
D
2
P
H
(F
q
n).
Assim, podemos denir em forma natural o sistema de troca de chaves
Die-Hellman entre os usurios A e B, sobre o Jacobiano de uma curva
hiperelptica denida em um corpo nito. Os parmetros pblicos so: o
corpo nito F
n
q
, a equao da curva hiperelptica H e um elemento base
D
0
J
H
(F
q
n). A escolhe um inteiro m
A
, sua chave privada e envia
para B o ponto m
A
D
0
; anlogamente, B envia m
B
D
0
, onde B sua
chave privada. Logo o segredo compartilhado ser o divisor m
A
m
B
D
0

J
H
(F
q
n).
Vol. 24, No. 1, 2006]
48 Alonso Seplveda Castellanos
Uma condio importante para a escolha de uma curva hiperelptica est
relacionada com a diculdade de resolver o problema do logaritmo discreto
sobre seu Jacobiano. Assim, a seguir mostramos o ataque Index-Calculus
para o problema do logaritmo discreto.
3.8. Ataque Index-Calculus para resolver o HECDLP
O Index-Calculus [7] tem sido aplicado satisfatoriamente em vrios pro-
blemas criptogrcos interessantes, incluindo o DLP para corpos nitos.
Esta mesma ideia pode ser usada para o DLP no Jacobiano J
H
(F
q
n)
de uma curva hiperelptica H de gnero g denida sobre K = F
q
. No
que segue, D
1
J
H
(F
q
), D
2
[D
1
], e queremos determinar m tal que
[D
2
] = m[D
1
] ou m = log
D1
D
2
. (1) O primeiro passo computar a es-
trutura de J
H
(F
q
) como soma direta de subgrupos cclicos, e se procuro
representaes de D
1
e D
2
sobre esta soma direta; logo para resolver o
DLP simplesmente aplicamos o Teorema Chins dos Restos Generalizado.
Para descrever o mtodo, introduzimos algumas denies.
Denio 3.2. Seja D = div(A, B) um divisor semi-reduzido sobre H.
Dizemos que D um divisor primo se o polinmio A irredutvel sobre
F
q
, o corpo base de H.
Seja A K[X] um polinmio irreduttivel e uma raiz de A. Dizemos
que Y
2
+h(X)Y f(X) separvel (mod A), se Y
2
+h()Y f() tem
duas razes distintas em K().
Denio 3.3. O polinmio A dito separvel se A no divide f(X) e
Y
2
+ h(X)Y f(X) separvel (mod A).
Denio 3.4. O polinmio A dito ramicado se A divide f.
Chamamos um primo r
P
K(H) separvel ou ramicado respectiva-
mente, se este est sobre A K(X) que separvel ou ramicado. Para
D J
H
(F
q
) tal que D = div(A, B), podemos escrever este como a soma
de divisores primos da forma D
i
= div(A
i
, B
i
), onde os A
i
so fatores
primos de A. Seja t um inteiro chamado a cota de smoothness.
Denio 3.5. Um divisor dito t-smooth se todos seus divisores primos
so de grau menor ou igual a t.
Quando t = 1, um divisor 1-smooth ser um divisor para o qual o poli-
nmio A completamente separvel sobre F
q
.
[Revista Integracin
Criptograa usando curvas hiperelpticas 49
Seja S = {P
1
, . . . , P
n
} a base fator onde P
i
= div(A
i
, B
i
) so todos os
divisores primos ramicados e separveis tal que deg(A
i
) t para algum
t Z. Se A
i
sepravel, ento unicamente um dos divisores primos sobre
A
i
, div(A
i
, B
i
) ou div(A
i
, B
i
h), est em S.
O primeiro passo do algoritmo achar m > n, t-smooth divisores princi-
pais tal que se tenha a relao

j

j
P
j
O. Se S gera J
H
(F
q
), ento a
aplicao
: Z
n
J
H
(F
q
) onde (
1
, . . . ,
n
)

j
P
j
um homomorsmo sobrejetivo, logo J
H
(F
q
)

= Z
n
/Ker(). Cada relao
um elemento

i
= (
i1
, . . . ,
in
) Ker(), e se o conjunto de m relaes
forma um sistema completo de geradores do Ker(), ento
J
H
(F
q
)

= Z/d
1
Z . . . Z/d
n
Z
tal que (d
1
, . . . , d
n
) so os elementos da forma normal de Smith (SNF) da
matriz relao A = (

1
. . .

m
) onde os
i
esto escritos como colunas.
Geradores X
i
de cada subgrupo Z/d
i
Z podem ser calculados achando as
matrizes T = (T
ij
) e Q = (Q
ij
) tal que T
1
AQ = SNF(A), e fazemos
X
i
=

n
j=1
T
ij
P
j
.
O segundo passo do algoritmo achar representaes de D
1
e D
2
em
Z/d
1
Z . . . Z/d
n
Z. Se D
1
e D
2
podem ser fatorados sobre S como
D
1

r
i
P
i
e D
2

s
i
P
i
, ento podemos escolher D
1
=

i
X
i
e D
2
=

i
X
i
onde (r

1
, . . . , r

n
) = P
1
(r
1
, . . . , r
n
)
T
e (s

1
, . . . , s

n
) =
P
1
(s
1
, . . . , s
n
)
T
. Assim, obtemos as representaes de D
1
= (r

1
, . . . , r

n
)
e D
2
= (s

1
, . . . , s

n
) emZ/d
1
Z. . .Z/d
n
Z, logo o DLP pode ser resolvido
usando o Teorema Chins dos Restos generalizado para achar m Z
tal que as congruncias r

i
ms

i
(mod d
i
), onde 1 i n, sejam
simultaneamente satisfeitas.
(2) O segundo mtodo melhora o primeiro quando #J
H
(F
q
) conhecido.
Como acima, seja S = {P
1
, . . . , P
n
} a base fator com todos os divisores
primos de grau menor o igual que t. As relaes so achadas por tentativas
para fatorar divisores da forma rD
1
+sD
2
sobre S. Cada divisor t-smooth
leva a uma relao da forma r
i
D
1
+ s
i
D
2
Q
i
=

j

ij
P
j
. Quando
tem sido achados n +1 relaes diferentes, aplicamos o mdulo #J
H
(F
q
)
para encontrar uma combinao linear no trivial da forma

n+1
i=1

i

i
=
(0, . . . , 0), o qual implica que

n+1
i=1

i
Q
i
= 0. Logo,

n+1
i=1

i
(r
i
D
1
+
s
i
D
2
) = 0 e log
D1
D
2
= (

i
r
i
)/(

i
s
i
) (mod #J
H
(F
q
)).
Vol. 24, No. 1, 2006]
50 Alonso Seplveda Castellanos
Referenzas
[1] I. Blake, G. Seroussi, N. Smart. Elliptic Curves in Cryptgraphy. London
Mathematical Society Lecture Note series, 265, Cambrigde, 1999.
[2] D. Cantor. Computing in the jacobian of a hiperelliptic curve. Math.
Comp. 48, 95101, 1987.
[3] W. Fulton. Algebric Curves. Benjamin, New York, 1969.
[4] N. Koblitz. Hyperelliptic cryptosystems. Journal Criptology 1, 139150,
1989.
[5] N. Koblitz. Algebraic Aspects of Cryptography. Springer-Verlag, Berlin-
Heidelberg-New York, 1998.
[6] H. Stichtenoth. Algebraic Function Fields and Codes. Springer-Verlag,
Berlin, Heidelberg, 1993.
[7] N. Thriault. Index Calculus attack for hyperellptic curves os small genus,
2003. (http://www.math.toronto.edu/ganita/publications.html)
Alonso Seplveda Castellanos
Bolsista do Cnpq
Instituto de Matemtica, Estatistica e Computao Cientica IMECC
Unicamp-Brasil.
e-mail : alonsosc@ime.unicamp.br
[Revista Integracin