Você está na página 1de 75

CARLOS

UNIVERSIDADE FEDERAL DE SAO

CENTRO DE CIENCIAS
EXATAS E DE TECNOLOGIA

LICENCIATURA EM MATEMATICA

Criptologia: uma abordagem hist


orica e matem
atica

Diego Felipe Silveira Seabra

Sao Carlos SP
Perodo: marco a novembro de 2010

CARLOS
UNIVERSIDADE FEDERAL DE SAO

CENTRO DE CIENCIAS
EXATAS E DE TECNOLOGIA

LICENCIATURA EM MATEMATICA

Trabalho de Conclus
ao de Curso A
e Trabalho de Conclus
ao de Curso B
Criptologia: uma abordagem hist
orica e matem
atica
Diego Felipe Silveira Seabra, R.A. 282421

Dissertacao

apresentada

ao

Departamento de Matematica
da UFSCar como parte dos
requisitos para a obtencao
do ttulo de Licenciado em
Matematica.

Orientador: Prof. Dr. Joao Carlos Vieira Sampaio

Sao Carlos SP
marco a novembro de 2010

` minha famlia e ao meu padrinho


A
Jose Maria.

Resumo
A historia dos codigos e seus decifradores em suas eternas batalhas acompanha a
propria historia humana. Ao longo do tempo, codigos, cifras e mensagens secretas
estiveram presentes nas mais diversas situacoes onde desempenharam papel essencial
decidindo resultados de guerras e o destino de pessoas e civilizacoes inteiras.
Nos mais diversos setores sociais e tipos de atividades humanas, a criptografia interferiu diretamente. Em assuntos polticos e diplomaticos, atividades
civis ou militares, onde se fez necessaria a transmissao de informacoes de maneira
segura e secreta ela esteve presente e a consciencia das conseq
uencias de uma mensagem interceptada por maos erradas fez com que as nacoes criassem departamentos
especficos para a criacao e implementacao de codigos cada vez mais seguros.
Nesse contexto a ciencia da Criptologia foi colocada num patamar de grande
importancia e muita atencao lhe foi dispensada no sentido em que fosse cada vez
mais desenvolvida e implementada.
Se de um lado temos os criadores de codigos, do outro estao os decifradores
em suas arduas e incessantes batalhas por organizar o aparente caos e encontrar o
uma
verdadeiro significado por tras de seq
uencias misteriosas de letras e smbolos. E
batalha intelectual constante e contnua cujos resultados interferem diretamente no
dia-a-dia das pessoas e em todo o contexto social.
Conforme o ttulo deste trabalho, atraves de uma abordagem historica e
matematica da Criptologia farei uma viagem pela historia dos codigos e sua influencia na sociedade humana bem como um estudo mais detalhado da matematica

5
envolvida na criacao e quebra de codigos e cifras. Serao utilizados resultados da
Teoria dos N
umeros e outros que eventualmente sejam necessarios.
Neste trabalho, a enfase e dada `a parte historica e ao conte
udo matematico
que sera necessario ao estudo mais detalhado de topicos da Criptologia, particularmente o sistema RSA, foco do trabalho de graduacao B.
Palavras-chave: criptologia, criptografia, aritm
etica m
odulo m, func
ao
de Euler.

Sum
ario
I

Trabalho de Conclus
ao de Curso A

1 Um pouco de hist
oria

10
13

1.1

A evolucao da escrita secreta . . . . . . . . . . . . . . . . . . . . . . . 13

1.2

Ramos da criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.1

Transposicao . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.2.2

Substituicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.2.3

Cifras de substituicao atraves de aritmetica modular . . . . . 19

1.3

Os criptoanalistas arabes . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.4

Criptoanalise de um texto cifrado . . . . . . . . . . . . . . . . . . . . 27

2 Elementos da teoria dos n


umeros

34

2.1

Inteiros modulo m

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.2

Inteiros modulo m

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3 A func
ao de Euler

44

II

51

Trabalho de Conclus
ao de Curso B

4 A criptografia de chave p
ublica

54
6

7
4.1

O nascimento da criptografia de chave p


ublica . . . . . . . . . . . . . 56

5 Teoria dos n
umeros para RSA

58

5.0.1

Algoritmo Euclidiano para o calculo de mdc . . . . . . . . . . 60

5.0.2

Calculando inteiros r e s tais que mdc(a, b) = ra + sb . . . . . 61

5.1

Uma aplicacao interessante . . . . . . . . . . . . . . . . . . . . . . . . 62

5.2

Implementacao de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.3

Exemplo numerico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6 M
etodos de fatorac
ao

70

6.1

Teste de fatoracao de Fermat . . . . . . . . . . . . . . . . . . . . . . 71

6.2

Metodo Pollard p 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Lista de Figuras
1.1

Primeiro aparelho criptografico militar, o citale espartano. . . . . . . 17

1.2

O relacionamento entre algoritmo e chave. . . . . . . . . . . . . . . . 18

1.3

Tabela de freq
uencias baseada em passagens extradas de jornais e romances cuja amostragem consistia em 100.362 caracteres do alfabeto.
Tabela compilada por H. Beker e F. Piper. . . . . . . . . . . . . . . . 26

1.4

Analise de freq
uencia da mensagem cifrada. . . . . . . . . . . . . . . 28

1.5

Dados referentes ao comportamento das letras em estudo. . . . . . . . 29

1.6

Dados referentes `a letra O. . . . . . . . . . . . . . . . . . . . . . . . . 31

1.7

Nosso alfabeto cifrado parcial. . . . . . . . . . . . . . . . . . . . . . . 32

1.8

Alfabeto cifrado completo. . . . . . . . . . . . . . . . . . . . . . . . . 33

Lista de Tabelas
1.1

Alfabeto cifrado deslocado um determinado n


umero de casas (neste
caso, tres) em relacao ao alfabeto original. . . . . . . . . . . . . . . . 19

1.2

A cifra de Cesar aplicada a uma mensagem curta. . . . . . . . . . . . 19

1.3

Os numerais equivalentes para as letras. . . . . . . . . . . . . . . . . 20

1.4

A correspondencia entre as letras para a Cifra de Cesar . . . . . . . . 20

1.5

A correspondencia entre as letras para cifra com C 7P + 10 (mod 26). 23

5.1

Lista dos n
umeros 1 x 51 coprimos com 51. . . . . . . . . . . . . 63

5.2

Correspondencia alfa numerica . . . . . . . . . . . . . . . . . . . . . . 67

Parte I
Trabalho de Conclus
ao de Curso A

10

Introduc
ao
A criptografia esta presente no cotidiano das pessoas mesmo que muitas vezes elas
nao tenham consciencia/conhecimento disso. Uma simples mensagem trocada via
e-mail, uma compra realizada atraves do cartao de credito ou mesmo o envio e recebimento de mensagens de texto por celular, em todas essas situacoes esta presente a
criptografia. E se tudo isso hoje e possvel e e feito com velocidade impressionante
e porque ao longo da historia houve quem se dedicasse `a Criptologia e em meio `as
batalhas entre criadores e decifradores de codigos tivessemos grandes avancos em
diversas areas e ciencias diretamente ligadas `a tematica. Certamente devemos `a
historia dos codigos por tamanho desenvolvimento cientfico e tecnologico nos dias
atuais.
Varios assuntos entram em pauta quando o assunto e criptografia. Manutencao da lei e seguranca nacional, direitos civis e privacidade individual, atividades
civis e militares. Em todo esse conjunto a criptografia exerce papel central e gera algumas questoes que para serem respondidas exigem que sejam considerados diversos
aspectos. Vejamos. Ha tempos os servicos policiais fazem uso de escuta telefonica
para fins de investigacao e/ou coleta de informacoes que servirao como provas contra criminosos e recentemente com o desenvolvimento de codigos ultra-resistentes o
grampo ve sua funcionalidade ameacada.
No tocante `a privacidade individual ha uma corrente que defende o uso
generalizado da criptografia de tal forma que tenhamos esse direito assegurado e
mantido. Paralelamente temos aqueles que trabalham com negocios e necessitam da
criptografia e de codigos seguros para a manutencao de suas atividades comerciais.
11

12
Ao mesmo tempo encontramos as forcas da lei na defesa de um uso mais restrito da
criptografia.
Nesse contexto, onde interesses individuais e coletivos entram em choque
temos a criptografia sendo utilizada com as mais diversas finalidades, mas desempenhando sempre um papel importante e ocupando posicao central.
A historia da Criptologia e extremamente vasta e rica em episodios interessantes e que por muitas vezes mudaram o rumo de acontecimentos importantes
da historia humana. Sao comuns as situacoes onde o destino de reis, rainhas, civilizacoes e tramas de assassinato dependeram da manutencao ou quebra de mensagens
secretas. No entanto, algumas partes ficarao de fora deste trabalho em virtude da
necessidade de escolha daquilo que esteja mais fortemente ligado ao que estamos
estudando por conta de espaco e foco.

Captulo 1
Um pouco de hist
oria
1.1

A evoluc
ao da escrita secreta

Um dos primeiros relatos acerca de escrita secreta data de Herodoto, que escreveu
As hist
orias e narrou os conflitos entre Grecia e Persia, ocorridos no seculo V a.C.
A escrita secreta desempenhou um papel essencial ao evitar que a Grecia
fosse conquistada por Xerxes, o despota lder dos persas. Xerxes comecara a construir a cidade de Persepolis que seria a nova capital de seu reino. Vindos de todas
as regioes do imperio e de estados vizinhos, tributos comecaram a chegar com a
excecao de Atenas e Esparta que nada enviaram.
Impulsionado por tal atitude, Xerxes resolve se vingar e comeca a montar
secretamente a maior forca de combate vista ate entao. Contando com o elemento
surpresa, em 480 a.C ele estava pronto para lancar seu ataque. O que o lder Persa
desconhecia, no entanto, era que seus preparativos tinham sido testemunhados por
Demarato, um exilado grego que apesar de ter sido expulso de sua terra natal ainda
nutria algum sentimento de lealdade para com a Grecia.
Demarato entao decide enviar uma mensagem secreta de advertencia aos
espartanos sobre as intencoes de Xerxes. No entanto, havia um problema a ser
solucionado. Como enviar a tal mensagem aos gregos sem que fosse interceptada
13


CAPITULO 1. UM POUCO DE HISTORIA

14

pelos guardas?
Sobre tal episodio, escreveu Herodoto: O perigo de ser descoberto era
grande; havia apenas um modo pelo qual a mensagem poderia passar: isso foi feito
raspando a cera de um par de tabuletas de madeira, e escrevendo embaixo o que
Xerxes pretendia fazer, depois a mensagem foi coberta novamente com cera. Deste
modo, as tabuletas pareceriam estar em branco e n
ao causariam problemas com os
guardas ao longo da estrada. Quando a mensagem chegou ao seu destino, ninguem
foi capaz de perceber o segredo, ate que, pelo que entendi, a filha de Cle
omenes,
Gorgo, que era casada com Leonidas, adivinhou e contou as outros que se eles raspassem a cera encontrariam alguma coisa escrita na madeira. Isto foi feito, revelando a mensagem, ent
ao transmitida para os outros gregos.
Xerxes perdia dessa forma o elemento surpresa e os gregos puderam se
preparar para o latente ataque persa. Em 23 de Setembro de 480 a.C, a frota persa
aproximando-se da baa de Salamina encontrou uma marinha grega preparada e
postada estrategicamente para a batalha. Os gregos, que apesar de estarem em
menor n
umero, atraindo os navios persas para dentro da baa puderam lutar da
forma como queriam. Instaurou-se o panico entre as forcas persas, com navios
se chocando e completa desorganizacao estrategica. O ataque coordenado grego
humilhou a numericamente maior forca persa no decorrer de um dia.
Vimos nesse episodio que a comunicacao secreta foi alcancada por Demarato
atraves da ocultacao da mensagem. Quando isso ocorre, chamamos esteganografia,
nome cuja origem esta nas palavras gregas steganos, que significa coberto, e graphein,
que significa escrever.
A ttulo de exemplo, temos formas alternativas de ocultacao de mensagens
que foram usadas nos mais diversos momentos da historia. Os antigos chineses escreviam suas mensagens em seda fina que entao era amassada para formar uma
pequena bola e coberta com cera. Tal bolinha era engolida pelo mensageiro responsavel pela entrega da mensagem.
Substancias presentes em plantas tambem foram usadas como tinta invisvel.


CAPITULO 1. UM POUCO DE HISTORIA

15

