• Nenhum resultado encontrado

Factorização de inteiros com a congruência de quadrados

N/A
N/A
Protected

Academic year: 2021

Share "Factorização de inteiros com a congruência de quadrados"

Copied!
131
0
0

Texto

(1)

Universidade de Aveiro Departamento de Matemática 2010

Bruno Miguel Santos

Factorização de Inteiros com a Congruência de

Pinto Marques Custódio Quadrados

(2)

Universidade de Aveiro Departamento de Matemática 2010

Bruno Miguel Santos

Factorização de Inteiros com a Congruência de

Pinto Marques Custódio Quadrados

Dissertação apresentada à Universidade de Aveiro para cumprimento dos requi-sitos necessários à obtenção do grau de Mestre em Matemática e Aplicações, realizada sob a orientação científica do Doutor Paulo José Fernandes Almeida, Professor Auxiliar do Departamento de Matemática da Universidade de Aveiro

(3)
(4)

o júri

presidente Prof. Doutor Domingos Moreira Cardoso

Professor Catedrático do Departamento de Matemática da Universidade de Aveiro

Prof. Doutor José Pedro Miranda Mourão Patrício

Professor Auxiliar do Departamento de Matemática da Universidade do Minho

Prof. Doutor Paulo José Fernandes Almeida (Orientador)

(5)

agradecimentos Penso que esta seja a parte mais difícil de escrever de todo este trabalho, uma vez que é muito difícil agradecer em tão pouco espaço a pessoas que tantos agradecimentos me mere-cem. De qualquer forma, prometo que me vou esforçar para o fazer o melhor que consigo... • Quero agradecer ao Prof. Doutor Paulo José Fernandes Almeida pelo empenho, dedicação e sabedoria com que orientou este trabalho, pela paciência que teve para ler todos os meus rascunhos, pela atenção com que corrigiu os muitos erros que fui dando, e pela forma como me incentivou em todas as etapas deste trabalho. • Gostaria de agradecer de uma forma especial também à Prof. Doutora Ana Breda por me ter seguido tão atentamente ao longo da minha Licenciatura e do Mestrado, pela imensa paciência com que sempre me ouviu e ajudou a resolver os vários proble-mas que fui tendo, pelos conselhos sábios que sempre me transmitiu, e, sobretudo, por sempre me ter encorajado a prosseguir com os meus estudos, ano após ano. • Devo também um enorme agradecimento ao Prof. Doutor Domingos Cardoso e à Prof. Doutora Enide Martins pelo enorme incentivo que me deram no sentido de prosseguir para o Doutoramento, e pela forma como, desde que finalmente pus esta ideia em consideração, me fizeram sentir que esta é uma boa decisão. Pelas mesmas razões, agradeço também e novamente ao Prof. Doutor Paulo Almeida e à Prof. Doutora Ana Breda, bem como ao Prof. Doutor Luís Castro, ao Prof. Doutor Helmuth Malonek, ao Prof. Doutor António Caetano, à Prof. Doutora Rosália Rodrigues e ao Prof. Doutor António Pereira, por todo o apoio que me deram. • Com a mesma gratidão com que sempre o fiz, quero agradecer também ao meu primo Paulo Bernardes por acompanhar os meus estudos e influenciar todas as minhas decisões importantes desde o Ensino Básico, e por estar sempre disponível para me ouvir e me aconselhar quando preciso dos seus inestimáveis conselhos. • À minha namorada, Isa, agradeço toda a compreensão que tem tido comigo ao longo destes anos nas melhores e nas piores alturas, por compreender as minhas ausências constantes em prol dos meus estudos, por muitas vezes pôr de parte os seus problemas para viver os meus, e pela forma sempre carinhosa como me faz entender que sou uma pessoa tão demasiada e desnecessariamente preocupada com o trabalho que por vezes me esqueço que há muito, muito mais para além de estudar. • Finalmente, e como se tudo o que lhes devo coubesse neste tão pequeno e modesto pedaço de papel, agradeço aos meus pais, aos meus avós, à minha irmã e à minha madrinha, não só por compreenderem a minha falta de disponibilidade constante e por me quererem tão bem tanto nos dias bons como nos dias maus, mas também e sobretudo por me fazerem o filho, o neto, o irmão e o afilhado mais feliz deste mundo. Muito, mas mesmo muito obrigado.

(6)

palavras-chave factorização de inteiros, congruência de quadrados, método das fracções con-tínuas, CFRAC, crivo quadrático, QS, PQS, PPQS, MPQS, crivo dos corpos de números, NFS, GNFS, SNFS.

resumo Qualquer número inteiro n ímpar e composto pode ser escrito como diferença dos quadrados de dois outros números inteiros. Desta forma, se conhecermos estes inteiros podemos facilmente factorizar n. No entanto, e embora simples e engenhosa, esta ideia frequentemente utilizada por Pierre de Fermat para factorizar números pequenos apresenta alguns problemas quando o tamanho dos inteiros a factorizar aumenta. Deste modo, torna-se mais fácil e portanto preferível escrever não n mas sim um seu qualquer múltiplo como diferença de dois quadrados, os quais, na maior parte dos casos, nos permitem de igual forma factorizar n. Esta pequena modificação à ideia de Fermat, designada por congruência de quadrados, está por detrás de um grande número de algo-ritmos de factorização modernos como o “método das fracções contínuas”, o “crivo quadrático” e o “crivo dos corpos de números”. Nesta dissertação estu-damos cada um destes algoritmos e alguns dos seus melhoramentos em detalhe, apresentando alguns exemplos demonstrativos do seu funcionamento.

(7)

keywords integer factorization, quadratic congruences, continued fractions method, CFRAC, quadratic sieve, QS, PQS, PPQS, MPQS, number field sieve, NFS, GNFS, SNFS.

abstract Every odd and composite integer n may be written as a difference of the squares of two other integers. Thus, if we know these integers we may easily factor n. However, simple and ingenious as it may be, this idea often used by Pierre de Fermat to factor small numbers begins to lose its efficiency as the size of the integers being factored gets larger. That being, it becomes easier and thus preferable to write not n but any of its multiples as a difference of two squares, which, most of the times, allow us to factor n as well. This small modification to Fermat’s idea, called the quadratic congruence method, lies behind a large number of modern factorization algorithms, such as the “continued fractions

method”, the “quadratic sieve” and the “number field sieve”. In this

disser-tation we study each of these algorithms and some of their improvements in detail, and present some examples of their application.

(8)
(9)

Conteúdo

Introdução xvii

1 Conceitos Introdutórios 1

1.1 Conceitos da Teoria dos Números . . . 1

1.1.1 Máximo Divisor Comum e Algoritmo de Euclides . . . 2

1.1.2 Números Primos e Números Compostos . . . 5

1.1.3 Relações de Congruência e Aritmética Modular . . . 6

1.1.4 Congruências Polinomiais e Inversos Modulares . . . 7

1.1.5 Resíduos Quadráticos e Símbolo de Legendre . . . 10

1.2 Conceitos da Teoria da Complexidade Algorítmica . . . 12

2 Método das Fracções Contínuas 15 2.1 Conceitos Fundamentais . . . 15

2.1.1 Introdução às Fracções Contínuas Simples . . . 15

2.1.2 Representação de Números Reais . . . 16

2.1.3 Aproximações Racionais e Convergentes . . . 17

2.1.4 Fracções Contínuas Infinitas Periódicas . . . 22

2.1.5 Bases de Factores e Números Suaves . . . 23

2.2 Método das Fracções Contínuas (“CFRAC”) . . . 25

2.2.1 Ideia Fundamental do “CFRAC” . . . 25

2.2.2 Pesquisa de Números Suaves no “CFRAC” . . . 25

2.2.3 Escolha da Base de Factores no “CFRAC” . . . 26

2.2.4 Escolha do Multiplicador a Utilizar no “CFRAC” . . . 28

2.2.5 Exemplo de Utilização do “CFRAC” . . . 29

3 Crivo Quadrático 35 3.1 Conceitos Fundamentais . . . 35

3.1.1 Raízes Quadradas Módulo Números Primos . . . 35

3.1.2 Raízes Quadradas Módulo Potências de Números Primos . . . 42

3.1.3 Reconhecimento de Primos (Crivo de Eratóstenes) . . . 45

3.1.4 Reconhecimento de Números Suaves . . . 46

3.2 Método do “Crivo Quadrático” (“QS”) . . . 48

(10)

3.2.2 Pesquisa de Números Suaves no “Crivo Quadrático” . . . 49

3.2.3 Escolha da Base de Factores e do Intervalo de Crivagem . . . 51

