Transcript

UNIVERSIDADE FEDERAL DE SAO CARLOS

CENTRO DE CIENCIAS EXATAS E DE TECNOLOGIA

LICENCIATURA EM MATEMATICA

Criptologia: uma abordagem historica e matematica

Diego Felipe Silveira Seabra

Sao Carlos – SP

Perıodo: marco a novembro de 2010

UNIVERSIDADE FEDERAL DE SAO CARLOS

CENTRO DE CIENCIAS EXATAS E DE TECNOLOGIA

LICENCIATURA EM MATEMATICA

Trabalho de Conclusao de Curso A

e Trabalho de Conclusao de Curso B

Criptologia: uma abordagem historica e matematica

Diego Felipe Silveira Seabra, R.A. 282421

Dissertacao apresentada ao

Departamento de Matematica

da UFSCar como parte dos

requisitos para a obtencao

do tıtulo de Licenciado em

Matematica.

Orientador: Prof. Dr. Joao Carlos Vieira Sampaio

Sao Carlos – SP

marco a novembro de 2010

A minha famılia e ao meu padrinho

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 crip-

tografia interferiu diretamente. Em assuntos polıticos 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 consequencias de uma men-

sagem interceptada por maos erradas fez com que as nacoes criassem departamentos

especıficos 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

verdadeiro significado por tras de sequencias misteriosas de letras e sımbolos. E uma

batalha intelectual constante e contınua cujos resultados interferem diretamente no

dia-a-dia das pessoas e em todo o contexto social.

Conforme o tıtulo deste trabalho, atraves de uma abordagem historica e

matematica da Criptologia farei uma viagem pela historia dos codigos e sua in-

fluencia na sociedade humana bem como um estudo mais detalhado da matematica

4

5

envolvida na criacao e quebra de codigos e cifras. Serao utilizados resultados da

Teoria dos Numeros e outros que eventualmente sejam necessarios.

Neste trabalho, a enfase e dada a parte historica e ao conteudo matematico

que sera necessario ao estudo mais detalhado de topicos da Criptologia, particular-

mente o sistema RSA, foco do trabalho de graduacao B.

Palavras-chave: criptologia, criptografia, aritmetica modulo m, funcao ϕ

de Euler.

Sumario

I Trabalho de Conclusao de Curso A 10

1 Um pouco de historia 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 numeros 34

2.1 Inteiros modulo m . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.2 Inteiros modulo m . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3 A funcao ϕ de Euler 44

II Trabalho de Conclusao de Curso B 51

4 A criptografia de chave publica 54

6

7

4.1 O nascimento da criptografia de chave publica . . . . . . . . . . . . . 56

5 Teoria dos numeros 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 Metodos de fatoracao 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 frequencias baseada em passagens extraıdas de jornais e ro-

mances cuja amostragem consistia em 100.362 caracteres do alfabeto.

Tabela compilada por H. Beker e F. Piper. . . . . . . . . . . . . . . . 26

1.4 Analise de frequencia 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

8

Lista de Tabelas

1.1 Alfabeto cifrado deslocado um determinado numero 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 numeros 1 ≤ x ≤ 51 coprimos com 51. . . . . . . . . . . . . 63

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

9

Parte I

Trabalho de Conclusao de Curso A

10

Introducao

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 rece-

bimento de mensagens de texto por celular, em todas essas situacoes esta presente a

criptografia. E se tudo isso hoje e possıvel 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 cientıfico e tecnologico nos dias

atuais.

Varios assuntos entram em pauta quando o assunto e criptografia. Manu-

tencao 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 al-

gumas 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 con-

tra 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 desem-

penhando sempre um papel importante e ocupando posicao central.

A historia da Criptologia e extremamente vasta e rica em episodios inter-

essantes e que por muitas vezes mudaram o rumo de acontecimentos importantes

da historia humana. Sao comuns as situacoes onde o destino de reis, rainhas, civi-

lizacoes 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.

Capıtulo 1

Um pouco de historia

1.1 A evolucao da escrita secreta

Um dos primeiros relatos acerca de escrita secreta data de Herodoto, que escreveu

As historias 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 lıder dos persas. Xerxes comecara a con-

struir 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 lıder 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 nao 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 Cleomenes,

Gorgo, que era casada com Leonidas, adivinhou e contou as outros que se eles ras-

passem a cera encontrariam alguma coisa escrita na madeira. Isto foi feito, reve-

lando a mensagem, entao 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 baıa de Salamina encontrou uma marinha grega preparada e

postada estrategicamente para a batalha. Os gregos, que apesar de estarem em

