Você está na página 1de 87

UNIVERSIDADE FEDERAL DO ESTADO DO RIO DE JANEIRO

CENTRO DE CINCIAS EXATAS E TECNOLOGIA


CURSO DE PS-GRADUAO EM MATEMTICA

Criptografia via curvas elpticas


Sergio dos Santos Correia Jnior

Rio de Janeiro
2013

Sergio dos Santos Correia Jnior

Criptografia via Curvas Elpticas

Trabalho de Concluso de Curso apresentado ao


Programa de Ps-graduao em Matemtica
PROFMAT da UNIRIO, como requisito para a
obteno do grau de MESTRE em Matemtica.

Orientador: Silas Fantin


Doutor em Matemtica USP

Rio de Janeiro
2013
2

Correia Jnior, Sergio dos Santos


Criptografia via Curvas Elpticas / Sergio dos Santos Correia Jnior
2013
87.p
1.Matemtica 2. lgebra. I. Ttulo
CDU 536.21

Dedicatria

A meus pais, Maria Cristina e Sergio


Correia, pelo incentivo e as minhas filhas,
Gabriele e Alice, que foram o principal
motivo para que eu conclusse esse estudo.

Resumo

Este trabalho de concluso de curso do programa de Ps-graduao em


matemtica PROFMAT da UNIRIO apresenta um resumo histrico sobre o
desenvolvimento da criptografia, as ideias a partir das quais foram criados alguns dos
mtodos de criptografia atuais e culmina na apresentao do sistema de criptografia
sobre curvas elpticas.
Esse trabalho foi desenvolvido em conjunto com o trabalho do professor Joo
Gregrio, cujo tema o sistema de criptografia RSA. Em ambos h pr-requisitos
comuns e o mesmo resumo histrico.
Esse trabalho tem como alvo principal estudantes do ensino mdio, por isso
algumas demonstraes foram adaptadas e outras omitidas, por exigirem conhecimentos
especficos que vo muito alm da grade curricular desses estudantes. Ao final do
trabalho h uma proposta de algumas atividades que podem ser aplicadas a esses alunos.

Palavras-chaves: Criptografia, Curvas Elpticas, Problema do Logartimo Discreto

Agradecimentos

A todos os meus amigos pelo incentivo e ajuda durante todo o curso;


Ao meu amigo Sandro pelo carinho fraterno e pela ajuda com a apresentao;
Aos meus amigos Eduardo e Fbio pela preocupao e apoio;
Aos meus eternos mestres e amigos JJ e CATALDO, que, alm de me ajudarem
desde a graduao na UERJ, so verdadeiros exemplos de competncia e amizade;
A todos os professores da UNIRIO, pela dedicao e companheirismo durante
todo o curso;
Em especial ao professor SILAS, que, alm de contribuir de forma decisiva para
esse trabalho, com muita pacincia e talento, foi um verdadeiro amigo durante todo esse
perodo;
Aos meus pais e a meus irmos, por quem tenho muita admirao e amor, pelo
incentivo e carinho, dando-me condies de seguir at o fim com esse trabalho;
A minha querida e pioneira turma de mestrado que simplesmente foi
maravilhosa.
A CAPES, pelo suporte financeiro, que permitiu a realizao deste trabalho.

Sumrio
INTRODUO.............................................................................................................................9
CAPTULO 1................................................................................................................................11
1.1 O CDIGO DE CSAR........................................................................................................11
1.2 A CIFRA INDECIFRVEL....................................................................................................15
1.3 MECANIZAO DO SIGILO..............................................................................................23
CAPTULO 2................................................................................................................................26
2.1 PRINCPIO DE INDUO E CONGRUNCIA .......................................................................26
2.2 NMEROS DE FERMAT E DE MERSENNE.........................................................................30
CAPTULO 3................................................................................................................................34
3.1 ALGORITMO PARA O CLCULO DE POTNCIAS...............................................................34
3.2 O PROBLEMA DO LOGARITMO DISCRETO .......................................................................40
3.3 PROTOCOLO DE DIFFIE-HELLMAN(PDH) CHAVE TROCADA...........................................45
3.4 O SISTEMA PBLICO DE CRIPTOGRAFIA ELGAMAL..........................................................48
CAPTULO 4................................................................................................................................50
4.1 PRELIMINARES.................................................................................................................50
4.1.2 ALGORITMO DE SOMA DE PONTOS NA CURVA ELIPTICA.....................................57
4.1.3 CURVAS ELIPTICAS SOBRE ..............................................................................60
4.2 O PROBLEMA DO LOGARITMO DISCRETO PARA CURVAS ELIPTICAS...............................62
4.2.1 ALGORITMO PARA CALCULAR MLTIPLOS DE UM PONTO ................................64
4.3 CRIPTOGRAFIA VIA CURVAS ELIPTICAS.............................................................................67
4.3.1 CHAVE TROCADA DIFFIE-HELLMAN SOBRE CURVAS ELIPTICAS.................. .........67
4.3.2 SISTEMA DE CRIPTOGRAFIA COM CHAVE PBLICA EL GAMAL.............................72
4.3.3 VARIANTE DE MENEZES E VANSTONE PARA ELGAMAL SOBRE CURVAS...............76
CAPTULO 5.................................................................................................................................83
5.1. ATIVIDADES ....................................................................................................................83
CONCLUSO...............................................................................................................................86
BIBLIOGRAFIA............................................................................................................................87

INTRODUO

A necessidade de troca de informaes entre os seres humanos, sem perigo de


interceptao, existe desde os tempos da Roma antiga. Foi l que surgiu o cdigo de
Csar, que consistia numa forma de embaralhar as letras de uma mensagem.
A criptografia (do grego Krypts escondido e grphein escrita) a cincia
que estuda as formas e tcnicas pelas quais a informao pode ser transformada da sua
forma original para outra ilegvel aos que no tem acesso as convenes previamente
estabelecidas, e a criptoanlise a cincia que estuda as formas de se decifrar tais
informaes.
No passado os cdigos eram secretos, apenas pelos que enviavam e recebiam as
mensagens, mas sempre havia a possibilidade de estudar mensagens interceptadas e
decifr-las.
Os mtodos de criptografia antigos necessitavam de uma comunicao prvia
entre remetente e destinatrio. Em virtude da proliferao dos meios de comunicao,
do aparecimento dos computadores e da necessidade de enviar numerosas mensagens
transferncias bancrias, cartas de instrues para compra de aes, informaes
diplomticas secretas, relatrios de atividades de espionagem tornou-se muito
desejvel desenvolver mtodos de codificao de mensagens que no necessitassem
dessa comunicao prvia ou que permitissem a troca de uma chave secreta por um
meio de comunicao inseguro. Os mtodos RSA e ECC (criptografia via curvas
elpticas) so dois desses mtodos.
Atualmente a criptografia consiste em uma srie de frmulas matemticas, em
que se utiliza um segredo (chamado de chave) para cifrar e decifrar as mensagens. Este
segredo pode ser o mesmo para as duas operaes (criptografia simtrica) ou pode haver
segredos diferentes, um para cifr-la e outro para decifr-la (criptografia assimtrica).
O objetivo principal deste trabalho estudar as principais caractersticas de
alguns sistemas de criptografia, onde explanaremos sobre sua simplicidade e a
extrema dificuldade de se violar o cdigo atravs da utilizao de alguns destes
sistemas, onde tentaremos situar os leitores cronologicamente sobre os personagens que
9

contriburam com o assunto abordado. A contribuio inicial para os sistemas de


criptografia modernos foi proposta em 1976 por Diffie e Hellman e sua efetiva
execuo foi conseguida por Rivest, Shamir e Adleman, conhecido como sistema de
criptografia RSA.
No primeiro captulo, apresentaremos alguns mtodos de criptografia antigos e
um resumo histrico, mostrando como a criptografia contribuiu para o desenvolvimento
tecnolgico.
No segundo captulo, apresentaremos os conceitos preliminares e a noo de
nmero primo, que ser o ingrediente fundamental para o desenvolvimento deste
trabalho, alm de alguns algoritmos de fatorao, em virtude da fatorao de grandes
inteiros ser um problema extremamente difcil, e de algoritmos para o clculo de
potncias de nmeros com centenas de dgitos.
No terceiro captulo, apresentaremos o Problema do Logaritmo Discreto
(PLD), o Protocolo de Diffie e Hellman (PDH) e o sistema pblico de criptografia
ElGamal, que servem de base para alguns sistemas de criptografia. O sistema ElGamal
um meio alternativo de criptografia, isento de patente, que foi criado para competir com
o patenteado sistema de criptografia RSA.
No quarto captulo descreveremos o chamado Protocolo de Diffie e Hellman
para Curvas Elpticas (PDHCE), inicialmente proposto por Koblitz e Miller.
Finalmente, no quinto captulo, proporemos algumas atividades, que podem ser
aplicadas em sala de aula, relacionadas com a abordagem desenvolvida neste trabalho.

10

CAPTULO 1

Durante milhares de anos, reis, rainhas e generais dependeram de uma


comunicao eficiente para governar e comandar seus exrcitos. Ao mesmo tempo,
todos conheciam as consequncias de suas mensagens carem em mos inimigas,
revelando segredos preciosos. O risco da interceptao pelo inimigo motivou o
desenvolvimento de cdigos e cifras, tcnicas para mascarar uma mensagem de maneira
que s o destinatrio possa ler seu contedo.
Esta busca pelo segredo levou as naes a criarem departamentos especializados
em elaborar cdigos que garantissem a segurana das comunicaes. Ao mesmo tempo,
os decifradores de cdigos inimigos tentavam quebrar esses cdigos, para descobrir
seus segredos. Esta batalha entre criadores de cdigos e decifradores desenvolveu uma
corrida armamentista intelectual que teve um grande impacto no curso da histria
humana. Seus esforos para preservar ou destruir o sigilo enriqueceram vrias reas,
como a lingustica, a teoria quntica e a Matemtica.

1.1 O cdigo de Csar


Um dos cdigos mais simples consiste em substituir cada letra do alfabeto por
outra. Este mtodo recebe o nome de substituio monoalfabtica. O primeiro
documento, de que se tem notcia, que usou uma cifra de substituio para propsitos
militares aparece na guerra da Glia de Jlio Csar. Segundo As vidas dos Csares,
escrito no sculo II por Suetnio, um dos tipos de cifra de substituio usada por Jlio
Csar consistia em substituir cada letra do alfabeto por outra que estivesse trs casas
frente, onde a primeira linha consiste do alfabeto original e a segunda linha o alfabeto
codificado. Na cifra de Csar, no eram considerados acentos nem os espaos entre as
palavras.
a b c d e f g h i

k l

m n o p q r

u v w x y z

D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

11

Como exemplo, o texto codificado PDWHPDWLFDHGLYHUWLGR significa


Matemtica divertido.
Apesar de Suetnio s mencionar que Csar deslocava as letras em trs casas,
no difcil imaginar que podemos deslocar de uma a vinte cinco casas, obtendo 25
codificaes distintas. Tambm claro que se um inimigo souber que a cifra foi feita
deslocando-se as letras em algum nmero de casas, ele poder, em no mximo 25
tentativas, descobrir a chave e cifrar a mensagem. No entanto, se permitirmos que a
cifra seja feita por qualquer rearranjo do alfabeto original, ento teremos muitas
possibilidades, dificultando o trabalho do inimigo, conforme apresentado na primeira
linha o alfabeto original e na segunda linha o alfabeto cifrado.
a b c d e f

g h i

k l

m n o

p q r

u v w x y z

V E J I C A N B L M R T D O W F K Q G Y Z H P S U X

Esse um exemplo de uma permutao das letras, obtendo uma nova cifra.
Sabemos que so muitas cifras possveis, mas podemos calcular o nmero exato. Se
aceitarmos que cada letra possa ser substituda por outra ou por ela mesma, mas sem
repetio de letras, ou seja, duas letras distintas no podem ser substitudas pela mesma
letra, ento podemos usar um raciocnio bem conhecido:
Para substituirmos a letra a existem 26 possibilidades e, para cada uma dessas,
existem 25 possibilidades para substituirmos a letra b (uma j foi usada pela letra a) e,
para cada modo de substituir a e b, h 24 substituies possveis para a letra c (j foram
usadas duas possibilidades, uma para a letra a e outra para a letra b), e assim por diante
at que para a letra z restar uma nica possibilidade. Pelo princpio multiplicativo,
chegamos ao nmero
26 . 25 . 24 2 .1 = 26 ! ( )
Com o auxlio de um computador encontramos
26! = 403.291.461.126.605.635.584 10
Observe que 26! um nmero gigantesco de cifras, mas neste clculo admitimos
que uma letra seja substituda por ela mesma, o que obviamente no uma boa ideia,
principalmente se isso ocorrer com vrias letras.
12

Uma pergunta natural que surge como podemos calcular o nmero de


permutaes em que nenhuma letra substituda por ela mesma?

O matemtico Leonhard Euler


(1707-1783) encontrou uma soluo
genial para esse tipo de problema. As
permutaes em que nenhum elemento
aparece em sua posio original so
chamadas
de
PERMUTAES
CATICAS ou DESARRANJOS.
O nmero de cifras de substituio simples em que nenhuma letra substituda
por ela mesma dado por
= 26!