3.2.4 Exemplo de Aplicação do “Crivo Quadrático” . . . 53

3.2.5 Considerações e Melhoramentos da Etapa de Crivagem . . . 56

3.3 Primos Grandes no “Crivo Quadrático” . . . 60

3.3.1 “Crivo Quadrático com Um Primo Grande” (“PQS”) . . . 60

3.3.2 Exemplo de Aplicação do “PQS” . . . 62

3.3.3 “Crivo Quadrático com Dois Primos Grandes” (“PPQS”) . . . 64

3.3.4 Exemplo de Aplicação do “PPQS” . . . 67

3.4 “Crivo Quadrático Multi-Polinomial” (“MPQS”) . . . 69

3.4.1 Ideia Fundamental do “MPQS” . . . 69

3.4.2 Escolha dos Coeficientes dos Polinómios . . . 71

3.4.3 Escolha do Intervalo de Crivagem e Inicialização . . . 73

3.4.4 Exemplo de Aplicação do “MPQS” . . . 75

3.4.5 Análise Comparativa dos Polinómios Utilizados em §3.4.4 . . . 77

4 Crivo dos Corpos de Números 81 4.1 Conceitos Fundamentais . . . 81

4.1.1 Corpos de Números . . . 82

4.1.2 Normas num Corpo de Números . . . 83

4.1.3 Raízes de Polinómios Módulo Primos . . . 84

4.2 Crivo dos Corpos de Números (“NFS”) . . . 88

4.2.1 Introdução à Ideia Fundamental do “NFS” . . . 88

4.2.2 Descrição da Ideia Fundamental do “NFS” . . . 88

4.2.3 Números Suaves em Z no “NFS” . . . . 89

4.2.4 Números Suaves em Z[α] no “NFS” . . . . 90

4.2.5 Etapa de Crivagem do “NFS” . . . 92

4.2.6 Base Algébrica de Factores no “NFS” . . . 94

4.2.7 Base de Caracteres Quadráticos . . . 95

4.2.8 Dependências Lineares no “NFS” . . . 97

4.3 Pormenores Importantes do “NFS” . . . 98

4.3.1 Definição dos Parâmetros e Complexidade . . . 98

4.3.2 Considerações Práticas Sobre a Etapa de Crivagem . . . 99

4.3.3 Raízes Quadradas em Z[α]: Determinação de γ . . . . 99

4.3.4 “Crivo Especial dos Corpos de Números” (“SNFS”) . . . 100

4.4 Exemplo de Aplicação do “NFS” . . . 101

5 Conclusão e Recordes Actuais 107

(11)

Lista de Notações

Notação Descrição

N Conjunto dos números naturais, N = {1, 2, 3, · · · }

N0 Conjunto dos números inteiros não negativos, N0= {0, 1, 2, 3, · · · }

Z Conjunto dos números inteiros

Q Conjunto dos números racionais

R Conjunto dos números reais

C Conjunto dos números complexos

m | n m divide n m - n m não divide n

mdc (m, n) Máximo divisor comum entre os inteirosm e n a ≡ b (mod n) a é congruente com b módulo n

a 6≡ b (mod n) a não é congruente com b módulo n

Zn ou Z/nZ Conjunto dos resíduos mínimos módulon

a−1 (modn) Inverso multiplicativo dea módulo n

a

p



Símbolo de Legendre de a módulo p

ordn(a) Ordem dea módulo n

|x| Valor absoluto dex

bxc Maior inteiro menor que x

dxe Menor inteiro maior que x

x ≈ y x é aproximadamente igual a y x 6≈ y x é substancialmente diferente de y

(12)

Notação Descrição

n! Factorial den, n! = n(n − 1)(n − 2) · · · 2 · 1

[a0;a1, a2, · · · , an] Fracção contínua finita com quocientes parciaisa0, a1, a2, · · · , an

[a0;a1, a2, · · · ] Fracção contínua infinita com quocientes parciaisa0, a1, a2, · · ·

[a0;a1, · · · an;αn] Fracção contínua infinita com quociente completoαn

Q(α) Corpo de números obtido como extensão de Q por junção de α

I(α) Anel de inteiros algébricos do corpo de números Q(α)

Z[α] Anel de inteiros do corpo de números Q(α)

N(γ) Norma de γ no respectivo corpo de números

grau(f ) Grau do polinómiof

K[x] Conjunto de todos os polinómios com coeficientes emK

(def)

= “Define-se como”, ou “Igual por definição”

(H.I.)

= “Igual por hipótese de indução”

O (·) Notação assimptótica O

o(·) Notação assimptótica o

L(·,·)(·) Notação assimptótica L

(13)

Lista de Figuras

3.1 Gráfico do polinómiof (x) = x2− 301 no intervalo [12, 24] . . . . 52

3.2 Grafo correspondente às relações obtidas no “PPQS” . . . 68

3.3 Gráfico deg(x) = (x + 42957)2− 1845281299 . . . 77

3.4 Gráfico dos polinómiosf1 e f2 utilizados no exemplo . . . 78

(14)
(15)

Lista de Tabelas

2.1 Pesquisa de números suaves na factorização de 19093 com o “CFRAC” . . . . 30 3.1 Pesquisa de números suaves relativamente à base de factores B = {2, 5, 7} . . 47 3.2 Crivagem na factorização de 689749 com o “crivo quadrático” (Parte 1) . . . 54 3.3 Crivagem na factorização de 689749 com o “crivo quadrático” (Parte 2) . . . 55 3.4 Valores suaves do polinómiof (x) = x2− 689749 . . . . 56

3.5 Crivagem com aproximações logarítmicas, baseada na Tabela 3.3 . . . 58 3.6 Análise dos resultados da etapa de crivagem da factorização de 639913 . . . . 63 3.7 Exemplo de aplicação do “PPQS” a 355113169 . . . 67 4.1 Resultados da etapa de crivagem do “NFS” na factorização de 45653 . . . 103

(16)
(17)

Introdução

Com esta dissertação pretendemos estudar uma das abordagens modernas de maior sucesso a um problema que partilha com grande parte dos restantes problemas de Teoria dos Números uma característica fascinante: o ser tão fácil de explicar como difícil de resolver. Com efeito, e em termos práticos, o problema da factorização de números inteiros resume-se à tão simples acção de encontrar um divisor ou factor não trivial de um determinado número inteiro. Trivial como possa à partida parecer, este problema tem intrigado os matemáticos durante séculos, não sendo até hoje conhecidos métodos rigorosos e simultaneamente rápidos para o resolver. Mas porque razão, para além do desafio matemático que representa, é afinal impor-tante hoje em dia estudar o problema da factorização de inteiros? Para respondermos ade-quadamente a esta questão convém debruçarmo-nos um pouco sobre uma área que, aparente-mente, nada tem a ver com o assunto deste texto: a Criptografia, ou seja, o estudo de maneiras eficientes de transmitir informação confidencial de forma segura através de um canal aberto. Em 1977, Ron Rivest, Adi Shamir e Leonard Adleman [26] surpreenderam a comunidade científica ao propor um método de encriptação, assinatura e transmissão de mensagens con-fidenciais de forma praticamente inquebrável, baseada justamente na extrema dificuldade do problema da factorização de números inteiros de tamanho considerável. De acordo com a pro-posta de Rivest, Shamir e Adleman, o receptor de uma determinada mensagem confidencial deve escolher dois números primosp e q com centenas de algarismos e não muito próximos, e

tomar o seu produton = pq. Em seguida, e procurando de alguma forma um determinado

in-teiroe primo com ϕ(n) = (p−1)(q−1), este receptor deve tornar n e e públicos, bastando deste

modo ao emissor de uma qualquer mensagemM , codificada num certo número inteiro,

deter-minar

C ≡ Me (mod n).

Uma vez transmitida a mensagemC pelo canal aberto, o receptor legítimo, tendo determinado

um inteirod que verifique ed ≡ 1 (mod ϕ(n)), pode obter a mensagem original calculando

(18)

INTRODUÇÃO

A segurança deste método, designado por “RSA”, baseia-se no facto de que, mesmo con-hecendo os inteiros n e e, para que uma terceira pessoa consiga decifrar a mensagem

encrip-tada C tem que conhecer a factorização em primos de n, ou seja, tem que determinar p e q.

Por esta tarefa ser certamente impossível a qualquer pessoa que não o receptor da mensagem, devido ao desconhecimento de métodos rápidos e eficientes para a factorização den, o “RSA”