Apesar do aparente desaparecimento da escrita, por conta da transparencia, o simples aquecimento do local queima a tinta deixando a escrita com um tom de cor
proximo ao marrom que possibilita a sua leitura.
Analisando o nvel de seguranca que a esteganografia confere vemos que ela
sofre de uma fraqueza fundamental. Como a mensagem e apenas escondida e facil
concluir que se o mensageiro for revistado e a mensagem descoberta, seu conte
udo
esta prontamente revelado.
A questao principal e que quando se faz uso de esteganografia o simples fato
de a mensagem ser interceptada e suficiente para que o conte
udo da mensagem possa
ser obtido por maos erradas. Claro que existe a necessidade de que a mensagem seja
descoberta de fato, mas uma simples revista feita ja com a intencao de encontrar
objetos suspeitos de carregar mensagens, por exemplo, ja e suficiente para que em
muitos casos conte
udos secretos sejam revelados.
Como a historia da Criptologia e uma luta evolutiva, ao lado da esteganografia tivemos o desenvolvimento da criptografia, derivada da palavra grega
Kriptos, que significa oculto. Diferentemente do que ocorre na esteganografia,
a criptografia tem por objetivo esconder o significado da mensagem e nao a mensagem em si. Tal processo de ocultar o significado de mensagens e conhecido como
encriptacao e segue um protocolo especfico que e previamente combinado entre
emissor e receptor.
Veremos mais adiante diversas formas de misturar a mensagem que foram
utilizadas ao longo dos tempos e alguns episodios marcantes onde tivemos sua utilizacao. Ressalto neste ponto a vantagem da criptografia sobre a esteganografia
no sentido em que uma mensagem criptografada mesmo que seja interceptada por
maos erradas nao tera prontamente seu conte
udo revelado e sera necessario todo um
processo para eventualmente tornar a mensagem compreensvel.
A fim de atingir um nvel maior de seguranca e possvel combinar esteganografia e criptografia. Temos um exemplo desta aplicacao nos anos em que
o mundo viveu os horrores da Segunda Guerra Mundial. Uma pratica comum entre


CAPITULO 1. UM POUCO DE HISTORIA

16

os agentes alemaes era a utilizacao do microponto, que consistia em reduzir fotograficamente uma pagina de texto ate torna-la um ponto cujo diametro nao ultrapassasse
um milmetro. Em seguida esse microponto era oculto sobre o ponto final de uma
carta que nao levantasse maiores suspeitas.
O primeiro microponto so foi descoberto pelo FBI em 1941 e da pra frente
os americanos puderam ler as informacoes contidas na maioria dos micropontos interceptados, com excecao dos casos onde os alemaes combinaram esteganografia e
criptografia, ou seja, alem de esconder a mensagem tomaram o cuidado de criptografa-la. Dessa forma, mesmo que os americanos interceptassem os micropontos
havia mais uma barreira a ser vencida ate que se pudesse chegar `a informacao de
fato.

1.2

Ramos da criptografia

A criptografia pode ser dividida em dois ramos, a saber: transposicao e substituicao.

1.2.1

Transposic
ao

Neste caso temos o rearranjo das letras da mensagem de tal forma que tenhamos na
realidade anagramas como resultado. Analisando o nvel de seguranca percebemos
que para mensagens muito curtas este metodo e muito inseguro ja que e limitado o
n
umero de possibilidades de rearranjo para poucas letras. Vejamos o caso de uma
palavra com tres letras. Ela pode ser rearranjada de apenas seis maneiras diferentes,
o que confere um nvel muito baixo de seguranca.
` medida que o n
A
umero de letras aumenta, no entanto, o n
umero de rearranjos possveis cresce assustadoramente, fazendo com que a tarefa de chegar `a
mensagem original torne-se impossvel quando nao se conhece o processo pelo qual
as letras foram misturadas.
Considerando os n
umeros astronomicos que envolvem esse tipo de trans-


CAPITULO 1. UM POUCO DE HISTORIA

17

posicao, fica claro que sua viabilidade depende de um conhecimento previo tanto do
emissor quanto do receptor do sistema utilizado para misturar as letras. Evidentemente tal sistema nao pode chegar ao conhecimento do inimigo.
Uma forma alternativa de utilizacao da transposicao encontramos no
primeiro aparelho criptografico militar, o citale espartano, que remonta ao seculo
cinco antes de Cristo.
Consiste em um bastao de madeira onde e enrolado um pergaminho ou
mesmo uma tira de couro. O emissor entao escreve a mensagem ao longo das linhas
que se formam no citale, conforme pode ser visto na figura 1.1, pagina 17, e ao ser
desenrolada a tira, esta parece conter uma serie de letras aleatorias e sem significado
aparente. Continuando o processo, a tira e entregue ao mensageiro responsavel por
fazer chegar ao destinatario desejado a mensagem secreta.
Neste ponto, fazemos a observacao de que e possvel fazer uso combinado da
criptografia com a esteganografia que vimos ha pouco, de tal forma que o mensageiro
pode esconder a tira de diversas formas, mesmo porque seu formato permite isso. O
destinatario desejado ao receber a mensagem criptografada simplesmente enrola a
tira em um citale de mesmo diametro daquele utilizado pelo emissor. Naturalmente
e essencial que os diametros sejam os mesmos.

Figura 1.1: Primeiro aparelho criptografico militar, o citale espartano.


CAPITULO 1. UM POUCO DE HISTORIA

18

Ao tratarmos de uma cifra devemos levar em consideracao duas partes importantes que sao o algoritmo e a chave. As relacoes entre ambas estao esquematizadas na figura 1.2, pagina 18.
De maneira geral, se a mensagem e interceptada pelo inimigo ele apesar
de poder suspeitar qual foi o algoritmo utilizado para cifrar a mensagem se nao
dispuser da chave correta nao tera acesso `a mensagem. A importancia da chave e
descrita pelo ling
uista holandes Auguste Kerckhoff Von Nieuwenhof, em seu livro La
o chamado Princpio de Kerckhoff: A seguranca de um
Cryptographie Militaire. E
criptossistema n
ao deve depender da manutencao de um criptoalgoritmo em segredo.
A seguranca depende apenas de se manter em segredo a chave.

Figura 1.2: O relacionamento entre algoritmo e chave.


Para que um sistema de codigo seja realmente seguro, alem da manutencao
em segredo da chave utilizada para encifrar a mensagem, e importante que haja
um n
umero amplo de chaves em potencial para que o trabalho de um interceptador
indesejado nao seja facilitado e mais, torne-se praticamente inviavel.

1.2.2

Substitui
c
ao

Uma alternativa para a transposicao e a substituicao. J


ulio Cesar fazia uso com
freq
uencia de escrita secreta e uma das formas de cifra de substituicao utilizadas
por ele consistia em substituir cada letra na mensagem por outra que estivesse tres


CAPITULO 1. UM POUCO DE HISTORIA
Alfabeto original

Alfabeto cifrado

F G

19
f

H I

J K

N O

Alfabeto original (continuacao)

Alfabeto cifrado (continuacao)

Tabela 1.1: Alfabeto cifrado deslocado um determinado n


umero de casas (neste caso,
tres) em relacao ao alfabeto original.

Texto original

veni

vidi

vici

Texto cifrado

YHQL

YLGL

YLFL

Tabela 1.2: A cifra de Cesar aplicada a uma mensagem curta.

casas `a frente no alfabeto. Observemos na tabela1 1.1, pagina 19 como fica o alfabeto
cifrado atraves da cifra de substituicao de Cesar e um exemplo de aplicacao para
uma frase curta na tabela 1.2, pagina 19.
A seguir, um estudo a respeito da cifra de substituicao de Cesar atraves de
aritmetica modular.

1.2.3

Cifras de substituic
ao atrav
es de aritm
etica modular

Para tais sistemas de sigilo, inicialmente traduzimos letras em n


umeros. Tomamos
o alfabeto padrao de letras do Ingles e o traduzimos em inteiros de 0 a 25, como e
mostrado na tabela 1.3 abaixo.
Naturalmente devemos utilizar a serie de inteiros adequada ao alfabeto que
estivermos usando. Discutiremos sistemas de sigilo que sao baseados na transformacao de cada letra da mensagem original para uma letra diferente de tal forma
1

Foi convencionado em Criptologia que o alfabeto original deve ser escrito em letras min
usculas

e o criptografado em mai
usculas. Da mesma forma, o texto original e grafado em letras min
usculas
e a mensagem cifrada em mai
usculas.


CAPITULO 1. UM POUCO DE HISTORIA

20

Letra

Numeral equivalente

10

11

12

13

14

Letra (continuacao)

Numeral equivalente (cont.)

15

16

17

18

19

20

21

22

23

24

25

Tabela 1.3: Os numerais equivalentes para as letras.

que produzamos o texto cifrado. Tais cifras onde cada letra e substituda individualmente por outra sao chamadas cifras monograficas. Temos no total 26! caminhos
possveis para produzir uma transformacao monografica.
Para descrever a cifra de substituicao de Cesar atraves de aritmetica modular, seja P o numeral equivalente `a letra no texto original e C o numeral equivalente,
de acordo com a correspondencia, ao texto cifrado. Entao:
C P + 3 (mod 26), 0 C 25
A correspondencia entre o texto original e o texto cifrado e dada na Tabela
1.4 abaixo.
Texto original

Texto cifrado

F G

10

11

12

13

14

10

11

12

13

14

15

16

17

G H

Texto original(continuacao)

Texto cifrado(continuacao)

15

16

17

18

19

20

21

22

23

24

25

18

19

20

21

22

23

24

25

Tabela 1.4: A correspondencia entre as letras para a Cifra de Cesar

Para cifrar uma mensagem usando esta transformacao, nos primeiro a trocamos por sua equivalente numerica e agrupamos as letras em blocos de cinco. Tal


CAPITULO 1. UM POUCO DE HISTORIA

21

agrupamento tem por objetivo prevenir o sucesso de uma criptoanalise2 , baseada no


reconhecimento de particularidades das palavras. Ilustramos o procedimento inicial
encifrando a mensagem a seguir:
DE CURSO
TRABALHO DE CONCLUSAO
Fazendo os grupos de cinco letras, teremos:
TRABA LHODE CONCL USAOD ECURS O
Agora convertemos as letras em seus equivalentes numericos, resultando:
19 17 0 1 0

11 7 14 3 4

2 14 13 2 11

20 18 0 14 3

4 2 20 17 18

14

Lancando mao da transformacao de Cesar C P + 3 (mod 26), isto se


torna:
22 20 3 4 3

14 10 17 6 7

5 17 16 5 14

23 21 3 17 6

7 5 23 20 21

17

HFXUV

Traduzindo de volta para letras, nos temos:


WUDED

OKRGH

FRQFO

XVDRG

E esta e a mensagem que nos enviamos.


O receptor decifra isto da seguinte maneira. Inicialmente, as letras sao
convertidas para n
umeros. Entao, a relacao P C 3 (mod 26), 0 P 25 e
usada para trocar o texto cifrado de volta para a versao numerica do texto original
e finalmente a mensagem e convertida para letras.
Utilizamos a mensagem abaixo cifrada pela Cifra de Cesar para ilustrar o
procedimento de decifracao descrito acima.
2

criptoan
alise e a ciencia da deducao do texto original a partir do texto cifrado, sem o conhec-

imento da chave. O assunto e tratado com maior riqueza de detalhes em 1.3, pagina 24.


CAPITULO 1. UM POUCO DE HISTORIA
GHSDU

WDPHQ

WRGHP

22
DWHPD

WLFD

Trocando estas letras por suas equivalentes numericas, temos:


6 7 18 3 20

22 3 15 7 16

22 17 6 7 15

3 22 7 15 3

22 11 5 3

Continuando, fazemos a transformacao P C 3 (mod 26) para voltarmos


ao texto original, e obtemos:
3 4 15 0 17

19 0 12 4 13

19 14 3 4 12

0 19 4 12 0

19 8 2 0

Traduzimos entao estes n


umeros de volta `as letras e recuperamos assim a
mensagem original
DEPAR

TAMEN

TODEM

ATEMA

TICA

Combinando apropriadamente as letras em palavras, encontramos o que a


mensagem diz:

DEPARTAMENTO DE MATEMATICA
A Cifra de Cesar e uma da famlia de cifras similares conhecidas por transformacoes por substituicao.
C P + K (mod 26), 0 C 25
Onde K e a chave que representa o tamanho do salto entre as letras
no alfabeto. Existem 26 transformacoes diferentes deste tipo, incluindo o caso em
que temos K 0 (mod 26), onde as letras nao sao alteradas, ja que neste caso
C P (mod 26). Mais geralmente, nos iremos considerar transformacoes do tipo
C aP + b (mod 26), 0 C 25

(1.1)


CAPITULO 1. UM POUCO DE HISTORIA

23

onde a e b sao inteiros com (a, 26) = 1. Essas sao chamadas transformacoes afins.
Dessa forma, transformacoes por substituicao sao transformacoes afins com a = 1.
Nos precisamos que (a, 26) = 1, assim P percorre um sistema completo de resto
modulo 26, incluindo C. Existem (26) = 12 opcoes para a e 26 opcoes para b dando
um total de 12 26 = 312 transformacoes desse tipo (uma delas e C P (mod 26)
obtido quando a = 1 e b = 0). Se a relacao entre texto original e texto cifrado e
descrita por (1.1), pagina 22 entao a relacao inversa e dada por
P a
(C b) (mod 26), 0 P 25
quando a
e um inverso de a (mod 26).
Como um exemplo de tal cifra, vamos tomar a = 7 e b = 10, assim C
7P + 10 (mod 26). Portanto, P 15(C 10) 15C + 6 (mod 26), desde que 15 e o
inverso de 7 modulo 26. A correspondencia entre letras e dada na tabela 1.5 abaixo:

Texto original

A B

C D

E F G

10

11

12

13

14

Texto original(continuacao)

Texto cifrado

15

16

17

18

19

20

21

22

23

24

25

10

17

24

12

19

14

21

16

23

Texto cifrado(continuacao)

11

18

25

13

20

15

22

Tabela 1.5: A correspondencia entre as letras para cifra com C 7P + 10 (mod 26).

Para ilustrar como nos obtivemos esta correspondencia, observe que a letra
original L com seu numeral equivalente 11 corresponde `a letra J do texto cifrado,
desde que 7 11 + 10 = 87 9 (mod 26) e 9 e o numeral equivalente de J.