1
1
1
1
+ + + (1)
2! 3! 4! 5!

1

26!

Usando um computador encontramos

= 148.362.637.348.470.135.821.287.825 148 10

Mesmo que algum conseguisse verificar uma cifra por segundo, seriam necessrios a
seguinte quantidade de anos para se verificar manualmente todas as cifras possveis
= 4.704.548.368.482.690.760 4 10
A simplicidade e a fora da cifra de substituio fizeram com que ela dominasse
a arte da escrita secreta durante o primeiro milnio. Os estudiosos achavam que as cifras
de substituio eram indecifrveis.
Os criptoanalistas rabes descobriram um mtodo para quebrar a cifra de
substituio monoalfabtica. Eles perceberam que algumas letras aparecem com mais
frequncia que outras. As letras a e i so as mais comuns no idioma rabe, enquanto
que a letra j aparece com uma frequncia dez vezes menor.
Embora no se saiba quem foi o primeiro a perceber que a frequncia das letras
podia ajudar a quebra de cdigos, a descrio mais antiga desta tcnica vem de um
cientista do sculo IX, Abu Yusef Yaqub ibn Is-haq ibn as-Sabbah ibn Omran ibn
Ismail al-Kindi, conhecido como o filsofo dos rabes.
13

Para decifrar uma mensagem atravs desse mtodo, necessrio, em primeiro


lugar, conhecer o idioma e contar a frequncia com que cada letra aparece em um texto
bastante longo. Em seguida, deve-se contar a frequncia com que cada smbolo aparece
no criptograma que se deseja decifrar.
Deste modo, o smbolo mais comum no criptograma deve ser substitudo pela
letra mais comum; o segundo smbolo mais frequente deve ser transformado na segunda
letra com maior frequncia e assim por diante.
Por exemplo, a frequncia mdia de cada letra na lngua portuguesa dada na
tabela.
Letra

Letra

Letra

Letra

14,64

1,3

5,05

4,34

1,04

1,28

10,73

4,64

3,88

6,18

2,52

1,70

4,10

0,40

1,20

0,21

12,57

2,78

6,53

0,47

1,02

4,75

7,81

Assim, apenas contando a frequncia de cada smbolo no texto, podemos


descobrir a que letra correspondem os smbolos mais frequentes. Isto geralmente
suficiente para decifrar o cdigo, mas s funciona bem se a mensagem for longa. fcil
escrever uma mensagem curta cuja contagem de frequncia seja totalmente diferente da
contagem de frequncia mdia do portugus.
Por exemplo, em Zuza zoou da Zez a letra mais frequente o Z que aparece 5
vezes em um texto com 14 letras. Com

35%, a porcentagem do Z no texto acima

muito maior que os usuais 0,47%. J o A aparece uma s vez, o que da uma
porcentagem de cerca de 7%; portanto abaixo dos 14% usuais.

14

1.2. A Cifra Indecifrvel

Como a anlise de frequncia destruiu a segurana da cifra de substituio


monoalfabtica, os cifradores se empenharam na criao de outras cifras.

diplomata

Francs
Blaise de Vigenre (1523-1596), se
destacou nessa tarefa, criando
uma cifra poderosa conhecida
como Le Chiffre Indchiffrable
(a cifra indecifrvel).

A ideia de Vigenre foi usar no apenas um, mas 26 alfabetos cifrados distintos.
Para isso criou uma tabela com o alfabeto real e mais 26 alfabetos cifrados, cada um
deslocando uma letra em relao ao alfabeto anterior.

15

Com o auxlio dessa tabela, cada letra pode ser cifrada usando qualquer uma das
26 linhas. Por exemplo, a letra G cifrada pela linha 16 se transforma na letra W e a letra
P cifrada pela linha 23 se transforma na letra M, conforme pode ser observado na tabela
a seguir.

Assim, o remetente de uma mensagem pode usar, por exemplo:

A linha 09 para cifrar a primeira letra de seu texto,

A linha 15 para a segunda letra,

A linha 05 para a terceira letra e assim por diante,

evitando que uma determinada letra seja sempre substituda por uma mesma letra.
Para que o destinatrio possa decifrar a mensagem necessrio que ele saiba que
linha foi utilizada em cada posio da mensagem, exigindo um sistema previamente
combinado para a mudana entre as linhas. Para isso utilizava-se uma palavra chave,
que precisava ser compartilhada previamente entre o remetente e o destinatrio da
mensagem, o que muitas vezes era um problema, principalmente quando essas pessoas
no podiam se encontrar para combinar a chave.

16

Cada letra da palavra-chave identificava uma linha da tabela e cada linha era
identificada pela primeira letra sua direita:

A linha 1 era identificada pela letra B,

A linha 2 pela letra C,

A linha 3 pela letra D e assim por diante,

at a linha 26, que era identificada pela letra A.

Para entendermos como funcionava a palavra-chave, vamos cifrar a frase Estou


de frias usando a palavra-chave PONTE. Primeiro escrevemos a palavra-chave
repetidas vezes, at que cada letra da palavra-chave corresponda a uma letra da frase
que se deseja enviar.
P

17

Desta forma, temos que:

A letra E, ser cifrada pela linha 15 (correspondente letra P na tabela),


transformando-se em T

A letra S ser cifrada pela linha 14 (correspondente letra O na tabela),


transformando-se em G

A letra T ser cifrada pela linha 13 (correspondente letra N na tabela),


transformando-se em G

A letra O ser cifrada pela linha 19 (correspondente letra T na tabela),


transformando-se em H

A letra U ser cifrada pela linha 04 (correspondente letra E na tabela),


transformando-se em Y

A letra D ser cifrada pela linha 15 (correspondente letra P na tabela),


transformando-se em S

A letra E ser cifrada pela linha 14 (correspondente letra O na tabela),


transformando-se em S

A letra F ser cifrada pela linha 13 (correspondente letra N na tabela),


transformando-se em S

A letra E ser cifrada pela linha 19 (correspondente letra T na tabela),


transformando-se em X

A letra R ser cifrada pela linha 04(correspondente letra E na tabela),


transformando-se em V

A letra I ser cifrada pela linha 15(correspondente letra P na tabela),


transformando-se em X

A letra A ser cifrada pela linha 14(correspondente letra O na tabela),


transformando-se em O

A letra S ser cifrada pela linha 13(correspondente letra N na tabela),


transformando-se em F

A frase cifrada (codificada) fica


TGGHYSSSXVXOF

18

Conforme pode ser observado na tabela abaixo

bvio que qualquer pessoa que conhea a palavra-chave pode decifrar uma
mensagem cifrada pelo mtodo de Vigenre. Mas e sem essa chave? Voc conseguiria
decifrar as mensagens abaixo sem a palavra-chave?
TPICQFZCTUFSMQPUD

QOPVNVSERYNQFV

PJSWLZFVZJCUZXNYOPVCOI

RSOCAIPCZHSFUUNIB

UODTYXYHLGTRLPABSIXDU

LDVKOEOLEIAACBEONIEV

BPONPUFVZJCUZ

Se voc no conseguiu no fique frustrado, pois realmente muito difcil


decifrar sem conhecer a chave. Para se ter uma ideia, foram necessrios mais de 300
(trezentos) anos para que algum conseguisse decifrar uma mensagem sem conhecer a
palavra-chave.
19

Charles Babbage (1791-1871) na


foto ao lado e Friedrich Kasiski
conseguiram tal feito, independentemente
um do outro. Kasisk ainda publicou este
avano da criptoanlise no
Die
Geheimschriften und die Dechiffrir-kunst
(A escrita secreta e a arte de decifr-la).
Mesmo conhecendo as tcnicas desenvolvidas por Babbage e Kasisk pode-se
levar bastante tempo tentando decifrar uma mensagem sem conhecer a palavra-chave. A
palavra-chave usada na cifra da mensagem anterior PAULINHO. Tente decifrar a
mensagem. A resposta um trecho da msica Soluo de vida de Paulinho da Viola.
E por isso eu lhe digo

Que no preciso

Buscar soluo para a vida

Ela no uma equao

No tem que ser resolvida

A vida, portanto, meu caro

No tem soluo
Podemos equacionar a criptografia e a descriptografia da cifra de Vigenre.
Como so 26 letras, podemos pensar em congruncia mdulo 26, ou seja, nos restos das
divises por 26. Assim teremos
=1

=2

=3

. ..

= 25

=0

Observe que o valor de cada letra na tabela de Vigenre cngruo soma dos
valores da linha e da coluna qual ela pertence, mdulo 26.

20

A letra J destacada acima est na linha 9 e coluna 0(zero).


0 + 9 9 ( 26) e 9 o valor atribudo letra J.

A letra D destacada acima est na linha 15 e coluna 14.


15 + 14 3 ( 26) e 3 o valor atribudo letra D.

A letra P destacada acima est na linha 21 e coluna 19.


21 + 19 14 ( 26) e 14 o valor atribudo letra P.

Se quisermos saber que letra se encontra na linha 17 e coluna 22, basta calcular
17 + 22 13 ( 26).
A letra que est nesta posio a letra representada pelo nmero 13, ou seja, a
letra N.
Portanto, para criptografar podemos somar o nmero que representa a letra que
queremos cifrar (coluna) com a letra da palavra-chave que ser utilizada (linha) e tomar
o resto da diviso dessa soma por 26. O valor desse resto a letra criptografada.

21

De modo geral, se representa o nmero de uma letra do texto real, o nmero


da letra da palavra-chave correspondente a essa letra real, podemos calcular , o valor
da letra codificada, pela equao:
+ ( 26)
Analogamente, para decodificada, basta calcular tal que:
( 26)
Por exemplo, vamos codificar a palavra MESTRADO usando a palavra-chave
KZW
K
10
M
12

Z
25
E
4

W
22
S
18

K
10
T
19

Z
25
R
17

W
22
A
0

K
10
D
3

Z
25
O
14

Codificando, temos que:


10 + 12 22 ( 26)
22 + 18 14 ( 26)
25 + 17 16 ( 26)
10 + 3 13 ( 26)

25 + 4 3 ( 26)
10 + 19 3 ( 26)
22 + 0 22 ( 26)
25 + 14 13 ( 26)

A palavra codificada ficou WDODQWNN, vamos agora decodificar:


22 10 12 ( 26)
14 22 8 ( 26)
16 25 9 ( 26)
13 10 3 ( 26)

3 25 22 ( 26)
3 10 7 ( 26)
22 22 0 ( 26)
13 25 12 ( 26)

22

1.3. MECANIZAO DO SIGILO

Desde que Babbage e Kasiski destruram a segurana da cifra de Vinegre,


nenhum outro mtodo eficaz de criptografia foi inventado. Com o surgimento do
telgrafo, no sculo XIX, e principalmente aps a inveno do rdio, por Guglielmo
Marconi, na virada do sculo, era desejada a criao de uma nova cifra que permitisse
que os homens de negcio e os militares explorassem a rapidez das telecomunicaes
com segurana.

Em 1918 o inventor alemo


Arthur Scherbius (1878 -1925)
desenvolveu uma mquina criptogrfica
chamada ENIGMA, que ficou muito
conhecida na 2 guerra mundial.

A mquina Enigma consistia em um certo nmero de componentes engenhosos,


como os modificadores, que eram peas que giravam a cada tecla usada, alterando a
cifra.

Em 1925 Scherbius comeou a produo em massa das mquinas enigmas. Nas


duas dcadas seguintes os militares alemes compraram 30 mil dessas mquinas. As
Mquinas Enigmas se mostraram to eficientes que os Britnicos e Franceses desistiram
23

de tentar decifrar as mensagens criptografadas por elas e passaram essa tarefa para os
Poloneses.
Somente em 1939 os segredos da Enigma foram completamente desvendados
pelos matemticos Polacos Marian Rejewski, Jerzy Rycki e Henryk Zygalski
apresentados abaixo:

Marian Rejewski

Jerzy Rycki Henryk Zygalski

Essa faanha exigiu muito trabalho e dedicao e contou at com a traio de um


Alemo chamado Hans-Thilo Schmidt, que vendeu, para um agente secreto Francs,
dois documentos que explicavam o uso da mquina enigma. A busca por novos atalhos
criptogrficos era necessria, pois a mquina Enigma continuou evoluindo durante a
guerra.
Os criptoanalistas eram continuamente desafiados a melhorar ou criar estratgias
inteiramente novas. Houve muitos criptoanalistas notveis e muitos avanos
significativos, mas um deles merece ser destacado:

Alan Turing (1912-1954)


identificou a maior fraqueza da
mquina Enigma, conseguindo
quebrar a cifra nos momentos
mais difceis.

Com suas ideias, Turing finalizou, no incio de 1940, o projeto de uma mquina
capaz de quebrar as cifras da Enigma. Tal mquina tinha dois metros de altura, por dois
de comprimento e um metro de largura e recebeu o nome de Bomba de Turing.
24

Uma Mquina de Turing em ao