passou a ser amplamente utilizado para a transmissão de informação confidencial na Internet. Com base neste pequeno aparte é já possível constatarmos a grande importância do problema da factorização de números inteiros: caso se consiga encontrar um método eficiente para a sua resolução, a segurança do “RSA”, e consequentemente das informações com ele encriptadas, fica certamente comprometida. Naturalmente, há outra razão mais agradável para estudar este problema: quanto mais soubermos acerca dos diversos métodos de fac-torização existentes, de forma mais segura podemos escolher os parâmetros envolvidos por forma a dificultar a factorização den, melhorando assim a segurança das nossas informações.

Regressando ao assunto principal desta dissertação, o ponto de partida para o nosso estudo acerca da factorização de números inteiros baseia-se numa ideia que remonta ao séc. XVII, mais concretamente ao trabalho do jurista e matemático francês Pierre de Fer-mat (1601–1665). Para factorizar um qualquer inteiro positivo composto n, Fermat tentava

escrevern como diferença dos quadrados de dois números inteiros positivos, ou seja, na forma n = a2− b2 com a − b > 1.

Uma vez obtida uma expressão deste tipo, Fermat aproveitava o facto de se verificar

a2− b2 = (a − b)(a + b) para obter dois factores próprios de n, os inteiros (a − b) e (a + b).

Embora tendo o seu quê de elegante, este método podia tornar-se extremamente difícil de aplicar. De facto, um dos seus grandes problemas consistia precisamente na forma como eram determinados os inteiros a e b, já que, para os encontrar, Fermat experimentava todos

os inteiros a a partir de dne até que se verificasse a2− n = b2 para algum inteirob. Ora, se

para números pequenos facilmente se encontrava um quadrado desta forma, para números um pouco maiores já começava a ser necessário experimentar demasiados valores até se obter a referida condição, e o método passava, em certos casos, a ser pior do que a “divisão exaustiva”. Alguns séculos mais tarde, já em 1920 e após os notáveis contributos de Carl Friedrich Gauss (1777–1855) para o estudo da aritmética modular, Maurice Kraitchik (1882–1957) propôs uma melhoria significativa à ideia de Fermat: o facto de que, para factorizarn, poderia

ser suficiente escrever não este inteiro mas sim um seu qualquer múltiplo como diferença de dois quadrados, bastando portanto encontrar dois inteirosa e b que verificassem a congruência a2 ≡ b2 (mod n). (1)

(19)

INTRODUÇÃO

Para tentar determinar os inteirosa e b, Kraitchik analisava a sequência de números inteiros

resultantes da aplicação do método de Fermat, verificando se conseguia multiplicar alguns destes valores por forma a obter um quadrado. Por outras palavras, Kraitchik tentava obter várias expressões do tipo a2

1− n  =b1, a22− n  =b2, · · · , a2m− n 

=bm, de tal forma que

se verificasse

m

Y

i=1

bi =b2 para algum inteiro b.

Embora se pudesse tornar, em certos casos, mais rápido que o método utilizado por Fermat, o método de Kraitchik não era um método sistemático. De facto, e por um lado, era necessário analisar cuidadosamente todas as combinações possíveis para formar um produto, enquanto que, por outro lado, na realidade não se sabia quão longe era necessário chegar com estes cálculos até se obter o referido quadrado.

Com o intuito de colmatar as falhas do método de Kraitchik e de, ao mesmo tempo, aproveitar a ideia de uma congruência entre dois quadrados, foram sendo propostos ao longo do último século vários métodos para determinar os inteiros a e b da congruência (1),

al-guns mais simples, outros mais complexos, mas cada qual com as suas vantagens e área de aplicação relativamente ao tamanho dos inteiros a factorizar. Deste modo, com esta disser-tação pretendemos descrever e analisar detalhadamente três dos mais bem sucedidos destes métodos: o “método das fracções contínuas”, o “crivo quadrático” e o “crivo dos corpos de

números”. Neste sentido, o presente texto encontra-se organizado da seguinte forma:

(Capítulo 1) Neste capítulo inicial estudamos alguns conceitos necessários à compreensão desta dissertação, debruçando-nos inicialmente sobre a Teoria dos Números e, posteriormente e de forma muito ligeira, sobre a Teoria da Complexidade Algorítmica.

(Capítulo 2) No segundo capítulo estudamos o “método das fracções contínuas”, encarando--o como uma introdução aos restantes métodos a estudar. Para o efeito, introduzimos primeiramente alguns conceitos básicos da teoria das fracções contínuas, e também alguns con-ceitos sobre suavidade no conjunto dos números inteiros. Descritos estes concon-ceitos, passamos então à descrição do referido método, apresentando um exemplo simples da sua utilização. (Capítulo 3) No capítulo central desta dissertação analisamos pormenorizadamente o método do “crivo quadrático” e as suas variantes de maior sucesso. Tendo em vista este objectivo, iniciamos o capítulo com uma introdução detalhada à determinação de raízes quadradas mo-dulares, e a alguns processos eficientes de reconhecimento de números primos e de números suaves. Uma vez descritos estes conceitos, debruçamo-nos sobre o funcionamento do referido método, focando cada uma das suas componentes em detalhe e apresentando um exemplo

(20)

INTRODUÇÃO

da utilização da sua versão mais básica. Posteriormente, introduzimos e exemplificamos a utilização de algumas variantes propostas a este método, nomeadamente as variantes “Um Primo Grande”, “Dois Primos Grandes” e o “Crivo Quadrático Multi-Polinomial”.

(Capítulo 4) No quarto capítulo deste texto descrevemos o método geral de factorização mais eficiente conhecido, o “crivo dos corpos de números”. Dada a relativa complexidade da teoria que lhe está subjacente, introduzimos primeiramente alguns conceitos importantes da Teoria Algébrica dos Números, nomeadamente alguns conceitos relacionados com os cor-pos de números, descrevendo também um algoritmo eficiente para determinar raízes de polinómios com coeficientes inteiros em corpos do tipo Zp. Estudados estes conceitos

pas-samos à descrição do referido método, analisando cuidadosamente cada uma das suas etapas e descrevendo brevemente alguns pormenores relacionados com a sua implementação. Por fim, apresentamos um exemplo completo da sua utilização.

(Capítulo 5) No último capítulo deste texto, e em jeito de conclusão deste trabalho, apre-sentamos algumas factorizações notáveis obtidas nos últimos anos com os métodos estudados, apresentando algumas referências que o leitor mais interessado pode consultar.

Antes de nos debruçarmos sobre o assunto principal deste trabalho, convém ainda referir que cada um dos exemplos apresentados foi cuidadosamente escolhido, com base não na dificuldade da factorização dos inteiros utilizados mas sim no quão bem exemplifica a utilização do respectivo método. Convém também referir que, por uma questão de clareza e de organização textual, cada um destes termina com a marca “”, de fim de demonstração.

(21)

Capítulo 1

Conceitos Introdutórios

1.1

Conceitos da Teoria dos Números

Uma das noções mais importantes da Teoria dos Números é a noção de divisibilidade, na qual se baseia a grande maioria dos assuntos abordados ao longo deste texto. Deste modo, é natural que iniciemos o nosso estudo com a introdução deste conceito fundamental, bem como do conceito relacionado de divisor ou factor de um número inteiro.

Definição 1.1 (Divisibilidade). Dados dois inteiros n e m tais que m 6= 0, dizemos que m divide n, que n é divisível por m ou que m é um divisor de n, e escrevemos m | n, se existe

um inteirok tal que n = km. Caso contrário, dizemos que m não divide n, e escrevemos m - n. Naturalmente, de acordo com esta definição qualquer número inteiro admite divisores po-sitivos e negativos. No entanto, e uma vez que a estes últimos é dada pouca ou nenhuma importância no contexto dos problemas a estudar, de agora em diante utilizamos a palavra “divisor” em referência a um qualquer divisor positivo de um determinado número inteiro.

O conceito de divisibilidade introduzido na Definição 1.1 está na base de algumas propriedades básicas de grande importância verificadas pelos números inteiros, de entre as quais, por nos serem úteis ao longo desta secção, destacamos:

(a) Se m | n verifica-se m | cn para qualquer inteiro c;

(b) Se m | n e n | n0 verifica-se m | n0; e

(c) Sem | n e m | n0 entãom | (an + bn0) para quaisquer inteirosa e b.

Como é sabido, qualquer número inteiro n > 1 admite pelo menos dois divisores,

nomeadamente os inteiros 1 e n. A estes divisores chamamos, normalmente, divisores ou factores triviais de n. Naturalmente, existem também inteiros que admitem mais divisores

(22)

1.1. CONCEITOS DA TEORIA DOS NÚMEROS

facto é possível estabelecer uma importante distinção entre dois grupos de números inteiros positivos, conforme nos indica a seguinte definição:

Definição 1.2 (Números Primos e Números Compostos). Um inteiro n > 1 cujos únicos

