Você está na página 1de 83

Universidade Estadual de Campinas

Departamento

Dissertao de Mestrado

CRIPTOGRAFIA USANDO CURVAS


HIPERELPTICAS
por

Alonso Seplveda CasteHanos


Mestrado em Matemtica - Campinas - SP

Orientador: Pro f. Dr. Fernando Eduardo Torres Orihuela

Este trabalho contou com apoio financeiro do CNPq.

CRIPTOGRAFIA USANDO CURVAS


HIPERELPTICAS

Este exemplar corresponde redao final da dissertao devidamente corrigida


e defendida por Alonso Seplveda
Castellanos e aprovada. pela comisso
julgadora.

Campinas, 12 de Maro de 2004.

Prof.

Torres Orihuela

Banca examinadora:

Prof. Dr. Fernando E. Torres Orihuela.


ProL Dr. Paulo Henrique Viana.
Prof. Dr. Paulo Roberto Brumatti.

Dissertao apresentada ao Instituto de


Matemtica. Estatstica e Computao
Cientfica,

como requisito

parcial para obteno do ttulo de


Mestre em Matemtica.

FICHA CATALOGRFICA ELABORADA PELA


BffiLIOTECA DO IMECC DA UNICAMP

Castellanos, Alonso Seplveda


Criptografia usando curvas hiperelipticas/Alonso Seplveda
Castellanos- Campinas, [S.P. :s.n.], 2004.
Orientador :Fernando Eduardo Torres Orihuela
Dissertao (mestrado) - Universidade Estadual de Campinas,
Instituto de Matemtica, Estatstica e Computao Cientfica.
!.Criptografia. 2.Curvas algbricas. 3.Logaritmos. !. Torres
Orihuela, Fernando Eduardo. ll. Universidade Estadual de Campinas.
Instituto de Matemtica, Estatstica e Computao Cientfica. lll.
Ttulo.

Dissertao de Mestrado defendida em 12 de maro de 2004 e aprovada pela Banca


Examinadora composta pelos Profs. Drs.

Prof (a). Dr (a). FE

O EDUARDO TORRES ORIHUELA

HENRIQUE VIA"'<A DE BARROS

Prof (a). Dr (a). PAULO ROBERTO BRUMATTI

Ao meu DEUS
Aos meus pes JOSE ALONSO E YOLANDA
Ao (0, 12, 14, 17)

Agradecimentos

A toda minha famlia na Colmbia.


Aos senhores da casa onde estou morando Mario e Lucia, pela companhia e ambente
familiar que tem compartilhado comigo durante me estadia no BrasiL
A minha igreja por tudo o que tem-me ensinado.
Ao Thyago e Elder, duas pessoas que tem estado mais perto de mi, apoiandome e orientandome para fazer o melhor.
Ao meu orientador e amigo Fernando Torres pelo apoio para conseguir esta nova escada
na vida.
Aos meus amigos da facultade Adriana, Germano, Rodolfo, Laercio e todos os que tem
compartilhado comigo, directa ou indirectamente.
Aos Ednaldo, Cidinha e Tnia pelos seus relacionamentos implcitos comigo.
Aos professores que tive aula, pelo que aprendi ao igual que aos professores da banca por
seus comentarias sobre a teses .

.......... Todos fazem parte da minha lenda de vida, nunca os esquecere ......... .

lV

Abstract

In 1989, Koblitz introduced by

first time the hyperelliptic cryptosystems, which

based their security on the resolution of the discrete logarithm problem on

Jacobian of

a hyperellptic curve. In this article, Koblitz generalized the algorithm to add points in the
Jacobian presented by Cantor in 1987.
At this dissertaton, we study properties of the hyperellptic curves and its Jacobians,
looking at the mplementation of public-key cryptosystems. Also, we present Cantor's algorthm to add ponts in the Jacoban (This is important to the efficiency of the cryptosystem)
and we show an algorithm to attack the discrete logarithm problem on theses groups (The
intractability of this problem is essential for the security of the cryptosystem).

Resumo

1989, Koblitz introduziu pela primeira vez os criptossistemas hiperelpticos, os quais


baseiam sua segurana na resoluo do problema do logaritmo discreto sobre o Jacobiano de
uma curva hiperelptica. Neste artigo, Koblitz generalizou o algoritmo para somar pontos
no Jacobiano apresentado por Cantor em 1987.
Nesta dissertao, estudamos propriedades das curvas hlperelpticas e seus Jacobianos,
visando implementao de criptossistemas de chave pblica. Tambm apresentamos o
algoritmo de Cantor para somar pontos no Jacobiano (isto importante para efetividade
do criptossistema) e mostramos um algoritmo para atacar o problema do logaritmo discreto sobre estes grupos (a intratabilidade deste problema essencial para a segurana do
criptossistema).

Vl

"
LISTA DE SIMBOLOS

"K

Um corpo de caracterstica p 2: O

,.1(

O fecho algbrico de K
Grupo de Galois de

K/ K

mdc(a, b)

Mximo divisor comum de a e b

" 'll/n'll

Grupo aditivo dos inteiros mdulo n

., ('ll/n'll)*

Grupo multiplicativo dos inteiros mdulo n


Corpo finito com q elementos

.. lF*q

Corpo finito sem o zero

"p2(K)

Plano projetivo sobre K

" #(S)

Cardinalidade do conjunto S

"E

Curva elptica

E(K)

Pontos racionais de E sobre K

.. o

Ponto no infinito

6. = t.(E)

Discriminante da curva elptica E

.. PeQ

Soma de pontos da curva elptica

"#E(K)

Nmero de pontos racionais de E sobre K

Funo de Euler

"Q

Logaritmo em base b de x
Conjunto de matrizes invertveis com entradas no anel

"GLd(R)

" det(A)

!C)
\
\

Grupo de automorfismos de

sobre L

Curva hiperelptica
Nmero de pontos racionais de H sobre L

eD

Divisor de H

"deg(D)

Grau de um divisor

" Sup(D)

Suporte de um divisor

"DivL(H)

Grupo de divisores de H definidos sobre L

e Div~(H)

Grupo de divisores de grau zero definidos sobre L

L[H]

sobre

Anel de funes polinomiais de H sobre L

" L(H)

Corpo de funes racionais de H sobre L

div(r)

Divisor principal de uma funo racional

"vp(r)

Valorao ou ordem de P E H em r
Jacobiano de H sobre L
Nmero de pontos do Jacobiano de H sobre L

LISTA D

FIGURAS

Diagrama de Comunicao

= x 3 - 4x Soma de P e Q

3.1

Curva Elptica E : y 2

3.2

Duplicao dos pontos P e T

21
21

4.1

Curva Hperelptica 1 .

32

4.2

Curva Hperelptica 2 .

33

4.3

Curva Hiperelptica 3 .

33

ll1

#'

CONTEUDO

Lista de Smbolos

Lista de Figuras
Introduo
1

Aspectos Gerais

1.1

Criptoanlise

1.2

Criptografia de Chave Privada

1.3

Criptografia de Chave Pblica

Criptossistemas Pblicos Bsicos

11

2.1

Diffie-Hellman .

11

2.2

RSA ..

12

2.3

E!Gamal

15
16

2.3.1

vi

Ataque ao Problema do Logaritmo Discreto

Criptossistemas Elpticos

19

3.1

Noes da Teoria de Curvas Elpticas

19

3.2

Criptossistemas usando Curvas Elpticas

23

Criptossistemas Hiperelptcos

28

4.1

29
29

Conceitos Bsicos de Curvas Hiperelpticas


4.1.1

Generalidades . . . . . . .
JV

4.1.2

Pontos racionais .

31

4.1.3

Exemplos . . . .

32

4.

Uma involuo sobre H


.5

4.2

4.3

Divisores sobre H .

4.1

Corpo de funes racionais

35

4.

Pontos regulares e plos de uma funo racional

36

4.1.8

Divisores principais.

36

4.1.9

Divisores semi-reduzidos

38

4.1.10 Divisores reduzidos

39

O Jacobiano de H . . . . .

42

4.2.1

Pontos racionais do Jacobiano

42

4.2.2

Soma de Divisores no Jacobiano

4.2.3

Automorfismo de Frobenius ..

Criptossistemas usando Curvas Hiperelpticas


4.3.1

49
50

Ataque Index-Calculus para resolver o HECDLP .

Comentrios

53

Apndice

56

A Preliminares Matemticos

56

B Complexidade Algoritmica

59

B.l Classes de Complexidade

62
64

Bibliografia . . . . . . . . .

Introduo

Atravs dos anos a criptografia vem sendo usada para enviar mensagens ocultas com o
jetivo de serem lidas somente por pessoas autorizadas. Entre os problemas que a criptografia
resolve, referentes a segurana em uma comunicao, temos: privacidade, integridade, autenticidade e o no repudio das mensagens. Desde o incio do ltimo sculo, uma fonte
permanente de algoritmos para a implementao de criptossistemas de chave pblica so
provenientes de Variedades Abelianas (veja [8, Milne, Cap. V]), em especial do Jacobiano
de curvas algbricas. Este captulo introdutrio descreve o objetivo do presente trabalho,
assim como a estrutura na qual foram desenvolvidos os demais captulos, com o intuito de
facilitar a compreenso da teoria aqui exposta.

Objetivo
O objetivo desta dissertao o estudo de propriedades das Curvas Hiperelpticas e seus
Jacobianos, visando a construo de criptossistemas de chave pblica. Esta implementao
foi introduzida pela primeira vez por Koblitz [19], baseado na intratabilidade do problema
do Logaritmo Discreto em subgrupos do Jacobiano de curvas hiperelpticas. Aqui, surgem
questes sobre a implementao deste tipo de criptossistemas e sua segurana frente ataques
como o Index-Calculus 2 .
2 Um

ataque para resolver o Problema do Logaritmo Discreto (DLP). No entanto, ser visto com detalhe

na subseo (2.3.1)
Vl

vii

Dados Histricos
Desde a antiguidade, a escrita oculta tem estado presente intrnsecamente no sistema de
escrita hieroglfica dos egpcios. Os romanos, utilizavam-a para comunicar planos de batalha
durante suas

atravs dos anos, a escrita oculta manteve seu maior interesse no mbito

militar e tal o fato que durante a Segunda Guerra Mundial, o exrcto alemo estabelecia comunicaes ocultas via uma mquina, chamada ENIGMA 3 , para orientar suas tropas
contra o exrcito inimigo. Ao tempo, num lugar chamado Bletchley Park na Inglaterra,
um grupo de cientistas, entre os que se encontrava Alan Turing4, trabalhavam no projeto
ULTRA tentando descobrir as mensagens ocultas enviadas pelo exrcito alemo. Como con-

seqncia, este grupo de cientistas construiu o primeiro computador da histria, chamado


Colossus.

Desde ento, at hoje tm havido um crescimento enorme de estudos relacionados com


a escrita oculta, chegando a converter esta arte em uma cincia de interesse para o avano
tecnolgico, chamada de Criptografia. Os estudos feitos no incio desta rea estavam somente
relacionados com informaes militares secretas devido conjuntura poltica do mundo; mais
sobre a histria da criptografia pode-se ver em [17].
A partir da dcada do 70, aps um trabalho fundamental de Diffie e Hellman [10], a
criptografia se torna uma cincia ao servio do cidado comum. Para ter uma escrita oculta
se aplica um Criptossistema que simplesmente um algoritmo que d segurana e proteo
em uma comunicao. A construo destes algoritmos freqntemente realizado a partir de
objetos matemticos tais como: Nmeros Primos, Grupos Finitos, Curvas Elpticas, Curvas
Hiperelpticas, Jacobianos de Curvas e Variedades Abelianas [4], [21], [29], [40].
Em 1985, Victor Miler (IBM) e Neal Koblitz (Universidade de Washington) independentemente propuseram os Criptossistemas Elpticos [18] como implementao de criptossistemas
de chave pblica baseando sua segurana na resoluo do Problema do Logaritmo Discreto
(DLP) sobre grupos abelianos finitos. Devido apario de tcnicas para abordar o problema do logaritmo discreto sobre o grupo de pontos de um tipo de curvas elpticas [36], [4]; se
faz necessrio o estudo de novos campos onde a implementao de criptossistemas de chave
pblica seja adequada para fins criptogrficos.
3 patenteada

4 (1912-19.54)

pelo engenheiro alemo Arthur Scherbius em 1923.


Pioneiro na cincia da computao e na inteligncia artificial.

viii

Pelas consideraes acima, em 1989, Neal Kobltz [19] introduziu os chamados criptossistemas hipereliptcos pela primeira vez, usando o Jacobiano de curvas hiperelpticas definidas
sobre corpos finitos, baseado na intratabilidade computacional para o (DLP) sobre este
tipo de grupos, isto , baseado em um algoritmo de tempo exponencial para resolver este
problema.

curvas hiperelpticas definidas sobre corpos de caracterstica 2 so de maior

interesse na implementao de sistemas criptogrficos, pois a eficincia das operaes neste


tipo de corpos melhor.

Estrutura da Dissertao
O presente trabalho est dividido da seguinte maneira:
., No captulo 2 apresentamos a teoria elementar de criptografia de chave privada
simtrica) e de chave pblica (ou assimtrica), assim como os tipos de tcnicas usadas para tentar quebrar um criptossistema, fornecendo uma ampla viso no contexto
criptogrfico.
e No captulo 3 estudamos os criptossistemas bsicos de chave pblica e fazemos alguns
exemplos particulares

(no prticos)

para mostrar o funcionamento destes.

Mencionamos mtodos existentes para quebrar os criptossistemas, assim como consideraes a levar na escolha dos parmetros para ter maior segurana.

Tambm

mostramos um ataque eficiente para os criptossistemas implementados sobre corpos


finitos.
" No captulo 4 inteiramente dedicado aos Criptossistemas Elpticos, mostramos os
conceitos bsicos de curvas elpticas e fazemos um exemplo de aplicao destas curvas
em um criptossistema de chave pblica (ElGamal).
" No captulo 5 estudamos os Criptossistemas Hiperelpticos e definimos a estrutura de
grupo sobre o qual estaro baseadas as operaes do criptossistema. Mostramos um
algoritmo para a soma de pontos do Jacobiano que foi introduzida pela primeira vez
por Cantor [7], e que foi melhorada por Koblitz [19]; alm de resultados como: o
nmero de pontos deste grupo e o ataque index calculus implementado para este tipo
criptossistemas.

ix

" Finalmente comentamos alguns dos pontos mais relevantes observados ao longo do
trabalho, resultados importantes de outros trabalhos obtidos nesta area, assim como
propostas futuras de pesquisa a continuar.

CAPTULO
Aspectos Gerais

Como foi mencionado na introduo, a criptografia estuda criptossistemas que nada mais
so algoritmos que fornecem segurana e proteo em uma comunicao. Os aspectos da
segurana, esto relacionados com a Privacidade, a Integridade, a Autenticidade e o no

Repudio das mensagens durante uma comunicao.


A privacidade faz referncia ao fato que uma mensagem s pode ser lida por pessoas
autorizadas. Por exemplo, se em uma ligao telefnica entre duas pessoas, se uma terceira
escuta a conversa, ento est violando a privacidade da comunicao.
A integridade est relacionada ao fato de ter certeza que a mensagem no foi alterada
durante a comunicao. Por exemplo, utilizando alguns sites da internet podem-se fazer
diversas compras. Se a informao que se utilizou para estas compras no fosse controlada
e caso houvesse alguma violao desta, poderia causar prejuzo tanto ao consumidor como
ao vendedor; assim se perderia a integridade da comunicao.
A autenticidade se tem quando podemos confirmar a identidade da pessoa que enviou
a mensagem. Por exemplo, quando uma pessoa vai descontar um cheque, este passa por
uma verificao de autenticao para saber se a assinatura esta correta, pois do contrrio
no poder receber o dinheiro; em caso de uma mensagem, se esta no for confirmada sua
autenticidade, a informao recebida no teria credibilidade.
O no repudio evita que alguma pessoa envolvida na comunicao tente negar o envio ou
recebimento de uma mensagem.
1

Esquemticamente a aplicao de um criptossistema durante uma comumcaao est


representada na Figura (1.1). Seja A um usurio que deseja enviar uma mensagem segreda (ou texto plano) m para um usurio

Ento A aplica uma funo e para cifrar a

m (processo chamado de cifrado da mensagem), e obtm a mensagem cifrada (texto cifrado


ou criptograma) c. Logo

envia c para

por uma linha de comunicao a qual no

necessariamente segura no sentido que um terceiro usurio no autorizado poderia ter acesso
a c. Finalmente,

recupera m apJ!lCftllC1o uma funo d para decifrar a c (este processo

chamado de decifrado da mensagem).


I

I
I

Linha de comunicao insegura

II
I Cifragem- s
I
I

lc

c
Usurio
no
autorizodo

n ,,.,
li'

.0

I I -

lm

Usurio A

Usurio B
Figura L 1: Diagrama de Comunicao

Formalmente um criptossistema descrito por uma sxtup!e

(A, M, C, JC, E, D),

(1.1)

em que:
" A um conjunto finito, chamado o alfabeto de entrada; 1

" M um conjunto formado por cadeias finitas de comprimento constante; este conjunto
chamado o espao de mensagens bsicas;

C tambm um conjunto formado por cadeias finitas de elementos de A, onde o


comprimento de cada cadeia no necessriamente constante (ver Exemplo 2.3); este
conjunto chamado o espao de mensagens bsicas cifrados;
1

Usualmente A o alfabeto binrio {0, 1}, o alfabeto ingls ou o alfabeto de alguma lngua.

" K um conjunto finito, cada elemento deste conjunto chamado de chave e uma
ferramenta fundamental para manter oculta a informao;

"' E o espao das funes

cada uma destas funes chamada

funo

de cifragem;
" 1J o espao das funes d : C --+

, cada uma destas funes chamada de funo

de decifragem;
tal que, cada chave k E K determina urna nica funo de cifragem
funo de decifragem dk E 1J tais que dk o
satisfazem

dk

k =

E e uma nica

id!M, Alm disso, se as funes

e dk

idlc, ento possvel assinar as mensagens enviadas ao outro usurio,

para garantir a autenticidade das mensagens,


A criptografia est dividida em dois tipos:

(1) de chave privada (ou simtrica);

(2) de chave pblica (ou assimtrica),


Em vrios casos se usa uma combinao destes dois tipos, pois um criptossistema de
chave pblica apesar de ser mais seguro, computacionalmente mais custoso; isto , requer
de mais recursos computacionais,