menor numero, atraindo os navios persas para dentro da baıa 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 tıtulo de exemplo, temos formas alternativas de ocultacao de mensagens

que foram usadas nos mais diversos momentos da historia. Os antigos chineses es-

creviam suas mensagens em seda fina que entao era amassada para formar uma

pequena bola e coberta com cera. Tal bolinha era engolida pelo mensageiro re-

sponsavel pela entrega da mensagem.

Substancias presentes em plantas tambem foram usadas como tinta invisıvel.

CAPITULO 1. UM POUCO DE HISTORIA 15

Apesar do aparente desaparecimento da escrita, por conta da transparencia, o sim-

ples aquecimento do local queima a tinta deixando a escrita com um tom de cor

proximo ao marrom que possibilita a sua leitura.

Analisando o nıvel 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 conteudo

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 conteudo 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 conteudos secretos sejam revelados.

Como a historia da Criptologia e uma luta evolutiva, ao lado da es-

teganografia 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 men-

sagem em si. Tal processo de ocultar o significado de mensagens e conhecido como

encriptacao e segue um protocolo especıfico 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 uti-

lizacao. 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 conteudo revelado e sera necessario todo um

processo para eventualmente tornar a mensagem compreensıvel.

A fim de atingir um nıvel maior de seguranca e possıvel combinar es-

teganografia 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 fotografi-

camente uma pagina de texto ate torna-la um ponto cujo diametro nao ultrapassasse

um milımetro. 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 in-

terceptados, com excecao dos casos onde os alemaes combinaram esteganografia e

criptografia, ou seja, alem de esconder a mensagem tomaram o cuidado de crip-

tografa-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 Transposicao

Neste caso temos o rearranjo das letras da mensagem de tal forma que tenhamos na

realidade anagramas como resultado. Analisando o nıvel de seguranca percebemos

que para mensagens muito curtas este metodo e muito inseguro ja que e limitado o

numero 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 nıvel muito baixo de seguranca.

A medida que o numero de letras aumenta, no entanto, o numero de re-

arranjos possıveis cresce assustadoramente, fazendo com que a tarefa de chegar a

mensagem original torne-se impossıvel quando nao se conhece o processo pelo qual

as letras foram misturadas.

Considerando os numeros 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. Evidente-

mente 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 possıvel 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 im-

portantes que sao o algoritmo e a chave. As relacoes entre ambas estao esquemati-

zadas 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 linguista holandes Auguste Kerckhoff Von Nieuwenhof, em seu livro La

Cryptographie Militaire. E o chamado Princıpio de Kerckhoff: “A seguranca de um

criptossistema nao 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 numero 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 Substituicao

Uma alternativa para a transposicao e a substituicao. Julio Cesar fazia uso com

frequencia 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 19

Alfabeto original a b c d e f g h i j k l m

Alfabeto cifrado D E F G H I J K L M N O P

Alfabeto original (continuacao) n o p q r s t u v w x y z

Alfabeto cifrado (continuacao) Q R S T U V W X Y Z A B C

Tabela 1.1: Alfabeto cifrado deslocado um determinado numero de casas (neste caso,

tres) em relacao ao alfabeto original.

Texto original veni vidi vici

Texto cifrado Y H Q L Y L G L Y L F L

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

casas a frente no alfabeto. Observemos na tabela11.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 substituicao atraves de aritmetica modular

Para tais sistemas de sigilo, inicialmente traduzimos letras em numeros. 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 trans-

formacao de cada letra da mensagem original para uma letra diferente de tal forma

1Foi convencionado em Criptologia que o alfabeto original deve ser escrito em letras minusculas

e o criptografado em maiusculas. Da mesma forma, o texto original e grafado em letras minusculas

e a mensagem cifrada em maiusculas.

CAPITULO 1. UM POUCO DE HISTORIA 20

Letra A B C D E F G H I J K L M N O

Numeral equivalente 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Letra (continuacao) P Q R S T U V W X Y Z

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 substituıda individual-

mente por outra sao chamadas “cifras monograficas”. Temos no total 26! caminhos

possıveis para produzir uma transformacao monografica.

Para descrever a cifra de substituicao de Cesar atraves de aritmetica modu-

lar, 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 A B C D E F G H I J K L M N O

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

Texto cifrado 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

D E F G H I J K L M N O P Q R

Texto original(continuacao) P Q R S T U V W X Y Z

15 16 17 18 19 20 21 22 23 24 25

Texto cifrado(continuacao) 18 19 20 21 22 23 24 25 0 1 2

S T U V W X Y Z A B C

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

Para cifrar uma mensagem usando esta transformacao, nos primeiro a tro-

camos 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:

TRABALHO DE CONCLUSAO DE CURSO

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

Traduzindo de volta para letras, nos temos:

W U D E D O K R G H F R Q F O X V D R G H F X U V R

E esta e a mensagem que nos enviamos.

O receptor decifra isto da seguinte maneira. Inicialmente, as letras sao

convertidas para numeros. 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.

2criptoanalise 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 22

G H S D U W D P H Q W R G H P D W H P D W L F D

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 numeros 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 famılia de cifras similares conhecidas por “trans-

formacoes 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 H I J K L M N O

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

Texto original(continuacao) P Q R S T U V W X Y Z

15 16 17 18 19 20 21 22 23 24 25

Texto cifrado 10 17 24 5 12 19 0 7 14 21 2 9 16 23 4

K R Y F M T A H O V C J Q X E

Texto cifrado(continuacao) 11 18 25 6 13 20 1 8 15 22 3

L S Z G N U B I P W D

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

L J M K G M G M F Q E X M W

Observe tambem que o texto cifrado

F E X E N Z M B M K J N H M G M Y Z M N

corresponde ao texto original

D O N O T R E V E A L T H E S E C R E T

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 domınio muculmano. A civilizacao islamica alcancou

um nıvel 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 pacıfica centrada na organizacao e menos interessada em conquistas.

Nesse contexto, temos dentro da historia da criptografia uma mencao hon-

rosa 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 substi-

tuicao monoalfabetica que por seculos permanecera invulneravel.

Para que a criptoanalise pudesse se desenvolver foi necessario um nıvel con-

sideravel de desenvolvimento em areas tais como matematica, linguıstica e estatıstica

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 final-

idade foi estabelecer a frequencia 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 frequencia 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 linguısticos do profeta.

Como consequencia ate natural deste tipo de trabalho, descobriram partic-

ularidades muito interessantes das letras. A tıtulo 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

frequencia 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 Ya’qub 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 Su-

laimaniyyah em Istambul e leva o tıtulo “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 lıngua, suficientemente longo

para preencher uma pagina. Entao contamos a frequencia com que cada letra

aparece. A letra que aparecer com maior frequencia chamamos de “primeira”, en-

quanto a segunda mais frequente recebe o nome de “segunda”, a terceira em ordem

de frequencia vira “terceira” e assim por diante, ate contarmos todas as letras difer-

entes no texto. Em seguida examinamos o criptograma que desejamos decifrar e

tambem classificamos os seus sımbolos. Descobrimos qual o sımbolo que aparece

com maior frequencia e o transformamos na “primeira” letra do texto que usamos

como amostra. O segundo sımbolo mais comum e transformado na “segunda” letra,

enquanto o terceiro sımbolo mais frequente vira a “terceira” letra e assim por diante,

ate convertermos todos os sımbolos do criptograma que desejamos decifrar.

Temos na tabela 1.3 a frequencia das letras para o alfabeto ingles.

Figura 1.3: Tabela de frequencias baseada em passagens extraıdas de jornais e ro-

mances cuja amostragem consistia em 100.362 caracteres do alfabeto. Tabela com-

pilada 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 frequencia, resolveu um problema que ha muito intrigava os envolvidos

na tentativa de quebra de codigos, particularmente a cifra de substituicao monoal-

fabetica, 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 conteudo de uma mensagem atraves da simples analise de frequencia de seus

caracteres.

Vale, no entanto, fazer uma observacao. Nao e possıvel fazer uso incondi-

cional da tecnica descrita por al-Kindi, ja que a lista padrao das frequencias de-

scrita na Tabela 1.3 oferece apenas uma media e nao deve corresponder fielmente as

frequencias 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 proba-

bilidade de fidelidade as frequencias tidas como padrao.

1.4 Criptoanalise de um texto cifrado

Vejamos agora um exemplo de aplicacao da analise de frequencia 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 SX’XJMI, 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 possıveis nao e nada pratico.

Lancamos mao entao da analise de frequencia. O primeiro passo e ate mesmo a

reacao natural de qualquer criptoanalista frente a uma mensagem cifrada desse tipo

e fazer uma analise da frequencia com que cada letra ocorre na mensagem cifrada.

Temos entao a tabela 1.4, na pagina 28.

Figura 1.4: Analise de frequencia da mensagem cifrada.

Evidentemente a frequencia 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 frequencias 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

E razoavel supor que estas tres letras representam as tres letras mais comuns

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 frequencia 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. SeO 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 frequencia 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 unicas palavras do ingles formadas por uma unica 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 contınua de caracteres.

O que se segue e um procedimento que nos permite identificar a letra h de-