Antes de Turing ser convidado para trabalhar como criptoanalista, ele escreveu,
aos 26 anos, um artigo sobre uma mquina hipottica capaz de se adaptar a diversos
problemas de lgica. Esse equipamento imaginrio recebeu o nome de mquina
universal de Turing e foi a primeira ideia para o nosso computador atual.
Durante a Segunda Guerra Mundial os decifradores de cdigos britnicos
levaram a melhor sobre os criadores de cdigos alemes. Alm das maquinas de Turing,
usadas para quebrar as cifras da Enigma, os britnicos criaram a mquina Colossus,
usada para combater uma cifra ainda mais poderosa, a cifra alem Lorenz.
A cifra Lorenz, feita pela mquina Lorenz SZ40, era usada para codificar a
comunicao entre Hitler e seus generais. Essa nova cifra era muito mais complicada e
trouxe um grande desafio para os decifradores de cdigos. Certo dia, Max Newman,
um matemtico de Bletchley, apresentou, baseando-se nas ideias de Turing, um modo
de mecanizar a criptonalise da cifra Lorenz.

Max Newman (1897-1984)


projetou a mquina Colossus,
considerada a me de todos os
computadores.

25

CAPTULO 2

Os mtodos de criptografia mais modernos, assim como suas ideias principais,


exigem alguns conceitos e teoremas da teoria dos nmeros, que o ramo da matemtica
pura que estuda propriedades dos nmeros em geral, e em particular dos nmeros
inteiros. Por isso, neste captulo, apresentaremos alguns tpicos dessa teoria que so
essenciais para a perfeita compreenso dos prximos captulos.

2.1. Principio da Induo e congruncia


O principio da induo um mtodo poderoso e eficaz para verificar se uma
proposio vlida para um natural , tambm vlida para todos os naturais maiores
que . O princpio de induo consiste em duas etapas:
1. Mostrar que a proposio verdadeira para um natural qualquer;
2. Mostrar que se a proposio vale para um natural (hiptese de induo), ento
vale para o seu sucessor + 1 (tese de induo).

Definio (congruncia): Seja um inteiro positivo. Definimos a relao de


equivalncia ( ) para todo , da seguinte maneira:
( ) =
Dizemos neste caso, que cngruo a mdulo . fcil ver que
( ) uma relao de equivalncia, isto , que vale as seguintes propriedades:

Simetria: ( )

Reflexiva: ( ) ( )

Transitiva: ( ) ( ) ( )

26

Sabemos que na diviso Euclidiana o resto um nmero no negativo, porm,


para facilitar os clculos, muitas vezes trabalhamos com restos negativos na teoria de
congruncia. Por exemplo, 46 4 ( 6) ou 46 2 ( 6).
Propriedades de congruncia:
1) Soma: ( ) e ( ) + + ( )
2) Produto: ( ) ( ) ( )
3) Potncia: ( ) ( )
4) Diviso: ( ) (, ) = 1 ( )
5) Corte: ( ) (, ) = ( )
Estas propriedades de congruncias so de fcil verificao e sero uteis no
decorrer do texto. Uma relao de equivalncia define uma classe de equivalncia. Dado
, sua classe de equivalncia mdulo consiste no conjunto
= { ; ( ) } = { = + ; }
Temos que se ento = . Dizemos que o representante da classe,
porm podemos escolher qualquer elemento da classe como representante. Denotaremos
por

= o conjunto das classes de equivalncia mdulo . Obviamente


= { 0, 1, 2, , 1 }

Sobre podemos definir uma soma quanto um produto cujo resultado


independe da escolha dos representantes das classes:

Soma:
+ = +
Produto: =

Definio de Grupo: Um conjunto (,) no vazio munido de uma operao


denominado um grupo se satisfaz as seguintes condies:

(Existncia do Elemento Neutro): ; = =

(Existncia do Inverso): , ; =

(Associativa): ( ) = ( ) , ,

Proposio:[ ] [ (, ) = 1 ]
Prova:
() invertvel ; = 1 1 ( ) 1 =
() + = 1. Como (, ) divide e , segue que (, ) = 1.
27

() mdc (a,m) = 1 , + = 1 1 = + = +
1 = em invertvel.
Denotaremos por
( ) = Conjunto dos elementos invertveis de
Um nmero primo um nmero inteiro maior do que 1, que s admite
como divisores positivos ele prprio e 1. Os demais inteiros maiores que 1
so chamados de nmeros compostos. Temos que ( ) = 1, 5, 7, 11 , isto ,
so os elementos de que so primos com 12.
Temos que ( , ) formado pelos elementos invertveis de formam um
grupo que ser utilizado no sistema RSA, onde o produto de dois nmeros primos
grandes.
O prximo resultado, conhecido por Pequeno Teorema de Fermat um
importante e bonito resultado da teoria dos nmeros, devido ao Jurista e Magistrado por
profisso, Pierre de Fermat (1601-1665) que dedicava matemtica seus momentos de
lazer. Atuou em diversas reas da Matemtica, como Clculo Infinitesimal, Teoria dos
Nmeros e Probabilidade.
Pequeno Teorema de Fermat (P.T.F):
Se primo e inteiro, ento ( )
Prova: Para provarmos o pequeno teorema de Fermat, vamos usar o fato de que se

(
)( (
))
!
primo, ento = !( )! =
com 1 1 so divisveis por
!

pois todos os fatores de ! so estritamente menores do que p primo. A prova segue


por induo em .

Vale para = 1 1 1 = 0 = 0.

Suponha que vale para = : = .

Vamos mostrar que vale para = + 1: ( + 1) ( + 1) = .

De fato:
( + 1) = +

1+

1 + + 1 1

+1

= + + 1

28

Subtraindo (k+1) em ambos os termos


( + 1) ( + 1) = + + 1 ( + 1)
= ( ) +
= + = ( + )
= .

Lembremos que se primo e divide (. ) ento p divide ou divide .


De fato, supondo que no divide , ento (, ) = 1 . Assim 1 = +
= + = ( + ) .
Como conseqncia imediata do P.T.F, temos que se primo e no divide ,
segue que

1 = , em linguagem de congruncia,

do P.T.F, =
divide (

1), isto ,

1 ( ). De fato,

1 = . . Como primo e no divide , segue que


1 = .

Definio (Funo de Euler): Dado um nmero inteiro positivo m, define-se


() = # { ; 0 < < (, ) = 1 }
Basicamente, a funo de Euler conta a quantidade de elementos de que
so primos com , isto , () = # { }. Por exemplo, temos que (8) = 4, pois
temos que = {1, 3, 5, 7} e chamado de sistema reduzido de resduos mdulo 8. De
maneira geral, para encontrarmos o sistema reduzido de resduos mdulo , que so os
elementos de , basta retirar do sistema completo {0, 1, . . . , 1} os que no so
primos com .
Teorema de Euler: Se e so inteiros positivos e (, ) = 1, ento

( )

1 ( ).

Note que o Teorema de Euler uma generalizao do Pequeno Teorema de


Fermat, que diz que se p primo e no divide temos que

1 ( ), visto

que () = 1. Uma prova deste resultado pode ser encontrada no livro: Introduo
a Teoria dos Nmeros de Jos Plnio de Oliveira Santos na pgina 43.

29

2.2. Nmeros de Fermat e de Mersenne

Um resultado clssico na literatura conhecido como Teorema


Fundamental da Aritmtica diz que: todo nmero composto produto de
nmeros primos, e a menos da ordem dos fatores, esse produto nico.
Desta forma, os nmeros primos formam os blocos de base para construo
dos nmeros inteiros por meio da operao de multiplicao.
Assim, no de estranhar que os nmeros primos tenham sido objeto
de estudo por vrias geraes de matemticos atrados pela fascinao
desses nmeros, para responder questionamentos do seguinte tipo:
Quantos nmeros primos existem?
Como reconhecer se um dado nmero primo de maneira eficiente?
Existem frmulas ou algoritmos para gerar nmeros primos?
Faremos um passeio por estes questionamentos sobre nmeros
primos, visto que o mesmo ser o ingrediente fundamental para o
desenvolvimento da criptografia moderna nos tempos atuais.
O primeiro questionamento que gostaramos de responder o
seguinte: Ser que existe uma infinidade de nmeros primos?
A resposta afirmativa, e a prova que apresentaremos a seguir foi
dada por Euclides de Alexandria (360 a 295 a.C) que viveu no sculo 3 antes
de cristo, e ficou conhecido como o Pai da Geometria, onde sua principal
obra conhecida como o livro Os Elementos apresentada em 13 volumes,
servindo como principal livro de matemtica para poca, principalmente no
que se refere ao que conhecemos hoje como Geometria Euclidiana.
A prova de Euclides a seguinte: Suponhamos que a sucesso
= 2, = 3 , . . . , dos nmeros seja finita. Consideramos ento
= . . . + 1 e seja um nmero primo que divide . Esse
nmero no pode ser igual a qualquer um dos nmeros primos
, , . . . , porque seno dividiria a diferena . . . = 1, o
que impossvel. Assim um nmero primo que no pertence a sucesso
e, por consequncia , , . . . , no podem formar o conjunto de todos os
nmeros primos.
A demonstrao de Euclides que acabamos de apresentar, muito
simples, entretanto, ela no fornece qualquer informao sobre o novo
nmero primo posto em destaque, a no ser que ele , no mximo igual ao
nmero = . . . + 1

30

Em 1878, o matemtico Ernst Kummer (1810-1893) deu a seguinte


variante da demonstrao de Euclides: Suponhamos que exista somente um
nmero finito de primos < < < e seja = . . . >
2. O inteiro N 1 sendo (como todos os inteiros) o produto de fatores
primos, teria ento um fator primo , que dividiria tambm , ento
dividiria 1 = ( 1), o que absurdo.
Ser que existe uma maneira recorrente de encontrarmos
nmeros primos? Em 1640 Pierre de Fermat (1601 1665) afirmou que os

nmeros da forma = + para so nmeros primos, onde


estes nmeros so conhecidos como nmeros de Fermat.
Os primeiros nmeros de Fermat so = 3, = 5, =
17, = 257, = 65.537 e fcil ver que so primos. Em 1732,
Leonard Euler (1707-1783) mostrou que = 2
primo.

+1=2

+ 1 no

De fato: basta observarmos que


(1) 641 = 2 + 5

(2) 641 = 2 . 5 + 1.

Segue de (2) que 641 = 2 . 5 + 1 5 =

Substituindo em (1)
641 = 2 + 5 641 = 2 +

641 =

641 . 2
Assim, vemos que 2
2

=2 +

640
2

+ 640

2
= 2

+ 640

+ 640 mltiplo de 641, ou seja:

+ 640 0 ( 641) 2
2
2

A saber = 2

640
2

+ (1) 0 ( 641)
+ 1 0 ( 641)
+ 1 = . 641 para algum .

+ 1 = 641 . 6700417.

31

Os nmeros = + primos so chamados de primos de


Fermat, e pelos menos temos 5 conhecidos, a saber, a . Convm
perguntar se existem outros primos de Fermat?
Em 1880, Landry obteve a fatorao de antes da era dos computadores
=2

+ 1 = 274177 67280421310721

Em 1970, Morrison e Brillhart obtiveram a fatorao de = 2


596 49589127497217 5704689200685129054721.

nmeros de Fermat

Fatorado em
1980
1990
1995
1988

+1=

Por
Brent e Pollard
Lenstra e Manasse
Brent
Brent e Morain

A fatorao de grandes nmeros um problema difcil. No se


conhece at agora nenhum algoritmo de tempo polinomial para realizar essa
operao. tambm um problema importante, por sua aplicao notvel na
criptografia de chave pblica, que envolve nmeros que devem ser difceis
de fatorar. Qualquer um que se interesse por essas questes, quando
envolvem grandes nmeros, tem necessidade evidente de ter acesso a
computadores modernos com alto poder de processamento. No se
conhecem outras fatoraes dos nmeros de Fermat e nada pode se afirmar
sobre sua primalidade.
Ser que existem infinitos nmeros primos que seguem um
determinado padro? A resposta afirmativa, como a dada por um teorema
clssico de Teoria dos nmeros conhecido por Teorema de Dirichilet que
diz: Se (, ) = 1 ento a progresso aritmtica + com =
1, 2, 3, . .. contem infinitos primos.
No difcil mostrar que existem infinitos nmeros primos da forma
4 + 3 e 6 + 5 com = 1, 2, 3 . .. que proporemos como atividades
em sala de aula no capitulo 5, imitando a prova dada por Euclides no
sculo 3 antes de cristo.
Continuando a linha de nmeros primos que segue um determinado padro,
convm destacar Marin Mersenne, matemtico amador que no sculo XVII, onde
= (com q primo) so chamados nmeros de Mersenne. Desde o tempo
de Mersenne era sabido que certos nmeros de Mersenne so primos e que outros so
compostos. Por exemplo = 3, = 7, = 31, = 127 so primos,
enquanto que = 23 89.
32