divisores sejam 1 en diz-se um número primo, dizendo-se um número composto caso contrário.

Com efeito, o estudo dos números primos 2, 3, 5, 7, 11, 13, · · · constitui um assunto de grande interesse na Teoria dos Números, desempenhando um papel fundamental em grande parte dos resultados desta área e das suas aplicações. Também ao longo desta dissertação estes números assumem um papel muito importante, sendo portanto conveniente que estudemos aqui alguns resultados sobre os mesmos. No entanto, para o fazer correctamente necessitamos de introduzir em primeiro lugar um conceito adicional, sobre o qual nos debruçamos na próxima secção.

1.1.1

Máximo Divisor Comum e Algoritmo de Euclides

Em todos os métodos que estudamos neste texto temos a necessidade de calcular o maior número inteiro que divide simultaneamente dois quaisquer inteiros m e n que conheçamos,

uma vez que a sua determinação pode, naturalmente, conduzir-nos à obtenção de um divisor não trivial destes mesmos inteiros. Assim sendo, é importante considerar a seguinte definição: Definição 1.3 (Máximo Divisor Comum). Dados dois números inteirosm e n não

simultanea-mente nulos, designa-se por máximo divisor comum entrem e n, e denota-se por mdc (m, n),

o maior número inteiro que divide m e n simultaneamente.

Um facto importante que convém realçar acerca da definição anterior é o de que esta implica, naturalmente, que para quaisquer dois inteiros m e n se verifica mdc (m, n) ≥ 1. Como é

natural, existem também outros pares de inteiros cujo máximo divisor comum é efectivamente superior a 1, sendo por isso importante estabelecer a seguinte definição:

Definição 1.4 (Números Primos Entre Si). Dizemos que dois números inteiros m e n são primos entre si se se verificar a condição mdc (m, n) = 1. Neste caso, também dizemos que m é primo com n. Para além disso, dizemos também que k números inteiros n1, n2, · · · , nk

são primos entre si dois a dois se se verificar mdc (ni, nj) = 1 para quaisquer 1 ≤i 6= j ≤ k.

Debrucemo-nos então sobre a forma como podemos determinar o máximo divisor comum entre dois inteiros m e n não simultaneamente nulos. Como sabemos, dados dois

quaisquer inteiros m e n tais que n 6= 0 existem inteiros q e r +univocamente determinados

para os quais se verifica

m = qn + r com 0 ≤r < |n|.

(23)

1. CONCEITOS INTRODUTÓRIOS

Deste modo, dividindom por n e denotando q por q0 e r por r0 obtemos a equação

m = q0n + r0 com 0 ≤r0 < |n|, (1.1)

a partir da qual, tomandod = mdc (m, n), facilmente concluímos que d | r0. Tendo em conta

este facto, e dividindo agoran por r0, obtemos a equação

n = q1r0+r1 com 0 ≤r1 < r0,

a partir da qual concluímos, de igual modo, qued | r1. Repetindo então este processo obtemos

uma sequência estritamente decrescente de números inteiros não negativos,

r0 > r1> · · · > rk> rk+1= 0,

correspondentes aos restos das sucessivas divisões efectuadas. Como facilmente se conclui, esta sequência verifica as propriedades

(a) d | rj para qualquer 0 ≤j ≤ k + 1, e

(b) rk| rj para qualquer 0 ≤j ≤ k, para além de que rk| m e rk| n.

Ora, por um lado, tendo em conta a propriedade (b) concluímos querk| d, uma vez que d é o

máximo divisor comum entrem e n. Por outro lado, tendo em conta a propriedade (a)

verifica--se d | rk. Assim, juntando estas duas observações podemos concluir que rk é efectivamente

o máximo divisor comum entre m e n. Este processo para determinar o máximo divisor

comum entre dois números inteiros não simultaneamente nulos — normalmente designado por “algoritmo de Euclides” — pode então ser descrito sucintamente da seguinte forma:

Algoritmo 1.1: Algoritmo de Euclides

Dados de Entrada: Dois números inteirosm e n não simultaneamente nulos.

Dados de Saída: O máximo divisor comum entrem e n.

(1) Sen = 0 devolver |m|.

(2) Determinarq e r de tal forma que m = qn + r com 0 ≤ r < |n|.

(3) Fazerm ← n, n ← r e repetir o mesmo processo, voltando ao passo (1).

Apesar do facto de que, utilizando o Algoritmo 1.1, conseguimos já determinar facilmente o máximo divisor comum entre os inteirosm e n, analisando com um pouco mais de cuidado

a sequência de divisões anterior podemos ainda obter uma importante relação entre m, n

(24)

1.1. CONCEITOS DA TEORIA DOS NÚMEROS

sequência dos quocientes q0, q1, · · · , qk obtidos nas referidas divisões, verifica-se também o

seguinte resultado:

Teorema 1.5. Dados dois inteiros m e n não simultaneamente nulos, verifica-se existirem inteiros a e b tais que

am + bn = mdc (m, n) . (1.2)

Demonstração. A demonstração pode ser feita por indução no índicej de cada um dos restos

obtidos na sequência de divisões anteriormente referida, com o objectivo de demonstrar que, para cada 0 ≤ j ≤ k, existem inteiros aj e bj tais que rj = ajm + bjn. Deste modo, para

j = 0 o resultado verifica-se de forma trivial, uma vez que m = q0n + r0 implica naturalmente

que r0 =m − q0n. Assim, obtém-se a0 = 1 eb0 = −q0. Supondo então que este resultado é

válido para qualquer resto de ordem menor quej, e notando que rj =rj−2− rj−1qj, podemos

concluir que

rj

(H.I.)

= (aj−2m + bj−2n) − (aj−1m + bj−1n) qj = (aj−2− aj−1qj)m + (bj−2− bj−1qj)n.

Assim, tomando aj = aj−2 − aj−1qj e bj = bj−2− bj−1qj obtemos rj = ajm + bjn para

qualquer 0 ≤i ≤ k, uma afirmação que, naturalmente, implica o resultado pretendido.

A demonstração deste resultado sugere então uma pequena alteração ao Algoritmo 1.1, por forma a que este possa devolver também os inteiros a e b da equação (1.2):

Algoritmo 1.2: Algoritmo Estendido de Euclides

Dados de Entrada: Dois números inteirosm e n não simultaneamente nulos.

Dados de Saída: Um terno (d, a, b) onde d = am + bn = mdc (m, n).

(1) Definir a0 = 1, b0= 0, a00 = 0 eb00= 1.

(2) Se n = 0 devolver (|m|, a0, b0).

(3) Determinarq e r de tal forma que m = qn + r, com 0 ≤ r < |n|.

(4) Fazer m ← n, n ← r.

(5) Fazer a ← a0− qa00,a0← a00,a00← a; b ← b0− qb00,b0 ← b00 eb00← b. (6) Repetir o mesmo processo, voltando ao passo (2).

Utilizando o Teorema 1.5 podemos ainda demonstrar um outro resultado de grande importân-cia, com o qual terminamos o estudo do conceito de máximo divisor comum:

Lema 1.6 (Lema de Euclides). Se um inteiro n verifica n | ab e mdc (a, n) = 1, então n | b.

(25)

1. CONCEITOS INTRODUTÓRIOS

Demonstração. Tendo em conta o Teorema 1.5, podemos escrever mdc (a, n) = 1 na forma

1 =ca + dn, com c e d inteiros. Deste modo, multiplicando ambos os membros desta equação

porb verifica-se também b = nbd + abc, uma equação a partir da qual, como n | ab, se conclui

imediatamente quen | b.

1.1.2

Números Primos e Números Compostos

Nesta secção estudamos alguns resultados que relacionam números primos e números com-postos, dos quais fazemos um uso frequente ao longo deste trabalho. O primeiro destes, a introduzir em seguida, serve naturalmente de base a todo o nosso estudo sobre este tópico: Teorema 1.7. Qualquer número inteiro n > 1 ou é um número primo ou pode ser escrito como produto finito de números primos.

Demonstração. A demonstração deste resultado pode ser feita por indução em n. De facto,

paran = 2 o resultado verifica-se, uma vez que, neste caso, n é um número primo. Supondo

então que o resultado é válido para qualquer inteiro 1 < a < n, podemos concluir que n,

não sendo primo, admite naturalmente um divisor não trivial n0. Assim, podemos escrever

n = n0n00 com 1 < n0, n00 < n, uma equação de acordo com a qual, aplicando a hipótese de

indução, facilmente concluímos quen pode ser escrito como produto finito de primos.