Um fato importante que se deve ter ao construir um

criptossistema , por exemplo, os possveis ataques que existem para o criptossistema e


o tempo que estes demoram para descobrir a mensagem; consideraes de este tipo so
bsicas para que o criptossistema no seja facilmente quebrado, Esta e outras questes
motivaram o desenvolvimento de uma cincia paralela criptografia, chamada Criptoanlise,
A importncia desta nova cincia devida ao fato que a segurana de um criptossistema no
pode ser garantida indeterminadamente, pois este mesmo criptossistema pode ser desvendado
em um futuro no to distante,
Como veremos a seguir, a criptoanlise estuda as formas possveis (ou ataques) que uma
pessoa no autorizada pode dispor para descobrir o contedo de uma mensagem cifrada ou
o que o mesmo, quebrar o criptossistema [29, p, 41], [30, p, 209], [40, p, 24],

1.1

Criptoanlise

O objetivo da criptoanlise de descobrir o contedo de uma mensagem original a partir


de uma mensagem cifrada sem conhecer a chave para decifr-a, Um criptoanalista uma

1.1

pessoa que faz criptoanlise; vulgarmente conhecida com o nome de intruso, usurio no
autorizado, atacante, pirata ou hacker.
Os ataques que um criptoanalista pode fazer numa comunicao entre os usurios A,
esto classificados como segue:
(1) Ativos: aqui o crptoanalista faz aes indiretas para recuperar a mensagem original:
por exemplo, se faz passar por uma pessoa autorizada ou tenta substituir uma mensagem de

para

por outra falsa, porm esta pessoa no considerada um verdadeiro

criptoanalista.
(2) Passivos: aqui o criptoanalista tenta recuperar a mensagem original m enviada por
A a partir da correspondente mensagem cifrada c (isto tambm pode ser feito se ele
descobre a chave k utilizada por

estes at<iqrres temos:

(2.1) J'vfensagem cifrada (parcialmente) conhecida: aqui o criptoanalista dispe de pelo


menos parte da mensagem cifrada;
(2.2) ]'vfensagem bsica conhecida: aqui o criptoanalsta conhece uma quantidade de
mensagens bsicas, todos eles enviados por A, e seus correspondentes mensagens
cifrados;
(2.3) Mensagem bsica escolhida: aqui o criptoanalista conhece a funo de cifragem
da comunicao entre A e B.
Intuitivamente claro que entre os trs tipos de ataques passivos mencionados, o ataque
(2.3) o mais forte, isto , o ataque com maior possibilidade dos trs para quebrar o criptossistema; portanto se espera que um bom criptossistema seja difcil de ser quebrado para
este tipo de ataque. Um criptoanalsta que esteja nas condies (2.3), na maioria dos casos,
se estara enfrentando com um criptossistema que baseia sua segurana na dificuldade de
resolver um problema matemtico, computacionalmente invivel de abordar.
Um criptossistema que envolve a substituio sistemtica de cada smbolo de seu alfabeto
por outro qualquer, ento podemos aplicar o ataque chamado de anlise de freqncias que
um ataque do tipo (2.1). Por exemplo, se o alfabeto do criptossistema so os elementos

do alfabeto de uma lngua, para aplicar este ataque se calcula a freqncia mdia com que
cada letra aparece no texto; esta freqncia tende a ser constante para textos com o mesmo
nmero de letras.
A lngua portuguessa tem as seguintes propriedades [9]:

GERAIS

CAP. 1 ,.

., um monosslabo tem uma nica letra a qual necessramente uma vogal;


" as vogais so mais freqentes que as consoantes;
., a vogal

a mais freqente;

., consoantes como o S e o M so mais freqentes que as outras.


entanto, este tipo de ataque s funciona para mensagens suficientemente longas, pois
possvel construir uma mensagem curta cuja contagem de freqncias seja diferente da mdia
geraL A distribuio de freqncias das letras do alfabeto em ingls pode ser encontrada
em [29, p. 24 7]. Assim, apenas contando a freqncia de cada smbolo no texto cifrado,
podemos descobrir qual letra correspondern aos smbolos mais freqentes.
cccu uc

do

(2.2) se mostra no Exemplo (1.4).

os ataques do tipo (2.3)

esto aqueles chamados de fora bruta onde o criptoanalista conhece o espao de chaves e
trata de obter a mensagem original aplicando em forma exaustiva todas as possveis funes
de decifrado mensagem cifrada.

1.2

Criptografia de Chave Privada

Aqui manteremos a notao da Seo (1.1). Um criptossistema de chave privada aquele


onde para cada chave k E IC, pode-se calcular dk a partir de

Ek

ou vice-versa. O intere-

ssante de algumas classes de criptossisternas deste tipo somente terica, no entanto, seu
estudo permite entender melhor os criptossistemas de chave pblica [29, p. 25]. A classe
dos criptossistemas mencionada, no tem garantia de segurana em uma comunicao, pois
so fcilmente quebrados, por exemplo, em um computador comum se pode implementar
algoritmos que quebram rapidamente estes criptossistemas. Exemplos de criptossistemas que
pertencem classe mencionada acima so o de Csar (Exemplo Ll), o Vigenere (Exemplo
1.2) e o criptossistema de Hill (Exemplo 1.3).

Para os exemplos a seguir, nosso alfabeto de entrada A ser o ingls que tem 26 elementos. Identificamos este com o grupo finito Z/26Z via a bijeo <P : A
J(A)

O, J(B) = 1, , J(Z)

--+

Z/26Z tal que

25. Aqui, <P chamada uma codificao de A, isto , uma

correspondncia bijetiva que permite operar os elementos de A como elementos do grupo

Z/262.

DE CHAVE PRIVADA

Exemplo 1.1. (Criptossistema de Csar) Seja


definamos a funo de cifragem

k :

---+

C, x

.~VJ
r--+

=C= K
x

+k

= l/267.. Para cada k

(aqui

+a

operao de soma no

= y- k.
devido a que o caso k = 3 foi usado pelo Imperador

grupo l/26Z). Logo, a funo de decifragem ser dk(Y)


O nome deste criptossistema

Romano Jlio Csar (45 A.C.) para cornunicar-se com os generais do seu exrcito nas lutas
(ele no confiava em seus mensageiros!) [17].
Exemplo 1

sculo XVI, o exemplo anterior foi melhorado pelo criptografador francs

Blaise Vigenere. Sua idia consistiu em fixar uma palana (seqncia finita de elementos do
alfabeto de entrada) e aplicar, em base a esta, o criptossistema de Csar a cada elemento de

M; esta palavra ser um elemento de IC. Neste criptossistema, para um inteiros 2: 2 fixado,
temos:
=C= Z/26Z,

= (Z/26Z)'.

Enviaremos mensagens formadas por cadeias finitas de elementos do alfabeto de entrada,


digamos do tipo

(m~,

... , me), que sero cifrados em mensagens similares como (c1 , ... , ce)

(note que cada mi, ci E M =C).


Agora, para cada k
por

E:k:

= (k1 , ... , ks) E K, as funes de cifragem e decifragem esto definidas

M---+ C, Ek(mi)

:=

mi + ki

(mod s)

e dk: C--+ M, dk(ci)

Ci- ki

(mod s),

respectiva-

mente. Observamos que s representa o nmero de caracteres da chave.


Para um exemplo numrico, tomemos s

6. Queremos enviar a seguinte mensagem

(2, 17, 8, 15, 19, 14, 6, 17, O, 5, 8, O) (que significa CRIPTOGRAFIA de acordo a nossa codificao), utilizando a chave (0, 11, 14, 13, 18, 14) (que significa ALONSO). Logo a mensagem cifrada ser (2, 2, 22, 2, 11, 2, 6, 2, 14, 18, O, 14) (que representada no alfabeto ingls
seria CCWCLCGCOSAO).
Observemos agora que no criptossistema de Csar uma letra da mensagem cifrada no
pode corresponder a diferentes letras da respectiva mensagem enviada; no entanto, isto pode
acontecer no crptossistema de Vigenere como se pode ver no exemplo acima. Note que isto
no significa que a funo de cifragem

Ek

no seja injetiva, pois o decifragem feita tendo

presente a posio de cada letra. Para este criptossistema possvel um ataque de anlise
de freqncias por blocos de tamanho s, veja [29, p. 248].
Exemplo 1.3. (Criptossistema de Hll) Os criptossstemas nos exemplos anteriores s foram
melhorados depois de muito tempo. De fato, em 1931 Lester S. Hill introduziu os chamados
criptossistemas lineares ou matriciais [15]; os nomes se devem as correspondentes funes de

CAI'. 1

cifragem que representam automorfismos do grupo (Z/262:) 5 , onde s 2: 1 um inteiro fixo.


Estes criptossisternas resultariam mais resistentes aos ataques por fora bruta e anlise de
freqncias. Para descreve-os, sejam

M =C = (Z/26Z)s,
Observe que

E !C

!C

= {GLs(Z/26Z)}.

se e somente se det(K) urna unidade em Z/26Z.

de /vi = C sero vistos corno vetores de tamanho 1 x s. Logo, para cada


de cifragem

K :

--+

C dada por (m)

:=

elementos
E !C a funo

m K, e conseqentemente a funo de

decifragem dK(c) :C-+ M dada por dK(c) =c K- 1 Para um exemplo numrico, tomemos
s = 2. Queremos enviar a mensagem m := (0, 12, 14, 17) (que significa, de acordo a nossa

codificao, AMOR). Para cifrar utilizaremos a chave

(~ ~)

A matriz inversa de K a matriz com linhas (25, 3) e (2, 21). Como os elementos de M
(mensagens bsicas) so vetores 1 x 2, primeiro devemos decidir como particionar em blocos
(de 1 x 2) a mensagem a ser enviada. Usualmente esta partio se faz da esquerda para
direita. Assim, particionamos m em m

:=

(0, 12) e m 2

(14, 17). Logo a mensagem

cifrada ser (m1K, m2K) = (24, 12, O, 7) (que, usando o alfabeto ingls, representa YMAH).
Se o comprimento P. de uma mensagem a cifrar m

= (a 1 , ... , ae)

comprimentos das mensagens bsicas, ento a mensagem a cifrar ser m

no mltiplo do
:=

(m, a, ... , a)

(a 1 , ... , ac, a, ... , a). Aqui o smbolo a um elemento previamente fixado do alfabeto de
entrada, e a quantidade de a's o mnimo possvel tal que o comprimento de m seja mltiplo
de s.
A seguir, mostramos um ataque do tipo (2.2) ao criptossistema de Hill.
Exemplo 1.4. No exemplo anterior tomemos s = 3; suponhamos conhecido as mensagens
bsicas m 1

= (18, 14, 11) = SOL, m2

como seus correspondentes cifrados c 1


C3

(3, o, 15)

= (8, 1, 12)

= IBM, m 3

= (15, O, 25)

= PAZ, assim

(23, 20, 22) = XUW, c 2 = (17, 21, 17) = RV R e

= DAP.

Ento o criptoanalista pode achar a chave K = (kij) do criptossistema mediante a resoluo de sistemas lineares de equaes. De fato, de m;K

cio i = 1, 2, 3 temos 3 sistemas

de equaes lineares com variveis k1j, k2J, k3J (j = 1, 2, 3). Se pode ver que a chave que est

SEO 1.3

sendo usada para cifrar mensagens :


2

8
3

16
Este ataque do tipo passivo (2.2) e
Exemplo 1.

( Criptossistema DES)

implementar um algoritmo para executa-o.


criptossistema Data Encryption Standard (DES) foi

desenvolvido na dcada do 70 pelo l\ational Bureau of Standards e o

As chaves deste

criptossistema so cadeias de 56 bits de comprimento e portanto para um criptoanalista


tentar quebrar o criptossistema usando o ataque por fora bruta, dever analisar 256 possibilidades (chaves); estes clculos podem ser viveis mediante o uso dos computadores atuais.
meados
um ataque ao

Julho de 1998, a empresa Electronic Frontier Foundation (EFF) mostrou


o qual decifra mensagens em menos de trs dias. Apesar disto, este

criptossistema ainda continua sendo usado em transaes bancrias. Para um tratamento


mais detalhado deste criptossistema ver [29, p. 2-50], [40, p. 70].
Outros criptossistemas de chave privada que ainda se utilizam so: FEAL, IDEA, AES;
ver [40], [29], [26]. Finalmente, citamos trs desvantagens ao utilizar um criptossistema de
chave privada.
(A) A distribuio de chaves: Se dois usurios desejam estabelecer uma comunicao, eles
necessitam conhecer a prori uma chave do criptossistema; isto nem sempre possvel
devido insegurana da linha de comunicao.
(B) A manipulao de chaves: Em uma comunicao de n usurios, que se faz dois a dois,
cada um deles tem que manipular n(n- 1)/2 chaves, o qual no pratico para um
usurio.
(C) A falta de assinatura digital: Em uma comunicao usando este tipo de criptografia,
no necessriamente possvel ter certeza da procedncia das mensagens cifradas.

1.3

Criptografia de Chave Pblica

Nesta dissertao, por um clculo computacionalmente fcil e computacionalmente difcil


entenderemos como um clculo que realizado por um algoritmo de tempo polinomial ou
respectivamente por um algoritmo de tempo exponencial (ver Apndice B).

GERAIS

Com o objetivo de dar uma maior liberdade na hora de estabelecer uma comunicao
segura e de cobrir as deficincias da criptografia de chave privada mencionadas em (A), (B),
(C) da seo

em

nasce a criptografia de chave pblica

de um

trabalho encontramos a descrio do primeiro sisfundamental


tema que permite a dois usurios compartilhar um segredo em comum, usando uma linha de
comunicao que se supe insegura; este chamado de Troca de Chaves Diffie-He/lman. Uma
caracterstica relevante deste sistema est em que sua segurana depende da existncia de
funes unidirecionais e unidirecionais com segredo as quais sero definidas posteriormente.
A saber, estas funes esto relacionadas com problemas matemticos computacionalmente
difceis de resolver.
Uma das principais aplicaes dos criptossistemas de chave pblica foram em sistemas de
comunicao elec1crmica, especialmente em redes de comunicao telefnica. Outra aplicao

com respeito a

mensagens, o que nos permite obter uma firma digital a

partir da mensagem e assim garantir sua autenticidade (ver [29, p. 425]).


Com a notao de (1.1), definimos um criptossistema de chave pblica como aquele onde
conhecida a funo de cifragem E:k, computacionalmente difcil achar a funo de decifragem
dk Para estes criptossistemas temos k = (k1 , k2 ) E K onde k1 se utiliza para cifrar (chave
pblica) e k 2 para decifrar (chave privada) ou vice-versa. Assim, uma diferena notvel entre
a criptografia de chave privada e a criptografia de chave pblica est no uso das chaves; alm
disso a chave para cifrar de cada usurio no criptossistema de chave pblica conhecida por
qualquer usurio, o que no pode acontecer na criptografia de chave privada, pois como foi
mencionado anteriormente, estes criptossistemas de chave privada conhecida uma das chaves
pode ser encontrada a outra chave facilmente, implicando que qualquer pessoa poderia l
as mensagens cifradas. No que segui, introduzimos os conceitos de funes unidirecionais e
unidirecionais com segredo.
Seja f : X

--+

Y uma funo entre dois conjuntos X e Y, f dita unidirecional ( one-

way-function) se as seguintes condies so satisfeitas:

(1) Para todo x E X, f(x) computacionalmente fcil de calcular;


(2) Para cada y E Im(f), achar x tal que f(x) = y, computacionalmente difcil de
calcular.
Agora suponha que f uma funo unidirecional, f dita unidirecional com segredo ( trapdoorone-way-function) se alm das propriedades (1) e (2) acima ela satisfaz:

DE CHAVE

10

(3) O clculo em (2) passa a ser computacionalmente fcil sempre que se conhea alguma
informao adicional. A informao adicional chamada o segredo (trapdoor) de

f.

geral, difcil determinar quando uma funo dada satisfaz a propriedade


isto se deve a que esta depende dos
mente

"computacionalmente fcil" e "computacional-

que a sua vez esto ligados com o problema

dade [30, p. 220], o qual ainda um problema em

= P da Teoria da Complexiparticular, a existncia de

funes unidirecionais e respectivamente unidrecionais com segredo no est garantida. A


seguir, damos trs possveis exemplos de funes unidericionais, ver [29, p. 115].
Exemplo 1.6. Fixemos p, q dois primos grandes (aproximadamente de 200 a 400 algarismos).
(1) Exponencial mdulo p. Seja p um primo, a um gerador de IF;, X

= IF; e

= ax. Esta f
a
propriedade para ser
direcionaL pois o clculo de f (x) obtido em tempo polinomial. Ao respeito da segunda
propriedade, dado y tentar calcular x tal que y =
conhecido como o Problema do
-+

Y dada por

Logaritmo Discreto (PLD) sobre IF;, veja Definio (2.1).


(2) Fatorao inteira. Seja n := pq, onde p, q so dois primos diferentes (no conhecidos) em ?: 1 um inteiro co-primo com (p- 1)(q- 1). Consideremos X= Y = (7ljn7l)* e

= xm. Aqui novamente o clculo de f(x) se faz em tempo


polinomial. Dado y E Y tentar calcular x tal que y = xm (sem conhecer os valores de p e q)
equivalente ao problema da fatorao de inteiros grandes [6], [29, p. 89], [40, p. 150].
f :X

-+

Y definida por f(x)

(3) Funo Rabin. Sejam p e q primos diferentes e ambos congruentes a 3 mdulo 4.


Seja n

:= pq

e X

Y igual ao conjunto de quadxados de (7l/n7l)*. Definamos

f :X

-+

por f(x) = x 2 As condies sobre p e q garante a injetividade de f, e o clculo de x tal que

y = f(x) (para y dado) o problema de calcular razes quadrticas mdulo n. [29, p. 115].
Exemplo 1.7. O item (2) do exemplo acima sera uma funo unidirecional com segredo,
pois uma informao adicional para que est satisfaa a condio ( 3) de funo unidirecional
com segredo seria que p e q fossem conhecidos.

CAPTULO 2
Criptossistemas Pblicos Bsicos

Neste captulo estudamos o sistema de troca de chaves Diffie-Hellman e os primeiros