CAPITULO 1. UM POUCO DE HISTORIA

24

Para ilustrar como encifrar, observe que


PLEASE SEND MONEY
e transformado em
LJMKG

MGMFQ

EXMW

Observe tambem que o texto cifrado


FEXEN

ZMBMK

JNHMG

MYZMN

LTHES

ECRET

corresponde ao texto original


DONOT

REVEA

ou combinando apropriadamente as letras


DO NOT REVEAL THE SECRET.

1.3

Os criptoanalistas
arabes

Por volta do ano 661, o Isla havia se espalhado de tal forma que metade do mundo
conhecido encontrava-se sob o domnio muculmano. A civilizacao islamica alcancou
um nvel muito alto de desenvolvimento, nas mais diversas esferas; social, cultural
e das ciencias em geral. Tal desenvolvimento deu-se atraves de uma sociedade rica
e pacfica centrada na organizacao e menos interessada em conquistas.
Nesse contexto, temos dentro da historia da criptografia uma mencao honrosa aos arabes por conta da descoberta da criptoanalise, a ciencia que permite
decifrar uma mensagem desconhecendo sua chave. Veremos que os criptoanalistas


CAPITULO 1. UM POUCO DE HISTORIA

25

arabes obtiveram sucesso ao encontrar um metodo para quebrar a cifra de substituicao monoalfabetica que por seculos permanecera invulneravel.
Para que a criptoanalise pudesse se desenvolver foi necessario um nvel consideravel de desenvolvimento em areas tais como matematica, ling
ustica e estatstica
e a civilizacao muculmana serviu perfeitamente para este fim.
Em grandes escolas de teologia que foram fundadas, teologos examinavam
minuciosamente as revelacoes de Maome contidas no Corao. Havia o interesse em
estabelecer a cronologia das revelacoes e a forma encontrada para atingir tal finalidade foi estabelecer a freq
uencia com que cada palavra aparecia nas revelacoes. A
ideia por tras desse procedimento era a de que algumas palavras haviam surgido
mais recentemente e assim uma maior freq
uencia de tais palavras em determinada
revelacao implicaria que esse texto pertenceria a uma parte posterior da cronologia.
Os estudiosos analisavam tambem o Hadith, ou seja, os pronunciamentos
diarios do profeta e buscavam demonstrar que cada declaracao era de fato de Maome.
Nesse sentido, era feita uma analise etimologica das palavras e uma comparacao com
os padroes lingusticos do profeta.
Como consequencia ate natural deste tipo de trabalho, descobriram particularidades muito interessantes das letras. A ttulo de exemplo, perceberam que as
letras a e l sao mais comuns no idioma arabe, boa parte devido ao artigo definido
al-, enquanto que outras letras aparecem com frequencias varias vezes menor. Essa
observacao, `a primeira vista ingenua e sem importancia, levaria ao primeiro grande
avanco dentro da criptoanalise.
Nao se sabe ao certo quem foi o primeiro a ter a percepcao de que a
freq
uencia das letras poderia ser utilizada com a finalidade de quebrar codigos, mas
a mais antiga descricao conhecida desta tecnica remonta a um cientista do seculo IX,
Abu Yusef Yaqub ibn Is-haq ibn as-Sabbah ibn omran ibn Ismail al-Kindi. Al-Kindi
foi autor de centenas de livros das mais diversas areas do conhecimento. Seu maior
tratado, no entanto, so foi redescoberto no ano de 1987, no Arquivo Otomano Sulaimaniyyah em Istambul e leva o ttulo Um manuscrito sobre a decifracao de men-


CAPITULO 1. UM POUCO DE HISTORIA

26

sagens criptograficas. Apesar de tratar detalhadamente outros aspectos, o sistema


revolucionario de criptoanalise aparece sucintamente descrito em dois paragrafos, a
seguir:
Um meio de se decifrar uma mensagem codificada, quando conhecemos seu
idioma, e encontrar um texto diferente, na mesma lngua, suficientemente longo
para preencher uma pagina.

Entao contamos a freq


uencia com que cada letra

aparece. A letra que aparecer com maior freq


uencia chamamos de primeira, enquanto a segunda mais freq
uente recebe o nome de segunda, a terceira em ordem
de freq
uencia vira terceira e assim por diante, ate contarmos todas as letras diferentes no texto. Em seguida examinamos o criptograma que desejamos decifrar e
tambem classificamos os seus smbolos. Descobrimos qual o smbolo que aparece
com maior freq
uencia e o transformamos na primeira letra do texto que usamos
como amostra. O segundo smbolo mais comum e transformado na segunda letra,
enquanto o terceiro smbolo mais freq
uente vira a terceira letra e assim por diante,
ate convertermos todos os smbolos do criptograma que desejamos decifrar.
Temos na tabela 1.3 a freq
uencia das letras para o alfabeto ingles.

Figura 1.3: Tabela de freq


uencias baseada em passagens extradas de jornais e romances cuja amostragem consistia em 100.362 caracteres do alfabeto. Tabela compilada por H. Beker e F. Piper.


CAPITULO 1. UM POUCO DE HISTORIA

27

O procedimento descrito por al-Kindi, conhecido em criptografia como


analise de freq
uencia, resolveu um problema que ha muito intrigava os envolvidos
na tentativa de quebra de codigos, particularmente a cifra de substituicao monoalfabetica, que ate entao parecia invulneravel ao ataque de receptores indesejados.
A tecnica revolucionaria mostrava ser desnecessaria a verificacao de cada
uma das bilhoes de chaves em potencial. Estava provada a possibilidade de revelar
o conte
udo de uma mensagem atraves da simples analise de freq
uencia de seus
caracteres.
Vale, no entanto, fazer uma observacao. Nao e possvel fazer uso incondicional da tecnica descrita por al-Kindi, ja que a lista padrao das freq
uencias descrita na Tabela 1.3 oferece apenas uma media e nao deve corresponder fielmente `as
freq
uencias de todo e qualquer texto.
De maneira geral, textos muito curtos tem maior chance de apresentar
desvios significativos enquanto que textos mais longos apresentam maior probabilidade de fidelidade `as freq
uencias tidas como padrao.

1.4

Criptoan
alise de um texto cifrado

Vejamos agora um exemplo de aplicacao da analise de freq


uencia para decifrar um
texto. Suponhamos que interceptamos a seguinte mensagem e que sabemos que
ela foi misturada com uma cifra de substituicao monoalfabetica desconhecendo, no
entanto, a chave utilizada. Sabemos tambem que o texto original esta escrito em
ingles.
PCQ VMJYPD LBYK LYSO KBXBJXWXV BXV ZCJPO EYPD KBXBJYUXJ
LBJOO KCPK. CP LBO LBCMKXPV XPV IYJKL PYDBL, QBOP KBO BXV
OPVOV LBO LXRO CI SXXJMI, KBO JCKO XPV EYKKOV LBO DJCMPV
ZOICJO BYS, KXUYPD: DJOXL EYPD, ICJ X LBCMKXPV XPV CPO
PYDBLK Y BXNO ZOOP JOACMPLYPD LC UCM LBO IXZROK CI FXKL


CAPITULO 1. UM POUCO DE HISTORIA

28

XDOK XPV LBO RODOPVK CI XPAYOPL EYPDK. SXU Y SXEO KC ZCRV


XK LC AJXNO X IXNCMJ CI UCMJ SXGOKLU?
OFYRCDMO, LXROK IJCS LBO LBCMKXPV XPV CPO PYDBLK
Naturalmente uma pesquisa de todas as chaves possveis nao e nada pratico.
Lancamos mao entao da analise de freq
uencia. O primeiro passo e ate mesmo a
reacao natural de qualquer criptoanalista frente a uma mensagem cifrada desse tipo
e fazer uma analise da freq
uencia com que cada letra ocorre na mensagem cifrada.
Temos entao a tabela 1.4, na pagina 28.

Figura 1.4: Analise de freq


uencia da mensagem cifrada.
Evidentemente a freq
uencia das letras varia bastante e neste caso temos
um texto relativamente curto, o que faz com que uma aplicacao simples e direta da
tecnica de analise de freq
uencias nao produza os resultados esperados.
Vejamos, a aplicacao incondicional resultaria que a primeira palavra, ou
seja, PCQ fosse decifrada como aov, o que nao faz nenhum sentido. Partindo por
outro caminho, percebemos que tres letras: O, X e P aparecem mais de trinta vezes
no texto cifrado. Vamos trabalhar com elas!


CAPITULO 1. UM POUCO DE HISTORIA

29

razoavel supor que estas tres letras representam as tres letras mais comuns
E
do alfabeto ingles, mas existe a possibilidade de que nao estejam mantendo a ordem
correta. Sendo assim, podemos ter:
O = e, t ou a,

X= e, t ou a,

P= e, t ou a.

Prosseguindo, vamos incrementar nossa analise atentando `a freq


uencia com
que nossas tres letras aparecem ao lado das outras letras.
Vejamos o caso da letra O. Ela aparece antes ou depois de varias letras
ou apresenta tendencia a ficar ao lado de algumas letras em especial? Esse tipo de
analise nos possibilitara saber se temos uma vogal ou consoante. Se O for uma vogal,
ela tera um comportamento mais amigavel com as outras letras, aparecendo antes
e depois da maioria delas. No caso de ser uma consoante existira uma tendencia a
evitar a maioria das letras.
Temos na tabela abaixo as informacoes quanto ao comportamento das letras
que estamos estudando quanto a` freq
uencia com que aparecem antes ou depois das
demais.

Figura 1.5: Dados referentes ao comportamento das letras em estudo.


Percebemos que as letras O e X sao bem sociaveis, tendo evitado apenas
algumas letras. A letra P, no entanto, e bem menos amistosa ao evitar 15 letras!
Isso nos sugere que O e X representam vogais, enquanto que P e uma consoante.
A partir daqui resta-nos saber que vogais sao representadas por O e X.
Uma boa suposicao, naturalmente, e que sao e e a, as duas vogais mais populares
do idioma ingles. Mas ainda ha um problema a ser solucionado: O = e e X = a ou


CAPITULO 1. UM POUCO DE HISTORIA

30

O = a e X = e?
Neste ponto, uma observacao pertinente e que muito nos ajudara e a
seguinte. Na analise do texto cifrado, podemos perceber que a combinacao OO
aparece por duas vezes, enquanto que XX nao aparece nenhuma vez. Sabemos
tambem que as letras ee aparecem juntas muito mais frequentemente do que aa em
textos em ingles, e portanto, e muito provavel que tenhamos O = e e X = a.
Ate aqui conseguimos identificar com confianca duas letras do texto cifrado.
Um fato observado que apoia a conclusao de que X = a e o fato de que a e uma das
duas u
nicas palavras do ingles formadas por uma u
nica letra. Neste ponto, notamos
tambem que so uma outra letra aparece sozinha no texto cifrado e esta e o Y. Isso
supoe que ela representa a outra palavra inglesa de uma letra so, ou seja, o i.
Vale destacar que esse procedimento de focar a atencao em palavras de uma
so letra e padrao dentro da criptoanalise, mas neste caso particular, funciona porque
nosso texto cifrado manteve os espacos entre as palavras, o que frequentemente nao
ocorre, ja que os criptografos removem todos os espacos justamente para dificultar
a vida dos interceptadores inimigos.
Continuando, lancaremos mao de um truque que funciona mesmo nos casos
em que o texto cifrado esta unido numa linha contnua de caracteres.
O que se segue e um procedimento que nos permite identificar a letra h depois de termos identificado a letra e. Fundamentamos-nos na seguinte constatacao.
No idioma ingles a letra h aparece com freq
uencia antecedendo a letra e (como em
the, then, they, etc.), mas muito raramente ocorre depois do e.
A tabela abaixo, que nos fornece dados referentes `a freq
uencia com que
o O, que pensamos representar o e, aparece antes e depois de todas as letras do
texto cifrado nos sugere que o B representa o h, ja que ele aparece antes do O em
nove ocasioes, mas nunca depois dele. Observe que nenhuma outra letra na tabela
apresenta esse comportamento assimetrico com o O.


CAPITULO 1. UM POUCO DE HISTORIA

31