pois de termos identificado a letra e. Fundamentamos-nos na seguinte constatacao.

No idioma ingles a letra h aparece com frequencia 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 frequencia 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 maiusculas e as letras do texto decodificado em minusculas.

PCQ VMJiPD LhiK LiSe KhahJaWaV haV ZCJPe EiPD KhahJiUaJ LhJee

KCPK. CP Lhe LhCMKaPV aPV IiJKL PiDhL, QheP Khe haV ePVeV Lhe LaRe

CI Sa’aJMI, 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 Sa’aJMI,

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 tıtulo thousand and one nights(Mil e uma noites), e parece

provavel que a ultima 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 identi-

dade 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 possıvel completar a crip-

toanalise, baseando-nos na observacao da sequencia VOIDBY que sugere a uti-

lizacao 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 AVOIDBYGER-

SPC 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 inıcio do alfabeto cifrado, e sim tres letras depois do

comeco. Isto e possıvel 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 com-

pleto, decodificamos todo o texto cifrado e chegamos ao conteudo 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 Ma’aruf, 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.

Capıtulo 2

Elementos da teoria dos numeros

Neste e no proximo capıtulo estaremos estudando elementos de teoria dos numeros

que sao pre-requisitos ao desenvolvimento futuro deste trabalho de conclusao de

curso.

2.1 Inteiros modulo 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 divisıvel por b se b dividir a. Por exemplo, (−2) | 8, pois8 = (−2)(−4).

Observe que zero e sempre divisıvel 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 numeros naturais. O numero 1 tem um unico

divisor que e o proprio numero 1.

Teorema 2.1 Sejam a,a′,b numeros inteiros.

1. Se b | a e b | a′, entao

b | (a+ a′), b | (a− a′), b | (a′ − a), b | (aa′).

2. Se k | b e b | a, entao k | a.

3. Se b | a, entao b | at para qualquer inteiro t.

Demonstracao: Pela suposicao existem inteiros c e c′ tal que a = bc e

a′ = bc′, respectivamente. Entao, a + a′ = b(c + c′). Logo, b | (a + a′). Tambem

temos aa′ = bbcc′ = b2cc′. Portanto, b | (aa′). 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 modulo m

Seja m um inteiro natural.

CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS 36

Definicao 2.1 Dizemos que dois inteiros a e b sao congruentes modulo 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 bmodulom e no casom | (b−a) dizemos que b e congruente

com a modulo 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

numeros 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 numeros modulo

m.

CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS 37

Teorema 2.2 As seguintes propriedades sao 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) entao

(a+ c) ≡ (b+ d) (mod m), e

(a− c) ≡ (b− d) (mod m).

3. Se a ≡ b (mod m) e c ≡ d (mod m) entao

ac ≡ bd (mod m).

4. Se a ≡ b (mod m) entao ay ≡ by (mod m) para todo y ∈ Z.

Demonstracao: 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 numeros 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 numero inteiro x para que

um numero dado a seja congruente com x modulo m. Para fazer isso, na pratica

aplicamos a divisao de Euclides.

Teorema 2.3 (Divisao de Euclides) Sejam a, b ∈ N dois inteiros naturais.

Entao, existem unicos 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

divisao(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

unico 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 modulo m ou numero b (mod m).

A classe associada ao numero 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 operacoes modulo 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 modulo m e o produto modulo m delas, da seguinte maneira, respectiva-

mente,

b (mod m) + d (mod m) := b+ d (mod m), (2.4)

em que a soma do lado direito e a classe de b+ d modulo m.

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) = a′ (mod m) e

b (mod m) = b′ (mod m), entao a ≡ a′ (mod m) e b ≡ b′ (mod m).

Teremos entao a+ b ≡ a′ + b′ (mod m) e a · b ≡ a′ · b′ (mod m).

Portanto a+ b (mod m) = a′ + b′ (mod m) e ab (mod m) = a′b′ (mod m).

Da mesma forma que no conjunto Z existem os numeros 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 inversıvel.

CAPITULO 2. ELEMENTOS DA TEORIA DOS NUMEROS 41

Agora, podemos nos perguntar quando uma classe e inversıvel.

Para responder a essa pergunta invocamos a seguinte proposicao. Mas antes

relembremos o conceito de maximo divisor comum, a seguir:

Definicao 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

Observacao 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, entao

mdc(a, b) = max{x ∈ Z | x | a e x | b}

Agora sim, veremos a proposicao.

Proposicao 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.

Proposicao 2.2 Seja b 6= 0 um numero inteiro. Entao a classe b (mod m) tem

inversa (e inversıvel) se e somente se mdc(b,m) = 1.