criptossistemas de chave pblica mais relevantes tais como RSA e ElGamal, assim como os
problemas matemticos nos quais estes criptossistemas baseiam sua seguraa. Mostramos um
exemplo de cada um s para ilustrar sua aplicao, pois os dados com os quais trabalhamos
no esto dentro dos parmetros exigidos pblicamente para garantir um nvel de segurana
especfico, por exemplo, o tamanho dos parmetros que definem as funes unidirecionais
com segredo para implementar o criptossistema deveriam estar entre 200 e 400.

2.1

Diffie-Hellman

Como j foi mencionado na Seo (1.3), a criptografia de chave pblica nasceu no primeiro
artigo publicado por Whitfield Diffie e Martin Hellman [lO] em 1976. Em este artigo, Diffie
e Hellamn propuseram um sistema para trocas de chaves criptogrficas entre dois usurios
sobre uma linha de comunicao insegura, no entanto este no um mtodo para cifrar
mensagens.

Para dois usurios A e B que desejam ter uma chave em comum, eles devem de escolher
um nmero primo p e um elemento a, gerador de (Z/pZ)*, que sero parmetros pblicos.
A seguir, os passos que cada usurio deve fazer para compartilhar o segredo.

" A escolhe um nmero aleatrio x entre 1 e p- 2 e envia a B o valor de o:x (mod p).
11

SEO 2.2

12

RSA

" B escolhe um nmero aleatrio y, anlogamente ao passo anterior, e envia a A o valor


a" (mod p).

" B calcula k = (ax)y (mod p).


" A calcula k = (aY)x (mod p).
final, os usurios

e B compartilham o segredo

chaves Diffie-Hellman.

Problema Di.ffie-lfie,llrna.n (DHP) O problema que se enfrenta um atacante interessado em saber o segredo que os usurios A e B compartilham, est relacionado com o Problema

do Logaritmo Discreto (DLP) sobre um grupo G, que definimos a seguir:

Para o sistema de troca de chaves


enunciar assim:
Definio 2.2. Dados um primo p, um gerador a de (Z/pZ)* e os valores a" (mod p), ab
(mod p) achar o valor de a"b (mod p), o que chamamos Problema Diffie-Hellman (DHP).
Observamos que se o DLP tivesse soluo, ento dados os valores p, a, a" e ab podemos
achar o valor de a e assim calcular o valor a"b, o que implicaria ter soluo ao DHP. A
recproca nem sempre verdadeira, ver [29, p. 113].

2.2

RSA

Este criptossistema foi criado por Ronald Rivest, Adi Shamir e Leonard Adleman (1978).
O criptossistema pode ser usado para cifrar e assinar mensagens [29, p. 433], [29, p. 204].
O RSA baseia sua segurana na dificuldade de fatorar inteiros grandes. A seguir, os passos
que dois usurios A e B (representados pela letra U) devem fazer para estabelecer uma
comunicao usando o criptossistema RSA.
(1) O usurio U escolhe dois nmeros primos p e q (se recomenda que estes nmeros
tenham entre 200 e 400 algarismos) e calcula nu= pq. Logo, o grupo a ser usado pelo
usurio U ser (Z/nuZ)*. A ordem do grupo calculada usando a funo if; de Euler
if;(nu) = if;(p q)

if;(p) if;(q)

(p- l)(q- 1). claro que o usurio U no tem

problema de calcular a ordem do grupo, pois conhece os valores de p e q.

CAP. 2

13

(2) Depois, U escolhe um inteiro ru tal que 1 < ru < 9(nu) seja relativamente primo com
a ordem do grupo.
(3) Usando o algoritmo estendido de
de su; da temos que ru su

~ccucn.cco,

=1

chave pblica do usurio

calculamos o inverso de ru, que chamaremos

9(nu)) com 1

< su < 9(nu).

ser o par (nu, ru), enquanto sua chave privada

nmero su: claro que tambm devem de permanecer ocultos os nmeros p, q e 9( nu)
por segurana do criptossistema.
Para o usurio A enviar uma mensagem ao usurio B, usa a chave pblica (nB, rB) de B,
e para cada mensagem bsica mE M =C

(Z/nB7l)* aplica a funo de cifragem EB(m)

m 7 B =c (mod nB) e envia para

Para o usurio

funo de decifragem dB(c) =

)sB= m (mod nB). O espao


chaves
Z j l < rB < 9(nB),mdc(rB,9(nB)) = 1 e TBSB
1

o conjunto JC

= {(rB,sB)

7l X

obter a mensagem original aplica sua

(mod 9(nB))}. Nem todo elemento de JC serve para usar como chave em um criptossistema,
pois existem ataques eficientes dependendo da escolha dos parmetros p, q e

rB.

Exemplo 2.3. Tomemos o alfabeto ingls codificado como nos exemplos dados no captulo
anterior de criptossistemas de chave privada sendo o alfabeto de entrada. O usurio A deseja
enviar a mensagem m

NOTA para o usurio B, para isso, vejamos como o usurio B

escolhe sua chave pblica e privada.

= 73 e qB = 89, calcula nB = 73 89 = 6497


e considera o grupo (Z/6497Z)*. A ordem do grupo 9(6497) = 7288 = 6336. Suponhamos
que B escolhe o nmero rB = 299 e prova que mdc(299, 6336) = L Acha o inverso de rB
O usurio B escolhe dois nmeros primos PB

mdulo 6336, logo

SB =

589L Portanto, a chave pblica de B ser (nB, rB)

(6497, 299),

deixando em secreto os outros valores.


Para enviar a mensagem a B devemos determinar o comprimento 1 dos blocos em que ser
dividido a mensagem original, de tal forma que sejam elementos de M, para isto, devemos
ter em conta que as mensagens bsicas devem ser elementos do grupo (Z/6497Z)*, ento
o comprimento destes no deve ser maior a

nB =

6497. Assim, como 26 2

676

<

nB

<

17576 = 263 , ento a mensagem bsica dever ter no mximo duas letras. Para enviar
mensagens maiores se divide em blocos de duas letras (completando o ltimo bloco com
1 por

exemplo, o comprimento da palavra PAZ no alfabeto ingls P x 26 2 +A x 26 + Z = 15 x 26 2

26 + 25 = 686.

2.2

14

RSA

smbolos previamente estabelecidos, no caso quando o comprimento da mensagem original


no fosse um mltiplo do comprimento das mensagens bsicas). Na prtica o comprimento
Primeiro codificamos

das mensagens bsicas maior, pois a ordem do grupo tambm


cada bloco de tal forma que seja um elE:ment.o de

NO= N 26 +O= 13 26 +
Ciframos
c1

m 1 , m2

= 352

= m1

= T 26 +A= 19 26 +O = 494 = m2.

EM= (Z/6497Z)* com a chave pblica de B.

(mod ns)

=5324 (mod 6497), c =m;s (mod ns) =335 (mod 6497).


2

Decodificamos a mensagem cifrada


c 1 = 5324 = 7 26 2 + 22 26 + 20 = HWU c2 = 335

O 26 2 + 12 26 + 23 = AM X.

AA1X).

Portanto, a mensagem a enviar para B

que

possa recuperar a

mensagem, primeiro codifica os dados recebidos.


HWU

5324

= Cj

AMX

= 335

C2 .

Agora, recupera a mensagem calculando,


m1

= CSB
1
-

5324 5891

(mod 6497) _ 352

(mod 6497) e

(mod nB) _ 33.5 5891

(mod 6497) _ 494

(mod 6497).

(mod

nB) -

Logo, o usurio B decodifica m 1 e m 2 para obter o mensagem original,


m1

= 352 = 13 26 + 14 =NO

m 2

= 494 = 19 26 +O= TA

A tarefa a fazer de um criptoanalista recuperar a mensagem m correspondente ao texto


cifrado c, tendo uma informao pblica (n, r) do destintario B, o que se chama o problema RSA. Uma possvel forma que o criptoanalista usaria para resolver o problema RSA,
seria fatorando n, pois assim poderia calcular cp(n) e s. Como s obtido, o criptoanalista
pode decifrar a mensagem enviada pelo usurio A. Em caso contrrio, se o criptoanalista
de alguma forma consegui calcular s, ento poderia tambm fatorar n como segui. Notemos
que rs _ 1 (mod cp(n)), ento existe k E Z tal que rs- 1 = kcp(n). Logo, pelo Teorema de
Euler2 temos que ars-l _ 1 (mod n) para todo a E (Z/nZ)*. Seja rs- l = 2ut, onde t
um inteiro mpar; ento existe i E [1, u] tal que a2'2Se a E (ZjnZ)* ento

a<P(n)

=1

(mod n).

11

~ 1 (mod n) e a 2' '

=1 (mod n). Se

15

BSICOS

a, i satisfazem a condio anterior, ento o mdc(a 21 - 11 -1, n) um fator no trivial de n, ver


[29, p. 287].
Do feito acima, podemos concluir que o problema RSA e o problema de fatorar n so
computacionalmente

Ao construir este criptossistema devemos evitar um tipo

de chaves k E K, tal que ao aplicar a funo de cifragem a mensagem no muda, isto


, e(m)

!ll.

Este tipo de chaves so chamadas de chaves fracas. Sempre

mensagem para as quais acontece isto, seja qual for o valor


mnimo o niTiero deste tipo de chaves. Temos para n
Gn

= [1

alguma

n. O objetivo reduzir ao

= p q e r o expoente para cifrar que:

+ mdc(r- 1, p- 1)] [1 + mdc(r- 1, q- 1)]

representa o nmero de valores de m E M que no mudam ao ser cifrados. Como r - 1,


p- 1, q- 1 so nmeros pares, ento no mnimo

2.3

O"n

= 9 [29, p. 290].

ElGamal

Este criptossistema foi criado inicialmente para produzir assinaturas digitais, mas depois
se estendeu para cifrar mensagens. O criptossistema E!Gamal prope um esquema de chave
pblica baseado no problema do logaritmo discreto sobre um grupo (finito e cclico) G fixado;
ver Definio (2.1). Suponha que o usurio A deseja enviar uma mensagem m ao usurio
B, usando este criptossistema; logo A tem que fazer o seguinte:
" Obter os parmetros pblicos de B, a saber, (p, a, ab) onde p um nmero primo
grande e a um gerador do grupo multiplicativo G = (ZjpZ)* dos inteiros mdulo p;
" Escolher aleatriamente um inteiro k tal que 1 ::; k ::; p - 2;
" Representar as mensagens m como inteiros entre {0, 1, ... ,p- 1};
" Calcular

ak

(mod p) e

m(o:b)k

(mod p);

" Enviar o texto cifrado c = (, o) para B. Agora, para o usurio B recuperar a mensagem,

,. Usa sua chave privada para calcular p-l-b = a-kb (mod p);
" Obtm a mensagem m calculando

~fp-l-bo

(mod p).

16

2.3

Os grupos mais usados no criptossistema ElGamal so os grupos multiplicativos de corpos


finitos.
E:x:enapJio 2.4. Considere o primo p = 15485863,

= (Z/15485863Z)* e um gerador a= 7.
O usurio B escolhe o inteiro b = 21702 e calcula a 6 = 721702 = 8890431 (mod 15485863),

que so suas respectivas chave privada e pblica. Suponhamos que o usurio A deseja enviar
a B a mensagem m =

Ento, para isto se escolhe uma codificao do alfabeto usando

o mesmo anlise feito para o exemplo

criptossistema RSA.

JOSE= 9 26 3

+ 14 26 2 + 18. 26 + 4 =

168120

O usurio A escolhe o inteiro k = 480 e calcula


-

7480-

-I

= m(ci)k

(mod 15485863)

(mod 15485863) e,

=168120 9846598

2272786

(mod 15485863).

Depois decodifica a mensagem cifrada:


1

12001315

1 265 +O 264

o= 2272786 = 4 26

6 26 3

+ 21 26 2 + 11 26 + 1 = BAGV LB,

+ 25 26 3 + 8 26 2 + 2. 26 + 22 = EZICW.

Portanto a mensagem a enviar a B (BAGVLB,EZICW). Vejamos como o usurio B recupera a mensagem. Primeiro B codifica a mensagem cifrada recebida; ento BAGV LB =
12001315

aa

e EZICW
1
,P- -b

= 2272786 =

m aab Depois calcula:

= 1200131515464160

Finalmente,
m =

,p-

-b

14823281

o = 168120

(mod 15485863).

(mod 15485863),

assim,
rn

2.3.1

168120 = 9 263

+ 14 26 2 + 18. 26 + 4 =

JOSE.

Ataque ao Problema do Logaritmo Discreto

A seguir descreveremos um ataque para resolver o problema do logaritmo discreto chamado


de index-calculus.

Este um ataque do tipo (2.3), ver Seo (1.1) e seu fundamento

similar ao mtodo de fatorar nmeros inteiros chamado Base Fator ver [20, p.l48]. A seguir

17

BSICOS

CAP. 2

descreveremos este ataque para um grupo G em geral. Seja G =< g > o grupo base,

#(G) = n e B

= {Pr, ... , P,}

G a base fator. O ataque est dividido em trs passos, nos

passos (1) e (2) se quer achar o logaritmo discreto de cada elemento da base fator em base
Por ltimo, usando a informao obtida construmos um sistema equaes onde os elementos
da base fator apaream, relacionando o elemento a achar o logaritmo discreto. Assim,
igualdades do tipo
r

I1

g t E Z,

=l

ou equivalentemente
r

Laind9 (P;)=t

(modn),

(2.1)

i=l

(2) Uma vez obtidas suficientes equaes da forma (2.1) se calculam os ind9 (P;).
(3) Dado a E G calcular o ind9 (a) o mesmo que resolver o problema do logaritmo discreto.
Se procuro equaes da forma
r

IT Pi"'' = ag"' ,
i=l

onde a E Z; pelo item (2) temos que ind9(a)

.E~=l

ind9 (Pi) -a.

Observao 2.5. A eficincia do mtodo est em achar o conjunto B para que existam as
equaes do tipo (2.1).

= 3 um gerador do grupo. Temos que #(IF'j 9 ) = 18 e


escolhamos B = {2, 3, 5}. Claramente ind3(3) = 1; para achar os logaritmos dos outros

Exemplo 2.6. Seja G

= IF]'9 e

elementos da base, definimos relaes do tipo (2.1) e as resolvemos. Logo,


5
22 5- 318

=3

(mod 19) ~ ind3(5) = 4

(mod 19) =>- 2ind3(2) + ind3(5) =O

(mod 18),

(mod 18) =>- ind3(2) = 7

Suponhamos que queremos achar o logaritmo discreto de a


11

=2 3 - 5

ind3(1l) = ind3(2)

= 11 no grupo G. Ento,

(mod 19) logo

+ ind3(3) + ind 3 (5)

(mod 18)

=12

(mod 18).

SEAO 2.3

ELGAMAL

18

Nos ltimos anos tem-se achado algoritmos computacionais cada vez mais eficientes para
resolver os problemas matemticos nos quais estes criptossistemas de chave pblica baseiam
sua segurana, tendo colocado em dvida a confiana depositada nestes, que alguns anos
atrs eram uma

distante, mas devido ao avano tecnolgico isto se faz cada vez mais

provveL Portanto, indispensvel a procura de novas estruturas matemticas nas quais se


possa implementar os criptossistemas para uma maior segurana. Para isso, nos seguintes
captulos

consideradas estruturas relacionadas com o Jacobiano de curvas algbricas.

CAPTULO 3
Criptossistemas Elpticos

Neste captulo apresentamos uma formalizao matemtica de curvas elpticas e mostramos


algumas propriedades importantes destas que so usados para a escolha conveniente dos
parmetros que definem os criptossistemas elpticos. Com este captulo queremos entrar
em um contexto particular utilizao de Curvas Algbricas e a partir destas introduzir o
Jacobiano de curvas algbricas para a implementao de criptossistemas de chave pblica.

O nome de curvas elpticas devido a que elas foram utilizadas no passado para medir o
permetro de elipses e encontrar o comprimento das rbitas planetrias. Contudo, o nome
no conveniente, pois de fato estas curvas no so elipses.
Nos ltimos anos, o estudo das curvas elpticas tem aumentado por suas diversas aplicaes
em diferentes reas, como por exemplo, na Teoria dos Nmeros e Cincias da Computao;
alm disso, propriedades destas curvas jogam um papel importante na demonstrao do
famoso ltimo Teorema de Fermat. Para mais detalhes sobre a teoria de curvas elpticas
ver [4], [37], [38].

3.1

Noes da Teoria de Curvas Elpticas

Fixemos K um corpo de caracterstica p ?: O e seja k seu fecho algbrico.


Definio 3.1. Uma curva elptica E sobre K so os zeros no plano projetivo P 2 (K) de um

19

3.1

TEORIA

20

CURVAS

polinmio da forma

so tais que

com
2 '

b1 = a 1 -r 4a2

bz = a 1a3 + 2a 4 ,

b3 =a~+ 4a6

b4 = aia6

+ 4a2a6

Temc>s que a curva E no singular (veja Apndice A) pois b. (chamado o discriminante

reta Z = O em um

da curva) diferente de zero. Observamos que a curva


nico ponto, a saber

O := (O : 1 : O).
Agora, consideramos as funes racionais x

:=

X/Z e y

:=

Y/Z restritas a E. Logo de

(3.1) podemos tomar a E como sendo simplesmente o ponto O e os zeros em K x K da


equao afim:

(3.2)
onde os ais so tomados como em (3.1). Se a caracterstica p de K diferente de 2, por
mdio de mudanas afines de coordenas podemos supor que E est descrita por
(3.3)
onde

c 1,

ainda, p

c2, c3 E K so tais que b. = -4crc3- cic~- 16c~ - 108c~

+ 72clc2c3 #

O. Se mais

3 podemos reduzir a equao anterior a:

(3.4)
onde d~. d2 E K e t::. = -16(4dr

+ 27dD #o.

Pontos racionais Seja L um corpo tal que K L K.

O conjunto dos pontos

racionais sobre L da curva E, denotado por E( L), o ponto O junto os pares (x, y) E L x L
que satisfazem a equao (3.2).
1A

Existe uma estrutura de grupo comutativo sobre E(L)

explicao da enumerao destes elementos se encontra em [21, p. 118].

21

CAP. 3

definida por uma operao binria 8, que pode ser descrita geometricamente da seguinte
forma. Sejam P, Q E E(K) e L

Teorema de Bezout (veja

c P 2 (K) a reta que passa atravs destes dois pontos. Pelo

p. 112]) temos que esta reta intercepta a curva em outro ponto

= Q, L tangente em