Tendo em conta o Teorema 1.7 podemos demonstrar os dois próximos resultados, os quais utilizamos frequentes vezes ao longo dos capítulos subsequentes:

Teorema 1.8. Qualquer número composton > 1 admite um divisor primo p tal que p ≤n. Demonstração. Como n é, por hipótese, um número composto, sabemos que existem dois

inteiros 1< n0, n00< n tais que n = n0n00. Para além disso, sabemos também que pelo menos

um dos inteirosn0 en00 é menor ou igual a√n, uma vez que, caso contrário, obtínhamos uma

contradição. Assim, e supondo, sem perda de generalidade, que n0 ≤√n, de acordo com o

Teorema 1.7 podemos imediatamente concluir que oun0 é primo ou admite um divisor primo, ficando o resultado imediatamente demonstrado em ambos os casos.

Teorema 1.9. Se um número primo p divide o produto ab, então p | a ou p | b. De uma

forma mais geral, sep divide o produto a1a2· · · an então p | aj para algum 1 ≤j ≤ n.

Demonstração. Supondo que p | ab mas que p - a, verifica-se naturalmente mdc (a, p) = 1.

Deste modo, de acordo com o Lema 1.6 podemos imediatamente concluir quep | b, ficando

assim demonstrada a primeira parte deste resultado. Assim, e com base neste, a segunda afirmação demonstra-se facilmente, tratando-se de um exercício simples de indução.

(26)

1.1. CONCEITOS DA TEORIA DOS NÚMEROS

Descritos estes resultados auxiliares podemos agora debruçar-nos sobre o resultado mais im-portante desta secção:

Teorema 1.10 (Teorema Fundamental da Aritmética). Qualquer inteiro n > 1 pode ser escrito de forma única como produto finito de primos, com eventual excepção da sua ordem. Demonstração. Se n for primo, o resultado verifica-se de forma trivial. Supondo então que n

é um número composto, e que o resultado é válido para qualquer número inteiro 1< a < n,

tendo em conta o Teorema 1.7 podemos concluir que n pode ser escrito como produto finito

de números primos. Deste modo, e supondo que n admite as duas factorizações em primos n = p1p2· · · pk e n = q1q2· · · qk0, com p1≤ · · · ≤ pk e q1 ≤ · · · ≤ qk0,

concluímos também que, como p1 divide n, p1 tem também que dividir algum dos primos

qj, de acordo com o Teorema 1.9. Deste modo, e supondo, sem perda de generalidade, que

p1| q1, concluímos imediatamente quep1=q1, e portanto que, tendo em conta a hipótese de

indução, o inteiro

n/p1=p2p3· · · pk=q2q3· · · qk0

pode ser escrito de forma única como produto de números primos. Assim, verifica-se neces-sariamente que k = k0 e que pj =qj para qualquer 2 ≤j ≤ k, o que, como p1 =q1, implica

naturalmente o resultado pretendido.

1.1.3

Relações de Congruência e Aritmética Modular

Nesta secção introduzimos alguns conceitos fundamentais para o restante do trabalho, con-ceitos estes a partir dos quais se podem estudar de forma simples algumas propriedades e resultados verificados pelos números inteiros. O primeiro destes conceitos, a introduzir em seguida, é o de congruência entre dois números inteiros, conceito este que utilizamos repeti-damente ao longo deste texto.

Definição 1.11 (Congruência e Resíduo Módulo n). Dados três números inteiros a, b e n

tais que n > 0, dizemos que a é congruente com b módulo n, e escrevemos a ≡ b (mod n),

se se verifica n | (a − b). Além disso, a qualquer inteiro b que satisfaça esta congruência

damos o nome de resíduo de a módulo n, dizendo que b é um resíduo mínimo de a módulo n

se 0 ≤b < n.

(27)

1. CONCEITOS INTRODUTÓRIOS

Tendo em conta as propriedades básicas da divisibilidade introduzidas anteriormente, pode-mos facilmente concluir que a definição anterior estabelece uma relação de equivalência em Z (designada por relação de congruência módulo n), cujo conjunto quociente Z/nZ ou simples-mente Zn é composto porn classes de equivalência distintas, habitualmente designadas por

classes de congruência. Conforme nos indica o seguinte resultado, as relações de congruência

verificam ainda outras propriedades básicas importantes:

Proposição 1.12. Dados um inteiron > 1 e um qualquer polinómio f com coeficientes in-teiros, a relação de congruência módulon verifica, para quaisquer inteiros a, b, c e d, as pro-priedades

(a) Sea ≡ b (mod n) e c ≡ d (mod n) então a + c ≡ b + d (mod n) e ac ≡ bd (mod n); (b) Se a ≡ b (mod n) e c ≥ 0 então ac≡ bc (mod n); e

(c) Se a ≡ b (mod n) então f (a) ≡ f (b) (mod n).

Esquema da Demonstração: A demonstração da propriedade (a) é imediata, uma vez que,

tendo em conta as propriedades da divisibilidade e a Definição 1.11, se verifica

a + c = (b + kn) + (d + k0n) = b + d + nk00,

ac = (b + kn)(d + k0n) = bd + bk0n + dkn + kk0n = bd + nk000.

Quanto às restantes propriedades, tendo em conta (a) a demonstração de (b) é um exercício simples de indução no valor dec, enquanto que (c) é facilmente demonstrável tendo em conta

(a) e (b).

É com base nesta proposição que demonstramos muitos dos resultados a descrever ao longo deste texto. Naturalmente, para além deste necessitamos também de outros resultados aux-iliares, sobre os quais nos debruçamos na próxima secção.

1.1.4

Congruências Polinomiais e Inversos Modulares

Da mesma forma como habitualmente resolvemos no conjunto dos números reais equações da formaax+b = 0 ou ax2+bx+c = 0, ao longo desta dissertação temos várias vezes necessidade

de encontrar um inteiro que verifique uma determinada congruência. Deste modo, debruçamo--nos agora sobre alguns aspectos importantes relacionados com este conceito.

Definição 1.13 (Congruência Polinomial). Dados m + 1 números inteiros a0, a1, · · · , am,

damos o nome de congruência polinomial a qualquer congruência do tipo

(28)

1.1. CONCEITOS DA TEORIA DOS NÚMEROS

Além disso, e caso exista, ao maior inteiro 0 ≤j ≤ m tal que aj 6≡ 0 (mod n) damos o nome

de grau da congruência, dizendo que esta é uma congruência polinomial de grauj módulo n.

Acerca da definição anterior é conveniente realçar dois aspectos importantes. O primeiro destes prende-se com o facto de que, de agora em diante, sempre que nos referirmos ao número de soluções de uma determinada congruência do tipo de (1.3) queremos de facto referirmo--nos ao número de inteiros distintos no intervalo 0 ≤x < n que a verificam. O segundo destes

aspectos prende-se com o facto de que o grau deste tipo de congruências depende muito do respectivo módulo, uma vez que, por exemplo, 15x3+x+1 ≡ 0 (mod 2) tem grau 3, enquanto

que 15x3+x + 1 ≡ 0 (mod 5) tem apenas grau 1.

Um caso particular e de grande importância das congruências polinomiais é o caso das congruências de grau 1, também designadas por congruências lineares. Para além de se tratarem das congruências mais fáceis de caracterizar e resolver, também nos permitem definir um conceito muito importante para o restante deste trabalho. Deste modo, e para as estudar de forma adequada, necessitamos de introduzir, embora sem demonstração, o seguinte resultado:

Proposição 1.14. Denotando por d o valor de mdc (a, n), a congruência ax ≡ b (mod n) admite d soluções módulo n se e só se d | b, não admitindo qualquer solução caso contrário. Demonstração. A demonstração deste resultado pode ser encontrada em [20, pág. 62].

Quando no resultado anterior se toma b = 1 e mdc (a, n) = 1, verifica-se existir uma única

solução da referida congruênciaax ≡ b (mod n), a qual, pela sua importância no contexto de

vários problemas da Teoria dos Números, recebe a seguinte designação especial:

Definição 1.15 (Inverso Modular). Dado um qualquer inteiro a primo com n, à única

solu-ção de

ax ≡ 1 (mod n) (1.4) dá-se o nome de inverso de a módulo n, e denota-se por a−1 (modn).

Note-se que, tendo em conta o Teorema 1.5, o inverso módulon de qualquer elemento a primo

com n pode ser facilmente determinado recorrendo ao Algoritmo 1.2, sendo efectivamente

igual ao segundo elemento do terno ordenado que se obtém como resultado da sua aplicação. Um outro caso particular da Proposição 1.14 e da Definição 1.4 verifica-se quando o módulon da congruência (1.4) é um número primo, conforme nos indica o seguinte resultado:

Proposição 1.16. Sep é primo, qualquer inteiro a tal que p - a admite um inverso módulo p.

(29)

1. CONCEITOS INTRODUTÓRIOS

Demonstração. Como p é primo, se p - a verifica-se mdc (a, p) = 1, e portanto, tendo em

conta a Proposição 1.14, o resultado verifica-se.

Com base neste resultado simples podemos demonstrar um dos teoremas mais importantes desta secção, que nos serve de base para muitos dos resultados utilizados ao longo deste texto: Teorema 1.17 (Teorema de Fermat). Sep é primo e a é um inteiro tal que p - a, verifica-se

ap−1≡ 1 (mod p).

Demonstração. Como facilmente se conclui, os inteiros da sequênciaa, 2a, 3a, · · · , (p − 1)a

são incongruentes dois a dois módulo p(1). Assim, estes inteiros são, com eventual excepção

da sua ordem, congruentes módulop com os inteiros da sequência 1, 2, 3, · · · , p − 1. Deste

modo, multiplicando ambas as sequências obtêm-se a congruência

ap−1(p − 1)! ≡ (p − 1)! (mod p),

a partir da qual facilmente se conclui que ap−1 ≡ 1 (mod p), tendo em conta que (p − 1)!

admite, de acordo com a Proposição 1.16, um inverso módulop.

Para além da sua importância a nível teórico, este resultado indica-nos também uma forma simples de verificar se um determinado número inteiron > 1 é composto, sem que para isso

precisemos de conhecer a sua factorização. Com efeito, se para algum inteiroa primo com n

se verificar

an−16≡ 1 (mod n)

temos a garantia de quen é efectivamente um número composto(2). A este pequeno teste

dá--se habitualmente o nome de “Teste de Fermat”, sendo utilizado algumas vezes ao longo deste texto devido à sua simplicidade e relativa eficácia. No entanto, e devido ao facto de existirem inteiros positivos que, mesmo sendo compostos, passam este teste para qualquer inteiro a,

para termos uma maior garantia da primalidade de qualquer inteiro n > 1 podem também

ser utilizados o “Teste de Miller-Rabin” [5, pág. 137] ou o teste “AKS” [5, pp. 200–217]. Estudados que estão os resultados de que necessitamos acerca das congruências line-ares, debruçamo-nos agora sobre dois resultados que nos são necessários sobre congruências de grau superior a 1, em particular sobre congruências cujo módulo é um número primo. O primeiro destes resultados, que usamos repetidamente ao longo de todo o texto, indica-nos um majorante para o número de soluções de uma qualquer congruência polinomial deste tipo:

(1)

De facto, se se verificasse ia ≡ ja (mod p) com 0 ≤ i, j < p, de acordo com o Teorema 1.9 verificar-se-ia também i − j ≡ 0 (mod p), verificando-se portanto i = j.

(2)

É conveniente notar que podemos determinar resíduos do tipo ab(mod n) de forma muito eficaz, mesmo para a e n grandes, utilizando o “algoritmo de exponenciação modular ” descrito em [10, pp. 23–24].

(30)

1.1. CONCEITOS DA TEORIA DOS NÚMEROS

Teorema 1.18 (Teorema de Lagrange). Se p é primo e f é um qualquer polinómio de grau m com coeficientes inteiros, a congruência f (x) ≡ 0 (mod p) admite no máximo m soluções. Demonstração. A demonstração deste resultado pode ser feita por indução no grau m do

polinómio f . De facto, quando m = 1 obtém-se uma congruência do tipo ax ≡ b (mod p), a

qual, como sabemos, admite soluções se e só se mdc (a, p) = 1. Neste caso, de acordo com

a Proposição 1.14 existe uma única solução, e portanto o resultado verifica-se trivialmente. Supondo então que este resultado é válido para qualquer polinómio de grau menor que m, e

que a congruênciaf (x) ≡ 0 (mod p) admite pelo menos uma solução(3), digamosa, de acordo

com [8, pp. 83–84] podemos escrever a referida congruência na forma

f (x) ≡ (x − a)g(x) (mod p),

ondeg denota um polinómio de grau m−1 com coeficientes inteiros. Ora, naturalmente, todas

as soluções def (x) ≡ 0 (mod p) incongruentes módulo p com a são obrigatoriamente também

soluções de g(x) (mod p). No entanto, esta última congruência tem, necessariamente, grau

maior ou igual a 1 e menor ou igual am − 1. Assim, aplicando a hipótese de indução

conclui--se que esta admite no máximo m − 1 soluções, o que, como a é raiz de f (x) ≡ 0 (mod p),

implica naturalmente que f (x) ≡ 0 (mod p) tem, no máximo, m soluções.

Corolário 1.19. As únicas soluções da congruênciax2≡ 1 (mod p) são os inteiros 1 e p − 1.

Demonstração. Por um lado, de acordo o Teorema 1.18 a congruência x2 ≡ 1 (mod p) tem

no máximo duas soluções. Por outro lado, facilmente se conclui que os inteiros 1 e p − 1

verificam a referida congruência, verificando-se portanto o resultado.

1.1.5

Resíduos Quadráticos e Símbolo de Legendre

Nesta secção estudamos um conceito de grande importância em vários problemas da Teoria dos Números, e também extremamente importante na teoria a desenvolver nos Capítulos 2 e 3: o conceito de resíduo quadrático módulo n, onde n denota um qualquer número inteiro.

Definição 1.20 (Resíduo Quadrático Módulon). Dados dois inteiros a e n primos entre si,

dizemos que a é um resíduo quadrático módulo n se a congruência x2 ≡ a (mod n) admite

soluções, e dizemos quea é um não-resíduo quadrático módulo n caso contrário.

Um caso particular desta definição verifica-se quando o módulo da referida congruência é um qualquer primo ímparp. Neste caso, e tendo em conta que para qualquer inteiro r se verifica r2 ≡ (p − r)2 (modp), é fácil de concluir que existem (p − 1)/2 resíduos quadráticos módulo p

(3)

Note-se que, caso esta congruência não admita nenhuma solução, o resultado se verifica de forma trivial.

(31)

1. CONCEITOS INTRODUTÓRIOS

e (p − 1)/2 não-resíduos quadráticos módulo p. Assim, os resíduos quadráticos módulo p

correspondem aos resíduos módulop dos inteiros da sequência

12, 22, 32, · · · ,

p − 1

2

2

,

enquanto que os não-resíduos quadráticos correspondem a todos os outros resíduos. Por forma a determinar facilmente se um determinado inteiro a é ou não um resíduo quadrático

módulo um qualquer primo ímparp, é útil considerar o seguinte conceito:

Definição 1.21 (Símbolo de Legendre). Dados um qualquer primo ímpar p e um qualquer

inteiroa, define-se o símbolo de Legendre de a módulo p, o qual se denota pora p  , como a p  =          0, se p | a

1, se a é um resíduo quadrático módulo p

−1, se a é um não-resíduo quadrático módulo p.

Por forma a determinar de forma sistemática o valor deappara qualquer inteiroa e qualquer

primo ímparp podemos ter em conta o seguinte resultado:

Lema 1.22 (Lema de Euler). Dados um qualquer inteiro a e um qualquer primo ímpar p,

verifica-se a congruência a p  ≡ ap−12 (mod p). Demonstração. Se p | a então a p 

= 0, verificando-se o resultado de forma trivial. Assim, podemos supor que p - a, e portanto que mdc (a, p) = 1. Ora, tendo em conta esta última condição, o Teorema 1.17 implica queap−1≡ 1 (mod p), e portanto que ou ap−12 ≡ 1 (mod p)

ouap−12 ≡ −1 (mod p) (de acordo com o Corolário 1.19). Temos então duas possibilidades:

(a) Sea é um resíduo quadrático módulo p então b2 ≡ a (mod p) para algum inteiro b, pelo

que ap−12 ≡ bp−1≡ 1 ≡  a p  (modp).

(b) Sea é um não-resíduo quadrático módulo p, e uma vez que a equação zp−12 ≡ 1 (mod p)

tem, de acordo com o Teorema 1.18, no máximo (p − 1)/2 soluções (que são os resíduos

quadráticos módulo p), concluímos que a não pode ser uma solução desta equação.

Assim, verifica-se queap−12 6≡ 1 (mod p) e portanto que a

p−1 2 ≡ −1 ≡  a p  (modp).

Com base neste resultado, facilmente concluímos que para determinar o símbolo de Legendre



a p



, ondep denota um qualquer primo ímpar, basta determinar o único inteiro x ∈ {−1, 0, 1}

que verificax ≡ ap−12 (mod p), utilizando para o efeito, por exemplo, o “algoritmo de