Demonstracao: 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 provare-

mos 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 numeros 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.

Capıtulo 3

A funcao ϕ 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 funcoes multiplicativas.

O objetivo neste capıtulo 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 numeros inteiros positivos

relativamente primos com n e que sao menores que n. Por ora, vejamos algumas

definicoes que nos serao uteis no decorrer deste capıtulo e do estudo que faremos.

Definicao 3.1 Uma funcao aritmetica e uma funcao que e definida para todos os

inteiros positivos.

Definicao 3.2 Uma funcao aritmetica f e chamada multiplicativa se f(mn) =

f(m)f(n) sempre que m e n sao 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

CAPITULO 3. A FUNCAO ϕ DE EULER 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.

Definicao 3.3 Um inteiro positivo p 6= 1 e chamado “primo” se os seus unicos

divisores sao 1 e p.

Um numero inteiro positivo diferente de 1 e “composto” quando nao e primo.

Definicao 3.4 Dados a e b inteiros, dizemos que a e b sao relativamente primos ou

primos entre si se mdc(a, b) = 1,ou seja, se a e b nao tem fatores positivos comuns

alem da unidade.

Teorema 3.1 Se p e primo, entao ϕ(p) = p−1. Reciprocamente, se p e um inteiro

positivo com ϕ(p) = p− 1, entao p e primo.

Demonstracao: 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.

Definicao 3.5 (A funcao ϕ de Euler) Seja m ∈ N. Seja

E(m) = {x ∈ N | x ≤ m e mdc(x,m) = 1}.

Usando o sımbolo #E para denotar o numero de elementos do conjunto (finito) E,

nos definimos:

ϕ : N −→ N

ϕ(m) = #E(m)

ou seja,

CAPITULO 3. A FUNCAO ϕ DE EULER 46

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

Exemplo 3.2 1. Seja m = 5, entao E(5) = {1, 2, 3, 4} e assim temos que

ϕ(5) = 4.

2. ϕ(1) = 1, ϕ(2) = 1 e estes sao os dois unicos naturais com esta propriedade.

3. Se p e primo, entao ϕ(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 − pa−1.

Demonstracao: Os inteiros positivos menores que pa que nao sao relativa-

mente primos com pa sao aqueles inteiros nao excedendo pa que sao divisıveis por

p. Estes sao os inteiros da forma kp onde 1 ≤ k ≤ pa−1. Como ha exatamente pa−1

desses inteiros, ha pa − pa−1 inteiros menores que pa que sao relativamente primos

com pa. Portanto, ϕ(pa) = pa − pa−1.

Exemplo 3.3 Usando o teorema 3.2, nos encontramos que ϕ(53) = 53 − 52 = 100,

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

Definicao 3.6 Um conjunto de inteiros {r1, ..., rs} e chamado um ‘sistema reduzido

de resıduos 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 resıduos

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 resıduos

modulo m por (Z/mZ)∗.

CAPITULO 3. A FUNCAO ϕ DE EULER 47

Teorema 3.3 Sejam m,n ∈ N tais que mdc(m,n) = 1. Entao ϕ(m · n) =

ϕ(m)ϕ(n).

Demonstracao: Sejam x1, ..., xϕ(n) e y1, ..., yϕ(m) sistemas reduzidos de

resıduos modulo n e m respectivamente. Nossa intencao e mostrar que o conjunto

B das combinacoes lineares

bij = xim+ yjn

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 y′is formam um sistema reduzido modulo m. Similar-

mente vemos que i = k.

CAPITULO 3. A FUNCAO ϕ DE EULER 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, concluımos

que mdc(m, y) = mdc(n, x) = 1. Portanto x e y sao inversıveis 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 querıamos demonstrar.

Teorema 3.4 (Euler) Sejam a ∈ Z, m ∈ N tais que mdc(a,m) = 1. Entao

aϕ(m) ≡ 1 (mod m)

Demonstracao: Seja {r1, ..., rϕ(m)} um sistema reduzido de resıduos

modulo m. Vamos primeiramente verificar que o conjunto ar1, ..., arϕ(m) e tambem

um sistema reduzido de resıduos 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 inversıveis 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;

CAPITULO 3. A FUNCAO ϕ DE EULER 49

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)x1x2 · · · xϕ(m) (mod m) = x1x2 · · · 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)

Referencias Bibliograficas

[1] ROSEN, KENNETH H., Elementary Number theory and its Applications. Read-

ing(MA): Addison-Wesley Publishing Co.2003.

[2] SINGH, SIMON., O livro dos codigos ; traducao de Jorge Calife. – 4aed. – Rio