Em 1640, Mersenne afirmou que primo para = 13, 17, 19, 31, 67, 127 e
257; estava ele enganado em relao a 67 e 257; tambm no inclura 61, 89 e 107
(entre os nmeros inferiores a 257 ) que tambm fornecem nmeros de Mersenne
primos. Sua afirmao era extraordinria, em face da grandeza dos nmeros envolvidos.
Em relao aos nmeros de Mersenne, o problema que se apresenta
naturalmente, de saber se so primos ou compostos e, neste ultimo caso, determinar
seus fatores primos.
O seguinte resultado clssico sobre os fatores primos foi enunciado por Euler em
1750 e demonstrado por Lagrange em 1775 e ainda por Lucas em 1878: Se um
nmero primo e 3 ( 4) ento 2 + 1 divide se e somente se 2 + 1
primo; neste caso, se q > 3, ento composto.
Assim se = 11, 23, 83, 131, 179, 191, 239 ou 251 ento tem por fator
2 + 1 dado por 23, 47, 167, 263, 359, 383, 479 ou 503 respectivamente.
Exatamente como acontece com os nmeros de Fermat, ainda existem vrios
problemas em aberto sobre os nmeros de Mersenne:

Existe uma infinidade de nmeros de Mersenne primos?


Existe uma infinidade de nmeros de Mersenne compostos?

At hoje so conhecidos 48 nmeros de Mersenne que so primos. O


penltimo deles com = 43.112.609 com 12.978.189 algarismos foi descoberto em
2008 por E. Smith, G.F Woltman, S. Kurowski e Gimps, sendo o primeiro nmero
primo com mais de 10 (dez) milhes de algarismos, o que valeu aos descobridores o
prmio de 100.000 US dlares, outorgado pela Eletronic Frontier Foundation.
Nmeros primos com mais de 1 (um) milho de algarismos so chamados de
megaprimos. Hoje j se conhecem 30 megaprimos, do quais 11 so nmeros de
Mersenne primos.
O maior deles com = 57.885.161 com 17.425.170 algarismos foi
descoberto durante a realizao desta monografia, em 25 de janeiro de 2013 por GIMPS
(Great Internet Mersenne Prime Search) e Curtis Cooper.

33

CAPTULO 3
Neste captulo, veremos como possvel enviar mensagens por um meio
inseguro sem o contato prvio entre os participantes. Este avano da criptografia
baseado no princpio da troca de uma caixa com cadeados.
Suponha que Joozinho queira enviar uma caixa para Serginho por um meio
inseguro, de modo que apenas Serginho possa abri-la.

Joozinho envia a caixa fechada com um cadeado para Serginho;


Serginho coloca outro cadeado na caixa e a envia para Joozinho;
Joozinho retira seu cadeado e reenvia a caixa para Serginho que consegue abrila.

Em 1976, Whitfield Diffie e Martin Hellman publicaram um mtodo que permite a


troca de chaves, por um canal de comunicao inseguro, entre duas partes que no
possuem nenhum conhecimento prvio, uma sobre a outra. Este mtodo conhecido
como a troca de chaves de Diffie-Hellman.
Taher Elgamal, em 1984, baseando-se na ideia de Diffie e Hellman, construiu
um mtodo para enviar mensagens criptografadas por um meio de comunicao
inseguro. Tal mtodo a base para alguns sistemas de criptografia, entre eles o mtodo
de criptografia via curvas elpticas.
Veremos a seguir que fcil calcular potncias, mesmo grandes, de um nmero
g mdulo N, no entanto, muito difcil descobrir o expoente ao qual g foi elevado para
gerar tal potncia. Esse problema, conhecido como PROBLEMA DO LOGARITMO
DISCRETO, a ferramenta principal para as ideias brilhantes de Diffie-Hellman e El
Gamal.

3.1. Algoritmo para o Clculo de Potncias:


Veremos como calcular potncias grandes de um numero g mdulo outro
nmero N, onde N pode ter centenas de dgitos. O modo ingnuo de calcular g por
repetidas multiplicaes por g.

. ,

34

evidente que , mas se A grande, o algoritmo


completamente impraticvel. Por exemplo, se 2
, ento o algoritmo ingnuo
levaria mais tempo do que a idade estimada do universo. Claramente, se isto para ser
til, temos de encontrar uma melhor maneira de calcular .
Uma boa ideia usar a expanso binria para o expoente , ou seja,
escrever = + 2 + 2 + 2 + + 2 , com , , , {0,1},
onde podemos assumir que = 1.
Vale lembrar que para obtermos os valores de cada um dos , podemos fazer
divises sucessivas por 2, comeando pelo , at obtermos um quociente zero. Deste
modo os sero os restos obtidos nessas divises. Observe o exemplo:
Vamos escrever a expanso binria de 83
Divises

Quociente

Resto

83 2

41

=1

41 2

20

=1

20 2

10

=0

10 2

=0

52

=1

22

=0

12

=1

Observando a tabela, podemos escrever:


83 = + 2 + 2 + 2 + . 2 + . 2 + . 2
= 1 + 1 2 + 2 + 2 + 1 2 + 2 + 1 2
= 1 + 2 + 2 + 2 .
Exemplo 3.1: Suponha que desejamos calcular 7
escrever 450 como uma soma de potncia de 2:
450 = 2 + 2 + 2 + 2 7

( 2563 ). O primeiro passo

=7

= 7 . 7 . 7 . 7

Note que relativamente mais fcil calcular a sequncia de valores abaixo, visto
que, cada nmero o quadrado do anterior, conforme observado a seguir
7 , 7

= 7 ,

=7 ,

= 7 ,

= 7 ,

35

Alm disso, visto que s precisamos destes valores mdulo 2563, nunca
precisaremos armazenar mais do que 4 dgitos. A tabela abaixo lista as potncias de 7
mdulo 2563 at 7 .

0
7

7 ( 2563)

1
49

2
2401

3
614

4
235

5
6
1402 2346

7
955

8
2160

A criao da tabela acima, requer somente 8 multiplicaes, e despista o fato de


que o nmero 7 = 7
tem um expoente bastante grande, porque cada entrada
sucessiva na tabela igual ao quadrado da entrada anterior. Segue da tabela que
7

= 7 . 7 . 7 . 7
49 . 2346 . 955 . 2160 ( 2563 )
1772 ( 2563)

Note que o clculo do produto 49 . 2346 . 955 . 2160 , pode ser reduzido
mdulo 2563 a cada multiplicao, no necessitando lidar com nmeros muito grandes.
Exemplo 3.2: Determine 0 999 tal que 3

( 1000) .

Como primeiro passo, escrevemos 218 como soma de potncias de 2, dados por
218 = 2 + 2 + 2 + 2 + 2
Ento 3

torna-se

=3

= 3 . 3 . 3 . 3 . 3

Note que relativamente mais fcil calcular a sequncia de valores


3

= 3 , 3

= 3 ,

=3 ,

= 3 ,

=3

visto que, cada nmero da sequencia o quadrado do anterior. Alm disso, visto que s
precisamos destes valores mdulo 1000, nunca precisaremos armazenar mais do que 3
dgitos.

3 ( 1000)

Portanto: 3

0
3

1
9

= 3 . 3 . 3 . 3 . 3

2
81

3
561

4
721

5
841

6
281

7
961

9. 561 .721 .281.961 ( 1000)

489 ( 1000)

36

Observamos que tomamos apenas 11 multiplicaes para calcular


3 ( 1000), tendo uma enorme economia de tempo sobre a abordagem ingnua.
E para expoentes grandes, poderamos economizar ainda mais tempo, procedendo desta
maneira.
Formalizando o Algoritmo para o Clculo de potncias
Passo 1: Calcule a expanso binria de como
= + 2 + . 2 + . 2 + + 2
com , . . . { 0,1} onde podemos assumir que = 1
Passo 2: Calcule as potencias ( ) para 0 por sucessivos
quadraturas
( )
( )
( )
( )
...

( )

Cada termo o quadrado do anterior, assim requeremos multiplicaes. No exemplo


anterior = 3 e identificamos os

3 ( 1000)

0
3

1
9

2
81

3
561

4
721

5
841

6
281

7
961

Passo 3: Calculamos ( ) usando a formula

= () . ( ) .

( ) . ( ) . ( ) . ( )

( ) ( )

com , . . . { 0,1} onde podemos assumir que = 1

37

Note que os termos , , . . . , foram calculados no Passo 2. Portanto o


produto acima pode ser calculado procurando os valores de cujos expoentes 1 e
efetuamos sua multiplicao. Isso exige no mximo multiplicaes.
Tempo de Processamento: Executaremos no mximo 2 multiplicaes mdulo
para calcular , isto , no mximo 2 log multiplicaes mdulo para calcular .
De fato:
2 log log 2 = 2 2 log
Assim, mesmo se muito grande, digamos 2
, fcil para um
computador fazer aproximadamente 2.000 multiplicaes necessrias para calcular 2
mdulo
Exemplo 3.3: Segue do Pequeno Teorema de Fermat que
= 2 e = 15.485.863 primo, que
2

1 ( ) e tomando

1 ( 15.485.863)

Portanto, sem fazermos qualquer clculo, sabemos que o nmero 2 . . 1 um


nmero tendo mais do que 2 milhes de dgitos, um mltiplo de 15.485.863
Observao: Um mtodo razoavelmente eficiente para o clculo de inversos mdulo ,
obtido atravs do Pequeno Teorema de Fermat e do algoritmo para o Clculo de
potncias, visto que

1 ( )

( )

( )

Isto nos d uma alternativa para o mtodo do Algoritmo Euclidiano Extendido. Na


prtica, os dois algoritmos tendem a ter aproximadamente a mesma quantidade de
tempo.
Exemplo 3.4: Calcularemos o inverso de = 7814 mdulo = 17.449 de duas
maneiras:
Primeiro, usando que:
7814

( )

7814

1284 ( 17.449)

Segundo, usando o algoritmo euclidiano extendido, temos que


7814 + 17.449 = 1
ser o inverso de = 7814. A soluo (, ) = (1284, 575) assim 7814
1284 ( 17.449).

Exemplo 3.5: Considere o nmero = 15.485.207 . Usando o algoritmo para o


clculo de potncias, no difcil calcular atravs de um computador a conta abaixo:

38

=2

4.136.685 ( 15.485.207)

Como no conseguimos o valor 1, parece que o Pequeno Teorema de Fermat no


verdadeiro para = 15.485.207.
O que isso nos diz? Se fosse primo ento, pelo pequeno Teorema de Fermat,
deveramos ter obtido 1. Portanto, o nmero = 15.485.207 no primo. Pensando
nisso por um minuto, vemos que isso um pouco surpreendente, pois um simples
clculo mostra que no primo, sem sabermos nada sobre os fatores de .
No fcil obter a fatorao de = 15.485.207 = 3853 4019
O Pequeno Teorema de Fermat nos diz que se um inteiro no divisvel por
ento ( ). No entanto, para algum valor especifico de , podem
existir potncias menores que que so congruentes a 1.
Definio: (ordem de mdulo ) Definimos a ordem de mdulo como o menor
expoente 1 tal que
1 ( )
Exemplo 3.6.: Observe que 2 1 ( 7) e que no existe nmero positivo menor
que 3 ao qual elevamos 2 para obtermos resto 1 na diviso por 7. Logo a ordem de 2
modulo 7 3.
Proposio. Seja um primo e um inteiro no divisvel por . Suponha que
1( ). Ento a ordem de mdulo divide . Em particular, a ordem de
divide ( 1).
Prova: Seja a ordem de mdulo p, assim 1 ( ) e o menor expoente
positivo com esta propriedade. Por hiptese, temos que 1 ( ). Dividindo
por , obtemos que
= + 0 <
Ento
1

( ) . (1) . ( )

Mas < , assim o fato de ser a menor potncia positiva inteira de que
congruente a 1 implica que = 0. Portanto, = , assim divide . Em particular
divide ( 1), pois pelo Pequeno Teorema de Fermat,
1 ( ).

39

3.2. O Problema do Logaritmo Discreto (PLD)

O problema do logaritmo discreto um problema matemtico que surge em


diversas situaes, inclusive na utilizao de curva elptica para criptografia de
mensagens.
O logaritmo discreto segue uma ideia anloga ao do logaritmo real que j
conhecemos, porm ele tratado mdulo . Para esclarecer vamos fazer uma
comparao: para calcularmos o logaritmo de na base no conjunto dos nmeros
reais, devemos encontrar o nmero real tal que = ; agora, para calcularmos o
logaritmo discreto de na base ( e inteiros), devemos encontrar um inteiro tal
que ( ). Com essa ideia, queremos definir = como o logaritmo
discreto de na base , com em , porm precisamos tomar alguns cuidados com as
escolhas de e de . Veja alguns exemplos:

= (3) no existe para = 4, pois 2 3 ( 4) no possui soluo,


visto que 2 0 ( 4) se par e 2 2 ( 4) se mpar.

= (7) tambm no existe para = 11. Verifique!

A impossibilidade de definir alguns logaritmos discretos pode ser evitada se


trabalharmos em conjuntos onde eles sempre existam. Por isso falaremos de um
importante teorema:
Proposio (Teorema da Raiz Primitiva): Seja um nmero primo. Ento existe um
elemento

cujas potncias geram cada elemento de

= { , , , ,

, isto ,

= 1 } = < >

Elementos com esta propriedade so chamados razes primitivas de , ou geradores de

. Eles so os elementos de

tendo ordem 1.

40

Exemplo 3.7: 2 uma raiz primitiva de . Basta observar que todos os elementos
de so gerados por uma potncia de 2.
2 = 1