(notemos que para

E(K)). Seja V a reta que une R e(), logo o

terceiro ponto que esta reta intercepta E ( K)

Q (Veja Figura 3.1 e 3.2) .

.!L

P/:_
1-

2\

/ "'

Figura 3.1: Curva Elptica E: y 2

= x 3 - 4x Soma de P e Q

2\
T+T=O

~
o
__/
2

iL:_

7i

- ;(

X~

P=Q

1
X

\1'
I

P+PI~

Figura 3.2: Duplicao dos pontos P e T

3.1

22

DE CURVAS ELPTICAS

Usando a idia geomtrica da soma de pontos na curva eiptica, podemos escrever analiticamente as frmulas para calcular est, da seguinte forma: O elemento identidade vai
estar dado por() e dados P =

b), Q

d) E

temos que

-b- a 1 a- a3 )

Q :=(e, f), onde

+a1.-a2-a-c)

+ al)e- 11- as,

:= -

sendo
=

quando a= c e Q

3a 2 + 2a2a + a4- a 1 b
2b+ a1 a + a3

-P, e

d-b
c- a

=--,

quando a

f.L=

f.L=

bc- ad
c-a

c .

Uma prova de que (E( L), EB) um grupo pode ser vista por exemplo em [37, p. 55]. Para
uma prova intrnseca deste fato ( dizer sem o uso de coordenadas) veja [11, p. 125].
Exemplo 3.2. Seja T = (-2, 0), P = (-1, VS) pertencente a E uma curva elptica definida
pela equao y 2

x3

4x sobre lR (ver figura 3.2). Usando as formulas para somar pontos

sobre a curva, obtemos que 2T =O e 2P

(25/12, -35VS/72).

Dado um inteiro m, temos uma aplicao [m] : E(L)--+ E(L) definida pela soma de lml
pontos, a saber P

f---7

P E9 ... EB P ou P

>-+ ( - P)

EB ... E9 (- P), se m 2': O respectivamente se

m <O. Esta aplicao a base para realizar as operaes nos criptossistemas baseados em
curvas elpticas (ver Seo 3.2) e pode ser calculada em tempo polinomial. Entretanto, no
se conhee um algoritmo determinstico eficiente para calcular o valor de m dados os pontos

P e mP. Este problema, formalmente definido abaixo, o chamado Problema do Logaritmo


Discreto sobre Curvas Elpticas (ECDLP).
Definio 3.3. Sejam E uma curva elptica definida sobre o corpo K, Q, P E E(K). O
problema do logaritmo discreto sobre E (em base Q), o de encontrar um inteiro m E Z, se
existe, tal que P = mQ.
A seguir consideramos curvas elpticas definidas sobre corpos finitos, pois estas so de
interesse nas aplicaes criptogrficas ([4, p. 34], [37, p. 130]). Seja L um corpo finito tal

23

CAP. 3 "

que #(L)= q = pr. Uma primeira questo a ser considerada ao trabalhar com este tipo de
corpos sobre o nmero de pontos de E(L). A priori uma cota superior q 2 + 1, que pode
ser melhorada consideravelmente. De fato, Hasse (1933) demonstrou que (veja [37, V. L

i#E(L)- (q

+ 1)1

(3.5)

:':: 2/(j.

Por um resultado de Serre [39, p. 180], podemos escrever ento


#E(L) = q + 1- t,

onde

Aqui t = t(E(L)) chamada a traa de Frobenius de

ltl :':: 2l VriJ ,


. Reciprocamente, dados q = pm

e t tais que

" itl :':: lJJ,


lt com h:=

" Se

+ 1)

ento existe uma curva elptica E definida sobre lFq tal que #E(lFq) = q + 1- t.
Exemplo 3.4. Considere a curva E com equao afim y 2

x3

7x

+ 2 sobre

Ela tem um nico ponto na sua projetivizao e elptica pois seu discriminante .6.

-64(( -7) 3
Logo t

2 2 ) = 27

oi

O ver (3.4).

Esta curva tem 26 pontos racionais sobre JF23 .

-2.

Exemplo 3.5. Seja o corpo finito lF2 4

IF2[x]/(x4

+ x + 1)

e o: E JF 24 uma raiz primitiva

+ x + 1 em IF2[x]. As potncias de o: so dadas na tabela (3.1).


curva elptica E : y 2 + xy = x 3 + x 2 + 1 sobre o corpo finito lF 2 O conjunto

do polinmio irredutvel x
Consideremos a

4.

de ponto racionais de E sobre JF 24 so: E(IF 24) = {O, (0, 1), (1, o: 5), (1, o) O), (o: 3, o:), (o: 3, o: 9),