de Janeiro: Record, 2004.

[3] SHOKRANIAN, SALAHODDIN., Criptografia para iniciantes / Salahoddin

Shokranian. – Brasılia: Editora Universidade de Brasılia, 2005.

[4] SHOKRANIAN, SALAHODDIN., Teoria dos numeros / Salahoddin Shokra-

nian; Marcus Soares, Hemar Godinho. – Brasılia: Editora Universidade de

Brasılia, 1994.

[5] SAMPAIO, JOAO CARLOS., Introducao a teoria dos numeros: um curso breve

/ Joao Carlos Vieira Sampaio, Paulo Antonio Silvani Caetano. – Sao Carlos:

EdUFSCar, 2008.

50

Parte II

Trabalho de Conclusao 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 publica”, tendo como foco a “criptografia RSA”.

Veremos alguns resultados da Teoria dos Numeros que possibilitaram e im-

pulsionaram o seu desenvolvimento, bem como algumas de suas caracterısticas prin-

cipais e implicacoes ao mundo dos negocios e ao nosso cotidiano de maneira geral.

Considerando a importancia da questao da fatoracao de numeros 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 publica, aritmetica

modulo m, pequeno teorema de Fermat.

52

Introducao

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 desen-

volvimento de novas formas de criptografia, cada vez mais seguras e de viavel im-

plementacao. 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 Con-

clusao 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 conteudo.

Toda essa logıstica necessaria para o processo da troca de mensagens e o

nıvel de seguranca que essa forma de criptografia oferece mostraram-se incompatıveis

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 publica, que estudaremos neste

trabalho.

53

Capıtulo 4

A criptografia de chave publica

Um dos problemas essenciais enfrentados por qualquer um que quisesse enviar men-

sagens secretas atraves de algum sistema criptografico e a questao da chave. Con-

forme 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 tıtulo 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 numero “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 de-

safiando os criadores de codigos e dificultando muito o processo de envio e rece-

bimento de mensagens secretas. O problema persistiu ate chegarmos a epoca dos

negocios via internet e neste ponto imaginemos a situacao.

A logıstica necessaria para que as transacoes comerciais pudessem ser rea-

lizadas 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 prove-

niente 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

publica.

Uma analogia entre o processo de codificacao e decodificacao com o pro-

cedimento 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 logıstica

necessaria para o envio da chave utilizada para trancar e destrancar a mensagem.

No sistema de criptografia de chave publica, no entanto, existe uma

diferenca fundamental. Continuando com nossa analogia, neste caso terıamos 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 publica.

Imaginemos que uma porta guarda a entrada da secao segura da pagina

virtual de uma empresa. Como agora nao e mais imprescindıvel 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 numero 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 numeros dos cartoes de credito.

4.1 O nascimento da criptografia de chave publica

A criptografia de chave publica 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 ape-

nas atras de portas fechadas do governo, mas que suas ideias se tornassem publicas.

O artigo prenunciou uma nova era da comunicacao eletronica segura e secreta.

A ideia por tras da criptografia de chave publica 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 princıpios?

O desafio estava lancado e muitos anos depois, apos varias tentativas

frustradas, alguns criptografos ja comecavam a duvidar de que fosse possıvel cons-

truir tal codigo. Foi quando surgiu a figura de Ron Rivest, do Instituto de Tecnologia

de Massachussetts (MIT), que nutria grande interesse por questoes complexas en-

volvendo matematica e ciencia da computacao. Ao ser apresentado ao artigo da

dupla de Stanford ficou fascinado imediatamente por seu conteudo que envolvia

computacao, logica e matematica. Percebeu que era um problema com claras im-

plicacoes 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 difıcil

de calcular e dedicou-se entao a criar um sistema de criptografia de chave publica

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

ideias que permitissem implementar o sonho de Diffie e Hellman. A medida em que

exploravam diversos problemas matematicos considerados difıceis, foram aos poucos

se aproximando cada vez mais das ideias oriundas da Teoria dos Numeros. 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 difıcil problema da fatoracao de numeros e

sabiam que nao existiam boas propostas de programas que conseguissem decompor

numeros 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 difıcil,

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 Ameri-

can, 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.

Capıtulo 5

Teoria dos numeros para RSA

Teorema 5.1 (Pequeno Teorema de Fermat) Seja p um numero primo. Se a

e um numero inteiro tal que mdc(p, a) = 1, entao

ap−1 ≡ 1 (mod p)