(32)

1.2. CONCEITOS DA TEORIA DA COMPLEXIDADE ALGORÍTMICA

1.2

Conceitos da Teoria da Complexidade Algorítmica

Embora não seja de forma alguma fundamental para a análise que pretendemos fazer, é de certa forma conveniente ter uma noção de quão eficientes são os diversos métodos de factorização que estudamos ao longo desta dissertação. Deste modo, estudamos nesta secção alguns conceitos básicos da Teoria da Complexidade Algorítmica, dos quais necessitamos para, pelo menos, ter uma ideia da complexidade algorítmica de cada um dos referidos métodos. O nosso estudo acerca deste tópico começa então com a introdução dos seguintes conceitos: Definição 1.23 (Notação Assimptótica O). Dadas duas funções f, g : N → R, dizemos que f (n) é de ordem não superior a g(n) quando n → +∞, e escrevemos f (n) = O (g(n)), se

existem uma constante c > 0 e um inteiro positivo n0 tais que

|f (n)| ≤ c |g(n)| para qualquer n > n0.

Definição 1.24 (Notação Assimptótica o). Dadas duas funções f, g : N → R, dizemos que f (n) é de ordem inferior a g(n) quando n → +∞, e escrevemos f (n) = o(g(n)), se para

qualquer constante c > 0 existe um inteiro positivo n0 tal que

|f (n)| < c |g(n)| para qualquer n > n0.

Por forma a que possamos ter uma ideia de como estes conceitos nos podem ajudar a estudar a eficiência dos métodos que analisamos, convém recordar que, em termos com-putacionais, qualquer número inteiro é representado no sistema binário, ou seja, por uma sequência de dígitos binários, aos quais se dá o nome de bits (do inglês binary digits). Por exemplo, num computador como os que habitualmente utilizamos, o número 1 é representado internamente por 1, o número 2 por 10, o número 3 por 11, o número 4 por 100 e assim suces-sivamente. De uma forma geral, demonstra-se [10, pág. 3] que o número de bits necessários à representação na base binária de um determinado número inteiro n > 1 é igual a

lnn

ln 2



+ 1. (1.5)

Posto isto, e da mesma forma como adicionamos, subtraímos, multiplicamos e dividimos na base decimal, os computadores efectuam estas mesmas operações, de forma análoga, na base binária. A título de exemplo, a soma 75+25 é efectuada em ambas as bases da seguinte forma:

1 1 7 5 + 2 5 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 + 1 1 0 0 1 1 1 0 0 1 0 0 12

(33)

1. CONCEITOS INTRODUTÓRIOS

De uma forma geral, a cada operação que efectuamos entre dois bits por forma a produzir um terceiro bit como resultado damos o nome de operação bit. Deste modo, na operação de soma no sistema binário anteriormente descrita efectuámos 7 operações bit, tantas quanto o número de bits do maior dos operandos. Com base neste raciocínio podemos afirmar que a soma de dois números inteirosn e m tais que n > m toma, no máximo, k + 1 operações bit, ondek denota o número de bits de n. Assim sendo, de acordo com (1.5) conclui-se esta

operação tem complexidade assimptótica O (lnn), também dita polinomial no número de bits

de n. Por outro lado, e a título de exemplo, já a multiplicação destes dois números inteiros

toma no máximol(k +l) operações bit, onde l denota o número de bits de m [10, pág. 4]. Deste

modo, e uma vez que assumimos quen > m, utilizando um raciocínio semelhante ao anterior

podemos afirmar que a complexidade assimptótica da multiplicação de inteiros é Oln2n. Uma vez que, em termos gerais, qualquer algoritmo que possamos implementar num computador se traduz numa sequência das referidas quatro operações, é natural que nos questionemos sobre o número de operações bit que leva cada um dos métodos de factorização estudados neste texto até conseguir factorizar com sucesso um determinado inteiro n > 1.

De um modo geral, todos os métodos que apresentamos têm uma complexidade algorítmica

sub-exponencial, no sentido em que o número de operações bit de que necessitam está limitado

superiormente por uma função do tipono(1), mais concretamente por uma função da forma

L(c,a)(n)

(def)

= Oe(c+o(1))(ln n)a(ln ln n)1−a.

Deste modo, e por uma questão de simplicidade, de agora em diante utilizamos a notação

(34)
(35)

Capítulo 2

Método das Fracções Contínuas

Uma das primeiras abordagens modernas ao problema da factorização foi proposta em 1931 por D. Lehmer e R. Powers [12], mas devido à sua dificuldade computacional só ganhou popularidade e aplicabilidade com a ajuda dos primeiros computadores, no início da década de 1970. Um dos pontos altos da utilização deste método, chamado “método das fracções

contínuas”, ou simplesmente “CFRAC”, ocorreu nesse mesmo ano, quando M. Morrison e

J. Brillhart [18] conseguiram factorizar o número de FermatF7= 22

7

+1, concluíndo assim que

340282366920938463463374607431768211457 =

= 59649589127497217 · 5704689200685129054721.

No entanto, e embora a sua utilização se tenha difundido largamente na altura em que foi introduzido, hoje em dia e devido às suas limitações este método caiu em desuso, tendo sido substituído por algoritmos sucessivamente mais avançados. Ainda assim, o seu estudo é de grande importância no contexto do problema da factorização de inteiros, pois muitas das ideias que utiliza serviram de base a algoritmos posteriores, hoje frequentemente utilizados.

2.1

Conceitos Fundamentais

Antes de entrarmos nos detalhes do “CFRAC” necessitamos de rever alguns conceitos fun-damentais da teoria das fracções contínuas, sobre os quais nos debruçamos em seguida.

2.1.1

Introdução às Fracções Contínuas Simples

Definição 2.1 (Fracção Contínua Simples). Dada uma sequência finita ou infinita de números inteiros a0, a1, a2, · · · tais que a1, a2, · · · > 0, dá-se o nome de fracção contínua simples a

(36)

2.1. CONCEITOS FUNDAMENTAIS

qualquer expressão finita ou infinita da forma

a0+ 1 a1+ 1 a2+ 1 · · · (2.1)

Aos inteiros a0, a1, a2, · · · dá-se o nome de quocientes parciais da fracção contínua, enquanto

que à expressão (2.1) se dá o nome de fracção contínua finita ou infinita, consoante se trate, respectivamente, de uma expressão finita ou infinita.

Normalmente, para abreviar a expressão (2.1) utilizam-se algumas notações ligeiramente diferentes e mais concisas, como por exemplo as notações

a0+ 1 a1+ 1 a2+ · · · 1 an e [a0;a1, a2, · · · , an],

as quais passamos de agora em diante a utilizar sempre que possível. Para além disso, e por uma questão de simplicidade, passamos também a designar as fracções contínuas sim-ples apenas por “fracções contínuas”.

2.1.2

Representação de Números Reais

De uma forma geral, é possível associar a qualquer número realα uma representação através

de uma fracção contínua, cuja sequência de quocientes parciais pode ser facilmente obtida através da relação de recorrência

  

Caso Base: a0= br0c com r0=α

P. Indutivo: ai= bric com ri= (ri−1− ai−1)−1.

Deste modo, facilmente se conclui que a referida fracção contínua é finita se e só se α é

racional, ou seja, se e só se nesta relação de recorrência se verifica an = rn para algum

inteiro n ≥ 0. Assim sendo, podemos concluir que o número real α fica representado pela

fracção contínua infinita [a0;a1, a2, · · · ] caso seja irracional, ou pela fracção contínua finita

[a0;a1, a2. · · · , an] caso contrário. No entanto, e como facilmente se conclui, neste último caso

a representação obtida não é única, uma vez que se verifica necessariamente

[a0;a1, · · · , an] = [a0;a1, · · · , (an− 1), 1].

Ainda assim, e uma vez que no decorrer do “CFRAC” apenas são utilizadas fracções contínuas de números irracionais, não precisamos de nos preocupar com este pequeno “problema”. Deste modo, de agora em diante restringimos a nossa discussão apenas a fracções contínuas infinitas.

(37)

2. MÉTODO DAS FRACÇÕES CONTÍNUAS

2.1.3

Aproximações Racionais e Convergentes

Qualquer fracção contínua permite obter excelentes aproximações racionais para o número real α que representa. Estas aproximações, que se podem obter “truncando” a fracção

con-tínua após cada um dos seus quocientes parciais, constituem de facto uma sucessão de números racionais convergente paraα, recebendo, devido à sua grande utilidade, a seguinte designação:

Definição 2.2 (Convergente). Dados um inteirok ≥ 0 e uma fracção contínua [a0;a1, a2, · · · ],