Figura 1.6: Dados referentes `a letra O.


Vejamos o que temos, por ora. Identificamos com confianca quatro letras,
a saber: O = e, X = a, Y = i e B = h. Passemos entao `a substituicao de algumas
das letras do texto cifrado por suas equivalentes no texto original mantendo as letras
do texto cifrado em mai
usculas e as letras do texto decodificado em min
usculas.
PCQ VMJiPD LhiK LiSe KhahJaWaV haV ZCJPe EiPD KhahJiUaJ LhJee
KCPK. CP Lhe LhCMKaPV aPV IiJKL PiDhL, QheP Khe haV ePVeV Lhe LaRe
CI SaaJMI, Khe JCKe aPV EiKKev Lhe DJCMPV ZelCJe hiS, KaUiPD: DJeaL
EiPD, ICJ a LhCMKaPV aPV CPe PiDhLK i haNe ZeeP JeACMPLiPD LC UCM
Lhe IaZReK CI FaKL aDeK aPV Lhe ReDePVK CI aPAiePL EiPDK. SaU i SaEe
KC ZCRV aK LC AJaNe a IaNCMJ CI UCMJ SaGeKLU?
eFiRCDMe, LaReK IJCS Lhe LhCMKaPV aPV CPe PiDhLK
Com esse passo simples, podemos avancar em nosso trabalho observando
particularidades que nos possibilitam adivinhar algumas palavras. Por exemplo, as
palavras de tres letras mais comuns no ingles sao the e and, e elas sao facilmente
localizadas; Lhe, que aparece seis vezes e aPV, que aparece outras cinco. Portanto,
L provavelmente representa t, enquanto que P provavelmente representa n e V
representa d. Facamos novamente a substituicao das letras conhecidas.
nCQ dMJinD thiK tiSe KhahJaWad had ZCJne EinD KhahJiUaJ thJee KCnK.
Cn the thCMKand and IiJKt niDht, Qhen Khe had ended the taRe CI SaaJMI,
Khe JCKe and EiKKed the DJCMnd ZeICJe hiS, KaUinD: DJeat EinD, ICJ a


CAPITULO 1. UM POUCO DE HISTORIA

32