Esse teorema e uma consequencia direta do seguinte teorema de Euler (a demons-

tracao 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

ap−1 ≡ 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 sao numeros 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 ≡ Cd (mod pq).

Lema 5.1 Sejam a, b e c inteiros positivos tais que a e b sao relativamente primos.

1. Se b | ac entao b | c.

2. Se a | c e b | c, entao 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

m · a+ n · b = 1

Multiplicando esta expressao por c, obtemos

m · ac+ n · bc = c

E obvio que b | nbc. Mas, por hipotese b | ac. Logo b | (m · ac+ n · bc) = c.

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 divisıvel por ab, o que prova a afirmacao (2).

Usaremos agora o lema 5.1 para demonstrar uma propriedade muito impor-

tante dos numeros primos. Vejamos.

Propriedade Fundamental dos Numeros Primos: Seja p um numero

primo e a e b inteiros positivos. Se p | ab, entao p | a ou p | b.

Demonstracao. Se p | a, a prova esta concluıda. 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 calculo 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 2

Consideramos entao o divisor 35 e o resto 21 dessa primeira divisao e efe-

tuamos a divisao euclidiana de 35 por 21.

35 21

14 1

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

7 1

Finalmente, chegamos a divisao exata

14 7

0 2

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

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

21 2

35 21

14 1

21 14

7 1

14 7

0 2

Lembremo-nos de que o ultimo 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 aplicacao interessante

Os dois teoremas, Teorema 5.1 e Teorema 5.2, tem uma aplicacao interessante, ja

que podem ser usados para verificar se um dado inteiro positivo NAO E PRIMO.

Por exemplo, consideremos o numero n = 51. Veremos a seguir que esse numero

nao e primo. Inicialmente, facamos uma lista (Tabela 5.1) dos numeros 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

1 2 4 5 7 8 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 numeros 1 ≤ x ≤ 51 coprimos com 51.

Agora, observamos que n = 51 e um numero ımpar e portanto coprimo com

2. Se 51 fosse primo, a seguinte congruencia deveria ser verdadeira:

251−1 ≡ 1 (mod 51)

mas apos calcular o lado esquerdo da congruencia acima (usando o programa Maple,

por exemplo) podemos ver que

251−1 = 250 = 1125899906842624

e

250 − 1 = 1125899906842623

que nao e divisıvel por 51. Portanto, 51 nao e primo.

Observacao 5.1 Tambem poderia ser usado o fato de que ϕ(51) 6= 51 − 1 = 50,

mostrando igualmente que 51 nao e primo. O objetivo desse exemplo nao era real-

mente verificar o fato trivial que 51 nao e primo, mas usar o pequeno teorema de

Fermat para chegar a esse fato.

5.2 Implementacao 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 indivıduos 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 indivıduos e que deve ser mantida secreta do resto da rede, um novo

tipo de sistema de cifra, chamado sistema de cifra de chave publica, foi introduzido.

Neste tipo de sistema, chaves de encifracao podem ser tornadas publicas 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 publica para estabelecer comu-

nicacoes secretas em uma rede de “n” indivıduos, cada indivıduo 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 indivıduo “i” deseja enviar uma mensagem para o indivıduo

“j”, as letras da mensagem sao traduzidas para suas equivalentes numericas e com-

binadas em blocos de tamanho especıfico. 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 indivıduo “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 indivıduo “j”, nenhum

indivıduo 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 publica 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

possıvel. 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) ≡ Cd = (T e)d = T ed = T kϕ(n)+1 ≡ (Tϕ(n))kT ≡ 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 numeros (usando por exemplo alfabeto digital) e C as cifras, usadas para

encriptar a mensagem.

Definicao 5.1 Chamaremos o numero n = pq de modulo, o numero e de

potencia de encifracao, d de potencia de decifracao e a tripla (n, e, d) de

a chave do sistema RSA.

Definicao 5.2 O par (n, e) e a chave publica 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 publica

e privada. A chave publica (n, e) da fonte A deve ser conhecida por B e a chave