à fracção contínua finita [a0;a1, · · · , ak] chama-se convergente de ordem k de [a0;a1, a2, · · · ].

Naturalmente, e por se tratar de uma fracção contínua finita, o convergente de ordemk de

uma determinada fracção contínua pode ser escrito na forma de uma fracção simplesAk/Bk.

Nesta fracção,Ak eBk são números inteiros que satisfazem a seguinte relação de recorrência:

               Casos Base: A−1= 1, A0=a0 B−1= 0, B0 = 1 P. Indutivo: Ak=akAk−1+Ak−2 Bk=akBk−1+Bk−2

Os inteirosAkeBkdesignam-se, respectivamente, por numeradores e denominadores parciais

de ordem k, e satisfazem algumas propriedades e relações interessantes a estudar ao longo

deste texto. O ponto de partida para grande parte destes resultados é a seguinte proposição: Proposição 2.3. Os convergentes Ak−2/Bk−2, Ak−1/Bk−1 e Ak/Bk de qualquer fracção

contínua verificam as equações

AkBk−1− Ak−1Bk= (−1)k−1 para qualquerk ≥ 0, (2.2)

AkBk−2− Ak−2Bk= (−1)kak para qualquerk ≥ 1. (2.3)

Demonstração. A demonstração de (2.2) pode ser feita por indução na ordem k do

conver-genteAk/Bk. Deste modo, debruçamo-nos em primeiro lugar sobre esta. Para k = 0, tendo

em conta a relação de recorrência referida anteriormente podemos facilmente concluir que

A0B−1− A−1B0 =a0· 0 − 1 · 1 = −1 = (−1)−1.

Supondo então que (2.2) se verifica para qualquer convergente de ordem menor quek,

obtém-se também

AkBk−1− Ak−1Bk = (akAk−1+Ak−2)Bk−1− Ak−1(akBk−1+Bk−2)

= − (Ak−1Bk−2− Bk−1Ak−2)

(H.I.)

(38)

2.1. CONCEITOS FUNDAMENTAIS

o que demonstra o resultado. Quanto à equação (2.3), tendo em conta que (2.2) se verifica para

k ≥ 0 é também fácil de concluir que, para qualquer valor de k ≥ 1, são válidas as equações AkBk−2− Ak−2Bk= (akAk−1+Ak−2)Bk−2− Ak−2(akBk−1+Bk−2)

=ak(Ak−1Bk−2− Bk−1Ak−2)

= (−1)kak.

Com base nesta proposição podemos demonstrar agora dois resultados importantes no con-texto do “método das fracções contínuas”:

Corolário 2.4. Os convergentes Ak/Bk da fracção contínua de qualquer número realα

ver-ificam as seguintes propriedades:

(a) Os convergentes de ordem par formam uma sequência estritamente crescente, en-quanto que os de ordem ímpar formam uma sequência estritamente decrescente; (b) Qualquer convergente de ordem ímpar é maior que qualquer convergente de ordem par; (c) α é maior que qualquer convergente de ordem par e menor que qualquer convergente

de ordem ímpar.

Demonstração. A propriedade (a) é fácil de demonstrar tendo em conta que, de acordo com

a Proposição 2.3, se verifica Ak BkAk−2 Bk−2 = (−1) ka k BkBk−2

para qualquer k ≥ 1. Deste modo, e uma vez que os inteiros ak e Bk são positivos para

qualquer k ≥ 1, facilmente se conclui que o sinal de Ak/Bk− Ak−2/Bk−2 é igual a (−1)k.

Assim, se k é par esta diferença é positiva, e se k é ímpar esta é negativa, ficando portanto

demonstrada a propriedade (a). Quanto à propriedade (b), é conveniente notar em primeiro lugar que, de acordo com (2.2), se verifica a desigualdade

A2k−1

B2k−1

> A2k B2k

para qualquerk ≥ 0. (2.4)

Assim, se existisse algum convergente de ordem par maior ou igual a algum convergente de ordem ímpar teria que se verificar A2k−1

A2k−1

A2k0

B2k0 para algum par de inteiros k, k

0 ≥ 0.

No entanto, e de acordo com a propriedade (a), se k0 < k tem também que se verificar

A2k−1

B2k−1 <

A2k

B2k, enquanto que se k < k

0 tem que se verificar A2k0−1

B2k0−1 <

A2k0

B2k0, sendo cada uma

destas desigualdades absurda tendo em conta (2.4). Deste modo, conclui-se que (b) se verifica. Por fim, e notando que, de acordo com a Definição 2.2, os convergentes da fracção contínua de α constituem uma sucessão convergente para este número real, conclui-se imediatamente

que (c) é também verdadeira.

(39)

2. MÉTODO DAS FRACÇÕES CONTÍNUAS

Corolário 2.5. O convergente Ak/Bk de ordem k de qualquer fracção contínua verifica

mdc (Ak, Bk) = 1.

Demonstração. Tendo em conta a equação (2.2), e denotando pord o valor de mdc (Ak, Bk),

facilmente se verifica qued divide obrigatoriamente (−1)k−1, e portanto qued = 1.

Como referido no início desta secção, os convergentes de uma qualquer fracção contínua proporcionam aproximações racionais de grande qualidade ao número por esta representado. O seguinte teorema, de grande importância neste contexto, indica-nos então um majorante para a diferença entre o número representado e estas mesmas aproximações:

Teorema 2.6. Sendoα um número real arbitrário e Ak/Bk o convergente de ordemk para α,

verifica-se a desigualdade α −Ak Bk < 1 BkBk+1 .

Demonstração. Como facilmente se conclui, tendo em conta o Corolário 2.4 é válida para

qualquerk ≥ 0 a desigualdade α − Ak Bk < Ak+1 Bk+1Ak Bk

. Assim, e de acordo com a

Proposi-ção 2.3, é também válida a desigualdade equivalente

α − Ak Bk < |AkBk+1− Ak+1Bk| BkBk+1 = 1 BkBk+1 .

Embora este resultado garanta a qualidade da aproximação efectuada ao utilizarmos um convergente da fracção contínua de α como aproximação a este número irracional, sempre

que o fazemos estamos, ainda assim, a cometer um determinado erro de truncatura. De facto, truncando o desenvolvimento da fracção contínua de um dado número irracional α antes do

quociente parcial de ordemk ≥ 1, verifica-se que existe um número irracional αk > 1 tal que

α = a0+ 1 a1+ 1 a2+ · · · 1 ak−1+ 1 αk (def) = [a0;a1, a2, · · · , ak−1;αk],

o qual representa, de certa forma, o erro cometido na aproximação deα por Ak−1/Bk−1. A

este número irracional,αk, dá-se habitualmente o nome de quociente completo de ordem k.

De modo geral, é costume tomar-se α0

(def)

= α, demonstrando-se facilmente [8, pp. 139–140]

que os restantes quocientes completos da fracção contínua de qualquer número realα verificam α = αkAk−1+Ak−2

αkBk−1+Bk−2

para qualquerk ≥ 1. (2.5)

Como caso particular desta última equação, e resultado de grande interesse no contexto do “CFRAC”, temos o caso dos números irracionais da forma√m, com m inteiro positivo. Para

Referências

Documentos relacionados

Parágrafo Primeiro - Ao ingressar no FUNDO, os cotistas devem assinar o Termo de Adesão e Ciência de Riscos, por meio do qual atestam que: (a) tiveram acesso aos documentos

mínimo 05 anos de experiência profissional em projetos de água e esgoto, projetos de prevenção a incêndio, e possua conhecimentos de AutoCAD, para elaborar projetos

a) Transversalidade: É reconhecer que as diferentes especialidades e práticas de saúde podem conversar com a experiência daquele que é assistido. Juntos,

Análises comparativas entre os modelos que representam as perdas por histerese mostraram que o modelo 6 (equacionamento utilizando um polinômio de sexta ordem)

Tratamentos de quebra de dormência (ácido sulfúrico, nitrato de potássio, ácido giberélico e lixa n.180) não são eficazes para aumentar a germinação de

O crânio apresentou dois pares de alvéolos relativos aos incisivos, internos ligeiramente maiores que os externos; um par de alvéolos para os caninos; um par de

@ j`glugt` ci hol`tos i cos lugtos priig- @ j`glugt` ci hol`tos i cos lugtos priig- jancos j`e osfoht` j`gstntun ueo joeoco ne- jancos j`e osfoht` j`gstntun ueo joeoco ne-

Será aceito como documento oficial: Cartão do CPF, ou Documento de Identidade (RG – frente e verso, contendo o nº do CPF no verso) ou Declaração de consulta do CPF emitido pelo