thCMKand and Cne niDhtK i haNe Zeen JeACMntinD tC UCM the IaZReK CI
FaKt aDeK and the ReDendK CI anAient EinDK. SaU i SaEe KC ZCRd aK tC
AJaNe a IaNCMJ CI UCMJ SaGeKtU?
eFiRCDMe, taReK IJCS the thCMKand and Cne niDhtK
Quando chegamos neste estagio, onde algumas letras ja foram determinadas,
o processo de criptoanalise avanca muito rapidamente.
Atentemos `a palavra que inicia a segunda frase, que e Cn. Sabemos que
toda palavra tem uma vogal, de tal forma que C deve ser uma vogal. Ate agora
so nao identificamos duas vogais, u e o; mas o u nao se encaixa, portanto C deve
estar representando o o. Tambem temos a palavra Khe, o que implica que o K
deve representar t ou s. Agora, sabemos que L = t e, portanto, K = s.
Apos a identificacao dessas duas letras e sua insercao no texto cifrado, vimos
o surgimento da frase thoMsand and one niDhts. Um palpite bastante razoavel
e de que se trata do ttulo thousand and one nights(Mil e uma noites), e parece
provavel que a u
ltima linha esteja nos dizendo que se trata de uma passagem de
Tales from the Thousand and One Nights. Isto nos leva ao seguinte: M = u, I = f,
J = r, D = g, R = I e S = m.
Neste ponto, e conveniente ao inves de continuarmos palpitando a respeito
das outras letras, observarmos o que sabemos a respeito de ambos os alfabetos;
original e cifrado. Esses dois alfabetos formam a chave e ao identificarmos a identidade de algumas letras no texto cifrado nos obtivemos detalhes do alfabeto cifrado.
Vejamos, a seguir, o que temos ate o momento.

Figura 1.7: Nosso alfabeto cifrado parcial.


CAPITULO 1. UM POUCO DE HISTORIA

33

Examinando o alfabeto cifrado parcial, ja e possvel completar a criptoanalise, baseando-nos na observacao da sequencia VOIDBY que sugere a utilizacao de uma frase-chave por parte do criptografo como base para o seu codigo.
Um simples trabalho de suposicao e suficiente para sugerir que a frase-chave
pode ser A VOID BY GEORGES PEREC, que e reduzida a AVOIDBYGERSPC apos a remocao dos espacos e repeticoes. Depois as letras continuam em ordem
alfabetica, omitindo-se qualquer uma que tenha aparecido na frase-chave.
Observamos ainda, neste caso particular, o cuidado por parte do criptografo
de nao comecar a frase-chave no incio do alfabeto cifrado, e sim tres letras depois do
comeco. Isto e possvel porque a frase-chave comeca com a letra A e o criptografo
quis evitar codificar a como A. Finalmente, tendo em maos o alfabeto cifrado completo, decodificamos todo o texto cifrado e chegamos ao conte
udo da mensagem.

Figura 1.8: Alfabeto cifrado completo.

Now during this time Shahrazad had borne King Shahriyar three sons. On the
thousand and first night, when she had ended the tale of Maaruf, she rose and
kissed the ground before him, saying:Great King, for a thousand and one nights I
have been recounting to you the fables of past ages and the legends of ancient
Kings. May I make so bold as to crave a favour of your majesty?
Epilogue, Tales from the Thousand and One Nights.

Captulo 2
Elementos da teoria dos n
umeros
Neste e no proximo captulo estaremos estudando elementos de teoria dos n
umeros
que sao pre-requisitos ao desenvolvimento futuro deste trabalho de conclusao de
curso.

2.1

Inteiros m
odulo m

Para entendermos as operacoes modulo m em Z, temos que comecar com a definicao


de divisibilidade.
Sejam a, b Z e b 6= 0. Dizemos que b divide a quando existe um inteiro
c tal que
a = bc.
E nesse caso escreveremos b | a. Se b nao divide a escreveremos que b - a.
Dizemos que a e divisvel por b se b dividir a. Por exemplo, (2) | 8, pois
8 = (2)(4).
Observe que zero e sempre divisvel por todos os inteiros nao nulos b, pois
sempre temos 0 = b 0.
Os divisores positivos que chamaremos de divisores de um inteiro na-

34


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

35

tural a sao todos os inteiros positivos que dividem a. Se b e um divisor de a, entao


existe um inteiro positivo c tal que a = bc. E nesse caso c tambem e um divisor de
a.
Por exemplo, os divisores de 24 sao
1, 2, 3, 4, 6, 8, 12, 24.
Os divisores de zero sao os n
umeros naturais. O n
umero 1 tem um u
nico
divisor que e o proprio n
umero 1.
Teorema 2.1 Sejam a,a0 ,b n
umeros inteiros.
1. Se b | a e b | a0 , ent
ao
b | (a + a0 ), b | (a a0 ), b | (a0 a), b | (aa0 ).
2. Se k | b e b | a, ent
ao k | a.
3. Se b | a, ent
ao b | at para qualquer inteiro t.
Demonstra
c
ao: Pela suposicao existem inteiros c e c0 tal que a = bc e
a0 = bc0 , respectivamente. Entao, a + a0 = b(c + c0 ). Logo, b | (a + a0 ). Tambem

temos aa0 = bbcc0 = b2 cc0 . Portanto, b | (aa0 ). Similarmente poderemos demonstrar


as outras propriedades do item 1.
Para demonstrar o item 2, observamos que pela suposicao b = kd e a = bc.
Logo, a = (kd)c = k(dc). Entao k | a.
A demonstracao do item 3 e simples, pois quando b | a temos que a = bc.
Apos multiplicar os lados dessa igualdade por t, teremos que at = bct. Da, at = b(ct)
que mostra b | at. Isso completa a demonstracao do teorema.

2.2

Inteiros m
odulo m

Seja m um inteiro natural.


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

36

Defini
c
ao 2.1 Dizemos que dois inteiros a e b s
ao congruentes m
odulo m se e
somente se
m | (a b), ou m | (b a).
Observe que se m | (a b), naturalmente m | (b a), pois
a b = (1)(b a).
Portanto, para verificar se dois inteiros a, b sao congruentes modulo m e
suficiente verificar uma das condicoes da definicao. Quando m | (a b), dizemos que
a e congruente com b m
odulo m e no caso m | (ba) dizemos que b e congruente
com a m
odulo m. Pela observacao acima, a e congruente com b modulo m se e
somente se b for congruente com a modulo m.
Quando a e b forem congruentes modulo m, escreveremos
a b (mod m).
Para um dado inteiro b, existem infinitos inteiros a congruentes com b
modulo m. Por exemplo, se m = 6 e b = 2, entao a pode assumir um dos muitos
n
umeros como:

2, 8, 14, 20, ..., 4, 10, 16, 22, ...


Usando o conceito a b (mod m) poderemos ver que a forma geral dos
inteiros a congruentes com 2 modulo 6 e
a = 2 + 6k,
em que k varia sobre todos os inteiros nao negativos, ou seja, k = 0, 1, 2, 3, .... Se
permitimos que k assuma todos os valores inteiros, teremos a forma geral dos inteiros
a congruentes com 2 modulo 6, como demonstra o exemplo acima.
O seguinte teorema leva-nos ao sistema de operacoes de n
umeros modulo
m.


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

37

Teorema 2.2 As seguintes propriedades s


ao verdadeiras:
1. a b (mod m) se e somente se b a (mod m).
2. Se a b (mod m) e c d (mod m) ent
ao
(a + c) (b + d) (mod m), e
(a c) (b d) (mod m).
3. Se a b (mod m) e c d (mod m) ent
ao
ac bd (mod m).
4. Se a b (mod m) ent
ao ay by (mod m) para todo y Z.
Demonstra
c
ao: No item (1) apresentam-se duas formas de escrever que
m | (a b), que e verdadeira de acordo com a nossa observacao explicitada na
propriedade acima.
O item (2) e consequencia direta do item (1), do teorema anterior.
O item (4) e consequencia direta do item (3), do teorema anterior.
Para demonstrar o item (3), vamos reescrever os dados do teorema na
seguinte forma
a = b + km, c = d + lm
para certos inteiros k e l. Agora, vamos respectivamente multiplicar os dois lados
dessas igualdades. Isso nos dara
ac = bd + blm + dkm + klm2
= bd + m(bl + dk + klm)
Portanto, m | (ac bd). Isso mostra que ac bd (mod m). Esta completa a
demonstracao do teorema.
O exemplo precedente permite-nos perceber que os n
umeros a congruentes
com 2 modulo 6 sao da forma a = 2 + 6k. Em outras palavras, a pode ser visto


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

38

como forma geral de todos os inteiros a, para os quais o resto da divisao por 6 e 2.
Por exemplo, suponhamos que estamos procurando um n
umero inteiro x para que
um n
umero dado a seja congruente com x modulo m. Para fazer isso, na pratica
aplicamos a divis
ao de Euclides.
Teorema 2.3 (Divis
ao de Euclides) Sejam a, b N dois inteiros naturais.
Entao, existem u
nicos inteiros q e r tais que
a = bq + r, 0 r < b.

(2.1)

Quando a propriedade (2.1) esta satisfeita, dizemos que r e o resto da


divis
ao(de Euclides) de a por b. E chamaremos q de quociente.
Agora, voltamos para a pergunta anterior e suponhamos que a = 23141512,
e m = 121. Entao para achar x podemos igualmente procurar r da identidade (2.1).
Apos a divisao teremos que
23141512 = 121 191252 + 20
Da
23141512 20 = 121 191252
Essa propriedade pode ser escrita da seguinte forma
23141512 20 (mod 121).
Logo, x = 20 e uma resposta.
Agora, o teorema precedente leva-nos ao seguinte resultado.
Teorema 2.4 Para um dado inteiro natural a e um inteiro natural m, existe um
u
nico inteiro positivo (natural) x com 0 x < m tal que
a x (mod m).

(2.2)

Pelo teorema da divisao de Euclides e obvio que x e o resto da divisao de a


por m. Por exemplo, se a = 141, m = 10, entao x = 1.


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

39

Para definir operacoes modulo m, precisaremos de definir o conjunto dos


inteiros modulo m.
A cada inteiro positivo b, podemos associar um subconjunto infinito dos
inteiros a ser chamado classe de b m
odulo m ou n
umero b (mod m).
A classe associada ao n
umero b e exatamente o conjunto dos inteiros que
sao congruentes com b modulo m. Duas classes b (mod m) e d (mod m) sao iguais
se e somente se m | (b d), ou igualmente
b (mod m) = d (mod m) b d 0 (mod m).

(2.3)

Por exemplo, para b = 2 e m = 9, temos


2 (mod 9) = {..., 25, 16, 7, 2, 11, 20, ...}.
Se b = 3, entao
3 (mod 9) = {..., 24, 15, 6, 3, 12, 21, ...}.
Se b = 4, entao
4 (mod 9) = {..., 23, 14, 5, 4, 13, 22, ...}.
Pelas operac
oes m
odulo m, entendemos as operacoes aritmeticas adicao
e multiplicacao no conjunto de classes modulo m.
Agora vamos definir as operacoes aritmeticas de soma e multiplicacao para
classes modulo m.
Se b (mod m) e d (mod m) sao duas classes modulo m entao, definiremos a
soma m
odulo m e o produto m
odulo m delas, da seguinte maneira, respectivamente,
b (mod m) + d (mod m) := b + d (mod m),
em que a soma do lado direito e a classe de b + d modulo m.

(2.4)


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

40

E definiremos o produto(multiplicacao) por


b (mod m) d (mod m) := bd (mod m),

(2.5)

no qual o produto do lado direito e a classe modulo m do produto do b e d em Z.


Por exemplo, para b = 2 e d = 3 e m = 9, temos
2 (mod 9) + 3 (mod 9) = 5 (mod 9)
2 (mod 9) 3 (mod 9) = 6 (mod 9)
Notemos que a troca de representantes das classes a (mod m) e b (mod m)
nao afeta a soma e nem a diferenca das classes, pois se a (mod m) = a0 (mod m) e
b (mod m) = b0 (mod m), entao a a0 (mod m) e b b0 (mod m).
Teremos entao a + b a0 + b0 (mod m) e a b a0 b0 (mod m).
Portanto a + b (mod m) = a0 + b0 (mod m) e ab (mod m) = a0 b0 (mod m).
Da mesma forma que no conjunto Z existem os n
umeros zero (0) e um (1)
satisfazendo
0 + a = a, 1a = a, para todo a Z,
no conjunto das classes modulo m tambem existem as classes zero e um. A classe
zero e 0 (mod m) e a classe um e a classe 1 (mod m), assim temos
0 (mod m) + b (mod m) = b (mod m)
1 (mod m) b (mod m) = b (mod m).
para todas as classes b (mod m).
Seja b (mod m) uma classe modulo m. Se existir uma classe modulo m como
d (mod m) tal que
b (mod m) d (mod m) = 1 (mod m)

(2.6)

dizemos que d (mod m) e a inversa de b (mod m). Quando numa classe existe a
inversa, dizemos que ela e inversvel.


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

41

Agora, podemos nos perguntar quando uma classe e inversvel.


Para responder a essa pergunta invocamos a seguinte proposicao. Mas antes
relembremos o conceito de maximo divisor comum, a seguir:
Defini
c
ao 2.2 Dados dois inteiros a e b, chama-se maximo divisor comum de a e
b ao inteiro d satisfazendo:
1. d = 0, se a = b = 0
2. Se a 6= 0 ou b 6= 0, d e caracterizado pelas seguintes duas propriedades:
(a) d | a e d | b
(b) x Z, x | a e x | b x d
Observa
c
ao 2.1 Se d e o maximo divisor comum de a e b, denotamos
d = mdc(a, b)
De acordo com a notacao estabelecida acima, simbolicamente temos:
1- mdc(0, 0) = 0
2- Se a 6= 0 ou b 6= 0, ent
ao
mdc(a, b) = max{x Z | x | a e x | b}
Agora sim, veremos a proposicao.
Proposi
c
ao 2.1 Sejam a, b, c Z. Entao existem inteiros x, y tal que
ax + by = c
se e somente se mdc(a, b) | c.


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

42

Por exemplo, se a = 2, b = 4 e c = 3, nunca existira x, y Z, tais que


2x + 4y = 3. A razao disso e que o mdc(2, 4) = 2 e que 2 - 3.
Agora podemos responder a pergunta acima.
Proposi
c
ao 2.2 Seja b 6= 0 um n
umero inteiro. Entao a classe b (mod m) tem
inversa (e inversvel) se e somente se mdc(b, m) = 1.
Demonstra
c
ao: Primeiro, suponhamos que a classe b (mod m) tenha inversa, e
que sua inversa seja a classe d (mod m). Entao, pela identidade (2.6), pagina 40
temos
bd (mod m) = 1 (mod m).
Pela identidade (2.3) temos
bd 1 0 (mod m).
Logo, bd 1 = ym para algum inteiro y. Portanto, bd ym = 1. Isso
pode ser escrito na forma bd + (y)m = 1. Entao, pela proposicao anterior temos
o mdc(b, m) = 1. Agora, suponhamos que o mdc(b, m) = 1, e dessa forma provaremos que a classe b (mod m) tem inversa. Para fazer isso, novamente, usaremos
a proposicao anterior que garante, sob a condicao mdc(b, m) = 1, que a equacao
bx + my = 1 tem solucao.
Portanto, existem n
umeros inteiros x = x0 e y = y0 tal que
bx0 + my0 = 1.
Essa equacao pode ser escrita assim,
bx0 1 0 (mod m).
E essa congruencia pode ser escrita dessa forma


CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS

43

bx0 = 1 (mod m).


Da, a classe x0 (mod m) e a inversa da classe b (mod m) e a demonstracao
fica completa.

Captulo 3
A func
ao de Euler
A funcao de Euler tem a propriedade que seu valor em um inteiro n e o produto dos
valores da funcao nas potencias de primos que ocorrem na fatoracao de n. Funcoes
com essa propriedade sao chamadas func
oes multiplicativas.
O objetivo neste captulo e mostrar que a funcao de Euler e multiplicativa
e a partir da chegarmos a uma formula para seus valores baseada na fatoracao em
primos.
A funcao de Euler calcula a quantidade de n
umeros inteiros positivos
relativamente primos com n e que sao menores que n. Por ora, vejamos algumas
definicoes que nos serao u
teis no decorrer deste captulo e do estudo que faremos.
Defini
c
ao 3.1 Uma funcao aritmetica e uma funcao que e definida para todos os
inteiros positivos.
Defini
c
ao 3.2 Uma funcao aritmetica f e chamada multiplicativa se f (mn) =
f (m)f (n) sempre que m e n s
ao inteiros positivos relativamente primos. Ela e
chamada completamente multiplicativa se f (mn) = f (m)f (n) para todos os inteiros
positivos m e n.
Exemplo 3.1 A funcao f (n) = 1 para todo n e completamente multiplicativa, e
portanto tambem e multiplicativa, pois f (mn) = 1, f (m) = 1 e f (n) = 1, de tal
44

DE EULER
CAPITULO 3. A FUNC
AO

45

forma que f (mn) = f (m)f (n). Similarmente, a funcao g(n) = n e completamente


multiplicativa, e por isso multiplicativa, pois g(mn) = mn = g(m)g(n).
Se f e uma funcao multiplicativa, nos podemos encontrar uma formula
simples para f (n) dada a fatoracao em potencias de primos de n.
Defini
c
ao 3.3 Um inteiro positivo p 6= 1 e chamado primo se os seus u
nicos
divisores s
ao 1 e p.
Um n
umero inteiro positivo diferente de 1 e composto quando nao e primo.
Defini
c
ao 3.4 Dados a e b inteiros, dizemos que a e b s
ao relativamente primos ou
primos entre si se mdc(a, b) = 1,ou seja, se a e b n
ao tem fatores positivos comuns
alem da unidade.
Teorema 3.1 Se p e primo, ent
ao (p) = p 1. Reciprocamente, se p e um inteiro
positivo com (p) = p 1, ent
ao p e primo.
Demonstra
c
ao: Se p e primo entao todos os inteiros positivos menores
que p sao relativamente primos com p. Como existem p 1 desses inteiros, temos
(p) = p 1. Reciprocamente, se p e composto, entao p tem um divisor d com
1 < d < p, e, e claro, p e d nao sao relativamente primos. Como sabemos que pelo
menos um dos p 1 inteiros 1, 2, ..., p 1, nomeado de d, nao e relativamente primo
com p, (p) p 2. Portanto, se (p) = p 1, entao p deve ser primo.
Defini
c
ao 3.5 (A func
ao de Euler) Seja m N. Seja
E(m) = {x N | x m e mdc(x, m) = 1}.
Usando o smbolo #E para denotar o n
umero de elementos do conjunto (finito) E,
n
os definimos:
: N N
(m) = #E(m)
ou seja,

DE EULER
CAPITULO 3. A FUNC
AO

46

(m) = #{x N; x m e mdc(x, m) = 1}.


Exemplo 3.2

1. Seja m = 5, ent
ao E(5) = {1, 2, 3, 4} e assim temos que

(5) = 4.
2. (1) = 1, (2) = 1 e estes s
ao os dois u
nicos naturais com esta propriedade.
3. Se p e primo, ent
ao (p) = p 1.
Agora vamos encontrar os valores da funcao para potencias de primos.
Teorema 3.2 Seja p um primo e a um inteiro positivo. Entao (pa ) = pa pa1 .
Demonstracao: Os inteiros positivos menores que pa que nao sao relativamente primos com pa sao aqueles inteiros nao excedendo pa que sao divisveis por
p. Estes sao os inteiros da forma kp onde 1 k pa1 . Como ha exatamente pa1
desses inteiros, ha pa pa1 inteiros menores que pa que sao relativamente primos
com pa . Portanto, (pa ) = pa pa1 .
Exemplo 3.3 Usando o teorema 3.2, n
os encontramos que (53 ) = 53 52 = 100,

(210 ) = 210 29 = 512, (112 ) = 112 11 = 110.

Defini
c
ao 3.6 Um conjunto de inteiros {r1 , ..., rs } e chamado um sistema reduzido
de resduos modulo m se
1. (ri , m) = 1, para todo i {1, 2, ..., s}.
2. ri 6 rj (mod m) se i, j {1, 2, ..., s} e i 6= j.
3. Para todo n Z satisfazendo (m, n) = 1, existe i {1, ..., s} tal que n
ri (mod m).
Com um pequeno abuso de notacao indicaremos um sistema completo de resduos
modulo m por Z/mZ (utilizamos esta notacao para indicar o conjunto de todas as
classes de equivalencia da congruencia modulo m) e um sistema reduzido de resduos
modulo m por (Z/mZ) .

DE EULER
CAPITULO 3. A FUNC
AO
Teorema 3.3 Sejam m, n N tais que mdc(m, n) = 1.

47
Entao (m n) =

(m)(n).
Demonstra
c
ao: Sejam x1 , ..., x(n) e y1 , ..., y(m) sistemas reduzidos de
resduos modulo n e m respectivamente. Nossa intencao e mostrar que o conjunto
B das combinacoes lineares
bij = xi m + yj n
i = 1, ..., (n) e j = 1, ..., (m)
forma um sistema reduzido modulo mn, o que completaria a demonstracao. Para
isto precisamos mostrar:
1. bij 6= bkl se i 6= k ou j 6= l;
2. se mdc(a, mn) = 1 entao existe bij B tal que a bij (mod mn).
Comecemos pelo item (1), assumindo que
mxi + nyj mxk + nyl (mod mn),
entao
m(xi xk ) n(yl yj ) (mod mn).
Como m divide mn, temos que
n(yl yj ) 0 (mod m),
logo m | n(yl yj ).
Como m e n sao primos entre si, m divide yl yj e portanto
yl yj (mod m).
Isto implica que j = l pois os yi0 s formam um sistema reduzido modulo m. Similarmente vemos que i = k.

DE EULER
CAPITULO 3. A FUNC
AO

48

Vamos entao asssumir que mdc(a, mn) = 1 e provar o item(2). Observe que
como mdc(m, n) = 1 existem inteiros r, s tais que rm + sn = 1.
Logo existem x, y tais que a = xm + yn.
Como mdc(a, mn) = 1 teremos mdc(a, m) = mdc(a, n) = 1, conclumos
que mdc(m, y) = mdc(n, x) = 1. Portanto x e y sao inversveis modulo m, e assim
existem ndices i, j tais que
y yj (mod m) e x xi (mod n).
Logo
ny nyj (mod mn) e mx mxi (mod mn),
e entao temos
a = mx + ny mxi + nyj = bij (mod mn)
como queramos demonstrar.
Teorema 3.4 (Euler) Sejam a Z, m N tais que mdc(a, m) = 1. Entao
a(m) 1 (mod m)
Demonstra
c
ao:

Seja {r1 , ..., r(m) } um sistema reduzido de resduos

modulo m. Vamos primeiramente verificar que o conjunto ar1 , ..., ar(m) e tambem
um sistema reduzido de resduos modulo m (Ver Definicao 3.6).
Seja A = {x Z | 1 x m 1, mdc(x, m) = 1}. Notemos que A tem
(m) elementos.
Temos entao que A = {x (mod m) | x A} e o conjunto de inteiros modulo
m, que sao inversveis na multiplicacao modulo m.
Vamos enumerar
A = {x1 , x2 , ..., x(m) }
A = {x1 (mod m), ..., x(m) (mod m)}
Tome a Z com mdc(a, m) = 1;

DE EULER
CAPITULO 3. A FUNC
AO
Demonstraremos a seguir que
B = {ax1 (mod m), ax2 (mod m), ..., ax(m) (mod m)} = A
Consideremos a funcao f : A A
definida por f (x (mod m)) = ax (mod m).
f e injetora:
Suponhamos
ax (mod m) = ay (mod m)
Como mdc(a, m) = 1, a (mod m) tem um inverso b (mod m).
Sendo ax (mod m) = ay (mod m), teremos entao
bax (mod m) = bay (mod m)
logo
ba (mod m) x (mod m) = ba (mod m) y (mod m)
e assim, como ba (mod m) = 1 (mod m),
x (mod m) = y (mod m)

Sendo f injetora, como A e finito, f e sobrejetora e, portanto, B = A.


Assim,

ax1 ax2 ax(m) (mod m) = x1 x2 x(m) (mod m)


e portanto
a(m) x1 x2 x(m) (mod m) = x1 x2 x(m) (mod m)
Cancelando-se os varios xi s, teremos
a(m) 1 (mod m)
ou seja,
a(m) (mod m) = 1 (mod m)

49

Refer
encias Bibliogr
aficas
[1] ROSEN, KENNETH H., Elementary Number theory and its Applications. Reading(MA): Addison-Wesley Publishing Co.2003.
[2] SINGH, SIMON., O livro dos codigos; traducao de Jorge Calife. 4a ed. Rio
de Janeiro: Record, 2004.
[3] SHOKRANIAN, SALAHODDIN., Criptografia para iniciantes / Salahoddin
Shokranian. Braslia: Editora Universidade de Braslia, 2005.
[4] SHOKRANIAN, SALAHODDIN., Teoria dos n
umeros / Salahoddin Shokranian; Marcus Soares, Hemar Godinho. Braslia: Editora Universidade de
Braslia, 1994.
CARLOS., Introducao `
[5] SAMPAIO, JOAO
a teoria dos n
umeros: um curso breve
/ Joao Carlos Vieira Sampaio, Paulo Antonio Silvani Caetano. Sao Carlos:
EdUFSCar, 2008.