2 = 2

2 = 4

2 = 8

2 = 5

2 = 10

2 = 9

2 = 7

2 = 3

2 = 6

2 = 1

Exemplo 3.8: 2 no uma raiz primitiva de . Basta observar que ao calcularmos


as potncias de 2, retornamos a 1 antes de obtermos todos os 16 valores de .
2 = 1

2 = 2

2 = 4

2 = 8

2 = 15

2 = 13

2 = 9

2 = 1

2 = 16

Exemplo 3.9: 3 uma raiz primitiva de . Basta observar que todos os elementos
de so gerados por uma potncia de 3.
3 = 1

3 = 3

3 = 4

3 = 10

3 = 13

3 = 5

3 = 15

3 = 11

3 = 16

3 = 14

3 = 8

3 = 7

3 = 4

3 = 12

3 = 2

3 = 6

3 = 1

Observao: Se grande ento tem vrias razes primitivas. A frmula precisa diz
que tem exatamente ( 1) razes primitivas onde a funo de Euler. Por
exemplo, podemos checar que a lista completa de razes primitivas de

dada por

{ 2, 3, 8, 10, 11, 14, 15, 18, 19, 21, 26, 27 }


A cardinalidade do conjunto coincide com o valor de ( 1) = (28) = 12.

41

Definio (Problema do Logaritmo Discreto) Seja uma raiz primitiva de ,


primo, e seja b um elemento no nulo de . O Problema do Logaritmo Discreto (PLD)
o problema de encontrar um expoente inteiro tal que
( )
O nmero chamado de logaritmo discreto de na base e denotado por log ().
O Problema do Logaritmo Discreto um problema bem-posto, isto , encontrar
um expoente inteiro tal que = . No entanto, se houver uma soluo, ento
haver infinitas solues inteiras, pois se uma soluo para = , ento temos
que + ( 1) tambm uma soluo para cada valor de em virtude do Pequeno
Teorema de Fermat que diz que

1 ( ) . De fato

Por exemplo, 2 3 ( 11) , 2


modo geral 2

) 1 ( ).
, . . .

3 ( 11) , 2

3 ( 11) , de

3 ( 11) para qualquer inteiro.

Temos que log est bem definido a menos de mltiplos de ( 1). Desta
forma, restringimos o contradomnio de para

para que a funo log

esteja

bem definida.
log

=
Em vrias situaes, nos referimos ao logaritmo discreto como o inteiro
situado entre 0 e 2 satisfazendo a congruncia ( ).
Exemplo 3.10: Por simplicidade, vamos considerar = 13 e a = 2.
( ) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
=

2 = 2, 2 = 4, 2 = 8, 2 = 3, 2 = 6, 2 = 12

2 = 11, 2 = 9, 2 = 5, 2 = 10, 2 = 7, 2 = 1

42

: ( ) dada por log b = onde 2 = b

log

= ( )

1=2

0 = 12

2=2

3=2

4=2

5 = 2

6 = 2

12

7=2

11

8=2

9=2

10

10 = 2

10

11

11 = 2

12

12 = 2

Exemplo 3.11: O nmero = 56.509 primo, e podemos checar que a = 2 uma raiz
primitiva mdulo . Como iremos calcular o logaritmo discreto de = ? O
nico mtodo que imediatamente bvio, calcular
2, 2 , 2 , 2 , 2 , ( )
at encontrarmos alguma potncia que seja cngruo a = 38679 mdulo = 56509.

43

Seria difcil fazer a conta na mo, mas usando um computador, encontramos que
2

38679 ( 56509), ou seja, log (38679) = 11235.

Diferentemente dos logaritmos nos Reais, que so funes estritamente


crescentes ou decrescentes (dependendo da base do log), os logaritmos discretos
possuem imagens com carter praticamente aleatrio, o que torna sua resoluo bastante
difcil.
O exemplo anterior utilizou nmeros pequenos, por isso foi facilmente resolvido
atravs de um computador. No entanto, o clculo de um logaritmo discreto pode se
tornar difcil at para um computador, desde que os valores de a e sejam
cuidadosamente escolhidos. Essa dificuldade deu a Diffie e Hellman uma grande ideia,
como veremos na seo a seguir.

O grfico acima mostra a irregularidade das potncias mdulo =

44

3.3. Protocolo de Diffie-Hellman (PDH) Chave Trocada

O Algoritmo de Diffie Helman ajudar a resolver o seguinte dilema. Joozinho


e Serginho desejam compartilhar uma chave secreta para uso em uma cifra simtrica,
mas o seu nico meio de comunicao um canal de comunicao inseguro. Cada
pedao de informao que Joozinho e Serginho compartilham, observado pela
Mnica.
Como possvel para Joozinho e Serginho compartilhar uma chave sem tornla disponvel para Mnica? primeira vista parece que Joozinho e Serginho enfrentam
uma tarefa impossvel, contudo Diffie e Hellman encontraram uma soluo.
No primeiro passo, Joozinho e Serginho combinam a utilizao de um nmero
primo grande e um inteiro no nulo mdulo . Os valores de e , escolhidos por
Joozinho e Serginho, so tornados de conhecimento pblico, permitindo que qualquer
pessoa, inclusive Mnica, tambm conhea esses nmeros.
No segundo passo Joozinho escolhe um inteiro secreto que no ir revelar a
ningum, enquanto, ao mesmo tempo, Serginho escolhe um inteiro b, que ele manter
em segredo, no revelando a ningum. Joozinho e Serginho usam os inteiros secretos
para calcular
( ) ( )

No terceiro passo, Joozinho envia o valor para Serginho que, por sua vez,
envia o valor para Joozinho. Note que Mnica comea a ver os valores de e ,
uma vez que eles so enviados atravs de um canal de comunicao inseguro.
Novamente, Joozinho e Serginho usam outra vez, seus inteiros secretos para calcular
( ) ( )

Observe que os valores calculados, A e B, so exatamente os mesmos, pois


( )

( )

45

Este valor comum onde ( ) a Chave Trocada .


Exemplo 3.12: Joozinho e Serginhoconcordam em usar o primo = 941 e a raiz
primitiva = 627.

Joozinho escolhe a chave secreta = 347 e calcula


A = 390 627 (mod 941).

Serginho escolhe a chave secreta = 781 e calcula


= 691 627 ( 941).

Joozinho envia para Serginho o nmero = 390 e Serginho envia para


Joozinho o nmero = 691. Ambas as transmisses so feitas por um canal de
comunicao inseguro, assim, e podem ser considerados de conhecimento pblico.
Os nmeros = 347 e = 781 no so transmitidos e permanecem secretos.
Neste momento, Joozinho e Serginho so capazes de calcular a chave compartilhada,
que igual a 470.
= 470 691

( 941) e = 470 390

( 941)

Suponha que Mnica tenha interceptado os inteiros = 390 e = 691


trocados por Joozinho e Serginho. Para Mnica reconstituir as chaves secretas e de
Joozinho e Serginho, ela dever resolver os seguintes problemas de congruncia.
627 390 ( 941) ou 627 691 (mod 941)
Assim ela conhecer os expoentes secretos. Tanto quanto se sabe, este o nico
caminho para Mnica encontrar o valor secreto compartilhado de Joozinho e Serginho,
sem a assistncia dos mesmos. claro que os nmeros utilizados em nosso exemplo so
muito pequenos para oferecer segurana. Especialistas sugerem que o primo escolhido
tenha aproximadamente 1000 bits ( 2
) e que o nmero g tenha ordem igual a
um nmero primo prximo de .
Em geral, o dilema de Mnica este: Ela sabe quais so os valores = e
=

e tambm conhece os valores de e , por isso, se ela puder resolver o PLD,

ento ela poder encontrar os valores e e, com isso, Mnica poder calcular a chave
secreta compartilhada ( ), que no foi transmitida em nenhum momento.
Aparentemente, Joozinho e Serginho esto seguros desde que Mnica seja
incapaz de resolver o PLD, mas isso no uma verdade absoluta. verdade que um
mtodo para encontrar o valor compartilhado entre os dois resolver o PLD, mas talvez
isso no seja necessrio. A segurana da chave compartilhada repousa sobre a
dificuldade de resolver o seguinte problema, potencialmente mais fcil.
46

Definio: (Problema de Diffie - Hellman PDH)


Seja um nmero primo e um inteiro. O Problema de Diffie-Hellman (PDH)
o problema de calcular o valor de ( ) a partir dos valores conhecidos de
= ( ) e = ( ).
claro que o PDH no mais difcil do que o PLD. Se Mnica pode resolver o
PLD, ento ela pode calcular os expoentes secretos e de Joozinho e Serginho que
formam os valores interceptados = e = , e ento fica fcil Mnica calcular
sua chave compartilhada, no transmitida em nenhum momento. Na verdade,
Mnica necessita calcular apenas um dos valores de e , para conhecer a chave
compartilhada.
O problema inverso menos claro. Suponha que Mnica tenha um algoritmo
eficiente para resolver o PDH. Ser que Mnica pode us-lo tambm para resolver
de maneira eficiente o PLD? A resposta no conhecida.

Diffie e Hellman perceberam,


de forma brilhante, que a dificuldade
do problema do Logaritmo Discreto
para

fornece uma possvel

soluo para esse problema.


Diffie

Helman

47

3.4. O Sistema Pblico de Criptografia ElGamal

Veremos agora como funciona a ideia de Elgamal para enviar mensagens com
segurana. Como esse mtodo utiliza clculos numricos, surge a necessidade de
substituir smbolos por nmeros. A tabela ASCII (Cdigo Padro Americano para o
Intercmbio de Informao) fornece uma opo de pr-codificao.

Vamos supor que Serginho queira mandar uma mensagem para Joozinho por
um canal inseguro de modo que ningum tenha acesso ao seu contedo. Digamos que
essa mensagem, quando pr-codificada pela tabela ASCII, fique representada pelo
nmero .
Primeiramente, Joozinho e Serginho combinam um nmero primo e uma raiz
primitiva . Joozinho utiliza uma chave secreta com a qual calcula
( ).
e depois envia para Serginho o nmero . Este escolhe uma chave provisria e
calcula:
( )

( )

Deste modo, Serginho codifica a mensagem criptografada pelo par ( , ), e em


seguida, envia o par ( , ) para Joozinho, que por sua vez decodifica a mensagem
atravs do par ( , ) com os seguintes clculos:
48

Passo 1: Determina ( )
Passo 2: Determina

mdulo , via Obs. pgina 40, pois

( ),

Passo 3: Calcula

( . )

. ( )

. ( )
.

. ( )

( )

Agora basta que Joozinho consulte a tabela ASCII para obter a mensagem original.
Exemplo 3.13: Joozinho usa o primo = 467, a raiz primitiva = 2, escolhe
= 153 para ser sua chave privada secreta e calcula sua chave pblica
2

224 ( 467)

Serginho decide enviar para Joozinho a mensagem = 331(Essa mensagem um


exemplo meramente numrico, no tendo nenhuma relao com a tabela ASCII). Ele
escolhe uma chave efmera ao acaso, digamos = 197 e calcula os dois nmeros a
seguir:
c 2

87 (mod 467) e c 331 . 224

57 (mod 467)

Serginho envia a mensagem criptografada em par ( , ) = (87, 57) para Joozinho.


Joozinho, utilizando sua chave secreta = 153, faz os seguintes passos
Passo 1: Calcula 87
Passo 2: Calcula
Passo 3: Calcula

367

367 ( 467)
14

( 467)

57 .14 331 ( 467)

e assim decodifica a mensagem = 331 enviada por Serginho.

Em 1985, Taher
ElGamal publicou um
artigo intitulado
A Criptografia de chave
pblica e um esquema
de assinatura com base
em logaritmos
discretos.

49

Captulo 4 - Criptografia via Curvas Elpticas


Curvas elpticas, apesar do nome, no esto associadas a elipses, apenas
surgiram do problema da integral elptica. Neste captulo, apresentaremos a definio
de curvas elpticas e uma operao de soma que define um grupo abeliano com os
pontos da curva.
Em seguida, discutiremos as ideias do logaritmo discreto e da chave trocada de
Diffie e Hellman adaptados para as curvas elpticas. Finalizaremos mostrando como
enviar uma mensagem utilizando a criptografia sobre curvas elpticas (ECC), atravs do
sistema de ElGamal.

A utilizao de curvas
elpticas
em criptografia foi
sugerida por Neal Koblitz e
Victor S.Miller em 1985.

4.1. Preliminares
Uma curva elptica o lugar geomtrico dos pontos do plano cujas
coordenadas cartesianas satisfazem a uma equao do tipo
= + +
com e satisfazendo a condio 4 + 27 0. Esta desigualdade uma forma
de garantir que a curva no tenha singularidades, o que possibilitar determinar a reta
tangente em todos os pontos da curva, fato este, que ser verificado no decorrer do
texto.

Equaes
do
= + +

tipo

so chamadas de equaes de
Weierstrass, em homenagem ao
matemtico
alemo
Karl
Weierstrass (1815 1897).

50

Exemplos de curvas elpticas:

y 2 x 3 3x 3

y 2 x3 6 x 5

O que torna curvas elpticas particularmente interessantes do ponto de vista