publica (n′, e′) 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 publica (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 numeros T1, T2, · · · , Tr

nao devem ultrapassar o numero 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 ≡ T e1 (mod n), C2 ≡ T e

2 (mod n), · · · , Cr ≡ T er (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 ≡ Cdi (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 numero.

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 numerico

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

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

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, (p−1)(q−1)) = mdc(13, 58·100) = mdc(13, 5800) = 1.

Neste ponto, lancando mao do algoritmo euclidiano para o calculo do mdc, visto no

Capıtulo 2, mostraremos que de fato mdc(13, 5800) = 1. Vejamos.

Comecamos fazendo

5800 13

2 446

Consideramos entao o divisor 13 e o resto 2 dessa primeira divisao e efetu-

amos a divisao euclidiana de 13 por 2.

13 2

1 6

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

2 como dividendo e 1 como divisor:

2 1

0 2

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

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 B C D E F ...

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 men-

sagem 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 = e−1 (mod ϕ(n)). Calculos usando o algoritmo euclidiano nos pos-

sibilitam escrever o mdc de dois numeros inteiros como combinacao linear entre eles

(Vide Capıtulo 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 com-

binacao linear de 13 e 5800 consideramos as sucessivas divisoes realizadas no algo-

ritmo euclidiano utilizado para encontrar o mdc e temos as seguintes igualdades:

5800 = 13 · 446 + 2 (5.1)

13 = 2 · 6 + 1 (5.2)

2 = 1 · 2 + 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 ≡ C2677 (mod 5959), 0 ≤ T ≤ 5959

que e valida porque

C2677 ≡ (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.

Capıtulo 6

Metodos de fatoracao

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 numeros 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 capıtulo 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 in-

teiro positivo pode ser escrito unicamente como produto de numeros primos. Neste

capıtulo, 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 FATORACAO 71

Continuamos, se necessario, determinando se qualquer um dos numeros 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 nao e divisıvel por 2, 3 ou 5, mas

que 7 | n. Temos:

42833 = 7 · 6119

Divisoes triviais mostram que 6119 nao e divisıvel por nenhum dos primos 7, 11, 13, 17, 19

ou 23. No entanto, vemos que

6119 = 29 · 211

Ja que 29 >√211, sabemos que 211 e primo. Nos concluımos que a fatoracao prima

de 42833 e 42833 = 7 · 29 · 211.

6.1 Teste de fatoracao 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 , entao ha uma correspondencia um-

para-um entre fatoracoes de n em dois numeros 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 numeros 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 FATORACAO 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 − y2 procurando por quadrados perfeitos da forma x2 − n. As-

sim, para encontrar fatoracoes de n, buscamos um quadrado entre a sequencia de

numeros 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

n =

(

n+ 1

2

)2

−(

n− 1

2

)2

Exemplo 6.2 Iremos fatorar o numero 6077 utilizando o metodo de fatoracao de

Fermat. Como 77 <√6077 < 78, nos 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 FATORACAO 73

6.2 Metodo 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 numeros 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 = 22347, 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 2p−1 ≡1 (mod p). Agora, como p− 1 divide k!, k! = (p− 1)q para algum inteiro q. Assim

2k! = 2(p−1)q = (2p−1)q ≡ 1q = 1 (mod p)

o que implica que p divide 2k!−1. Agora, seja M o menor resıduo 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:

r2 ≡ r21 (mod n), r3 ≡ r32 (mod n), ..., rk ≡ rkk−1 (mod n).

CAPITULO 6. METODOS DE FATORACAO 74

Nos ilustramos esse procedimento no exemplo seguinte:

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

de calculos:

r2 ≡ r21 = 22 ≡ 4 (mod 5157437)

r3 ≡ r32 = 43 ≡ 64 (mod 5157437)

r4 ≡ r43 = 644 ≡ 1304905 (mod 5157437)

r5 ≡ r54 = 13049055 ≡ 404913 (mod 5157437)

r6 ≡ r65 = 4049136 ≡ 2157880 (mod 5157437)

r7 ≡ r76 = 21578807 ≡ 4879227 (mod 5157437)

r8 ≡ r87 = 48792278 ≡ 4379778 (mod 5157437)

r9 ≡ r98 = 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 resıduo 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 numeros primos pequenos,

mas antes que a artilharia pesada de metodos, como o crivo quadratico e o metodo

de curvas elıpticas, seja usada.

Referencias Bibliograficas

[1] DU SAUTOY, MARCUS, 1965- A musica dos numeros primos: a historia de

um problema nao 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. Read-

ing(MA): Addison-Wesley Publishing Co.2003.

[3] SINGH, SIMON., O livro dos codigos ; traducao de Jorge Calife. – 4aed. – Rio

de Janeiro: Record, 2004.

[4] SHOKRANIAN, SALAHODDIN., Criptografia para iniciantes / Salahoddin

Shokranian. – Brasılia: Editora Universidade de Brasılia, 2005.

[5] SHOKRANIAN, SALAHODDIN., Teoria dos numeros / Salahoddin Shokra-

nian; Marcus Soares, Hemar Godinho. – Brasılia: Editora Universidade de

Brasılia, 1994.

[6] SAMPAIO, JOAO CARLOS., Introducao a teoria dos numeros: um curso breve

/ Joao Carlos Vieira Sampaio, Paulo Antonio Silvani Caetano. – Sao Carlos:

EdUFSCar, 2008.

75