50

Parte II
Trabalho de Conclus
ao de Curso B

51

Resumo
Este trabalho apresenta-se como continuidade do estudo da Criptologia iniciado em
Trabalho de Conclusao de Curso A. Estudaremos aqui a chamada criptografia de
chave p
ublica, tendo como foco a criptografia RSA.
Veremos alguns resultados da Teoria dos N
umeros que possibilitaram e impulsionaram o seu desenvolvimento, bem como algumas de suas caractersticas principais e implicacoes ao mundo dos negocios e ao nosso cotidiano de maneira geral.
Considerando a importancia da questao da fatoracao de n
umeros dentro do
sistema RSA, sao apresentados ainda dois metodos, a saber, Teste de fatoracao de
Fermat e Metodo Pollard p 1.
Palavras-chave: criptologia, criptografia de chave p
ublica, aritm
etica
m
odulo m, pequeno teorema de Fermat.

52

Introduc
ao
A historia da Criptologia caracteriza-se como uma luta evolutiva, no sentido em
que ha uma constante batalha entre os criadores e os decifradores de codigos. A
consequencia desse embate intelectual e a necessidade sempre presente do desenvolvimento de novas formas de criptografia, cada vez mais seguras e de viavel implementacao. Com o passar dos anos surgem novos problemas e desafios a serem
vencidos pelos criptografos, que encontram na matematica um campo muito fertil
para novas ideias e teorias.
As primeiras formas de criptografia, conforme visto no Trabalho de Conclusao de Curso A, sao aquelas conhecidas na area como criptografias de chave
privada, onde uma mesma chave e utilizada tanto para encifrar quanto decifrar as
mensagens. Naturalmente, essa chave precisa ser mantida em segredo entre as fontes
que trocarao as mensagens ja que sua interceptacao por maos erradas comprometeria
de imediato a seguranca da comunicacao dando acesso ao seu conte
udo.
Toda essa logstica necessaria para o processo da troca de mensagens e o
nvel de seguranca que essa forma de criptografia oferece mostraram-se incompatveis
com as exigencias cada vez maiores advindas do desenvolvimento tecnologico com
o passar dos anos. Com o advento da internet e todas as suas possibilidades no
tocante `a troca de informacoes e formas de atividades comerciais, fez-se essencial o
desenvolvimento de uma criptografia segura e que pudesse otimizar os procedimentos
que garantiriam a seguranca das comunicacoes realizadas.
Nesse contexto surge a criptografia de chave p
ublica, que estudaremos neste
trabalho.
53

Captulo 4
A criptografia de chave p
ublica
Um dos problemas essenciais enfrentados por qualquer um que quisesse enviar mensagens secretas atraves de algum sistema criptografico e a questao da chave. Conforme visto no Trabalho de Conclusao de Curso A, havia sempre a necessidade do
conhecimento por ambas as fontes envolvidas no processo, ou seja, fonte A (emissor)
e fonte B (receptor), da chave utilizada para encifrar as mensagens.
A ttulo de exemplo e fazendo alusao a metodos ja vistos anteriormente,
temos o caso do citale espartano, onde era necessario o conhecimento do diametro
do citale por ambas as partes ou ainda o n
umero k na cifra de Cesar, que conforme
visto, determinava o tamanho do salto entre as letras no processo de encifracao.
Esse empecilho esteve presente durante toda a historia da criptografia desafiando os criadores de codigos e dificultando muito o processo de envio e recebimento de mensagens secretas. O problema persistiu ate chegarmos `a epoca dos
negocios via internet e neste ponto imaginemos a situacao.
A logstica necessaria para que as transacoes comerciais pudessem ser realizadas era uma barreira enorme a ser vencida, ja que numa situacao hipotetica em
que quisessemos realizar uma compra com cartao de credito, via internet, haveria
a necessidade de recebermos da empresa responsavel pela pagina virtual, cartas
confidenciais contendo as informacoes e dados sobre como codificar os dados.

54


CAPITULO 4. A CRIPTOGRAFIA DE CHAVE PUBLICA

55

Considerando a inviabilidade deste metodo, que justifica-se pelo enorme


tempo necessario para o desenvolvimento do processo e mais, sua inseguranca proveniente dos dados que estariam em circulacao, tornou-se necessario o desenvolvimento
de um sistema criptografico adequado `a era emergente de rapida comunicacao global.
Mais uma vez entrariam em cena, como protagonistas desta batalha intelectual, os
matematicos, que atraves da criacao de novos codigos forneceram as bases para o
nascimento e desenvolvimento do que hoje e conhecido como criptografia de chave
p
ublica.
Uma analogia entre o processo de codificacao e decodificacao com o procedimento de trancar e destrancar uma porta e bastante sugestiva. Em uma porta
comum, a mesma chave e usada tanto para abri-la como para fecha-la e nesse caso,
quanto maior for a distancia entre emissor e receptor maior tambem sera a logstica
necessaria para o envio da chave utilizada para trancar e destrancar a mensagem.
No sistema de criptografia de chave p
ublica, no entanto, existe uma
diferenca fundamental. Continuando com nossa analogia, neste caso teramos uma
porta com duas chaves diferentes: uma chave X para trancar a porta e uma chave
diferente Y para destranca-la. Assim, nao ha mais a necessidade da manutencao de
confidencialidade em relacao `a chave X.
Levando o que foi apresentado ha pouco para o contexto das transacoes
comerciais realizadas atraves da internet, veremos o gigantesco passo `a frente que
foi dado quando da descoberta da criptografia de chave p
ublica.
Imaginemos que uma porta guarda a entrada da secao segura da pagina
virtual de uma empresa. Como agora nao e mais imprescindvel que a chave X,
usada para trancar a porta, seja mantida em segredo, a empresa pode distribuir
copias da chave para seus clientes que visitam a pagina e desejam enviar mensagens
seguras, como o n
umero de um cartao de credito, por exemplo.
Deve-se notar que, embora todos usem uma mesma chave para a codificacao
dos dados trancando a porta e protegendo o segredo -, ninguem consegue ler as
mensagens codificadas dos demais e somente a empresa administradora da pagina


CAPITULO 4. A CRIPTOGRAFIA DE CHAVE PUBLICA

56

virtual possui a chave Y, usada para destrancar a porta e conseguintemente obter


acesso aos n
umeros dos cartoes de credito.

4.1

O nascimento da criptografia de chave p


ublica

A criptografia de chave p
ublica foi proposta inicialmente no ano de 1976, em um
artigo intitulado Novos caminhos na criptografia, escrito por dois matematicos da
Universidade de Stanford, na California. Whit Diffie e Martin Hellman publicaram o
artigo e defendiam a ideia de que a criptografia nao fosse um assunto discutido apenas atras de portas fechadas do governo, mas que suas ideias se tornassem p
ublicas.
O artigo prenunciou uma nova era da comunicacao eletronica segura e secreta.
A ideia por tras da criptografia de chave p
ublica parecia revolucionaria
e excelente, mas ainda havia uma questao essencial a ser respondida: haveria a
possibilidade de coloca-la em pratica atraves da criacao de um novo codigo que
funcionasse obedecendo seus princpios?
O desafio estava lancado e muitos anos depois, apos varias tentativas
frustradas, alguns criptografos ja comecavam a duvidar de que fosse possvel construir tal codigo. Foi quando surgiu a figura de Ron Rivest, do Instituto de Tecnologia
de Massachussetts (MIT), que nutria grande interesse por questoes complexas envolvendo matematica e ciencia da computacao. Ao ser apresentado ao artigo da
dupla de Stanford ficou fascinado imediatamente por seu conte
udo que envolvia
computacao, logica e matematica. Percebeu que era um problema com claras implicacoes praticas no mundo real, mas que tinha tambem ligacoes diretas com as
preocupacoes teoricas que tanto ocupavam seu pensamento.
Rivest notou que para que nao fosse facil quebrar um determinado codigo,
ele teria de ser baseado em algum problema matematico cuja solucao fosse difcil
de calcular e dedicou-se entao a criar um sistema de criptografia de chave p
ublica
explorando todo tipo de problema que os computadores sabidamente levariam um
longo tempo para resolver.


CAPITULO 4. A CRIPTOGRAFIA DE CHAVE PUBLICA

57

Aderiram `a empreitada de Rivest dois matematicos, Leonard Adleman e


Adi Shamir, razao pela qual temos as iniciais RSA, e juntos comecaram a buscar
` medida em que
ideias que permitissem implementar o sonho de Diffie e Hellman. A
exploravam diversos problemas matematicos considerados difceis, foram aos poucos
se aproximando cada vez mais das ideias oriundas da Teoria dos N
umeros. Varios
sistemas criptograficos embrionarios surgiram e foram posteriormente descartados
ate que algo lhes chamasse verdadeiramente a atencao.
Numa noite em que o trio foi convidado para um jantar na casa de um aluno
em celebracao `a noite da Pascoa judaica, Rivest vislumbrou uma ideia que viria a
mudar radicalmente o rumo de suas vidas e da criptografia. Eles ja vinham ha algum
tempo considerando em seus estudos o difcil problema da fatoracao de n
umeros e
sabiam que nao existiam boas propostas de programas que conseguissem decompor
n
umeros em seus blocos de construcao primos. Rivest, ao que tudo indicava, havia
encontrado uma maneira de utilizar esse problema na implementacao de seu novo
codigo.
Seguiram-se estudos para descobrir se a fatoracao era realmente tao difcil,
considerando a restrita literatura acerca do assunto e a dificuldade na epoca em
se fazer boas estimativas sobre o tempo que os algoritmos existentes levariam para
realiza-la.
Martin Gardner, um especialista no assunto e colunista da Scientific American, ficou intrigado com a proposta de Rivest e publicou um artigo sobre tal ideia. A
enorme repercussao do artigo deu ao trio uma prova da grandiosidade daquilo com
que estavam trabalhando. Apesar de na epoca nao existir muito desenvolvimento
quanto ao comercio eletronico, havia a percepcao das implicacoes e da forca contida
naquela ideia.

Captulo 5
Teoria dos n
umeros para RSA
Teorema 5.1 (Pequeno Teorema de Fermat) Seja p um n
umero primo. Se a
e um n
umero inteiro tal que mdc(p, a) = 1, ent
ao
ap1 1 (mod p)
Esse teorema e uma consequencia direta do seguinte teorema de Euler (a demonstracao encontra-se na monografia de Trabalho de Conclusao de Curso A).
Teorema 5.2 (Teorema de Euler) Sejam a,m inteiros com m > 0 tal que
mdc(a, m) = 1. Entao
a(m) 1 (mod m)
Para verificarmos que, de fato, o pequeno teorema de Fermat (Teorema 5.1)
e uma consequencia do teorema de Euler (Teorema 5.2) basta supor que m = p.
Nesse caso as condicoes do Teorema 5.1 estao satisfeitas. Por outro lado, temos
(p) = p 1. Portanto, o teorema de Euler nos fornece
ap1 1 (mod p)
que e exatamente a afirmacao do teorema de Fermat.
58


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

59

Teorema 5.3 Suponhamos que:


1. p e q s
ao n
umeros primos distintos;
2. e N e um inteiro tal que mdc(e, (pq)) = 1;
3. T Z e um inteiro tal que T 6 0 (mod p) e T 6 0 (mod q);
4. C Z e um inteiro definido por C T e (mod pq);
5. d Z e um inteiro definido pelas duas condicoes
ed 1 (mod (pq)), 1 d < (p 1)(q 1).
Entao
T C d (mod pq).
Lema 5.1 Sejam a, b e c inteiros positivos tais que a e b s
ao relativamente primos.
1. Se b | ac ent
ao b | c.
2. Se a | c e b | c, ent
ao ab | c.
Demonstracao.
1. Sejam a e b inteiros relativamente primos, isto e, tal que mdc(a, b) = 1. Agora,
sendo a e b dois inteiros, a e b sao primos entre si se, e somente se, existirem
inteiros m e n satisfazendo
ma+nb=1
Multiplicando esta expressao por c, obtemos
m ac + n bc = c
obvio que b | nbc. Mas, por hipotese b | ac. Logo b | (m ac + n bc) = c.
E
Portanto, b | c.


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

60

2. Pode ser provado a partir de (1). De fato, se a | c, pode-se escrever c = at,


para algum inteiro t. Mas, b | c, e como mdc(a, b) = 1, segue da afirmacao (1)
que b | t. Assim, t = bk para algum inteiro k. Portanto,
c = at = a(bk) = (ab)k
e divisvel por ab, o que prova a afirmacao (2).

Usaremos agora o lema 5.1 para demonstrar uma propriedade muito importante dos n
umeros primos. Vejamos.
Propriedade Fundamental dos N
umeros Primos: Seja p um n
umero
primo e a e b inteiros positivos. Se p | ab, entao p | a ou p | b.
Demonstracao. Se p | a, a prova esta concluda. Supomos entao que p - a.
Como p e primo, entao mdc(a, p) = 1 e pelo lema 5.1, item (1), segue que p | b.

5.0.1

Algoritmo Euclidiano para o c


alculo de mdc

Recordaremos agora o algoritmo euclidiano para o calculo de mdc(a, b), no caso em


que a e b sao inteiros ambos nao nulos. O algoritmo e realizado atraves de uma
sequencia finita de divisoes euclidianas e ilustra-lo-emos atraves de um exemplo.
Queremos calcular mdc(91, 35) e para comecar fazemos a seguinte divisao
91

35

21

Consideramos entao o divisor 35 e o resto 21 dessa primeira divisao e efetuamos a divisao euclidiana de 35 por 21.
35

21

14


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

61

Agora repetimos o processo iniciado acima, isto e, tomamos, na proxima


divisao, 21 como dividendo e 14 como divisor:
21

14

Finalmente, chegamos a` divisao exata


14

Tendo chegado a um resto igual a zero, o algoritmo termina. O u


ltimo
resto nao nulo, das divisoes sucessivas realizadas, e o mdc procurado, ou seja,
mdc(91, 35) = 7.

5.0.2

Calculando inteiros r e s tais que mdc(a, b) = ra + sb

Veremos agora como o algoritmo euclidiano, do calculo do mdc de dois inteiros, pode
ser usado para obtermos o mdc como uma combinacao linear desses inteiros.
Vimos acima que mdc(91, 35) = 7. Para expressar 7 como combinacao linear
de 91 e 35, consideramos as divisoes euclidianas usadas no calculo de mdc(91, 35),
91

35

35

21

21

14

14

21

14

Lembremo-nos de que o u
ltimo resto nao nulo, das divisoes sucessivas realizadas, e
o mdc procurado.
As tres primeiras divisoes estabelecem
91 = 35 2 + 21
35 = 21 1 + 14
21 = 14 1 + 7


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

62

E entao, isolando os restos, temos


21 = 91 35 2
14 = 35 21 1
7 = 21 14 1
de onde entao obtemos, passo a passo, cada um dos tres restos como combinacao
linear de 91 e 35:
21 = 91 35 2, conforme ja estabelecido.
14 = 35 21 1
= 35 (91 35 2)
= (1) 91 + 3 35
e finalmente
7 = 21 14 1
= (91 35 2) [(1) 91 + 3 35] 1
= 2 91 + (5) 35
ou seja,
7 = 2 91 + (5) 35
obtendo-se assim 7 = mdc(91, 35) como combinacao linear r 91 + s 35, com r e s
inteiros.

5.1

Uma aplicac
ao interessante

Os dois teoremas, Teorema 5.1 e Teorema 5.2, tem uma aplicacao interessante, ja
E
PRIMO.
que podem ser usados para verificar se um dado inteiro positivo NAO
Por exemplo, consideremos o n
umero n = 51. Veremos a seguir que esse n
umero
nao e primo. Inicialmente, facamos uma lista (Tabela 5.1) dos n
umeros 1 x 51
coprimos com 51, isto e mdc(x, 51) = 1. Isso nos mostra que (51) = 32.


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

63

10

11

13

14

16

19

20

22

23

25

26

28

29

31

32

35

37

38

40

41

43

44

46

47

49

50

Tabela 5.1: Lista dos n


umeros 1 x 51 coprimos com 51.
Agora, observamos que n = 51 e um n
umero mpar e portanto coprimo com
2. Se 51 fosse primo, a seguinte congruencia deveria ser verdadeira:
2511 1 (mod 51)
mas apos calcular o lado esquerdo da congruencia acima (usando o programa Maple,
por exemplo) podemos ver que
2511 = 250 = 1125899906842624
e
250 1 = 1125899906842623
que nao e divisvel por 51. Portanto, 51 nao e primo.
Observa
c
ao 5.1 Tambem poderia ser usado o fato de que (51) 6= 51 1 = 50,
mostrando igualmente que 51 n
ao e primo. O objetivo desse exemplo n
ao era realmente verificar o fato trivial que 51 n
ao e primo, mas usar o pequeno teorema de
Fermat para chegar a esse fato.

5.2

Implementa
c
ao de RSA

Se um dos sistemas de cifra descritos e estudados no Trabalho de Conclusao de


Curso A, ou seja, aqueles conhecidos como sistemas de criptografia de chave privada
e usado para estabelecer comunicacoes seguras dentro de uma rede, entao cada par
de comunicantes deve empregar uma chave de encifracao que e mantida em segredo
para os outros indivduos na rede, ja que se essa chave de encifracao e conhecida, a
chave de decifracao pode ser encontrada usando um pequeno tempo computacional.


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

64

Consequentemente, para manter secretas as chaves de encifracao elas precisam ser


transmitidas atraves de um canal de comunicacoes secretas.
Com o intuito de evitar essa necessidade da atribuicao de uma chave para
cada par de indivduos e que deve ser mantida secreta do resto da rede, um novo
tipo de sistema de cifra, chamado sistema de cifra de chave p
ublica, foi introduzido.
Neste tipo de sistema, chaves de encifracao podem ser tornadas p
ublicas desde que
um tempo extraordinariamente grande e exigido para encontrar a transformacao de
decifracao atraves da transformacao de encifracao.
Para usar um sistema de cifra de chave p
ublica para estabelecer comunicacoes secretas em uma rede de n indivduos, cada indivduo produz uma chave
do tipo especificado pelo sistema de cifra, retendo certas informacoes privadas que
entraram na construcao da cifra de encifracao E(k), obtida da chave k de acordo
com uma regra especificada. Entao um diretorio com as n chaves k1 , k2 , ..., kn e
publicado. Quando o indivduo i deseja enviar uma mensagem para o indivduo
j, as letras da mensagem sao traduzidas para suas equivalentes numericas e combinadas em blocos de tamanho especfico. Entao para cada bloco T da mensagem
um correspondente bloco C de texto cifrado, C = Ekj (T ), e computado usando a
tranformacao de encifracao Ekj . Para decifrar a mensagem, o indivduo j aplica a
transformacao de decifracao Dkj para cada bloco de texto cifrado C para encontrar
T , isto e,
Dkj (C) = Dkj (Ekj (T )) = T
Desde que a transformacao de decifracao Dkj nao possa ser encontrada em
uma quantidade realista de tempo por ninguem a nao ser o indivduo j, nenhum
indivduo sem autorizacao pode decifrar a mensagem, mesmo que ele conheca a
chave kj .
O sistema de cifra RSA, inventado por Rivest, Shamir e Adleman nos anos
setenta, e um sistema de cifra de chave p
ublica baseado em exponenciacao modular
onde as chaves sao pares (e, n), consistindo em um expoente e e um modulo n que e
o produto de dois primos grandes, isto e, n = p q, onde p e q sao primos grandes, de


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

65

forma que mdc(e, (n)) = 1. Para encifrar a mensagem, nos primeiro traduzimos as
letras em seus equivalentes numericos e entao formamos blocos do maior tamanho
possvel. Para encifrar um bloco T da mensagem, nos formamos um bloco C de
texto cifrado por
E(T ) = C T e (mod n), 0 < C < n
O procedimento de decifracao requer o conhecimento de um inverso d de e
modulo (n), que existe ja que mdc(e, (n)) = 1. Para decifrar o bloco C de texto
cifrado, nos encontramos
D(C) C d = (T e )d = T ed = T k(n)+1 (T (n) )k T T (mod n)
onde ed = k(n) + 1 para algum inteiro k, ja que ed 1 (mod (n)), e pelo teorema
de Euler, nos temos T (n) 1 (mod n), quando mdc(T, n) = 1. O par (d, n) e a
chave de decifracao. Desse modo, produzimos aqui, ainda que informalmente, uma
demonstracao do Teorema 5.3, enunciado na pagina 59.
A seguir mostraremos como usar o teorema 5.3 e implementar o sistema
de criptografia RSA. Observe que nesse sistema a questao tambem e como escrever
cifras e decifra-las. Nas discussoes a seguir T denota o texto da mensagem, esta
escrito em n
umeros (usando por exemplo alfabeto digital) e C as cifras, usadas para
encriptar a mensagem.
Defini
c
ao 5.1 Chamaremos o n
umero n = pq de m
odulo, o n
umero e de
pot
encia de encifra
c
ao, d de pot
encia de decifra
c
ao e a tripla (n, e, d) de
a chave do sistema RSA.
Defini
c
ao 5.2 O par (n, e) e a chave p
ublica do sistema RSA e o par (n, d)
e a chave privada do sistema RSA.
A comunicacao entre as fontes A e B esta baseada no uso das chaves p
ublica
e privada. A chave p
ublica (n, e) da fonte A deve ser conhecida por B e a chave
p
ublica (n0 , e0 ) da fonte B deve ser conhecida por A. Neste caso, B e A podem trocar


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

66

mensagens secretas no sistema RSA. Para que B consiga enviar mensagens para A
as etapas sao:
1. B deve saber da chave p
ublica (n, e) de A.
2. B traduz a mensagem x no alfabeto digital T (esse alfabeto deve ser conhecido
pelas mesmas fontes).
3. B escreve T em blocos numericos T1 , T2 , , Tr . Os n
umeros T1 , T2 , , Tr
nao devem ultrapassar o n
umero n = pq e devem ser primos com p e com q.
4. B encripta os blocos T1 , T2 , , Tr usando a condicao (4) do teorema 5.3 e
assim estabelece as cifras C1 , C2 , , Cr . Logo
C1 T1e (mod n), C2 T2e (mod n), , Cr Tre (mod n).
Relembre que os Ci devem ser escolhidos de tal forma que Ci < n para todo
i = 1, , r.
5. B transmite as cifras C1 , C2 , , Cr para A.
6. Ao receber a cifra, a fonte A decifra as cifras C1 , C2 , , Cr usando o resultado
do teorema 5.3, que diz que
Ti Cid (mod n), i = 1, 2, , r
usando a chave privada (n, d), onde na verdade somente d e privada para A e
somente A sabe esse n
umero.
7. Uma vez que T1 , T2 , , Tr sao conhecidos por A, ele/ela pode usar o alfabeto
digital e transformar esses blocos numericos na mensagem original x. E o
processo esta completo.

5.3

Exemplo num
erico

Ilustraremos a seguir, atraves de um exemplo numerico, como funciona o sistema


RSA. Sejam p = 59 e q = 101 dois n
umeros primos (menores do que os n
umeros


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

67

primos grandes que seriam realmente utilizados). Segue que n = p q = 59 101 =


5959 e o modulo. Tomemos e = 13 como sendo nosso expoente para a cifra RSA.
Note que estamos satisfazendo a condicao (2) do Teorema 5.3, pagina 59, ja que
temos mdc(e, (n)) = mdc(e, (p1)(q1)) = mdc(13, 58100) = mdc(13, 5800) = 1.
Neste ponto, lancando mao do algoritmo euclidiano para o calculo do mdc, visto no
Captulo 2, mostraremos que de fato mdc(13, 5800) = 1. Vejamos.
Comecamos fazendo
5800

13

446

Consideramos entao o divisor 13 e o resto 2 dessa primeira divisao e efetuamos a divisao euclidiana de 13 por 2.
13

Repetimos o processo iniciado acima, isto e, tomamos, na proxima divisao,


2 como dividendo e 1 como divisor:
2

Tendo chegado a um resto igual a zero, o algoritmo termina. O u


ltimo
resto nao nulo, das divisoes sucessivas realizadas, e o mdc procurado, ou seja,
mdc(13, 5800) = 1.
Continuando nosso exemplo, seja o seguinte alfabeto digital.
A

...

01

02

03

04

05

06

...

Tabela 5.2: Correspondencia alfa numerica

Queremos encifrar a mensagem AB


T = AB


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

68

e para isso, nos primeiro traduzimos as letras em seus equivalentes numericos e, em


seguida, os agrupamos em blocos de quatro. Segue
T = AB = 0102
Continuando com o algoritmo, nos enciframos cada bloco do texto da mensagem usando a relacao
C T e (mod pq)
No exemplo que estamos considerando, quando enciframos o bloco 0102,
obtemos o seguinte bloco de texto cifrado
C T e (mod pq) C 10213 (mod 5959) C = 3233
Devemos encifrar todos os blocos da mensagem, obtendo assim a mensagem
cifrada. Para decifra-la, temos de encontrar um inverso de e modulo (n), ou seja,
d tal que d = e1 (mod (n)). Calculos usando o algoritmo euclidiano nos possibilitam escrever o mdc de dois n
umeros inteiros como combinacao linear entre eles
(Vide Captulo 2). Isso nos leva `a descoberta de que d = 2677 e o inverso de 13
modulo (n) = 5800. Vejamos.
Vimos ha pouco que mdc(13, 5800) = 1. Para expressarmos 1 como combinacao linear de 13 e 5800 consideramos as sucessivas divisoes realizadas no algoritmo euclidiano utilizado para encontrar o mdc e temos as seguintes igualdades:
5800 = 13 446 + 2