algbrico/aritmtico o fato de que toda curva elptica um grupo abeliano*. Isso quer
dizer que podemos SOMAR dois pontos e de uma curva elptica , obtendo um
terceiro ponto = + de , e esta operao goza das propriedades:
comutatividade, existncia de elemento neutro, existncia do elemento inverso e
associatividade.
Esta lei de grupo possui a seguinte descrio geomtrica, conhecida
popularmente como lei da corda-tangente:

LEI DA CORDA-TANGENTE: A soma

de dois pontos e a reflexo


, pelo eixo-, do terceiro ponto
de interseo da curva elptica
com a reta que liga e .

mais fcil de entender fazendo


uma figura da curva elptica ao
lado: = 3 + 3.

51

Para somarmos os pontos e da curva, traamos a reta e marcamos o


ponto , outra interseo dessa reta com a curva. Pelo ponto traamos uma reta
perpendicular ao eixo horizontal. A interseo dessa reta com a curva o ponto
= + . Observe que o ponto a reflexo do ponto em relao ao eixo
horizontal.
Uma situao que tambm devemos analisar a soma de + . Neste caso,
desenhamos a reta tangente curva no ponto e tomamos o ponto , a outra
interseo da curva com essa reta. Observe a figura abaixo.

O ponto = + a reflexo do ponto em relao ao eixo horizontal.


Outra situao a ser analisada, quando somamos ao seu simtrico em
relao ao eixo-.

52

Neste caso a reta no intersecta novamente a curva. Para resolvermos esse


problema, vamos criar um ponto que esteja em toda a reta vertical do plano, que
chamaremos de Ponto no infinito, observando que este ponto no pertence ao plano
cartesiano , pois alem disso, queremos que ele esteja na interseo de toda reta
vertical com a curva . Esta propriedade se torna mais natural quando pensamos nas
margens de uma estrada desaparecendo no horizonte.

Assim + = . Note que, a partir dessa ideia, tambm podemos definir


+ = , pois a reta que passa pelos pontos e encontra o ponto da curva
elptica cuja reflexo o ponto , portanto o elemento neutro para esta definio
de soma, e consequentemente + = . Observe tambm que , o simtrico de
em relao ao eixo horizontal, o nico ponto que somado com igual a . Ento, o
inverso de o ponto , isto , = .
Agora estamos pronto para definir a soma + quando a reta tangente ao
ponto P perpendicular ao eixo horizontal. Neste caso, esta reta encontra o terceiro
ponto da curva elptica no ponto , cuja reflexo o prprio ponto , assim, teremos
+ = .

53

Desta forma o conjunto


( ) = { (, ) ; = + + } {} ,
munido da operao de soma de pontos, goza das seguintes propriedades:

+ = + , pois a reta passando por e a mesma que passa por e


.
+ = para todo , pois se a reta que liga a a reta vertical
que passa por e portanto intercepta novamente em , o simtrico em
relao ao eixo- , logo refletindo novamente obtemos de volta. O caso
= j foi considerado acima.
+ = .
+ () = , pois para = , a reta que liga os pontos e simtricos
em relao ao eixo, a reta vertical passando por , observe que isto vlido
mesmo no caso em que = , ou seja, quando est sobre o eixo , pois
neste caso a reta tangente em vertical.
+ ( + ) = ( + ) + para todo , , . A verificao da
propriedade associativa est excluda do objetivo desse texto.

Assim, podemos dizer que (( ), +) um grupo comutativo.


A existncia destas descries geomtricas para uma operao algbrica
surpreendente, pois abre a possibilidade de aliar a intuio geomtrica juntamente com a
preciso algbrica no estudo de curvas elpticas que podem ser definidas sobre corpos
arbitrrios.
Afirmao: O coeficiente angular da reta tangente a uma curva elptica E: = +
+ no ponto = ( , ) dado por =

54

Prova: Sejam : = + a reta tangente a no ponto = ( , ) e =


( , ) o outro ponto de interseo da curva com a reta tangente .
Substituindo = + em = + + , obtemos ( + ) = +
+ + ( 2) + = 0 . Como a reta : = +
tangente curva no ponto = ( , ), a raiz possui multiplicidade maior que ou
igual a 2.
Assim, podemos representar as razes da equao + ( 2) +
= 0 por , e Segue, das Relaes de Girard, que:
= + + = 2
2 = 2 ( 2 ) +

2 = + +

Como = ( , ) pertence reta , podemos escrever = ,, assim:


2( ) = 2 ( 2 ) + 2 = 3
=

3 +
.
2

NOTA: Esta frmula pode ser obtida facilmente por derivada.

= + + 2 = 3 + =

3 +
.
2

bvio que essa frmula est bem definida para diferente de zero. Se for
igual a zero e 3 + for diferente de zero, a frmula sugere que a reta tangente
perpendicular ao eixo horizontal. Esse caso ser discutido mais frente, antes
precisamos resolver outro problema. Note que nas duas curvas elpticas a seguir no
possvel determinar qual a reta tangente no ponto P.

: y 2 x3 3x 2

: y 2 x3

55

Alm disso, no conseguimos definir a soma + quando a curva apresenta


alguma singularidade no ponto , ou seja, quando o coeficiente da reta tangente no
ponto no est determinado. J sabemos que o coeficiente angular da reta tangente em
cada ponto (, ) dado por

. A indeterminao ocorre quando, no clculo da

inclinao da reta, aparece . Ento no podemos ter 3 + = 0 e 2 = 0. Vamos


determinar a relao entre e de modo que se 3 + = 0, ento = 0.

3 + = 0 = = .
3
3
0 + + 0
. ( + ) + 0

+ + 0
3
3

2

3
3

4
.
3
9

4

27

4 + 27 0.

Portanto a relao 4 + 27 0 importante para que a soma + esteja


definida para qualquer ponto na curva .
fcil verificar que os coeficientes das curvas da figura acima no obedecem a
essa relao.
Na curva elptica = 3 + 2 , temos = 3 e = 2 e,
consequentemente, 4 + 27 = 4 (3) + 27 2 = 0.
Na curva = a verificao ainda mais fcil, pois e so iguais a zero.

56

4.1.2. Algoritmo de Soma de Pontos na Curva Elptica

Nosso prximo objetivo encontrar frmulas explcitas para sermos capazes de


somarmos pontos em uma curva elptica. Para obtermos estas frmulas utilizaremos
simplesmente geometria analtica elementar e pequenas manipulaes algbricas
conforme resultado abaixo.

Algoritmo de Soma de Pontos na Curva Elptica: Sejam


: = + + 4 + 27 0
e pontos da curva elptica .
1)
2)
3)
4)
5)

= + =
= + =
Caso contrrio, escreva = ( , ) e = ( , )
Se = e = + =
Caso contrrio, defina por

Capitulo 5 =

se ou =

Ento = + = ( , ) onde
= = ( )

Prova: Observe que o coeficiente angular da reta P1P2 quando P1 P2 e o


coeficiente angular da reta tangente curva E no ponto P1 quando P1 = P2.
Portanto, se:

= + a reta onde ( ou = ) e

= ; o outro ponto de interseo entre a reta e a curva ,

podemos escrever:

( + ) = + + + ( 2) + = 0.
Como6) , , so as razes dessa equao, temos que a soma das razes
+ + = = .
Acabamos de obter uma frmula para a abscissa do ponto que a mesma
abscissa do ponto = + , logo = .
57

Agora vamos encontrar uma frmula para a ordenada . Isso fcil, basta
substituir = na equao da reta, mas antes vamos notar que = ( , )
tambm pertence reta = + , logo

= + = .
= + = + ( ) = ( ) +

consequentemente
= = ( )
Se e so pontos racionais de uma curva elptica sobre fcil ver que a
soma + tambm um ponto racional de . Em particular, dado um ponto racional
de , a lei de grupo permite construir NOVOS pontos racionais, a saber, os
mltiplos inteiros de
, 3, 2, , , , 2, 3,
Observe que os elementos desta lista, no precisam ser distintos. Por exemplo, se
= o elemento neutro, ento a lista acima s contem um elemento.
Desta forma, bastante natural perguntar se possvel encontrar um
CONJUNTO DE GERADORES { , , . . . , } para os pontos racionais de , de
modo que qualquer ponto racional de se escreve como combinao -linear de
, . . . , , isto
= + + ( )
Este precisamente o contedo de um resultado clssico da literatura, conhecido
como Teorema de Mordell-Weil que diz que dada uma curva elptica : = +
+ sobre , ou seja, , , mais um ponto no infinito, ento o conjunto ()
dos pontos racionais de um grupo finitamente gerado.

Louis J.Mordell (1888 1972)

Andr Weil (1906 1998)

58

Exemplo: Considere a curva elptica = + 2 e o ponto = (1,1) dessa curva.


Vamos encontrar o ponto 2 = + .

Como estamos somando dois pontos iguais,


=

3 + 3 (1) + 0 3
=
= .
2
21
2

Agora vamos calcular as coordenadas do ponto 2 = + .

= =

= ( ) = 1

Segue que 2 = ( , ) =

(1) (1) =

1=

. Agora vamos somar o ponto com o ponto 2

para obtermos o ponto 3 = + 2.

59

Como os pontos e 2 so distintos,


71
1

79
=
= 8
=
.
17

42
(1)

4
Agora vamos calcular as coordenadas do ponto 3P = P + 2P.

= =

(1)

= ( ) =

1=

Segue que
3 = ( , ) =

127 13175
,
.
441 9261

De modo anlogo, calculamos 4 = + 3 = ( , ) e encontramos


4 =

66113 36583777
,
.
80656 22906304

4.1.3. Curvas elpticas sobre

Chegamos a uma etapa importante para a aplicao de curvas elpticas na


criptografia. Agora vamos aplicar a definio que vimos para a soma de pontos de uma
curva elptica sobre o corpo finito , onde um nmero primo. Para isso, definimos
uma curva elptica sobre como uma equao do tipo
= + + , 4 + 27 0
e olhamos para os pontos de com coordenadas em . Denotaremos esses pontos por

= (, ); , ; = + + {}

Claramente o conjunto de pontos um conjunto finito, visto que existe


somente um nmero finito de possibilidades para as coordenadas e . Mais
precisamente, existe possibilidades para e ento para cada , a equao = +
+ mostra que existe pelo menos duas possibilidades para . Adicionando o ponto
extra , temos que # 2 + 1. No entanto, esta estimativa consideravelmente
maior do que a quantidade real de pontos de . Faremos um exemplo para ilustrar
esta situao.

60

Exemplo: Considere a curva elptica dada por = sobre . fcil verificar


que esta curva possui apenas 8 (oito) pontos, dados a seguir:
( ) = {(0,0), (1,0), (2,1), (2, 1), (3,2), (3, 2), (4,0)} {}.
Para um corpo finito com poucos elementos, fcil verificar a quantidade de
pontos de . Mas se a curva elptica estivesse sobre
? onde 2017 o
prximo ano primo, que ser logo aps as olimpadas do Rio de Janeiro; qual a
)?
quantidade de pontos de (
Um resultado famoso nesta direo, conhecido na literatura como Teorema de
Hasse-Weil, diz que se uma curva elptica sobre ento
+ 1 2 #

+ 1 + 2

) 2017 + 1 + 22017 2018 + 90 = 2108 uma


Assim, #(
estimativa melhor que #(2017) 2.2017 + 1 = 4035. Faremos mais um exemplo
para clarear as ideias.

Exemplo: Considere a curva elptica dada pela equao


: = + 2 + 7
Podemos encontrar os valores de ( ) substituindo cada
+ 2 + 7 e decidir se este valor um quadrado ou no

0
1
2
3
4
5
6
7
8
9
10
11
12

0
1
4
9
3
12
10
10
12
3
9
4
1

0
1
2
3
4
5
6
7
8
9
10
11
12

+ 2 + 7
7
10
6
1
1
12
1
0
2
0
0
8
4

no polinmio

(, )

+ 2 + 7

(1,6), (1,7)

10

10

(3,1), (4,1), (6,1)

(3,12), (4,12), (6,12)

(5,5), (5,8)

12

12

(7,0), (9,0), (10,0)

(12,2), (12,11)

Segue da ltima tabela que #( ) = 16 onde


( ) = {(1,6). (1,7), (3,1), (4,1), (6,1), (3,12), (4,12), (6,12)}
{(5,5), (5,8), (7,0), (9,0), (10,0), (12,2), (12,11)} {}
61

Agora, Usando o Algoritmo de Soma de Pontos na Curva Elptica, podemos


observar facilmente que:
Se = (5,8) = ento + = (5,8)
Se = (3,1) = (3,12) ento + = . De fato, (3,1) e (3,12) so
simtricos em relao ao eixo horizontal, pois 12 1( 12) e consequentemente
(3,12) = (3, 1).
Se = (5,8) = (12,11) ento =

= . Opa! Parece que temos um

problema, pois estamos trabalhando mdulo 13. Neste momento surge uma pergunta
muito natural: Qual o significado de = ( 13) ? A resposta para isso
baseada no fato de que = a soluo da equao 7 = 3 . Portanto, basta
resolvermos a equao 7 3(13). No difcil verificar que = 6 a soluo
em . Agora podemos calcular explicitamente as coordenadas de = + =
( , ) = (6,12), conforme verificao a seguir:

= = 6 12 5 = 19 6 ( 13)
= ( ) = 6(5 6) 8 = 14 12 (13)
Se = = (1,6) , ento =

. Resolvendo a equao

12 5 ( 13), encontramos = 8. Segue que = ( , ) = (10,0) conforme


contas a seguir:

= = 8 1 1 = 62 10 13
= ( ) = 8(1 10) 6 = 78 0 13.

4.2. Problema do Logaritmo Discreto para Curvas Elpticas (PLDCE).

O Problema do Logaritmo Discreto (PLD) em , que vimos no captulo 3,


trata de encontrar um expoente tal que ( ) e escrevemos = log
Em outras palavras, o Problema do Logaritmo Discreto (PLD) consiste em
determinar quantos fatores iguais a so necessrios para que o produto seja
congruente a mdulo p , ou seja:
. . ( )

62

De modo anlogo, o Problema do Logaritmo Discreto em uma Curva Elptica


(PLDCE) consiste em encontrar um inteiro tal que
= + + + + =

onde e so dois pontos de . Assim, o problema do logaritmo discreto


(PLDCE) o problema de encontrar um inteiro m tal que = . Por analogia com
o problema do logaritmo discreto para

, denotamos o inteiro por

= log ()
onde chamamos o Logaritmo Discreto Elptico de com respeito .
Lembre-se de que a lei de soma de pontos de uma curva elptica complicada,
por isso determinar o logaritmo discreto em uma curva elptica at mais difcil do que
em . Observando novamente a curva elptica E: = + 2 + 7 sobre , onde
temos que
( ) = {(1,6). (1,7), (3,1), (4,1), (6,1), (3,12), (4,12), (6,12)}
{(5,5), (, ), (7,0), (9,0), (10,0), (12,2), (12,11)} {}
Para o ponto = (3,1), usando o algoritmo, vemos que

2 = + = (6,1)
3 = 2 + = (6,1) + (3,1) = (4,12)
4 = 3 + = (4,12) + (3,1) = (10,0)

Ento, o Logaritmo Discreto Elptico de

= (4,12) na base = (3,1) igual a 3 pois = 3.


= (10,0) na base = (3,1) igual a 4 pois = 4.

importante enfatizar que a definio dada para Logaritmo Discreto Elptico


no muito precisa. H muitos pontos e em tais que no mltiplo de
e, consequentemente, para esses pontos o logaritmo no existe. Observando a lista de
mltiplos de = (3,1) na curva elptica dada:
= (3,1)

2 = (6,1)

3 = (4,12)

4 = (10,0)

5 = (4,1)

6 = (6,12)

7 = (3,12)

8 =

Perceba que esses so os nicos mltiplos de = (3,1), pois aps 8 =


os valores se repetem:
9 =

10 = 2

11 = 3

12 = 4

63

e assim por diante. Assim vemos que todos os pontos de ( ) que no esto nessa
lista de mltiplos de no possuem logaritmo na base = (3,1).
Claramente, temos para = (5,8) que o log no existe, pois no existe
tal que = . Alm disso, se existe um inteiro satisfazendo = , ento h
infinitos inteiros que tambm satisfazem. Para ver isto, primeiro note que existe um
inteiro tal que = . De fato, como finito, ento a sequncia infinita
(, 2, 3, 4, . . . ) possui elementos repetidos. Portanto, existem inteiros > tais
que = e podemos tomar = ( ) . O menor desses elementos 1
chamado de ordem de .
Se a ordem de e um inteiro qualquer tal que = ento as
solues para = so os inteiros = + . com . Isto significa que o
valor de log () um elemento /, isto , log () um inteiro mdulo s. onde s
a ordem de P. poderamos dizer que log () = , no entanto, a vantagem de se definir
os valores para estarem em /, que o Logaritmo Discreto Elptica satisfaz
log ( + ) = log + log
De fato, fazendo log = = e log = = podemos
escrever
+ = + = ( + ) log ( + ) = +
o que ratifica a propriedade.

4.2.1. O algoritmo para calcular os mltiplos de um ponto de uma curva elptica

Um problema que surge nesse momento o de calcular = para grande.


Podemos pensar de modo natural em calcular 2 = + , 3 = 2 + , 4 =
3 + e assim por diante, ate m = (m 1) +
Note que por esse processo, teremos que efetuar (m 1) operaes, o que no
muito prtico mesmo que no seja muito grande. No segundo captulo, descrevemos
um algoritmo para calcular ( ) atravs da expanso binria, lembra?
Usaremos uma ideia anloga nas curvas elpticas. Para calcularmos, =
escreveremos como a soma de alguns termos da sequncia (, 2, 2 , 2 , . . . ),
onde cada termo obtido dobrando o seu antecessor. A grande vantagem deste
algoritmo est no nmero de operaes que precisam ser realizadas.

64

A maneira mais eficiente para calcular m muito similar ao mtodo descrito


no captulo para calcular potncias de , que necessitamos para a troca de
chaves de Diffie-Hellmann.
Entretanto, visto que a operao em uma curva elptica escrita como uma
adio no lugar de uma multiplicao, chamaremos as operaes de dobra e soma, no
lugar de quadrado e multiplicao. A ideia similar anterior. Primeiro escrevemos
na forma binria como
= + . 2 + . 2 + . 2 + + . 2

onde {0,1}.

Podemos assumir que = 1. O prximo passo dobrar o passo anterior.


=

= 2

= 2

Note que simplesmente duas vezes o antecessor

= 2

. Assim

= 2
Finalmente, computamos usando no mximo r somas
m = + + + +
Nos referimos adio de dois pontos em ( ) como uma operao de ponto.
Portanto o total de vezes para calcular no mximo 2 operaes de Ponto em
. Note que 2 . Por isso, no faremos mais do que 2 () operaes de
pontos para calcular . Isto faz com que seja possvel calcular , mesmo para
valores muito grandes de . Resumimos na tabela abaixo o algoritmo para calcular os
mltiplos de um ponto de uma curva elptica.
Entrada: Entre com o ponto e 1 inteiro
1. Seja = e = .
2. Enquanto > 0 faa:
I.
Se 1 2 ento
II.
Defina: = +
III.
Defina: = 2
IV.

Defina: =

V.
Se > 0 retorne ao passo 2
3. Sada: o ponto =

65

Exemplo: Usaremos o algoritmo de dobrar e somar para calcular = em


para a curva elptica : = + 14 + 19 onde = 947, = 3623 onde o ponto
= (6, 730) (
). Escrevendo = 947 na base 2, temos que:
= 947 = 1 + 2 + 2 + 2 + 2 + 2 + 2

Fazendo os clculos passo a passo, para obtermos = 947 efetuaremos 9


dobras com 6 somas, conforme a tabela a seguir:
Passo

=+

947

= (6, 730)

473

(2521, 3601)

= (6, 730)

236 (par)

(2277, 502)

3 = (2149, 196)

118 (par)

(3375, 535)

3 = (2149, 196)

59

(1610, 1851)

3 = (2149, 196)

29

(1753, 2436)

19 = (2838, 2175)

14 (par)

(2005, 1764)

51 = (600, 2449)

(2425, 1791)

51 = (600, 2449)

(3529, 2158)

179 = (3247, 2849)

(2742, 3254)

435 = (932, 1204)

10

(1814, 3480)

947 = (3492, 60)

66

4.3. Criptografia via Curvas Elpticas


Chegamos ao momento mais esperado do nosso estudo de curvas elpticas.
Como usar as curvas elpticas na criptografia? Comearemos apresentando a chave
trocada Diffie-Hellman para curvas elpticas e depois mostraremos como funciona o
sistema de criptografia com chave pblica ElGamal em uma curva elptica.

4.3.1. Chave Trocada DIFFIE-HELLMAN sobre uma curva Elptica


Voltemos com nossos ilustres personagens, Joozinho, Serginho e Mnica.
Primeiramente, Joozinho e Serginho concordam em usar uma curva elptica sobre
com ( 1 primo) dada por uma equao do tipo
= + + , 4 + 27 0
e tomam

= (, ); , ; = + + {}.

Esses dados so pblicos, portanto qualquer um pode conhec-los, onde


descreveremos os passos na tabela abaixo:
Joozinho

Mnica - (parmetros Pblicos)

Serginho

1 primo grande
uma curva elptica sobre
um ponto de
Passo 2: Escolhe
secreto.

Passo
2:
Escolhe
secreto.

Passo 3: Calcula

Passo 3: Calcula

Passo 4: Envia
para Serginho

Passo 4: Envia para


Joozinho.
.

Recebe

e pblico

Recebe

Passo 5: Calcula

Passo 5: Calcula

67

Convm observar que


= = =
que Joozinho e Serginho podem usar com uma chave para comunicar-se de forma
privada atravs de uma cifra simtrica.

Exemplo: Joozinho e Serginho decidem usar o mtodo de Diffie-Hellman para curvas


elpticas, para o seguinte caso, conforme a tabela abaixo:
Joozinho

Mnica - (parmetros Pblicos)

Serginho

= 3851 1 primo grande