(0:5, 1 ), (o:5' 0:10), ( 0:6' o:2), ( 0:6, 0:3), (o:g' o:8)' ( 0:9, 0:12), (0:10' 1), (0:10, 0:5), (0:12, o:4), (o:l2, 0:6)}.
Logo, #(E(JF 24))

= 16 e daqui que t

= 1.

Outra questo fundamental a considerar sobre a estrutura do grupo de (E( L), EB). Este
grupo no necessriamente cclico, mas pode-se mostrar que o produto de dois grupos
cclicos, ver [4, p.].

3.2

Criptossistemas usando Curvas Elpticas

Crptossistemas baseados em curvas elpticas foram propostos pela primeira vez e independentemente em 1985 por Victor Miller (IBM) e Neal Koblitz (Universidade de Washington). Estes so implementaes de criptossistemas de chave pblica que baseiam sua

USANDO CURVAS ELPTICAS

11

Ctn

11

0:2

Ct

et 3 +

Ct

10

a +a+1

Ct3

11

a 3 + a 2 +a

4 et+l

12

13

+a
as+ a2

a 3 +o: 2 +a+l
Ct3 +
+1

a 3 +a+l

15

2
3

24

14 a 3 + 1
1

Tabela 3.1: Potncias de a em lF 24


segurana na resoluo do problema do

JF2 [x]/(x4 + x + 1)

discreto

grupos abelianos finitos. A

implementao dos criptossistemas de chave pblica sobre uma curva elptica E se faz em
forma natural.

questo a resolver mais que todo a codificao do alfabeto de entrada

como pontos racionais da curva E sobre um corpo finito L.


Exemplo 3.6. Para o sistema de troca de chaves Diffie-Hellman (2.1), suponha que temos
uma curva elptica E definida sobre L = lFq e um ponto Q E E(L). O usurio A escolhe
um inteiro aleatrio kA, calcula o ponto kAQ, o qual envia para o usurio B. Da mesma
forma, B envia ksQ para A. Agora, os dois usurios tem um segredo em comum que ser
k.4 (k 8 Q) = kB(kAQ). Um atacante que est interessado neste segredo entre os usurios A

e B dever determinar o valor de P

kAkBQ conhecendo somente Q, kAQ e kBQ. Logo, o

atacante est enfrentando o chamado problema Diffie-Hellman para Curvas Elpticas.


Exemplo 3. 7. Anlogamente ao exemplo acima, podemos definir o criptossistema E! Gama!

(2.3) sobre curvas elpticas. Os usurios A e B devem de conhecer o corpo L= lFq, a curva
elptica E sobre L e um ponto base2 G E E(L), que sero parmetros de domnio pblico.
Assim, se o usurio A deseja enviar o ponto Pm (associado mensagem m) ao usurio B; este
escolhe um inteiro aletorio kA, e envia para B o par (kAG, Pm 8 kA(rBG)). B recebe esta
mensagem e calcula o ponto rs(kAG) usando a primeira coordenada da mensagem cifrada e
sua chave privada. Logo, subtrai da segunda coordenada este valor e recupera a mensagem

Pm.
2 Este

ser o ponto base sobre o qual se calcula o logaritmo discreto no grupo E( L).

Para implementar um criptossistema baseado em curvas elpticas, implica uma srie de


escolhas, por exemplo:
Tipo de corpo base (Fp ou
(2) Representao dos elementos do corpo base (polinomial, normal, entre outras);
Equao da curva;
Representao dos pontos da curva.
Ao tempo h fatores que influenciam nestas escolhas, as quais devem ser consideradas
simultaneamente para ter o melhor criptossistema. Dentre destes fatores temos:
'" Consideraes de segurana;
'" Disponibilidade de mtodos para otimizar a aritmtica no corpo;
'" Disponibilidade de mtodos para otimizar a aritmtica na curva elptica;
'" Restries do ambiente no computador.
Como foi mencionado no comeo da seo, para a implementao de criptossistemas sobre
curvas elpticas necessrio dispor um mtodo para identificar cada mensagem bsica m com
um ponto Pm E E(L). Reciprocamente, se requer que o processo para recuperar ma partir
de Pm seja computacionalmente rpido (um algoritmo de tempo polinmial). Normalmente,
se usam mtodos probabilsticos [18], [30, p. 233], que permitam fazer a identificao com
um grau de erro pequeno. A seguir, descreveremos dois mtodos para isto.
(1) Para corpos de caracterstica diferente de 2 e 3, a curva elptica dada pela equao
(3.4). Suponhamos que as mensagens bsicas m so nmeros naturais tais que O ::;
m::; R com R E Z. Fixamos t um nmero natural (do qual depender a probabilidade
de erro do mtodo) e escolhemos um corpo Fq, tais que q > Rt. Os inteiros entre 1 e Rt
podem ser escritos da forma m t + j com j

1, ... , t - 1, assim podemos identific-los

como elementos de iB'q. Dado uma mensagem m, tomemos mt = x E iB'q e calculamos


o valor de f(x)

x 3 + d 1 x + d2. Se f(x) fosse um quadrado em Fq, ento tomamos

Pm = (x, y) com y = .JT(i); em caso contrrio tomamos x


mt + 1 e calculamos
f(x) e determinamos se um quadrado em Fq Em geral, se para algum valor j < t,
temos que f(x) um quadrado, ento tomamos Pm

= (x, .JT(i)). Para recuperar a

3.2 "

26

CRlPTOSSISTEMAS USANDO CURVAS

mensagem original m aplicamos a formulam= Lx/tJ. A probabilidade de falhar este


procedimento para codificar aproximadamente de 1/2'Suponhamos q = pn e n =

cucau,

que as mensagens bsicas so inteiros m tais

que O ::; m < pn' onde m est escrito da forma m = mo


O ::;

< p. Para {b 0 , ... ,

tomamos x(m) = mobo + m1b 1 +

+ m 1p + ... + mn- 1pn'-I,

uma base de lFpn' como espao vetorial sobre lFp

1}

... + mn- 1 bn'-l

e y(m) uma soluo da equao da

curva (notemos que como equao tem grau 2 em y, ento esta soluo sempre existe
em lFpn), logo Pm = (x(m),y(m)).
Uma implementao eficiente de um criptossistema baseado em Curvas Elpticas, por
exemplo, pode ver-se em [25]. A seguir mostramos uma forma de implementar o criptossistema E!Gamal baseado em curvas elpticas, com o objetivo de dar uma idia do uso das
curvas elpticas na criptografia.
Exemplo 3.8. Consideramos a curva elptica E definida por Y 2 = X 3

7X

+ 2 definida

sobre o corpo (Z/751Z)* e ponto base G = (741, 152) E E((Z/751Z)*). Para codificar a mensagem identificamos as letras do alfabeto com o conjunto {10, 11, ... , 35}, respectivamente.

O usurio A deseja enviar o mensagem m = CURVASELIPTICAS para o usurio B,


que usando o mtodo (1) acima, codifica as letras como pontos da curva elptica. Assim,
O ~ m ::; 35

R, escolhemos t

mensagem temos:

20 ento q = 751 2: Rt = 700. Codificando cada letra da

Pc = (241, 372), Pu = (601, 172), PR = (541,104), Pv = (621, 324),

PA = (202, 32), Ps = (565, 269), PE =

(282, 101), PL = (423, 301), P1 = (361, 82), Pp =

(501, 53), Py = (581, 283). O usurio B escolhe sua chave privada rs = 7 e calcula o ponto

7G = (739, 164), que ser sua chave pblica. Logo, o usurio A usa a chave pblica de
B para cifrar cada mensagem bsica, por exemplo, o ponto Pc = (241, 372). A escolhe o
nmero k = 3 e calcula 3G, 3 7G e Pc
pontos (kG, Pc

+ krsG)

+ 3 7G

= (576, 100). Ento A envia o par de

= ((76, 623), (576, 100)). Desta forma o usurio A envia o seguinte

mensagem cifrada (M.C.):


M.C. = {(76, 623), (576, 100), (59, 506), (109,172), (365, 335), (392, 297), (132, 458), (742, 350),

(458,351),(149,682),(357,312),(171,58), (149,682),(576,100), (392,297), (132,458)}.

O usurio B recupera a mensagem original multiplicando o primeiro dos nmeros recebidos por sua chave privada, obtendo o valor de rskG = (0, 113) e depois subtrai este dos
outros pontos, i.e., (576, 100)- (0, 113) = (241, 372) = Pc e assim com todos os pontos da

27

mensagem cifrada, por ltimo o usurio B decodifica esta mensagem como foi dito no item
(1).

A seguir, alguns fatos interessantes que esto relacionados com os criptossistemas PlntiPn~
usar curvas elpticas para implementar criptossisternas de chave pblica,
" A proposta
baseados no problema do logaritmo discreto foi motivada pelo avano em ataques, como
o index calculus, feito aos criptossistemas construdos a partir de corpos finitos
Menezes, Okamoto e Vanstone [28], mostram corno dada uma curva
'" Um trabalho
sobre esta curva pode ser reduzido (usando um
elptica E definida sobre lFq, o
algoritmo de tempo polinomial), ao problema do logaritmo discreto sobre o corpo JFq,
onde o valor de k dependia da curva elptica. Isto implica que para valores pequenos
fato acontecia com as curvas elpticas supersingulares. Uma curva elptica E definida
sobre lFq chamada de supersingular se #(E)

1 (mod p).

" Existe outro tipo de curvas elpticas no adequadas para criptografia chamadas de
anmalas, isto , urna curva elptica E definida sobre lFq tal que #(E)= q, pois Satoh
e Araki mostraram um algoritmo de tempo polinomial para o DLP sobre este tipo
particular de curvas elpticas, ver [36].
e O algoritmo mais rpido que se conhee, at hoje, para a multiplicao de pontos
em curvas elpticas definidas sobre corpos finitos de caracterstica 2 da forma JF2= foi
desenvolvido por Julio Lpez e Ricardo Dahab [24].
" Devido existncia de ataques eficientes para certos tipos de curvas elpticas, se faz
necessrio procurar novos grupos onde a resoluo do problema de logaritmo discreto
tenha complexidade de tempo exponenciaL Este o tema que queremos abordar no
prximo captulo, introduzindo os J acobianos de curvas Hiperelptcas.
" Existem algoritmos propostos para gerar os parmetros pblicos para os criptossisternas elpticos, ver [14], [31].
" O passado 24 de Agosto do 2003, a Agncia de Segurana Nacional (NSA) em Maryland, adquiriu os direitos exclusivos a Certicom para usar os Criptossisternas de Curvas
Elpticas, fato que nos leva a pensar na importncia para o estudo deste tipo de criptossistemas.

CAPTULO 4
Criptossistemas Hiperelpticos

Atualmente, a resoluo do DLP sobre curvas elpticas de tempo exponencial salvo


certas curvas tais como as Supersingulares e as Anmalas. Porm, esta segurana poderia ser quebrada no sentido que a complexidade da resoluo do DLP se torne de tempo
sub-exponencial; isto factvel devido, por exemplo, ao avano das Cincia Matemtica,
Computacional e Fsica respectivamente. Assim, se faz necessrio o estudo de novos grupos
onde o DLP tenha uma resoluo de tempo exponencial (veja [16]). Devido a que uma curva
elptica coincide com seu Jacobiano, natural tentar obter tais grupos como subgrupos do
Jacobiano de uma curva arbitraria.
Geralmente, pode-se tentar estudar subgrupos de Variedades Abelianas sobre corpos finitos (por exemplo Jacobianos). Fatos tericos destes objetos se encontram em [8, Milne, Cap.
V]. Em esta generalidade, o uso destas variedades ainda parece estar longe de concretizar-se,
pois no claro como implementar algortmos que permitam operar eficientemente com seus
elementos. No caso de que a Variedade Abeliana seja o Jacobiano de uma curva, ento a
eleio do grupo est ligada com a estrutura da curva em questo. Se deve ter presente pelo
menos duas propriedades bsicas da curva: (i) que tenha um modelo plano simples e (ii) que
o tempo de operar no Jacobiano seja polinomial. A seguir nos referimos a algumas de tais
curvas.
,. Curvas hiperelpticas (veja Equao 4.1); Koblitz [19] foi o pnme1ro que props
usar grupos do Jacobiano destas curvas (definidas sobre corpos finitos) onde se es-

28

29

CAP. 4

pera que o DLP tenha complexidade de tempo exponenciaL Para operar os elementos
do Jacobiano, Koblitz melhorou e generalizou o algoritmo de Cantor [7];
Sejam t 2: 1 u= inteiro, a1 , ... , a, E lFq distintos dois a dois e

" Curvas
m1. ... ,

rn, m;;en:os no negativos tal que

mi
3

(x, y) junto com O (ponto no infinito) tal que y =a


curva ad=ite certos automorfismos,

4. Ento esta curva

os zeros

(x- ai)m' para a E lFq Se a

P Cherdieu, J. Estrada e

Reinaldo implemen-

taram um algoritmo em tempo polinomial para a soma no Jacobiano. Estas curvas so


um caso particular de curvas Super-elpticas, as quais tem sido sugeridas para construir
criptossistemas de chave pblica por Galbraith, Paulus e Smart em [13].
" Curvas

Cab

K 2 , a saber do tipo

: O:b,oXb

+ ao,aY" + I:ia+jb<ab ai,jxiyj

i e a, b so inteiros positivos

sido sugeridas tambm na construo

O, onde

Este tipo de curvas tem

cdigos algbrico geomtricos, ver [27]).

Neste captulo estudamos o Jacobiano de curvas hiperelpticas e a aplicao destes em


criptossistemas chamados Criptossistemas hiperelpticos. Nos ltimos anos tem aumentado
o interesse pelo estudo destas curvas as quais em particular foram utilizadas, por exemplo,
para o desenho de cdigos corretores de erros [5] e algoritmos de fatorao [22].

4.1

Conceitos Bsicos de Curvas Hiperelpticas

Nesta seo, introduzimos a teoria bsica de curvas hiperelpticas e seus Jacobianos com
o fim de propor grupos que sirvam para implementar criptossistemas de chave pblica.
Fixemos K um corpo perfeito de caracterstica p 2: O e seja K seu fecho algbrico e g um
inteiro positivo.

4.1.1

Generalidades

As curvas hiperelpticas so uma classe especial de curvas algbricas e podem ser vistas como
uma generalizao das curvas elpticas.
Definio 4.1. Uma curva hiperelptica H sobre K so os zeros no plano projetivo P 2 (K)
de uma equao da forma

Y 2 Z 29 - 1 + h(X/Z)YZ 29 = f(X/Z)Z 29+l,

(4.1)

30

CURVAS

SEAO 4.1

onde,
(1)

f E K[X), mnico e de grau


,h=Oou

(2) h E

2g

1;

no mximo g;

(3) A curva H no singular em todo ponto P = (x: y:


O nmero g chamado o gnero da curva (veja

equao ( 4.1) temos que a curva

p. 196]).

intercepta a reta Z

= O no ponto

O= (O: 1: O),
e assim podemos considerar a

como sendo a unio deste ponto com os zeros (X, Y) E R x K

do polinmio:

:=Yz+
Fcilmente se prova que

irredutvel em

Y],

F absolutamente irredutvel (ver

Apndice A). A condio (3) acima equivalente a que o sistema

Y 2 + h(X)Y- f(X) =0
2Y +h( X)
h(X)'Y- j'(X) =0
no tenha soluo em K x K. Mais ainda, da equao (4.1) podemos mostrar que H
no singular em O se e somente se g = 1. De fato, des-homogeneizando esta equao com
respeito a Y temos
Z 29 -

+ h(X/Z)Z 29 = J(X/Z)Z 29+1 ,

e daqui a curva no singular em O se e somente se 2g- 1 = L Se a caracterstica p maior


que dois, ento o polinmio (4.2) pode ser considerado como
F

Y2

J(X),

com f(X) um polinmio mnico de grau 2g + 1,

fazendo a mudana de variveis: Y

r-+

(4.3)

Y - h(X)/2.

Lema 4.2. Seja F o polinmio em (4.2). Se p = 2 ento h( X)

i= O.

Demonstrao. Suponha que h(X) = O; derive F com respeito a X e seja x E K uma raz
de J(X)'. Seja y E K raiz de Y 2

= f(x). Logo o ponto (x,y) = (x:

y: 1) um ponto

singular da curva, contradio com a hiptese (3) da definio de curva hperelptica.

.,

4.1.2

:n

CRIPTOSSISTEMAS

Pontos racionais

De forma anloga ao caso elptico, podemos definir o conjunto de pontos racionais para um
corpo L tal

H(L) de pontos racionais de

formado pelo ponto O e os zeros

L= lFqn, seja

nL

E L x L do polinmio

sobre L

em (402)0 Para K

lFq e

sobre L, ento

o nmero de pontos racionais de


g

nL

= qn +

1- :[(ai+

(4.4)

i=l

onde os et;'s so inteiros algbricos 1 de mdulo

Jl?i 2

Temos que

(405)

para i= 1, o o o ,g
onde os

's e seus conjugados so razes de um polinmio com coeficientes em Z[t] da forma:

h(t) = t 2g

+ a 1 t2g-l

'
-t-o
o o T' Og tg-',

qa 9 _ 1 tg-1

+ q2 a9 _ 2 tg-2 + o o o + qg-1 a 1 t + qg o

(406)

De (4.4) obtemos a chamada cota de Hasse-Weil para H(L), a saber

Agora seja Si:= #H(lFqi)- (qi

+ 1)0

Por (4.4) e (405) aplicados com n =i, temos

S; = -

:[Ci3j + 3j),

para i 2: L

j=l

Assim por exemplo da Equao (46), a1 =

S~,

82

2a2

+ S1a 1,

e em geral temos as

seguintes frmulas de recorrncia (por exemplo, utilizando as frmulas de Newton, ver [39,

Cor, YL17]),
i-1

ia; = S; +

si-jOj

j=l

Vemos ento que o polinmio h(t) em ( 406) se determina completamente se e somente se


conhecemos S; para i = 1, o o o , go Em particular, com esta informao se calcula #H(lF q')
para i 2: g +L
1 Um

nmero complexo a chamado um ntero algbrico se este satisfaz um polinmio da forma xrn

+ ... + c1x +co= O com Ci E Z.


a hiptese de Riemann para curvas sobre corpos finitos [8, Milne, Capo 7, 11], [39, Capo 5jo

am_ 1 xm-l
2 Esta

4.1.3

CONCEITOS

32

DE CURVAS

Exemplos

Exemplo 4.3. Seja K = JF 2 e consideremos a curva H definida por:

= 1 e pelo tanto

Temos ()yF(X,

#H(lF2 ).

hiperelptica de gnero 2. Determinaremos n.

:=

mencionada acima, ser suficiente calcular n 1 e n 2 . Por processo exaustivo

= 9. Ento a 1 = O e a2 = 2. Logo, h(t) =


a 1 = (V2 + .J6i) /2 e a2 = (-V2 + .J6i) /2. Finalmente temos que
temos que n 1 = 3

e n2

n(JF2,) =

+1

se r

+ 1 + 2/2+!
2' + 12

t4

+ 2t 2 +

daqui

(mod 6)

l, 3, 5

se r_ 2,4

(mod 6)

se r_ O

(mod 6)

Exemplo 4.4. As curvas deste exemplo so hiperelpticas como pode ser verificado usando
somente a definio. Todas estas tem gnero dois. Seja a curva H definida por:

Y 2 =(X+ l)(X 2 + l)(X 2 + 3).


Ento o seu grfico em R x R :
4

~----r'

0.2

0.4

0.4
X

Figura 4.1: Curva Hiperelptica 1


Agora suponha que H est definida por:

o:e

o.s

33

Ento o seu grfico em IR x IR :

I
\\
1.S

0.5

Figura 4.2: Curva Hiperelptca 2


Finalmente considere a curva

definida por

Y 2 = X(X + l)(X- l)(X + 2)(X- 2).

II

I
y

(\

~
~

_)'

Figura 4.3: Curva Hiperelptica 3

\'

\\

4.1

4.1.4

CONCEITOS

34

DE CURVAS

U:ma involuo sobre H

Sobre H e de forma natural est definida uma involuo (}: H--+ H definida por (x, y)
(x, -y- h(x)) e (}(O)

~-->

O; observe que (} um automorfismo de H tal que u o(} a

identidade sobre H (alguns autores chamam a u(x,y) e a(O)) o oposto de (x,y) e de O


respectivamente). Lembramos que podemos supor
de a so chamados de Pontos

O se p

> 2.

pontos fixos
caso p > 2 e

caso contrrio, de Ordinrios.

h(X) =O, os pontos especiais diferentes

O so da forma (a, O) onde a raiz de f(X) no

corpo considerado.
Exemplo 4.5. Considere a curva H sobre iF 7 definida por:

Y 2 + XY = f(X) := X 5 + 5X 4 + 6X 2 +X+ 3.
Afirmamos

f(X)

2g + 1, o grau de h(X)

:=

X menor o igual que 2 e verifiquemos que o sistema

= 5X 4 + 6X 3 + 5X + 1 (3) no tem soluo em

Y 2 + XY = f(X) (1), 2Y +X

= O(2),

IF7 x IF7 . De (2) temos que Y

3X; e substituindo em (3), 5X 4 + 6X 3 + 2X + 1 =O ( 4); em

(1): X 5 +5X 4 +X 2 +X +3

= 0(5). Logo, as razes de (4) so {1,2,3,4} e nenhuma destas

raiz de (5), logo conclumos que a curva definida acima uma curva hiperelptica. Fazendo

a mudana de coordenadas Y

r->

Y + 4X e X

~--+

X, a equao acima fica equivalente

equaao:

Logo os pontos especiais de H sobre iF 7 so O e os pontos (a, O) onde a uma raiz em iF 7 de

X 5 + 5X 4 + 6X 2 +X+ 3 =O. Este polinmio s tem uma raiz em iF7 , a saber {6}. Da que
o nico ponto especial da curva P

(6,4). Temos que os pontos racionais de H sobre IF 7

so:

H(iF7) = {O, (1, 1), (1, 5), (2, 2), (2, 3), (5, 3), (5, 6), (6, 4)}.
Exemplo 4.6. Consideremos a curva hiperelptica H definida por Y 2

(X 2

+ X)Y -

X 5 + X 3 + 1, de gnero 2 sobre o corpo iF 2s = iF 2 [X]/(X 5 + X 2 + 1), onde o polinmio


X 5 + X 2 + 1 irredutvel em iF2[X]. O conjunto de pontos racionais desta curva :
H(iF s) = {O, (0, 1), (1, 1), (a 5, a 15 ), (a 5 , a 27 ), (a 7, a 4), (a 7, a 25 ), (a 9 , a 27 ), (a 9, a 30 ), (a 10 , a 30 ),
2
(a14, as), (al4, a19), (a15, 0), (a15, as), ( a18, a23), (a1s, a29), (a19, a2), (a19, a2s), (a2o, a15),

(a2o, a29), (o:23, 0), (a23, a4), (a2s,a), (o:2s,o:14), (a21,0), (a27, a2), (o:28,o:7), (o:28,a16), (a29,0),
(o:29, a), (o: 30 , O), (a 30 , o: 16 )}. Os pontos (0,1) e (1, 1) so pontos fixos da curva.

35

CAP. 4 e

4.1.5

Divisores sobre

Um divisor D sobre H uma soma forr:nal de pontos de H, D = LP vp(D)P, onde cada


vp(D) um nn.euu e diferente de zero so:rnente para um nmero finito de pontos (pelo tanto

podemos identificar D com um elemento

grupo abeliano livre gerado pelos pontos de

O conjunto Sup(D) dos pontos P onde vp(D)

f O chamado de

suporte de D. O conjunto

de divisores de H ser denotado por Div(H) e este um grupo comutativo com a operao :

D1

+ D2 =L vp(D1)P +L vp(D2)P := L(vp(Dl) + vp(Dz))P.


p

O grau de um divisor D est definido por deg(D):

LP vp(D); logo temos um homomor-

fismo sobrejetivo de grupos dado por deg : Div(H) __. Z, D


e r um automorfismo de H, definimos
L

K,

:=

>--+

deg(D). Para D E Div(H)

Lp vp(D)r(P). Para um corpo L tal que

dizemos que D est definido sobre L, se para todo automorfismo r de

definido sobre L temos que D 7

Dizemos que r est definido sobre L se r(P)

para

todo P E H(L ). O conjunto de tais divisores ser denotado por DivL(H) e este um subgrupo de Div(H). Para dois divisores D 1

Lp vp(D 1 )P, D 2

Lp vp(D 2 )P E DivL(H),

definimos (de acordo com [21, p. 167])


mdc(D1, Dz)

:=

min{ vp(D 1 ), vp(D 2 )}P- mO,

P#O

com deg(mdc(Dr, D2)) =O. Definamos Div~(H) := DivL(H) n Kernel(deg); este conjunto
um subgrupo de DivL(H) e desempenhar um papel relevante no que segue.

4.1.6

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 p: H

--t

P 1 (k) com p(P) = oo se e somente se

= O. Este anel quociente de fato isomorfo ao conjunto de funciones polinomiais para


L= k.
P

Sendo F absolutamente irredutvel, L[H] um domnio de integridade e portanto est


definido seu corpo quociente L(H); este chamado o Corpo de Funes Racionais de H sobre
L. Para R E L[X, YJ, denotemos por

de anis L[X]
R( X)

O.

-->

L[H]. R(X)

>--+

Ra

sua classe em L[H]. Consideremos o homomorfismo

R(X). Logo este injetivo pois degy(R(X)) = O para

particular, podemos identificar cada constante a E L con e X com X. Seja

36

CURVAS HIPERELPTICAS

y := Y. Ento tomando classes, temos F(X,y) =O, isto ,


y2 +

(X)y- f(X) =O.

Desta forma, cada elemento de L[H] pode ser reduzido de maneira nica h

A(X) + B(X)y.
Observe que isto significa 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 +L

4.1. 7

Pontos regulares e plos de uma funo racional

ser conv,cnien1te assumir L =


definida em

ou que r regular em

H, P

O. Dizemos que r est

se existem funes polinomiais

S tais que r = R/ S

neste caso r(P) := R(P)/ S(P). Esta definio independo da representao

e S(P)

r mediante R e S; de fato se R/S =RI/51 , ento F divide (RS1

R 1S) e se segue a boa

definio de r(P).
No caso de que r no possa ser definido em P, este ponto dito um plo de r e definimos
r(P) := oo (desta forma r induz uma funo racional H--+ P 1 (K)). Se r est definido em
P e r(P) = O, P chamado de zero de r. Observamos que r
plos e zeros. Com efeito, os zeros P

O tem um nmero finito de

(ap, bp) de r so os zeros de uma funo polinomial

da forma A(X) + B(X)y, onde A, B E K[X]. Podemos supor mdc(A(X), B(X)) = 1; agora

(A(X)

+ B(X)y)(A(X) -

B(X)(y

+ h(X))

uma func polinomial em X e portanto o

nmero de coordenadas ap para P finito. Como A(ap)

+ B(ap)bp

=O e B(ap)

O (do

contrrio (X- ap) um divisor de A(X) e B(X)) ento bp = -A(ap)jB(ap). O mesmo


raciocnio serve para os plos.

4.1.8

Divisores principais.

A cada funo racional no nula r associaremos o seguinte divisor sobre H, chamado de


principal,

div(r) :=

vp(r)P,

PEH

onde P E Sup(div(r)) se e somente se P um zero ou P um polo de r. Para P E H e

r= O, vp(O) := +oo. Em K(H) \{O} se espera que vp satisfaa as seguintes propriedades:

37

CAP. 4 '"

(1) vp(rrJ)
(2) vp(r

vp(r)

+ r 1 ) 2:

+ vp(rl);

min{vp(r),vp(r 1 )} (e temos a igualdade se vp(r)

Para r= RS E K(H), r

=f O,

vp(r) ser por definio vp(R)- vp(S). Logo suficiente

definir vp(R) para uma funo polinomial R= A(X)


Caso L O ponto

= (a,

(X- a) que divide a

=f O,

vp(r 1 )), neste caso

valorao ou de ordem em

vp chamada

e Se R 1 (P)

=f

+ B(X)y.

b) =f u(P) onde u a involuo

Seja .e a maior potncia de

logo R= (X- a)eR 1 , onde R 1

A 1 (X)

+ B 1 (X)y E R[H].

vp(R) := t;

e Se R 1 (P) =O. Usando F(X,y)

O, obtemos

-BifE

= N(X) =

(4.

Logo vp(R) :=C+ i'r, onde Cr a maior potncia de (X- a) que divide o polinmio
N(X) acima.

Exemplo 4.'7. Seja P = (a,b)

=f u(P).

Para R= X -a, temos vp(R) = v"(P)(R) = 1. Para

S = y- b, consideramos S(X, y) S(X, -y- h( X)) = N(X) = b2 + bh(X)- f(X). Logo


vp(y- b) = C1 2: 1 onde 1 a maior potncia de (X- a) que divide N(X). Pode acontecer

que vp(y- b) > 1. Por exemplo considere a caracterstica p > 2, a E K* e as curvas Ha


definidas por

Temos que os possveis pontos singulares de Ha em K x K satisfazem Y


neste caso a deve satisfazer a condio 27a 2

O, 2+3(X -a)

O;

= -4. Logo conclumos que Ha hiperelptica

de gnero 1, salvo possvelmente dois valores de a. Logo considerando P = (a, a), temos
vp(y- b)

= vp(y- a)= 2. Agora, seja p = 2,


Fa(X, Y) := Y 2

+ Y-

a E K e as curvas Ha definidas por


(X- a) 3

(X- a) 5 .

Para qualquer valor de a temos que Ha uma curva hiperelptica de gnero 2. Logo considerando P =(a, 1) temos que vp(y- b)
Caso2: O ponto P
R 1 (P)

=f O,

vp(R) :=

vp(y

+ 1) 2: 3.

= u(P). Sejam R 1 ,f,C1 como no caso anterior. Ento se


2C; caso contrrio, vp(R)
2C + C1 .
(a,b)

Case 3: P =O. Aqui v 0 (R) :=

max{2deg(A(X)), 2deg(B(X))

+ 2g + 1}.

39

CAP. 4 "

onde R P ou cr(P).
Se P = CY(P), e np um inteiro par, temos npP ~ npO; caso contrrio se np = 2n + 1,
~2n0+

[J

4.1.10
O

desta sub-seo mostrar que todo divisor

a um nico

grau zero linearmente equivalente

1) o qual ser importante para fazer as

de um certo tipo (Teorema

operaes sobre o Jacobiano da curva.


Fi.xemos D um divisor semi-reduzido,

P+

D=
D chamado reduzido se L, P,po v p (D)

vp(D)P- mO.

m ::; g, onde g o gnero de

Seja D 1 um divisor de grau zero; logo pelo Lema 4.8 podemos supor que D 1

P E Sup(D) \ { 0}, P

Para

(ap, bp ), definamos
A

= A(X)

:=

TI (X -

ap )"p(D) E K[X].

Lema 4.9. Existe um nico polinmio B

B(X) E K[X] tal que:

(1) deg(B) < deg(A);


(2) Para P E Sup(D) \ {0}, B(ap) = bp;
(3) B 2

+ Bh(X)-

Alm disso, D

f(X) -O (modA).

= div(A, B)

:= mdc(div(A), dv(B- y)). Para r E K(H), observamos que a

notao r= O (modA) significa que r= As onde vp(s) 2: O.


Demonstrao. Primeiro mostramos uma verso "local" do lemma.
Afirmao 1. Para P E Sup(D), P =f. O, existe um nico polinmio R= Rp(X) tal que
(i) deg(R) < vp(D), (ii) R(ap) = bp, (iii) R 2 + Rh(X)
Caso P

CY(P). Como vp((y-bp )/(X -ap )) 2: O, y

f(X) =O (mod (X

ap )vp(Dl).

= bp+(X -ap )A, com nico A E K(H)

tal que vp(A) 2: O. Repetindo este processo por substitues do tipo A= (A-A(P))+A(P),
obtemos uma nica representao para y do tipo

y -_ bp T,

C1

(X

Op),

+ .. T, Cvp(D)-l (v

/>. -

ap )vp(D)-l + (X - ap)'vp(D)R 1 ,

SEO 4.1

40

CURVAS

onde vp(R 1 ) ::0: O. Logo definimos:

R = Rp(X) := bp + CJ(X - ap) + ... +


polinmio claramente

Cvp(D)-l (X

- ap )"p(D)-l.
segue do fato que y - R

; a propriedade

(mod (X -ap )vp(D)) (observe que vp((R-y)/(x-ap )vp(D)) ::0: Opois R-y
Caso P

a(P). Aqui vp(D) = 1; logo

= Rp

:=

= (x-ap )vp(D) R 1 ).

bp.

a verso global aplicamos o Teorema Chins dos Restos para

tanto existe um nico polinmio

e os

pelo

que deg(B) < deg(A) e B(X) -

B(X)

Rp

(mod (X- ap )vp(DJ). 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 rndc dos divisores div(A) e div(B- y).

b) tal que P

mostrar que

f(X)

::0: 1 por (2) e que vp(A) = 2.

cr(P); temos que vp(B-

fato vp(B- y)

= 1

consideremos a funo

:=

(B -y)(B+y+h); logo (2) implica vp(N) ::0: L Afirmamos que vp(N)

bastar mostrar que N'(a) #O. Temos N'(X) = 2BB' + Hh(X)


avaliando em P, usando (2) e o fato que b =

B 2 + Bh(X)=

1; para isto,

+ Bh(X)'- f(X)'.

-h( a), obtemos N'(a) = bh'(a)- f'(a)

pois H no singular em P. Obtemos assim que vp(D)

Logo

O,

=L

= R 2 +Rh(X)- f(X) =Ar


onde vp(r) > O. Logo vp(B-y) = vp(A) +vp(r), pois P no ponto fixo. Ento vp(D) = np
Seja P agora tal que P # cr(P). De (3), (R-y)(R+y+h(X))

eportanto,omdc(div(A),div(B

y))='L,p,;, 0 npP-mO

D.

Observao 4.10. Sejam A e B dois polinmios satisfazendo as condies (1) e (3) do

lema anterior. Ento o divisor D := mdc(div(A),div(B


Demonstrao. Seja P

y)) semi-reduzido.

(ap, bp) E Sup(div(A)). Para P

f cr(P) e

de (3) temos que

vp(B- y) = vp(A) + vp(s) onde vp(s) >O, logo vp(B- y) 2 vp(A) e Vu(P)(B- y) =O.
Para P

cr(P) e da condio (3) segue-se (B- y)(P) =O, logo vp(B- y) 2 1. Afirmamos

que vp(B-y) = 1. Dado N(X) = (B- y)(B+y+h) = B 2 +Bh- f; temos que N(ap) =O
e N'(ap) #O, pois P #O no ponto singular da curva.
Teorema 4.11. Existe um nico divisor reduzido D 1 tal que D

D 1.

Demonstrao. Existncia. Podemos supor D =Do := Dg -mO semi-reduzido (Lema 4.8)


tal que

2:: p,;o Vp (Do)

::0: g + 1 onde g o gnero de H. Assim, podemos escolher P1 , ... , P9 + 1

do suporte de D (no necessariamente diferentes) e considerar o divisor semi-reduzido:

E= Eo

:=

P1 + ...

+ P9 + 1 - (g + 1)0.

CAP. 4

HIPERELPTICOS

Pelo lema anterior, existem polinmios A =Ao e B

P9 + 1 + Q1 +

D-

... + Q9 -

(2g + 1)0. Seja D

Fo

41

= B 0 tal que div(B- y) = P1 + ... +

+ P1 + ... + P9 +l

- (m- 2g- 1)0 ~ D 1

-y) =

-mO. Logo
=

D- (m- 1)0,

sendo que D 1 pode ser assumido serm-re<lu:01do. Agora a prova de existncia termina por
induo sobre m, pois o grau do novo
Unicidade.

construdo, no mnimo diminui em l.

Sejam D1 =/= D2 divisores reduzidos

que

Como

deg(D 1 - D 2 ) =O, pelo Lema (4.8), D1- D 2 ~ D 3 onde D 3 o divisor semi-reduzido obtido
da prova do lema. Seja P E H tal que m := vp(D 1 ) =/= n := Vp(D 2 ); considerando D 1 D 2
ou D 2 - D1. podemos supor que m 2: 1 e que algum dos seguintes casos podem ocorrer:

(2) 1 :S n < m;

Logo pela escolha de D3 temos que vp(D3) 2: 1 para todos os casos acima. De fato, nos Casos
(1) e (2) vp(D3) = (m- n) 2: 1; no caso (3) a(P) =/= P; logo da propriedade P + u(P) ~ 20
e da contruo de

D3

segue-se a afirmao. Agora como D 3 ~ O, existe r E K(H) tal que

D 3 = div(r); pela definio de D3, o nico polo de r O e assim r = A(X)


onde A( X), B(X) E k[X]. Para i

+ B(X)y

1, 2, 3 escrevamos Di = LNO VP(i)(Di)P- di O, onde

di:= (L;p.,oVP(i)(Di)). Pela definio de divisor reduzido, d1 :S g e d2 :S g; pelo tanto fica


claro que d3 :S 2g.
Afirmao : B(X) = O. Suponha que B(X) =/= O; como vo(A(X) =/= v0 (B(X)y), ento

v0 (r) = min{vo(A(X)), vo(B(X)y}. Temos que v0 (B(X)y) < vo(A(X)), pois do contrrio,
-2deg(B(X)) - (2g + 1) > vo(A(X)) = vo(r) = -d3 2: -2g o qual uma contradio.
Portanto temos, vo(B(X))- (2g + 1) = vo(r) = -d3 e assim d3 2: 2g + 1 + 2deg(B(X)).
Logo r= A(X) com deg(A(X)) 2: 1. Tome Q = (a,b) E
tal que A(a) =O; logo pela
definio de u(Q), temos que Q,u(Q) E Sup(D3 ) o qual contraditrio com a definio de
~.

4.2

4.2

42

O JACOBIANO DE H

O Jacobiano de H

Nesta seo definiremos o Jacobiano de uma curva hipereliptica H.

Jacobiano :J =

de H o grupo

J=

/P,

onde Dv0 = Div1?(H) o grupo de divisores de grau zero sobre

= Pg(H) o

subgrupo de divisores principais de Div 0 A maneira de comentrio, :J pode ser munido de


uma estrutura de variedade algbrica de dimenso g onde as operaes de soma e inversa de

:J sejam compatveis com a estrutura algbrica. Assim, podemos considerar :J como uma
variedade Abeliana.

4.2.1

Pontos racionais do Jacobiano

Para aplicaes criptogrficas usando o mtodo Diffie-Hellman ou E!Gamal, de interesse


o estudo de subgrupos finitos do Jacobiano da curva hiperelptica escolhida.
caso, consideraremos subgrupos finitos do Jacobiano da curva definida sobre K
um fato que :J est tambm definido sobre K.

Em nosso

lFq

Seja L uma extenso finita de K e D

um divisor de grau zero definido sobre L. Pelo Teorema (4.11) existe um nico divisor
reduzido D1

L;P vp(D 1 )

=
::;

L;p vp(D1)P tal que D ~ D 1 e pela denifinio de divisor reduzido temos que
g onde g o gnero da curva. Assim, existe um nmero finito de possibilidades

para obter divisores reduzidos, logo obtemos um nmero finito de elementos do Jacobiano;
existem tambm as frmulas explcitas para calcular este. Seja K := lFq, L= lFq" e 11h :=

#:JH(L). Se sabe que 1'h pode-se calcular a partir dos inteiros ai em (4.4). De fato temos
[39, Teorema VL15]
g

NL

I1 (1- ,6;')(1- {3~).


i=l

Logo, usando que

lail = qn/ 2 se obtm:

particular, NL se comporta assintticamente como qng

(4.8)

HIPERELPTICOS

CAP. 4 *

Exemplo 4.

43

Escolhendo a curva do Exemplo (4.3) temos que: Para L= lFq"'

+ 2n + 1
se n -1,5
(2n + 2n/2 + 1)2 se n = 2,4

(mod 6)

(2n- 1)2

se n=3

(mod 6)

(2n/2 _ 1)4

se n

22n
:=

Seja L=

#:JH(L)

Pelo Teorema 4.

(mod 6)
(mod 6)

a cada classe [D] E JH(K), lhe corresponde um nico di-

visor reduzido D R De fato, o mapa [D]~--+ D R define um sistema completo de representantes


para os elementos de JH(K).

4.2.2

Soma de Divisores no Jacobiano

[19], que como foi dito na introduo, este


apresenta uma generalizao dos algoritmos de Cantor [7] para computar eficientemente a
soma de dois divisores reduzidos no JH(L ), o qual s fez para o caso em que a caracterstica
do corpo era diferente de dois e h(X)

O. A seguir descrevemos em forma geral estes

algoritmos.

o Algoritmo 1 Dados dois divisores [D1 ], [D 2] E JH(K) semi-reduzidos, ao aplicar o


algoritmo este devolve um divisor Do semi-reduzido, equivalente ao divisor D 1 + D 2 .
" Algoritmo 2 Dado um divisor semi-reduzido Do de grau R0 , ao aplicar o algoritmo,
este devolve um divisor D semi-reduzido tal que Do ~ D e fi :::; 0 , onde R o grau de
D. Aplicando sucessivamente este algoritmo achamos um divisor reduzido equivalente

a Do.
A seguir os passos a efetuar para cada algoritmo:
Algoritmo 1. Sejam D 1 = div(Ar. Bl) e D 2
a curva

Y2

= div(A 2 , B 2 ) divisores semi-reduzidos sobre

+ h(X)Y = f(X) definidos sobre K, onde h, f E K[X] e A 1 , B 1 , A 2 , B 2 E K[X].

A seguir, descrevemos os passos formalmente para aplicar este algoritmo.


(1) Usando o algoritmo de Euclides sobre K[X], achamos dr. e 1 , e 2 E K[X] tal que:
dr

mdc(Ar, A 2 ) ed1 = e 1 A 1

+ e2A2,

(2) Usando outra vez o algoritmo de Euclides, achamos d, c1 , c2 E K[X] tal que:

44

(4.9)

+ Dz,

(4) O divisor D' = div(A', B 1 ) o divisor semi-reduzido equivalente a

=A1Az/d2 ,e
B'

tal que:

(4.

= s 1 A 1B2 + s2A2B1 + s3(B1B2 +f)

(mod

11)

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 polinod divide
e
s1A1B2 + s2AzB1
'
escrever B =
d

divide
+ s3(B1B2 +f)

B2(d- s2Az- s3(B1


B

z+

Usando a equao (4.9), podemos


.
como sendo

+ B2 +h))+ szAzB1 + s3(B1B2 +f)

d
s2A2(Bz- B1)- s3(B~

+ B 2h- f)

Pela definio de D2 temos que A 2 divide B~ + B 2h- f, logo B' tambm uma funo
polinomial.

= div(A',B') um divisor semi-reduzido. Seja

"Agora mostramos que D'

'

s1A1B2

+ s2A2B1 + s3(B1B2 +f)


d

+s

A'

com sE K[X]. Subtraindo y a cada lado temos que

(B' _ y) = s1A1Bz

+ szA2B1 + s3(B1Bz +f)- yd + sA' =


d

s 1A 1(Bz

y)

+ szAz(BI -

y)- s3(B1- y)(Bz- y)

+s

A'

e como (B'-y)cr(B' -y) = (B' -y)(B' +y+h) = B'2 +B'h- f, ento podemos ver que
para A' dividir B' 2+B'h- f, suficiente mostrar que o produto A1A 2 divide o produto
de s 1A1(Bz y)+s2A2(BI-y)-s3(B1-y)(B2-y) com cr(s 1A 1(Bz-y)+s2A2(B 1-y)s3(B1- y)(B2- y)); isto imediato, pois A 1 divide Bf + B1h- f= (B1- y)cr(Bl- y)
e A 2 divide B5

+ B2h-

(B2- y)cr(B2 - y). Portanto, pela Observao (4.10) o

div(A', B') um divisor semi-reduzido.

CAP. 4 "

CRIPTOSSISTEMAS HIPERELPTICOS

45

Por ltimo, mostramos que D' ~ D 1 + D 2 . Seja P = (a, b) E H( L), temos dois casos
a considerar:
Se P =(a, b)

f O"(P);

(La) Suponhamos que vp(Dl) = m!.Va(P)(Dl) =O, Vp(Dz) = mz e Va(P)(Dz)

O.

onde m1. mz 2: O. Logo, vp(B1- y) 2: m1 e vp(Bz- y) 2: mz. Se m1 =O ou


m2 =O, ento vp(dl) = O, implicando que vp(d) =O e vp(A') = m 1 + m2.
Se m1,m2 2: 1, ento desde que (B1 + Bz + h)(a) = 2b + h(a) f O temos
vp(d) =O e vp(A') = m 1 + m 2; da equao (4.11) segue que vp(B'- y) 2:
min{m 1 + mz, mz + m 1 , m 1 + m 2 } = m 1 + mz. Portanto, vp(D') = m 1 + m 2 .

(l.b) Suponha que vp(DI)


m1 e Va(P)(Dz) = mz, onde m1 2: mz 2: l. Ns
temos que vp(A. 1 ) = m1. vp(A 2 ) = m 2 , vp(dl) = m 2 , vp(B 1 2: m 11
vp(Bz- y) = O e Va(P)(Bz- y) 2: m 2 . A ltima desigualdade implica que
vp(Bz +h+ y) 2: mz e daqui vp(Bl + Bz +h) 2: mz ou (B1 + Bz +h)= O.
Logo, vp(d) = m 2 e vp(A.') = m 1 -m 2. Da equao (4.11) temos vp(B' -y) 2:
min{m1+0,mz+m!,m1+0}

mz=m 1 m2. Portantovp(D')=m 1 -m 2 .

(2) Se P = CJ(P);
(2.a) Suponhamos que vp(D 1) = 1 e vp(D2 ) = l. Ento, vp(A 1) 2, vp(A 2 )
2e
vp(dl) = 2. Temos que (B1+Bz+h)(a) = 2b+h(a) O,logovp(B 1+B2 +h) 2:
2 ou (B1 + Bz +h)= O, ento vp(d) = 2 e vp(A') =O. Portanto vp(D') =O
(2.b) Suponhamos que vp(D 1 ) = 1 e vp(D 2 ) =O, logo vp(A. 1 ) = 2, vp(A. 2 ) = O.
Daqui temos vp(d 1) = vp(d) = O e vp(A') = 2. Como vp(A 2 ) = O e da
equao (4.11) temos vp(B'- y) 2: 1. Da equao (4.11) podemos dizer que

vp(B'- y) 2: 2 s se vp(s 2 A 2 + s 3 (B2

y)) 2': 1. Se isto acontece, ento

vp(szAz + s3(Bz +h+ y)) 2: 1 (ou szAz + s3(B1 + Bz +h) = 0). Isto implica
que da equao (4.9) vp(d) 2: 1, contradio. Logo vp(B'- y) = 1 e portanto
vp(D') = 1
Exemplo 4.13. Consideremos a curva hiperelptica H definida por Y 2 + (X 2 + X)Y =
X 5 + X 3 + 1, de gnero 2 sobre o corpo lF2s = lF 2 [X]/(X 5 + X 2 + 1), ver Exemplo (4.6).

(1) Sejam F= (o:30 ,0), O"(P) = (o: 30 ,o: 16 ), Q 1 = (0,1) e Q2 = (1,1). Definamos os
divisores reduzidos D 1 = P + Q 1

20 e D 2 = CJ(P) + Q2

20. Primeiro achamos

os polinmios A 1,B1.A2,B2 E lF2s[X] tais que D 1 = div(A 1 ,B1 ) e D 2 = div(A 2 ,B2 ).

4.2 ..

46

DEH

= nPeSup(D,)(X- ap)vp(Dll, logo .41 = X(X + a 30 ). Usando


as condies do lema 4.9, obtemos B 1 = aX + 1. Anlogamente, temos que A2 =
Ento temos que
(X

.41

+ a 30 )(X + 1)

e B 2 = a 23 X

+ a 12

seguir, aplicamos o Algoritmo

para

achar o divisor semi-reduzido equivalente soma de D 1 e D 2 . Logo, calculamos d1


mdc(A 1 , Az)
assim d

+ a 30

tal que

= d 1 . Ento.

Dos polinmios acima, segue-se


div( A') = 2Q 1 + 2Qz

40 , e
3

div(B

1
-

+ Qz +L P,- 50;

y) = div(y + 1) = Ql

i=l

tal que PiE H(lFz)


(2) Sejam D 1 = P

Q 11 Q2. Portanto, U = div(A', H)= Q 1 + Q2- 20.

+ Q1 -

20 e D2

+a

30

div(Az,Bz) onde A 1 = X(X


como d = d 1

= X

Q1
),

+ Qz

20. Ento D 1 = div(A 1 , B 1 ) e Dz =

B 1 = aX

+ 1,

Az = X(X

+ 1) e Bz

= 1. Logo,

obtemos

A 1 = (X+ a 30 )(X

+ 1), e B'

=a

14

+ a 13

(modA').

Daqui,
div(A') = 2Q 2 + P

+ (J(P)- 40, e

div(B'- y)

= Qz + P+

Lpi- 50,tal quePi f

Q 2 ,P,(J(P)eP, E H(IF2)

i=l

portanto, D'

= div(A', B') = Q2 + P- 20.

Exemplo 4.14. Consideremos a curva hiperelptca H definida por Y 2 +XY

X 5 +5X 4 +

6X 2 +X+ 3, de gnero 2 sobre o corpo JF7 . O conjunto de pontos racionais desta curva :
H(JF1) = {O, (1, 1), ( 1, 5), (2, 2), (2, 3), (5, 3), (5, 6), (6, 4)} ,
onde o ponto (6, 4) um ponto fixo.

CAP. 4

47

CRIPTOSSISTEMAS HIPERELPTICOS

div(A 2 , B 2 ) onde A 1 = X 2 + 6 = (X+ 1)(X - 1),

(1) Sejam D 1 = div(A1o B 1 ) e D 2


B 1 = 2X + 6,
divisor

ib = X 2 + 4X + 2 = (X - l)(X + 5), B 2 = 4X +

l. Calculemos o

equivalente soma de D 1 e D 2 . Ento, d1 = mdc(A;, A 2 ) = X - 1, logo


+ 2A 2 e d = mdc(d1o B 1 + B 2 +h) = mdc(X- 1, O) =X- 1 = d1 Assim,

A1

(X+l)(X+5),eB'=

logo,
div(A') = 2(6, 4) + (2, 2) + (2, 3)- 40, e
2

div(B' -y) = (6,4) + (2,2) + (1,5) +

LP;- 50.
i=l

Portanto D' =

,B') = Q

-20

Al!!:o:rit1mo 2 Seja D' = div(A', B') um divisor semi-reduzido; o procedimento 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(, b) equivalente a D'


tais que deg() ::; g. Ento,

A= (f

hB'- B'2 )/A', e

B =(-h- B')

(modA),

(4.12)
(4.13)

se c o coeficiente 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'). Sejam= deg(A') e n = deg(B') onde m >nem 2:
g + l.

Logo deg(A)

max{2g + 1, 2n}- m. Sem = g + 1 ento deg(A) = g < deg(A').

Sem> g + 1 ento max{2g + 1, 2n} ::; 2(m- 1), logo deg(A) ::; (m- 2) ::; deg(A').

(2) D = div(A, B) um divisor semi-reduzido. De (4.12) f- B'h- B'2 = AA', ento


passando mdulo A a ambos lados e aplicando (4.13) temos que
2

h) = O (modA). Simplificando fica

f+ (B + h)h- (B +

f- Bh- B = (modA). Portanto A divide


2

(f- Bh- B ) e aplicando o lema (4.9) conclumos que D = div(A,B) um divisor


semi-reduzido.
(3) Escrevamos o divisor D' da seguinte forma:

D'

L
P,u(P)

npP+

L
P=a(P)

F-mO

4.2 "

48

O JACOBIANO DE H

Pela prova do lema (4.9) podemos escrever

"L

div(A') =

P;fcr(P)

divW- y) =

"L

npP +

npJ(P)

P;fa(P)

2:::

P=oo(P)

2:::

mpP +

"L

P=oo(P)

onde mp;:: np, sp;:: 1 e

\ (Sup(D') U {J(P): P E Sup(D')} U {0}). Como

+ B'h- f) = (B'- y)(B' + y +h)


div(B'2 + B'h f)
(H 2

mrP + L

Pojo"(P)

temos que:

mpu(P) + L

2P + L

P="(P)

Pop<7(P)

spP +

PEH'

spu(P)- (*)O,

PEH'

assim, usando a equao (4.12) temos


div(A)

= div(B'2 + B'h- f)- div(A') =

tpP +

L
P;f<7(P)

tpu(P) + L
Pojo<Y(P)

spP +L Spu(P)- (*)O,

PEH'

PEH'

mp- np. Como B =-h- B' + sA onde sE K[X]. Para P = (a,b) E


Sup(div(A)), temos que B(a) =-h( a) B'(a) + s(a)A(a) =-h( a)- b. Ento
onde tp

div(B- y)

= L

TpJ(P) + L

P;f"(P)

Wpu(P) +L zpP- (*)O,

PEH'

PE

onde Tp 2 tp, Wp 2 sp e H o conjunto H\ Sup(div(B- y)). Logo,


div(A., B) =

tpJ(P)+ L

Spu(P)-(*)0 ~- L

tpP- L

spP-(*)0 = D-div(B'-y).

Pojoo-(P)

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 4.15. Seja a curva H : Y 2 + (X 2 + X)Y = X 5 + X 3 + 1 de gnero 2 definida

(0, 1) + (1, 1) + (o: 5 , a 15 ) - 30. Ento


e B' = a 17 X 2 +o: 17 X +1. Agora, calculamos

sobre lF2s. Consideremos o divisor semi-reduzido D'

D' = div(A.',B') onde A'= X(X +l)(X +a 5 )


os polinmios A e B tais que D = div(A, B) o divisor reduzido equivalente a D'. Ento,

CAP. 4 "

49

CRIPTOSSISTEMAS

Logo,
div(A) = (o:2s,az)

+ (o:28,o:!6) + (o:29,0) + (o:2,o:)- 40e


3

div(B

+I:

I n29

T\~

i=l

Considerando a mesma curva do Exemplo (4.14), seja o divisor semireduzido D

= div(A', B = div(X 7 + 2X 6 +

+ 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; = div(A;, BD = div(x 5 + 6x 3 + 6x 2 + 6x + 1, 3x 4 + 6x 2 + 6x + 1).
Como o grau de
ter um

A; e 5 2: g =

reduzido. Assim,
D

4.2.3

2 o gnero da curva, ento continuamos aplicando o algoritmo

div(A, B) = div(x 2 + x

+ 5, 4x + 4).

Automorfismo de Frobenius

O automorfismo de Frobenius pode ser eficientemente usado para realizar operaes com os
elementos no Jacobiano. A saber, seja

o automorfismo de Frobenius. Este automorfismo pode ser estendido sobre o Jacobiano de


umacurvahiperelpticadefinidasobrelFq Assim, para?= (x,y) E H(iFq) sejaP<P = (xq,yq)
e 09 =O. Para um divisor D = EPeHvp(D)P de H definimos D<P = EPeHvp(D)P<P.
A seguir, mostramos urna propriedade importante da ao do Frobenius sobre divisores
semi-reduzidos.

Teorema 4.17. Seja Dum divisor semi-reduzido de H definido sobre lFqn, ento o divisor D<i>

semi-reduzido e est definido sobre lFq". Alm disso, se D = div(A, B) com A, B E lFqn[X]
ento D1> div(A<~', B<i>).
Demonstrao. Seja D = EP#Ovp(D)P- mO onde m = 'L,p 7wvp(D) um divisor semireduzido definido sobre iF'qn Como tjJ automorfismo e D um divisor semi-reduzido, ento

D<P semi-reduzido. Como tjJ comuta com todo r

Aut(iFq : lFqn ), segui que (D<P)' = (D')?

D<P, isto , D est definido sobre lFqn Seja A(X) = flPESup(D)(X- ap)np

lFq"[X], onde

SEO 4.3

np

CRIPTOSSISTEMAS USANDO CURVAS HIPERELPTICAS

50

vp(D) e B(X) o nico polinmio que satisfaz as condies do Lema (4.9) tal que

D = mdc(div(A(X)). div(B(X)- y)) = div(A, B). Ento

D9 =

Vp(D)P 9 - mO= div(, B),

P::f;O

TIPESup(D)(X-

a~)np E Fqn[X] e

o Lema ( 4.9). Podemos observar que A 9

B E Fqn[X] o nico polinmio satisfazendo

= nPESup(D)

a~)np =

logo resta mostrar

que B<P = B. Como deg(B) < deg(A) ento deg(B'P) < deg(A") = deg(), alm disso,

B'P(4) = (B(ap))q = b~ para cada P E Sup(D). Por ltimo, A" divide (B 2 + Bh- f)",
pois A divide B 2

+ Bh- f

propriedades para D<P e

e h, f E lFq[X]. Como B o nico polinmio com essas trs

A= A", ento B<P = B.

Como conseqncia do Teorema, dado D = di v( A, B) E JH (JF qn) um divisor reduzido,


ento a ao do Frobenius sobre D dada por D 9 = div(A9, B1>) um divisor reduzido. Assim,

I:7=o ai X i E lF [X] e B = I:7:o biXi E lFqn [X] representaes explcitas de A


e B, ento A<'= I:7= a{Xi e B<i> = I:7: b{X'- Na prtica, se representamos os elementos

sejam A

qn

de lFqn usando Base Normal (ver Apndice A), ento A" e B<i> podem ser determinados
por simples shifting (desplazamento) na representao da base normal de cada coeficiente

ai, bi para calcular D"'. Desta forma o custo para operar elementos do Jacobiano menor,
implicando maior eficincia do algoritmo.

4.3

Criptossistemas usando Curvas Hiperelpticas

Como j foi mencionado, a implementao de novos grupos em criptossistemas de chave


pblica que baseiam a segurana no problema do logaritmo discreto (por exemplo, DiffieHellman e ElGamal) cada vez mais importante para lograr um nvel maior de segurana.
O Jacobiano de curvas hiperelpticas sugerido por Koblitz [19] como um grupo com as
caractersticas adequadas para aplicar na criptografia. Uma das caractersticas est relacionada com a intratabilidade computacional do logaritmo discreto sobre este grupo, que
definiremos a seguir.

Definio 4.18. O Problema do logaritmo Discreto sobre o Jacobiano de Curvas Hiperelpticas


JH(lFq") (HECDLP) definido em forma anloga ao ECDLP (problema do logaritmo discreto sobre uma curva elptica); assim, dados dois divisores D 1 e D 2 definidos sobre lFq"

CAP. 4

51

CRIPTOSSISTEMAS

determinar um inteiro m, se existe, tal que [D2 ] = m[D 1 ] em JH(lFq" ), ou equivalentemente,


mD 1

D 2 E PH(lFqn) o que se chama o HECDLP.

Assim, podemos definir em forma natural o sistema de troca de chaves Diffie-Hellman


entre os usurios A e B, sobre o Jacobiano de uma curva hipereliptica definida em um corpo
finito. Os parmetros pblicos so: o corpo finito lFq", a equao da curva hiperelptica H
e um elemento base Do E JH(lFq" ). A escolhe um inteiro mA, sua chave privada e envia
para B o ponto mADo; anlogamente,

envia mBDo, onde

mB

sua chave privada. Logo

o segredo compartilhado ser o divisor mAmBDo E JH(lFgn).


Uma condio importante para a escolha de uma curva hiperelptica est relacionada
com a dificuldade de resolver o problema do logaritmo discreto sobre seu Jacobiano. Assim,
a seguir mostramos o ataque index-calculus para o problema do logaritmo discreto, visto na
Subseo (2.3.1) para corpos finitos, implementado para o Jacobiano de curvas hiperelpticas
[41 ].

4.3.1

Ataque Index-Calculus para resolver o HECDLP

No 2000, Gaudry, Hess e Smart [12] mostraram como o problema do logaritmo discreto
(DLP) em curvas elpticas definidas sobre lF 2n se podia reduzir ao DLP no Jacobiano de uma
curva hiperelptica H definida sobre um subcorpo de lF2 n. Assim, o estudo dos criptossistemas
hiperelpticos e o HECDLP, poderiam ser usados para atacar os criptossistemas elpticos.
O index-calculus tem sido aplicado satisfatoriamente em vrios problemas criptogrficos
interessantes, incluindo o DLP para corpos finitos (ver Subseo 2.3.1). Esta mesma idia
pode ser usada para o DLP no Jacobiano JH(lFq") de uma curva hiperelptica H de gnero

g definida sobre K
m tal que [D2]

lFq. No que segue, D 1 E JH(lF), D 2 E< D 1 > e queremos determinar

= m[Dr] ou m = logn 1 D 2 .

(1) O primeiro passo computar a estrutura de JH(lF) 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 definies .
Definio 4.19. Seja D = div(A, B) um divisor semi-reduzido sobre

Dizemos que

D um divisor primo se o polinmio A irredutvel sobre lFq[X], o corpo base de H.

SEO 4.3

Seja

52

CRIPTOSSISTEMAS USANDO CURVAS

E K[X] um polinmio irreduttivel e a uma raiz de A. Dizemos que Y 2

h(X)Y- f(X) separvel (modA) se Y

+ h(a)Y- f(a)

tem duas razes distintas

f
'
em K ,a;.

dito separvel se

O polinmio

no divide f(X) e

+h(X)Y-

f(X) separvel (modA).


Definio 4.21. O polinmio

dito ramificado se A divide f(X).

Para D E JH(JF") tal que D = div(A,B), podemos escrever este como a soma de
divisores primos da forma Di

div(Ai, Bi), onde os Ai so fatores primos de A. Seja

t um inteiro chamado a cota de smooth-ness.

D<Jfirlio 4.22. 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 polinmio A

completamente separvel sobre lF q


SejaS

{P1 , ... , Pn} a base fator onde F;= div(A;, Bi) so todos os divisores primos

ramificados e separveis tal que deg(Ai) ::; t para algum t E Z. Se Ai sepravel,


ento unicamente um dos divisores primos sobre A;, div(Ai, Bi) ou div(Ai, -Bi- h),
est em S.
O primeiro mtodo procura achar m > n t-smooth divisores principais tal que se tenha
a relao LJ aJPj ~O. Se S gera JH(lFq) ento a aplicao

rp : zn

---; JH(JF q) onde r/J( ar' ... ' Oin)

I-+

L ajPj'
j

um homomorfismo sobrejetivo, logo JH(lFq) ~ znjKer(q). Cada relao um ele-

mento a;= (aiJ, ... ,ain) E Ker(q), e se o conjunto de m relaes forma um sistema completo de geradores do Ker(q), ento JH(!Fq)

Z/d 1Z EB ... EB Z/dnZ tal que

(d 1 , ... , dn) so os elementos da forma normal de Smith (SNF) (ver Apndice A) da


matriz relao A

= (a~

... a;,) onde a; esto escritos como colunas. Geradores Xi de

cada subgrupo Z/diZ podem ser calculados achando as matrizes P


tal que p-lAQ

(Pij) e Q

(qij)

= SNF(A) e fazemos xi = L7=1Pijpj

O segundo passo do algoritmo achar representaes de D 1 e D2 em Z/d 1 Z EB ... EB


e D 2 podem ser fatorados sobre S como D 1 ~

L riP e L

s;P;, ento

CAP. 4 "

53

CRIPTOSSISTEMAS HIPERELPTICOS

D 1 ~ 2:::r:xi e Dz ~ I:S:xi onde (ri, ... ,r~) = p- 1(r1, ... ,rn)T e (s~, ... ,s~)
p- 1(sb ... , snf Finalmente damos as representaes de D 1 = (r~, ... , r~) e Dz
(s~,

... , s~) em 7l/d 17lffi ... ffi'l/dn?l, logo o DLP pode ser resolvido usando o Teorema

Chins dos Restos generalizado para achar


(mod

m E 'l tal que as congruncias r; - ms;

) onde 1 :S i :S n sejam simultaneamente satisfeitas.

(2) O segundo mtodo melhora o primeiro quando #:JH(lFq) conhecido. Como acltmlx,
seja S

= {g, ... , Pn}

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 1D 1

s 1D 2 ~ Qi = Lj a 1jPj. Quando tem sido achados n

+1

relaes diferentes, apli-

camos o mdulo #:!H(lFq) para encontrar uma combinao linear no trivial da forma

A eficincia do mtodo depende bastante da escolha da base fator S, pois seus elementos,
os divisores primos, devem de gerar JH(lFq)
Existem various outros algoritmos apresentados na literatura para atacar o problema do
logaritmo discreto sobre o Jacobiano de curavs hiperelpticas, ver [16].

Comentrios

Esta dissertao teve como objetivo estudar as curvas Hiperelpticas e seus Jacobianos
para o desenvolvimento de criptossistemas de chave pblica que baseiam sua segurana na
resoluo do Problema do Logaritmo Discreto (DLP).
Diante destes estudos observamos que:
Para implementaes criptogrficos se deseja que o nmero de pontos do Jacobiano

#:TH(Fqn)

:=

Nn seja divisvel por um nmero primo grande. Neste sentido, existem

curvas hiperelpticas que atingem a cota mxima de Hasse-\Veil para o nmero de


pontos chamadas de curoas maximais [39, p. 202]. Por exeplo, a curva hiperelptica
Y 2 +Y

= X 5 de gnero g = 2 maximal sobre o corpo F 24. Assim podemos considerar

pontos racionais sobre extenses de F 24, isto , sobre corpos da forma F 24,; mas para que
a curva continue sendo maximal necessrio que o nmero s seja par; desta forma se
tem suficientes pontos racionais para valores grandes de s. Alm disso, se conhece que
a estrutura do Jacobiano para este tipo de curvas da forma JH (Fez) ~ (Z/ (t' + 1)Z) 29 .
Assim, com estas propriedades do grupo para fazer criptografia, estas curvas a priori
so um bom tipo de curvas para implementar criptossistemas. O termo bom tipo, faz
referenda informao que obtemos do nmero de pontos e a estrutura do Jacobiano
a partir destas curvas.
" O gnero g de curvas hperelpticas adequadas para implementaes criptogrficas de
fundamental importncia que seja pequeno (2 e 3), pois para g 2: 4 existe um algoritmo
de tempo sub-exponencial que resolve o Problema do Logaritmo Discreto (DLP) sobre

54

CAP. 4 '"

CRJPTOSSISTEMAS HIPERELPTICOS

o Jacobiano deste tipo de curvas [2].


" Analogamente ao caso de curvas elpticas anmalas, temos que se H uma curva
hiperelptica

que 1/-:JH(TFq) =

em JH(TFq) pode ser eficientemente

L ento o

resolvido [35].
"

uma curva hiperelptica definida sobre um corpo finito lF q, existe uma eficiente
reduo do DLP no JH(lFq) para o DLP no grupo multiplicativo de um corpo de
extenso IFqk onde k o inteiro mais pequeno tal que #:JH(lFq) divide qk- 1, ou o
maior fator primo de #:JH (fi q) que divide qk

1.

55

APENDICE A
Preliminares Matemticos

Planos Projetivo P 2 (K) o conjunto de classes de equivalncia de triplas (a 1 , a2 , a3 ) E

K x K x K, no todos zero, onde duas triplas so equivalentes (a 1 , a 2 , a3 )


(a 1 , a 2 , a 3 )

(.\b1, .\b2 , .\b3) para algum

(b 1 , b2 , b3 ) se

K. Cada classes de equivalncia chamada

de ponto projetivo. Se um ponto projetivo (ai> a 2 , a 3 ) tem a 3 oF O, ento esta classe de


equivalncia pode ser representada por uma tripla da forma (a~, a;, 1) fazendo a~ = ad a3 e

a;= a2fa3 . Logo, podemos identificar o plano projetivo com os pontos (x,y) E K x K do
plano ordinrio (ou afim) junto com os pontos para o qual a 3

O. O conjunto de pontos

com a ltima coordenada nula so chamados de reta no infinito.


Funo Zeta uma ferramenta bsica para calcular o nmero de pontos racionais de
uma curva hiperelptica. Seja H uma curva hiperelptica definida sobre K
nmero de pontos racionais de H sobre L

= lFq, e nr o

= lFqr Ento a funo zeta de H a srie de

potncias
Z(H/lF; t) = eL?cl nrtr /r.

O seguinte teorema da funo zeta provado por A. Weil a justificativa da equao dada
em (4.4).
Teorema A.l. Seja H uma curva hiperelptica de gnero g definida sobre lFq e Z(HjlFq; t)

sua funo zeta. Ento


(1)
P(t)

(1- t)(l- qt) '


56

"

57

PRELIMINARES

onde P( t) um polinmio de grau 2g com coeficientes inteiros da forma


P(t) - 1 -r' a1 t

+ , .. -r' a 9 _ 1t 9 - 1 -r' a9 t 9 + qag-J tg- 1 -r...


'
+ qg 'C' 29

P(t) pode-se fatorar da seguinte forma


g

P(t)

1- p,t)(l- {J,t)'

=
=l

onde cada
de

Pi

um nmero complexo de mdulo

1071 e !Ji

denota o complexo conjugado

p,.

D(3fiJ:1i;o A.2.

corno na Definio (3.1) no singular se e somente

curva

se o sistema 8(F)/8(X) =O, 8(F)/8(Y) =O, 8(F)/8(Z) =O no tem soluo para qualquer
ponto P E
Mostremos que o polinmio F em ( 4.1) com Z = 1 absolutamente irredutvel em

k[X, Y]. onde g representa o gnero da curva. Suponhamos que o polinmio redutvel,
ento existem G, H E k[X, YJ no constantes tais que F= GH. O grau de Y em G e H 1
e G, H so no constantes, pois do contrrio teramos uma contradio j que o coeficiente

= (AY + B)(CY + D) e daqui temos as seguintes equaes :

de Y 2 L Ento F= GH

AC = 1, AD+BC = h(X) e BD = f(X). Logo A e C so inversos e portanto constantes, o


grau de h(X) menor o igual que g ento o grau B e D so menores o iguais que g e daqui
que o grau de BD:::; 2g absurdo, pois o grau de f(X) 2g +L
Base NormaL Seja K

= lFq e

da forma (a, aq, aq', ... , aqn-

1
)

L = lFqn uma extenso finita. Uma base de L sobre K

para um adequado a E L, chamada de Base Normal de L

sobre K.
Teorema A.3. Para qualquer corpo finito K e qualquer extenso finita L de K, existe uma

Base Normal de L sobre K.


Uma prova deste Teorema pode ser vista em [23, p. 60].
Forma Normal de Smith. Foi provado por Smith (1861) que qualquer matriz A E

lvfmxn(Z) equivalente a uma nica matriz diagonal SE Mmxn(Z) fazendo transformaes


unimodu!ares. Isto , existem matrizes P E Mmxm(Z) e Q E Mnxn(Z) com det(P), det(Q) =

58

1, tal que

S=

= diag = (s1, ... , s,, O, ... , O)

1\Imxn(Z)

o
onde r determina o rango da matriz

e siisi+l para 1 :::;

i:::; r - L A matriz S chamada

a forma Normal de Smth de A e os elementos no nulos da diagonal de S so chamados os


elementos invariantes de A. Como foi mencionado em na Subseo (4.3.1), computar a SNF
pode ser aplicada para achar a estrutura cannica de grupos Abelianos.

APENDICE B
Complexidade Algoritmica

Quando projetamos um criptossistema pretendemos gerar um problema que seja difcil


de ser decifrado por qualquer criptoanalista. Mas, dado que condies pode-se garantir que
um problema seja intratvel? O assunto frente a esta pergunta como medir a capacidade
necessria de calculo que se deve fazer ao abordar um problema.

Nesta seo daremos

uma breve introduo nas ferramentas formais que permitiro dar resposta a este tipo de
questionamento.
Os criptossistemas de chave pblica esto baseados na Teoria de Complexidade Al-

gortmica, que estuda a forma de construir algoritmos para resolver diferentes problemas.
Entenderemos por algoritmo uma sequncia finita e ordenada de etapas que finalizam em
algum momento e devolve a soluo.

Nos criptossistemas, alm de procurar segurana,

tambm importante que estes sejam rpidos de-se aplicar. Neste sentido, esta teoria nos
da ferramentas para decidir quando um algoritmo melhor que outro.
Na maioria dos casos, o tempo de execuo de um algoritmo depende dos dados de entrada. Por exemplo, para ordenar a sequncia {1, 2, 3, 4, 6, 5} de menor a maior, se necessitam
menos operaes elementares que para ordenar { 6, 5, 3, 2, 4, 1}. Isto nos leva a considerar
trs opes :
" Melhor caso: o nmero de operaes feitas no algoritmo quando os dados esto da
melhor forma possvel. Este caso no prtico, pois o algoritmo pode ter um melhor
caso e os demais no.
59

60

" Pior caso: o nmero de operaes feitas quando a distribuio dos dados de entrada
a mais pessimista. Este nos permitir obter uma cota para o tempo de execuo
necessria do algoritmo.
" Caso mdio: Muitas vezes acontece que os algoritmos no pior dos casos no funcionam
bem, mas na maioria dos outros casos seu comportamento provavelmente efetivo.

lizaremos um tipo de notao assinttica, que nos permitir cotar sua magnitude. Normalmente consideramos o tempo de execuo de um algoritmo como uma funo f(n) E JR+
onde n o tamanho do dado de entrada.
Dada a funo f(n), definimos:

" Limite superior assinttico: f ( n)

se existe uma constante positiva c e um

nmero inteiro positivo n 0 tal que O :s; f(n) :s; cg(n) para todo n 2: n 0 .
" Limite inferior assinttico: f(n) = O(g(n)) se existe uma constante positiva c e um

nmero inteiro positivo n 0 tal que O :s; cg( n) :s; f (n) para todo n 2: n 0 .

8(g(n)) se existem duas constantes positivas c1,c2 e


um nmero inteiro positivo no > O tal que c1 g(n) :s; f(n) :s; c2g(n) para todo n 2: no.

" Limite exato assinttico: f(n)

" Notao o: f(n) = o(g(n)) se para qualquer constante positiva c existe um nmero

inteiro positivo no

> O tal que O <

f(n)

:s; cg(n) para todo n :s; n 0 .

Sejam f(n) e g(n) funes positivas para n 2: n 0 . Se


lim f(n)
g(n)

n-oo

dizemos que

assintticamente igual a g para valores grandes de n, e denotamos por f ::o: g.

Intuitivamente, f(n) = O(g(n)) significa que f(n) cresce assintticamente mais lento que
g(n) multiplicada por uma constante. Analogamente f(n)

l(g(n)) quer dizer que f(n)

cresce assintticamente no mnimo to rpido como g(n) multiplicada por uma constante.
Definiremos agora algumas propriedades da notao acima:
a) f(n)

O(g(n)) se e somente se g(n)

b) f(n)

8(g(n)) se e somente se f(n)

= O(f(n)).
O(g(n)) e f(n) = O(g(n)).

CAP. B

COMPLEXIDADE ALGORITMICA

d) Se f(n)

= O(h(n)) e g(n) = O(l(n)), ento (f g)(n) = O(h(n)l(n)).

e) f(n)

O(h(n)) e g(n)

O(h(n)), ento (f+ g)(n)

c) Se f(n)

O(h(n)).

O(f(n)).

f) Se f(n) = O(g(n)) e g(n) = O(h(n)), ento f(n) = O(h(n)).


Para algumas funes bastante usadas, podemos definir diretamente a ordem de complexidade:
e

Funes polinomiais: Se f(n) um polinmio de grau k, e o coeficiente da maior

potncia positivo, ento f(n) = G(nk).


'" Funes logartmicas: Para qualquer constante c >
'" Fatoriais: n!

log c,(n\j

= 8(!nfnli.
\

/'

= 0(2n).

" Logaritmo de um fatorial: ln(n!) = 8(nln(n)).

O tempo para executar um algoritmo depende das operaes elementares que envolve
e do comprimento dos dados de entrada. Podemos considerar como operao elementar
aquela que se executa sempre em um tempo constante. Este conceito tambm depende das
caractersticas concretas do computador em que estejamos trabalhando. Por exemplo, um
computador que opera unicamente com nmeros de 16 bits, no pode considerar-se elemental
uma operao com nmeros de 32 bits. Para medir este tempo necessrio uma unidade de
medida, e como o computador faz qualquer calculo como somas binrias elementares, damos
a seguinte definio.
Dizemos que um algoritmo polinomial se o pior caso de execuo de ordem O(nk),
onde n o tamanho de entrada e k uma constante. Alm disso, qualquer algoritmo que
no possa ser cotado por uma funo polinomial, se conhece como exponencial. Em geral, os
algoritmos polinomiais se consideram eficientes, enquanto os que so exponenciais se consideram ineficientes. Um algoritmo se denomina sub-exponencial se no pior dos casos, a funo
de execuo da forma expo(n), onde n o tamanho da entrada. Estes so assintticamente
mais rpidos que os exponenciais puros, no entanto mais lentos que os polinomiais.

usual classificar o tempo estimado entre o tempo polinomial e o exponencial. Seja n


um inteiro positivo grande, i E R tal que O :S i ::::; 1 e c > O uma constante. Logo,
Ln (!;c)

= O( eCCc+o(l))(lnn)'(lnlnn)'-'l) .

SEO B.l

CLASSES DE COMPLEXIDADE

62

Dizemos que um algoritmo L(r) se o algoritmo aplicado a um inteiro n, tem um tempo


estimado de execuo da forma Ln('y; c) para alguma constante c. Em particular, um algoritmo de tempo polinomial da forma L( O), e um algoritmo de tempo exponencial da forma
L(l). Uma outra definio para um algoritmo sub-exponencial um algoritmo de tempo

L(!) onde O < 1 < 1.

B.l

Classes de Complexidade

Em ocasies se reduzem os problemas de complexidade algoritmica a um simples problema


de deciso, de forma que se considera um algoritmo como um mecanismo que permite obter
uma resposta sem ou no a um problema.
., A classe de complexidade P o conjunto de todos os problemas de deciso que podem
ser resolvidos em tempo polinomial.
A classe de complexidade NP o conjunto de todos os problemas para os quais uma
resposta afirmativa pode ser verificada em tempo polinomial, usando uma informao
extra, chamada certificado.
" A classe de complexidade co-NP o conjunto de todos os problemas para os quais
uma resposta negativa pode ser verificada em tempo polinomial, usando um certificado
apropriado.
Notemos que o fato de que um problema seja NP, no quer dizer que o certificado correspondente fcil de obter, no entanto, dado este pode ser dada uma resposta positiva em um
tempo polinomial. Esta observao pode ser feita tambm para os problemas co-NP.
Dentro da classe dos problemas NP, existe um subconjunto chamado NP-completos que
denotamos NPC. Estes problemas se caracterizam porque todos eles so equivalentes, i.e.,
se podem reduzir um em outros, e se lograrmos resolver algum em tempo polinomial, ento
teremos resolvido todos no mesmo tempo.
At agora s temos mencionado algoritmos determinsticos, isto , algoritmos que sempre tem o mesmo caminho de execuo, e que sempre do uma resposta (se existe) para a
mesma soluo. Contudo, existem problemas para os quais melhor usar algoritmos probabilsticos ou aleatrios. Estes algoritmos usa parmetros aleattrios de tal forma que para
duas aplicaes do algoritmo ao mesmo dado de entrada podem ser diferentes. Em alguns

CAP. B "

63

COMPLEXIDADE

casos este tipo de algoritmos pode obter melhores solues em comparao com os algoritmos
determinsticos.
Em geral, o fato de no se conhecer um algoritmo eficiente para resolver um problema no
quer dizer que este no exista; por isso importante a Teoria de Algoritmos para Criptografia.
A contnua reduo do tempo de execuo necessria para resolver certos problemas, dada
pelo aparecimento de algoritmos mais eficientes, junto com o avano dia a dia do computador
na parte de hardware disponvel, impe uma relativa frequncia a atualizar as previses de
segurana dos criptossistemas.

maiores detalhes ver [21, p. 18], [29, p. 57].

BIBLIOGRAFIA

[1] L. Adleman and J. Marrais: A subexponential a!gorithm for discrete logarithms over
all finite fields. Mathematics of Computation 61, 1993, 1-15.

[2] L. Adleman, J. DeMarris and M. Huang: A Subexponential Algorithm for Discrete


Logaritms over Hypereliptic Curves of Large Genus over GF(q), Theorical Computer

Science 226, 1999, 7-18.

[3] L. Adleman and M. Huang: Counting Points on Curves and Abelian Varieties over
Finite Fields, Journal Symbolic Computation 32, 2001, 171-189.

[4] I. Blake, G. Seroussi and N. Smart: Elliptic Curves in Cryptgraphy, London Mathematical Society Lecture Notes Series 265, Cambrigde University Press, 1999.

[5] D. Le Brigand: Decoding of codes on hyperelliptic curves, Eurocode '90. Lectures Notes
Computation Science 514, Springer-Verlag, 1991, 126-134.

[6] J. Buchmann: Factorizacin de nmeros grandes, Revista de Investigacion y Ciencia,


Abril, 1999, 44-51.
[7] D. Cantor: Computing in the jacobian of a hiperelliptic curve, Mathematics of Compu-

tation 48, 1987, 95-101.


[8] G. Cornell and J.H. Silverman: Arithmetic Geometry, Springer-Verlag, New York, 1986.
[9] S.C. Coutinho: Nmeros Inteiros e Criptografia RSA, SBM/IMPA, Rio de Janeiro,
2000.
64

[10] vV.D. Diffie, M.E. Hellman: New Directions in Cryptography, IEEE Transactions on

information Theory 22, 1976, 644-654 .


. Fulton: Algebric Curves, Benjamin,

fl21 P. Gaudry,

'

'

Hess and

York. 1969.

. Smart: Constructive and destructive facets of

on el!iptic curves, Journal of Cryptology

2002, 9-46.

[13] S.D. Galbraith,

Mathematics of Computation

decent

Arithmetic on Superelliptic Curves,


2000, 393-405.

[14] GEC 1: "Recommended elliptic curve domain parameters". Standards for Efficient Cryptography Group, September, 1999. Working draft. Available at http:/ jwww.secg.org/.
L.S.

Concerning

linear transformation apparatus of cryptography, Amer-

can Mathatematical Monthly 38, 1931, 135-154.


[16] M. Jacobson, A. Menezes and A. Stein: Hyperelliptic Curve and Cryptography (up-

date), 2003. http:/ /www.cacr.mayh.uwaterloo.ca. Technical report.


[17] D. Kahn: The Codebreakers, The Story of Secret Writing, Macmillan Publishing Co.

N.Y. 1967.
[18] N. Koblitz: Elliptic curve cryptosystems, Mathematical of Computation 48, 1987, 203209.
[19] N. Koblitz: Hyperelliptic cryptosystems, Journal Criptology 1, 1989, 139-150.
[20] N. Koblitz: A Course in Number Theory and Cryptography, Springer-Verlag, New York,

2nd edition, 1994. Criptology 1, 1989, 139-150.


[21] N. Koblitz: Algebraic Aspects of Cryptography, Springer-Verlag, Berlin-Heidelberg-New

York, 1998.
[22] H.W. Lenstra, J. Pila, and C. Pomerance: A hyperelliptic smoothness test. I, Philos.

Trans. Royal Society London 345, 1993, 397-408.


[23] R. Lidl and H. Niederreiter: Finite Fields, in Encyclopedia of Mathematics and its

Applications, G.-C. Rota, editor, Addison-Wesley, 1983.


65

[24] J. Lpez and R. Dahab:

Fast Multplication on Elliptic Curves over GF(2m). In

CHES'99 number 1717 in LCNS. Springer-Verlag, 1999.


[25] J. Lpez Hernndez: Implementao Eficiente em Software de Criptossistemas de
2000.

vas Elpticas. PhD thesis, Universidade Estadual de Campinas[26] M.J. Lucena Lopez: Criptografia y Seguridad en Computadores. Tercera

cu'"mu,

2003.

http:/ jww'Wdi.ujaen.es/ mlucena/lcripto.html

R. Matsumoto: Constructng Algebraic Geometry Codes on the Normalization of a Singular

Ca

Curve, IEICE Transactions on Communications/Electronics/Information and

Systems, 1999. (available at http:/ /citeseer.nj.nec.com/matsumoto99constructng.html)


S. Vanstone: Reducing elliptic curve logarithm in a

[28]
finite field,

Transactions on Information Theory 39, 1993, 1639-1646.

[29] A.J. Menezes, P.C.van Oorschot and S.A.Vanstone: Handbook of applied Cryptography,
CRC Press, 1996.
[30] C. Munuera y J. Tena: Codificacin de la Informacin, Universidad de Valladolid,
Valladolid, 1997.
[31] National Institute of Standards and Technology: Digital Signature Standard, FIPS
Publication 186(2), 2000; available at http:/ /csrc.nist.gov/fips.
[32] A.M. Odlyzko: Discrete logarithms and their cryptographic significance, Advances in
Cryptography, Proceding of Eurocrypt 84, Springer-Verlag, New York, 1985, 224-314.
[33] J. Pelzl, T. Wollinger, J. Guajardo and C. Paar: Hyperelliptic curve cryptosystem Closing the performance gap to elliptc curve (update), Cryptology Print Archive: Report
2003/026, 2003. http:/ jeprint.iacr.org/.
[34] G. Purdy: A high-security log-in procedure, Communications of the ACM 17, 1974,
442-445.
[35] J.E. Sarlabous, E. R. Barreiro, J.A. Pineiro: On the Jacobian Varieties ofPicard Curves,
Addition Law and Algebraic Structure. ICIMAF, Ministry of Sciences, Habana, Cuba,
1996.
66

[36] T. Satoh and

Araki: Fermat quotients and the polynornial time discrete log algorithrn

for anomalous elliptic curves, Commentarii Mathematici Universitatis Sancti Pauli 47,
1998, 81-92.

Silverrnan: The Arithmetic of Elliptic Curves, Springer-Verlag, 1986.


f38lJ

Silverman and J.

Rationals Points on Elliptic Curves, Springer-Verlag, 1992.

[39] H. Stichtenoth: Algebraic Function Fields and Codes, Springer-Verlag,

J:<,.,];n

Heidel-

berg, 1993.
[40] D.R. Stinson: Cryptography (Theory and Practice), CRC Press, 1995.

N. Thrault: Index calculus attack for hyperelliptic curves of small genus, 2003. Available at

.rnath. toronto.edu/ ganita/ publications.html

67

Você também pode gostar