(5.1)

13 = 2 6 + 1

(5.2)

2=12+0

(5.3)

Considerando a igualdade 5.1, teremos:


5800 = 13 446 + 2 2 = 5800 446 13

(5.4)

Considerando a igualdade 5.2, teremos:


13 = 2 6 + 1 1 = 13 6 2

(5.5)


CAPITULO 5. TEORIA DOS NUMEROS
PARA RSA

69

e relacionando 5.4 em 5.5

1 = 13 6(5800 446 13) 1 = 13 6 5800 + 2676 13 1 = 6 5800 + 2677 13


e, portanto, d = 2677 e o inverso de 13 modulo (n) = 5800.
Consequentemente, para decifrar os blocos de texto cifrado C, nos usamos
a relacao
T C 2677 (mod 5959), 0 T 5959
que e valida porque
C 2677 (T e )d T ed T 1+k(n) T (T (n) )k T 1k (mod n) = T
e mdc(T, n) = 1.
Em realidade, na criptografia RSA, p e q devem ser tomados bem grandes,
de modo a garantir que mdc(T, p) = mdc(T, q) = 1 para cada bloco a ser cifrado.
No nosso caso, sendo n = 59 101, a palavra T = AA e representada por 0101, que
nao e primo com n. Assim, a encifracao de AA pode nao funcionar.

Captulo 6
M
etodos de fatora
c
ao
O sucesso da criptografia RSA reside no fato de que, pelo menos no panorama da
Matematica computacional atual, nao ha algoritmos computacionais eficazes para
fatorar n
umeros inteiros que sejam produtos de fatores primos enormes. No entanto,
ao longo da historia, matematicos destacados dedicaram-se a desenvolver algoritmos
de fatoracao de inteiros. Neste captulo delineamos os elementos matematicos de dois
algoritmos famosos, sendo um deles de autoria de Fermat, e outro de autoria de John
Pollard, inventado em 1974.
A partir do teorema fundamental da aritmetica, nos sabemos que todo inteiro positivo pode ser escrito unicamente como produto de n
umeros primos. Neste
captulo, discutimos o problema da determinacao desta fatoracao. A maneira mais
direta para encontrar a fatoracao do inteiro positivo n e a seguinte.
Lembremos do teorema que nos diz que n e primo, ou entao tem um fator

primo nao superior a n. Consequentemente, quando dividimos n pelos primos

2, 3, 5... sucessivamente nao excedendo n, ou encontramos um fator primo p1 de n


ou entao podemos concluir que n e primo.
Se localizamos um fator primo p1 de n, olhamos entao para um fator primo
de n1 = n/p1 , comecando a nossa pesquisa com o primo p1 , uma vez que n1 nao
tem fator primo menor que p1 , e qualquer fator de n1 e tambem um fator de n.

70

CAPITULO 6. METODOS
DE FATORAC
AO

71

Continuamos, se necessario, determinando se qualquer um dos n


umeros primos nao

superiores a n1 divide n1 . Continuamos desta forma, procedendo iterativamente,


para encontrar a fatoracao prima de n.
Exemplo 6.1 Seja n = 42833. Notamos que n n
ao e divisvel por 2, 3 ou 5, mas
que 7 | n. Temos:
42833 = 7 6119
Divis
oes triviais mostram que 6119 n
ao e divisvel por nenhum dos primos 7, 11, 13, 17, 19
ou 23. No entanto, vemos que
6119 = 29 211
J
a que 29 >

211, sabemos que 211 e primo. Nos conclumos que a fatoracao prima

de 42833 e 42833 = 7 29 211.

6.1

Teste de fatorac
ao de Fermat

Descrevemos aqui uma tecnica de fatoracao interessante, muito embora nao seja
sempre eficiente. Esta tecnica e conhecida como fatoracao de Fermat, por ter sido
descoberta pelo matematico frances Pierre de Fermat no seculo 17. O metodo e
baseado no seguinte lema.
Lema 6.1 Se n e um inteiro positivo mpar , ent
ao ha uma correspondencia umpara-um entre fatoracoes de n em dois n
umeros inteiros positivos e a diferenca de
dois quadrados que e igual a n.
Demonstracao. Seja n um inteiro positivo mpar e n = ab uma fatoracao de n em
dois n
umeros inteiros positivos. Entao n pode ser escrito como a diferenca de dois
quadrados, pois
n = ab = s2 t2
onde s = (a + b)/2 e t = (a b)/2 sao ambos inteiros ja que a e b sao ambos mpares.

CAPITULO 6. METODOS
DE FATORAC
AO

72

Por outro lado, se n for a diferenca de dois quadrados, digamos n = s2 t2 ,


entao podemos fatorar n observando que n = (s t)(s + t).
Para realizar o metodo de fatoracao de Fermat, buscamos solucoes da
equacao n = x2 y 2 procurando por quadrados perfeitos da forma x2 n. Assim, para encontrar fatoracoes de n, buscamos um quadrado entre a sequencia de
n
umeros inteiros
t2 n, (t + 1)2 n, (t + 2)2 n, ...
onde t e o menor inteiro maior que

n. Este procedimento e garantido, uma vez

que a fatoracao trivial n = n 1 leva `a equacao


2 
2

n1
n+1

n=
2
2
Exemplo 6.2 Iremos fatorar o n
umero 6077 utilizando o metodo de fatoracao de

Fermat. Como 77 < 6077 < 78, n


os olhamos para um quadrado perfeito na
sequencia
782 6077 = 7
792 6077 = 164
802 6077 = 323
812 6077 = 484 = 222
Uma vez que 6077 = 812 222 , vemos que 6077 = (81 22)(81 + 22) = 59 103.
Infelizmente, o metodo de fatoracao de Fermat pode ser muito ineficiente.

Para fatorar n usando esta tecnica, pode ser necessario verificar (n + 1)/2 n
inteiros para determinar se eles sao quadrados perfeitos. A fatoracao de Fermat
funciona melhor quando e utilizada para fatorar inteiros que tem dois fatores de
tamanho similar. Apesar de o metodo de fatoracao de Fermat ser raramente usado
para fatorar inteiros grandes, ele e a base para muitos dos algoritmos de fatoracao
mais poderosos usados extensivamente em calculos de computador.

CAPITULO 6. METODOS
DE FATORAC
AO

6.2

73

M
etodo Pollard p 1

O pequeno teorema de Fermat e a base de um metodo de fatoracao inventado por


J. M. Pollard em 1974. Esse metodo, conhecido como metodo Pollard p 1, pode
encontrar um fator nao trivial de um inteiro n, quando n tem um fator primo p tal
que os n
umeros primos que dividem p 1 sao relativamente pequenos.
Para ver como esse metodo funciona, supoe-se que se deseja encontrar um
fator do inteiro positivo n. Alem disso, supoe-se que n tem um fator primo p tal
que (p 1) divide k!, onde k e um inteiro positivo que nao seja grande demais, ou
seja, deseja-se que p 1 tenha apenas fatores primos pequenos. Por exemplo, se
p = 2269, entao p 1 = 2268 = 22 34 7, de modo que p 1 divide 9!, mas nao divide

nenhum valor menor da funcao fatorial.


O motivo pelo qual se quer que p 1 divida k! e para que se possa aplicar o
pequeno teorema de Fermat. Pelo pequeno teorema de Fermat sabemos que 2p1
1 (mod p). Agora, como p 1 divide k!, k! = (p 1)q para algum inteiro q. Assim
2k! = 2(p1)q = (2p1 )q 1q = 1 (mod p)
o que implica que p divide 2k! 1. Agora, seja M o menor resduo positivo de 2k! 1
modulo n, de modo que M = (2k! 1) nt para algum inteiro t. Vemos que p divide
M , uma vez que p divide 2k! 1 e n.
Agora, para encontrar um divisor de n, precisamos apenas calcular o maior
divisor comum de M e n, d = mdc(M, n). Isso pode ser feito rapidamente, usando
o algoritmo de Euclides. Para este divisor d ser um divisor nao trivial, e necessario
que M seja nao nulo. Este e o caso quando o proprio n nao divide 2k! 1, o que e
provavel quando n tem divisores primos grandes.
Para usar este metodo, deve-se calcular 2k! onde k e um inteiro positivo.
Isso pode ser feito eficientemente via exponenciacao modular. Para encontrar o
menor resto positivo de 2k! modulo n fixa-se r1 = 2 e usa-se a seguinte sequencia de
calculos:
k
r2 r12 (mod n), r3 r23 (mod n), ..., rk rk1
(mod n).

CAPITULO 6. METODOS
DE FATORAC
AO

74

Nos ilustramos esse procedimento no exemplo seguinte:


Exemplo 6.3 Para encontrar 29! (mod 5157437), realizamos a seguinte sequencia
de calculos:

r2 r12 = 22 4 (mod 5157437)


r3 r23 = 43 64 (mod 5157437)
r4 r34 = 644 1304905 (mod 5157437)
r5 r45 = 13049055 404913 (mod 5157437)
r6 r56 = 4049136 2157880 (mod 5157437)
r7 r67 = 21578807 4879227 (mod 5157437)
r8 r78 = 48792278 4379778 (mod 5157437)
r9 r89 = 43797789 4381440 (mod 5157437)
Segue que 29! 4381440 (mod 5157437).
O exemplo seguinte ilustra o uso do metodo Pollard p 1 para encontrar
um fator do inteiro 5157437.
Exemplo 6.4 Para fatorar 5157437 usando o metodo Pollard p 1, encontramos
sucessivamente rk , o menor resduo positivo de 2k! modulo 5157437, para k =
1, 2, 3, ...,. Calculamos mdc(rk 1, 5157437) em cada etapa. Para encontrar um
fator de 5157437 precisamos de nove etapas, porque mdc(rk 1, 5157437) = 1 para
k = 1, 2, 3, 4, 5, 6, 7, 8,, mas mdc(r9 1, 5157437) = (4381439, 5157437) = 2269.
Disso resulta que 2269 e um divisor de 5157437.
O metodo Pollard p 1 nao funciona sempre. No entanto, ja que nada no
metodo depende da escolha de 2 como base, podemos estender o metodo e encontrar
o fator de mais inteiros usando inteiros que nao 2 como base. Na pratica, o metodo
Pollard p 1 e utilizado apos tentativas de divisoes por n
umeros primos pequenos,
mas antes que a artilharia pesada de metodos, como o crivo quadratico e o metodo
de curvas elpticas, seja usada.

Refer
encias Bibliogr
aficas
[1] DU SAUTOY, MARCUS, 1965- A m
usica dos n
umeros primos: a hist
oria de
um problema n
ao resolvido na matematica/Marcus du Sautoy; traducao, Diego
Alfaro. Rio de Janeiro: Jorge Zahar Ed., 2007.
[2] ROSEN, KENNETH H., Elementary Number theory and its Applications. Reading(MA): Addison-Wesley Publishing Co.2003.
[3] SINGH, SIMON., O livro dos codigos; traducao de Jorge Calife. 4a ed. Rio
de Janeiro: Record, 2004.
[4] SHOKRANIAN, SALAHODDIN., Criptografia para iniciantes / Salahoddin
Shokranian. Braslia: Editora Universidade de Braslia, 2005.
[5] SHOKRANIAN, SALAHODDIN., Teoria dos n
umeros / Salahoddin Shokranian; Marcus Soares, Hemar Godinho. Braslia: Editora Universidade de
Braslia, 1994.
CARLOS., Introducao `
[6] SAMPAIO, JOAO
a teoria dos n
umeros: um curso breve
/ Joao Carlos Vieira Sampaio, Paulo Antonio Silvani Caetano. Sao Carlos:
EdUFSCar, 2008.

75