: = + 324 + 1287
uma curva elptica sobre
= (920,303) (

Passo
2:
Escolhe
= 1194 secreto.

Passo
2:
Escolhe
= 1759 secreto.

Passo 3: Calcula

Passo 3: Calcula

= = 1194

= = 1759

= (2067, 2178)

= (3684, 3125)

Passo 4: Envia para


Serginho
Recebe

Passo 4: Envia para


Joozinho.
e pblico

Recebe

Passo 5: Calcula

Passo 5: Calcula

= 1194(3684,1242)

= 1759(2067,2178)

= (3347,1242)

= (3347,1242)

68

Joozinho e Serginho compartilharam o ponto secreto


= ( , ) = (3347, 1242).
Com o objetivo de usar menos bits e tornar a comunicao menos pesada, eles podem
descartar a coordenada e enviar apenas o valor da primeira coordenada do ponto , a
saber: = 3347, como sendo a chave secreta compartilhada.
Recebendo, um do outro, apenas a primeira coordenada, Joozinho e Serginho devem
calcular a coordenada que falta. Neste momento se torna muito til a seguinte
proposio:
Proposio: Se um primo da forma (4 1) e a equao ( ) admite
soluo, ento =

uma soluo dessa equao.

Prova: Se = 0, no h o que mostrar.


Se 0 e uma raiz primitiva de
ento existe tal que
( ) e, consequentemente, ( ).

inteiro positivo, pois = 4 1 para algum inteiro positivo.

Note que

Vamos mostrar que =


=
=
=
Note que ( )

(
(

satisfaz a nossa equao.

)
)

( )

( )
( )

1( ) pelo P.T.F
=

( ) ,
( ) . Segue que

( ).

EXEMPLO: Vamos determinar uma soluo para 6( 19).. Note que 19 um


primo da forma 4k 1, pois 4 5 1 = 19. Ento, se existe soluo para a nossa
equao, = 6
= 6 soluo. Podemos verificar que = 6 5( 19)
25 6( 19).

69

Vamos fazer um exemplo com Joozinho e Serginho enviando apenas a 1 coordenada


do ponto R.
Exemplo: Joozinho e Serginho decidem usar o mtodo de Diffie-Hellman para curvas
elpticas, para o seguinte caso, conforme a tabela abaixo:
Joozinho

Mnica - (parmetros Pblicos)

Serginho

= 3851
: = + 324 + 1287
uma curva elptica sobre
= (920,303) (

Passo 2: Escolhe =
2489 secreto.

Passo 2: Escolhe =
2286 secreto.

Passo 3: Calcula

Passo 3: Calcula

= 2489

= 2286

= (593, 719)

= (3681, 612)

= ( , )

= ( , )

Passo 4: Envia = 593


para Serginho

Passo 4: Envia = 3681


para Joozinho.

Recebe =
Passo 5: Joozinho Calcula
= 3681
Na equao de
= + 324
+1287
= 3681 + 324.3681
+1287
= 997

e pblico

Recebe =
Passo 5: Serginho Calcula
= 593
Na equao de
= + 324
+1287
= 593 + 324.593
+1287
= 927

70

Como ( )/ uma raiz


quadrada de modulo ,
segue que

Como ( )/ uma raiz


quadrada de mdulo ,
segue que

= 997(

= 927(

)/

)/

= 997

= 927

612 3851

3132 3851

Passo 6: Joozinho encontra

Passo 6: Serginho encontra

= (3681,612)

= (593,3132)

que o de Serginho.

que no o de Joozinho.

= (3681,612)

= (593,719)

Passo 7: Calcula

Passo 7: Calcula

= 2489(3681,612)

= 2286 (593,3132)

= (509,1108)

= (509,2743)

Passo 8: Apesar de no ser


o mesmo ponto, um o
simtrico do outro e a chave
secreta compartilhada ser a
coordenada que a
mesma para ambos os
pontos =

Passo 8: Apesar de no ser


o mesmo ponto, um o
simtrico do outro e a chave
secreta compartilhada ser a
coordenada que a
mesma para ambos os
pontos =

71

4.3.2. SISTEMA DE CRIPTOGRAFIA COM CHAVE PBLICA ELGAMAL

fcil construir um anlogo ao ElGamal para o grupo das curvas elpticas sobre
corpos finitos. Porm, teremos que supor que a mensagem que Serginho deseja enviar
para Joozinho um ponto ( ) da curva elptica onde o primo e a curva
elptica sobre so previamente fixados por um canal no seguro de comunicao.
Alm disso, eles ainda compartilham um ponto ( ). Vamos descrever o
mtodo na tabela abaixo.

Joozinho

Mnica - (parmetros Pblicos)

Serginho

1 primo grande
uma curva elptica sobre
um ponto de
Passo 2: Escolhe
secreto.
Passo 3: Calcula
=
Passo 4: Envia
para Serginho
pblico

Recebe

72

Serginho escolhe um inteiro somente para codificar a mensagem e que ser


descartado aps isto, conforme descrito na tabela a seguir:

Joozinho

Mnica

Serginho

Passo 5: Serginho escolhe


e calcula
=
= +
Passo 6: Envia para
Joozinho
a
seguinte
mensagem (, )
Recebe (, )

(, ) pblico

Passo 7: Para decifrar a


mensagem, Joozinho calcula

= ( + )
= + ( )
=

73

Faamos outro exemplo, conforme tabela a seguir:


Joozinho

Mnica-(parmetros Pblicos)

= 362,

Serginho

= (6, 730)

: = + 14 + 19
Passo 2: Chave secreta:
= 435
Passo 3:
calcula

Joozinho

= = (932, 1204)

e envia para Serginho


pblico

Recebe
Passo
4:
Serginho
escolhe = 13 e a
mensagem
=
(2058, 3022)
Calcula
= =
(1330,144) = +
= (2940, 2636).
Passo 5: Serginho envia
para Joo a seguinte
mensagem (, )

Recebe (, )

(, ) pblico

Passo 6: Joo calcula


=
= ( + )
= + ( )
= = (2058,3022)

74

Como = ( , ) e = ( , ) so pontos de , Serginho pode enviar


apenas as coordenadas ( , ) desses dois pontos e deixar que Joozinho calcule as
coordenadas e . No entanto, sabemos que Joozinho pode obter com seus clculos
o simtrico do ponto ou , ou seja, ou . claro que se isso acontecer, ele no
obtm a mensagem . De fato, se Joozinho encontrasse em seus clculos e , sua
decodificao seria:
() = ( + ) = +

+ = + 2

Pergunta: Como Joozinho e Serginho podem resolver esse problema?


Sabemos que

= ( , )

= ( , )

Deste modo, temos 2 possibilidades:

Caso 1: <

>

Caso 2: >

<

definindo como sendo um (bit extra) da seguinte forma:

= 0 0 <

= 1 < <

Serginho pode resolver este problema enviando ( ( , ), ( , ) ),


possibilitando a Joozinho determinar corretamente
= ( , )

e = ( , )

e consequentemente descobrir a mensagem enviada por Serginho. Observe que para o


funcionamento do mtodo descrito no ltimo exemplo, h a necessidade de que a
mensagem M seja um ponto da curva elptica . Isto nos leva a um questionamento
natural: Como associar mensagens de texto simples a pontos da curva elptica? Uma
resposta possvel seria a seguinte: Associar aleatoriamente caracteres a pontos da
curva.
Por outro lado, existe uma forma de fazer um anlogo do ElGamal onde esse
problema no aparece. Tal mtodo foi sugerido por Menezes e Vanstone em um
trabalho que reduzia o Problema do Logaritmo Discreto em Curvas Elpticas ()
para o problema em .
No mtodo de Menezes-Vanstone no h a necessidade de que a mensagem
seja um ponto da curva elptica em questo, porm a desvantagem desse sistema
75

que as mensagens se tornam duas vezes maiores. A seguir, vamos apresentar a descrio
desse mtodo.

4.3.3. Variante de Menezes e Vanstone para ElGamal sobre Curvas elpticas

Iniciamos com uma curva elptica sobre , um primo grande, e um ponto


( ), que so previamente fixados por um canal no seguro de comunicao.
Neste caso, a mensagem que Serginho enviar para Joozinho ser dada pelo par
ordenado = ( ; ), onde e e no um ponto de ( ).
Joozinho

Mnica - (parmetros Pblicos)

Serginho

1 primo grande
uma curva elptica sobre
um ponto de
Passo 2: Escolhe
secreto.
Passo 3: Calcula
=
Passo 4: Envia
para Serginho

pblico

Recebe

76

Em seguida, Sergio codificar sua mensagem da seguinte maneira:

Joozinho

Mnica

Serginho

Passo 5: Escolhe e
calcula
=
= = ( , )
Passo 6: Calcula

=
A mensagem codificada
enviada para Joo ser a
trinca a seguir
(, , )
Recebe (, , )

(, , ) pblico

77

Para decodificar a mensagem de Serginho, Joozinho faz o seguinte:

Joozinho

Mnica

Serginho

(parmetros Pblicos)
Passo 7: Para decifrar a
mensagem, Joo calcula
= = =
= = ( , )
Em seguida,
calcula

Joozinho

obtendo a mensagem de
Serginho:

78

Exemplo: Serginho decide usar o mtodo MV-ElGamal para enviar a Joozinho a


mensagem MCT, que para os dois significa Tomar o Caderno da Mnica. Tal
mensagem ser codificada na tabela ASCII (Cdigo Padro Americano para o
Intercmbio de Informao).

79

Por esta tabela, temos = 77, = 67 e = 84 . Como a mensagem deve ser


enviada por um par ordenado, vamos escrever = (, ) = ( , ) = (7767,84).

Joozinho

Mnica - (parmetros
Pblicos)

Serginho

= 2097421
= (1355793,621792)

: = + 67110
+ 262147
Passo
2:
Escolhe
= 78771 secreto.
Passo 3: Calcula
=
= (949594,812871)
Passo 4: Envia para
Serginho.

pblico

Recebe
Passo
5:
Escolhe
= 23358 e calcula
=
= (1390038,1344654)
= = ( , )
= (647014,449701)

80

Joozinho

Mnica

Serginho
Passo 6: Sergio calcula:
= 647014 7767
2034443 ( 2097421)
= 449701 84
21306 2097421
A mensagem codificada e
enviada para Joo ser a trinca
(, , ) onde
= (1390038,1344654),
= 2034443
= 21306

Recebe (, , )
Passo 7: Para decifrar,
Joozinho calcula
= =
= = ( , )
Em seguida, calcula
=
7767 ( 2097421)

(, , ) pblico


= 84 ( 2097421)
Obtendo
a mensagem (7767,84).

Como o grupo formado pelos pontos de uma curva elptica tem uma estrutura
diferente dos grupos normalmente utilizados em outros sistemas de criptografia, os
ataques ao logaritmo discreto no funcionam to bem sobre curvas elpticas. Isto
acarreta uma diminuio do tamanho da chave usada sem perda de segurana,
permitindo a utilizao de um algoritmo mais rpido e mais leve.
Por essas razes, a criptografia sobre curvas elpticas est se tornando a principal
candidata a substituir o sistema RSA, que atualmente o sistema mais utilizado.

81

Na tabela a seguir podemos ver a quantidade de bits utilizada na chave com o


mesmo grau de segurana.
ECC

RSA

Razo ECC:RSA

163

1024

1:6

256

3072

1:12

384

7680

1:20

512

15360

1:30

Tamanho das chaves em bits.

Atualmente a prpria RSA Security est prosseguindo na validao da segurana


da criptografia das curvas elpticas, o que indica que esta deve substituir o sistema RSA.

82

CAPTULO 5
Atividades relativas ao Capitulo 1
1) Nesta atividade, a turma deve ser dividida em trs grupos: Grupo Remetente,
Grupo Destinatrio e Grupo Decifrador.
Grupo Remetente:

Cria uma cifra, baseada no mtodo de Csar, deslocando cada letra um certo
nmero de casas para a direita.

a b c d e f g h i j

k l

m n o p q r

s t

u v w x y z

Codifica uma mensagem e a envia para o Grupo Destinatrio.

Grupo Destinatrio:

Decodifica a mensagem com o conhecimento da cifra criada pelo Grupo


Remetente.

Grupo Decifrador:

Intercepta a mensagem codificada.


Tenta decifrar a mensagem sem o conhecimento da cifra.

Depois os alunos podem mudar de grupos para executarem outras funes.

Considere a cifra abaixo:


a b c d e f g h i j

k l

m n o p q

r s t

u v w x y z Alfabeto
original

C E J I V A N X L M T R S O K F W Q G Y Z H P D U B Alfabeto
cifrado

2) Codifique a frase A Matemtica e a criptografia so fascinantes


3) Decodifique a frase VGYZICQJQLFYKNQCALCVSZLYKILHVQYLIK

83

4) Utilizando o mtodo A cifra Indecifravel - decifre a frase


NUCAPIVAVSNICIEO sabendo que a palavra-chave JACOBI.

5) Nesta atividade, a turma deve ser dividida em grupos. Um grupo ser chamado
de transmissor e os demais de receptores. O grupo transmissor divulgar uma
palavra chave e, utilizando o mtodo da cifra indecifrvel, dever codificar uma
mensagem e envi-la aos grupos receptores. O primeiro grupo receptor que
decodificar a mensagem ganhar um ponto. A atividade continua trocando, a
cada rodada, o grupo transmissor.

Atividades relativas ao Captulo 2


n(n + 1)
.
2
2) Determine o resto de 230 por 17. Sugesto: note que 24 -1 (mod 17).
3) Ache os elementos invertveis de:
a)
b)
1) Prove, usando o princpio de induo, que 1+2+3+...+n =

4)
5)
6)

Mostre que 52280 1 (mod 29). Sugesto: Use o pequeno teorema de Fermat.
Verifique se o subconjunto M ={1, 5} de = {0, 1, 2, 3, 4, 5} um grupo com
relao multiplicao.
Mostre que existem infinitos primos da forma 6 + 5.

84

Atividades relativas ao Capitulo 3


1) Preencha a tabela a seguir para obter o clculo de 3

157 2

78

39

19

mdulo 100.

3 mdulo 100

2) A observao da pgina 40 mostra um mtodo para obter um inverso mdulo ,


baseado no pequeno teorema de Fermat:
( ).
A partir desse mtodo, utilize a calculadora do Windows para calcular o inverso
de 2564 mdulo131. OBS: Nesta calculadora h a funo MOD que fornece o
resto da diviso entre dois nmeros.
3) Utilize a funo MOD da calculadora do Windows para calcular o logaritmo de
395 na base 627 em .

Atividades relativas ao Capitulo 4


1) Considere a curva elptica = + 4 + 4 em e os pontos P=(1,3) e
Q=(0,2) pertencentes essa curva. Determine o ponto M = P + Q, usando a
definio de soma de pontos de uma curva elptica.
2) Considere a curva elptica = + 4 + 4 em e os pontos P=(1,3) e
Q=(0,2) pertencentes essa curva. Determine o ponto M = P + Q, usando a
definio de soma de pontos de uma curva elptica.

85

CONCLUSO

Esse trabalho apresenta resumidamente o desenvolvimento da Criptografia at os


dias atuais, mostrando como a luta entre criadores e decifradores de cdigos contribuiu
para o desenvolvimento da Matemtica e da tecnologia.
A criptografia, alm de ser um assunto interessante e atual, exibe toda a
criatividade e inteligncia do homem para se comunicar de forma sigilosa. A teoria
matemtica apresentada nesse texto tem o propsito de explicar o funcionamento dessa
rea to importante para as comunicaes seguras, como transferncias bancrias,
informaes diplomticas etc.. Todos esses fatores servem como motivao para o
estudo da Matemtica e de reas afins.
No ltimo captulo, foram propostas algumas atividades relacionadas aos
assuntos abordados nesse texto. Algumas dessas atividades exigem um bom
entendimento do contedo matemtico explorado no decorrer do trabalho, sendo mais
adequadas a alunos do ensino mdio; enquanto outras so verdadeiras brincadeiras
que estimulam a criatividade, o raciocnio e o trabalho em grupo, podendo ser realizadas
inclusive por alunos do ensino fundamental.

86

BIBLIOGRAFIA

[1] Ribenboim, P. Nmeros primos-Velhos Mistrios e Novos Recordes, Coleo


Matemtica Universitria 1 ed. Rio de Janeiro: IMPA, 2012;
[2] Coutinho, S.C. Nmeros inteiros e Criptografia RSA, Coleo Matemtica e
Aplicaes, Rio de Janeiro, IMPA,2013;
[3] Jeffrey Hoffstein, Jill Pipher, J.H. Silverman. - An Introduction to Mathematical
Cryptography 1Ed, Springer, 2008
[4] Singh, Simon, O livro dos cdigos traduo de Jorge Calife.- 6 Ed.- Rio de Janeiro:
Record, 2007
[5] Terada, Routo, Revista do professor de Matemtica.- 12 Ed
[6] Pimentel, Elaine, lgebra A- Aula 10- Razes primitivas.
[7] Salomo, Rodrigo, Um passeio pelo mundo secreto das curvas elpticas- Aulas 1, 2
e 3.
[8] Plnio de Oliveira Santos, Jos, Introduo a Teoria dos Nmeros

87