fatora˘c~ao dos numeros inteiros e - unesp: câmpus de ... · fatora˘c~ao dos numeros inteiros e...

13

Upload: truongxuyen

Post on 04-May-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se
Page 2: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

Fatoracao dos Numeros Inteiros eCurvas Elıticas

Prof. Dr. Parham Salehyan

IBILCE - UNESPSao Jose do Rio Preto

Outubro de 2013

Page 3: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

Fatoração dos Números Inteiros eCurvas Elíticas

Parham Salehyan

[email protected]

Resumo

Um dos resultados mais elementares da teoria dos números é a fatoração de números inteiros. Fatorarum número inteiro grande pode ser uma tarefa bastante trabalhosa. Nesse minicurso após uma breveintrodução às curvas elíticas, apresentaremos um algoritmo para fatorar número inteiros.

I. Introdução

Inicialmente faremos um breve estudo sobre cúbicas planas projetivas. O foco principal é o con-junto dos pontos racionais sobre uma cúbica plana projetiva, em outras palavras, as soluçõesracionais de uma equação polinomial de grau 3 em três variáveis. Em seguida definiremos

uma operação entre os pontos de uma cúbica e observamos que o conjunto dos pontos de umacúbica munido desta operação se torna um grupo abeliano. Como aplicação apresentaremos umalgoritmo para fatorar números inteiros.

II. Classificação das Cúbicas Planas

Sejam C o corpo dos números complexos e P2 o plano projetivo complexo. Uma cúbica éuma curva projetiva plana definida por um polinômio homogêneo de grau três F(x, y, z) =

∑i+j+k=3

aijkxiyjzl ∈ C[x, y, z], ou seja, o conjunto dos pontos P = (x : y : z) ∈ P2 cujas coor-

denadas satisfazem a equação F(x, y, z) = 0. O conjunto dos pontos do tipo P = (x : y : 1) échamado da parte afim da curva. Observem que estes pontos são dados pela equação f (x, y) :=F(x, y, 1) = 0 e pela homogeneidade de F, deg f = 3. Os demais pontos, ou seja, pontos do tipoP = (x : y : 0) são chamados de pontos no infinito. Um ponto P é chamado de um ponto singularse ∂F

∂x (P) = ∂F∂y (P) = ∂F

∂z (P) = 0, caso contrário é chamado de um ponto não singular ou suave.Diremos que a cúbica é suave ou não singular, se não possui pontos singulares. Uma cúbica plananão singular é chamada de uma curva elítica.

Example 1 Seja C a cúbica definida por F = y2z − x3 − xz2 − z3. Sua parte afim é dada por f =y2 − x3 − x− 1, o ponto P = (0 : 1 : 0) é seu ponto no infinito e não possui ponto singular.

Example 2 Seja C a cúbica definida por F = y2z− x3. Sua parte afim é dada por f = y2 − x3, possuiapenas um ponto no infinito O = (0 : 1 : 0) e apenas um ponto singular (0 : 0 : 1).

Uma cúbica definida por um polinômio irredutível F é chamada de irredutível, caso contrárioé chamada de redutível. A irredutibilidade de F é equivalente a irredutibilidade do polinômio fque define a parte afim de C.

1

Page 4: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

Seja C uma cúbica redutível. Pelo fato que deg f = 3, teremos as seguintes possibilidadespara a parte afim de C:

Figura 1

No caso de cúbicas irredutíveis devemos considerar os casos singular e suave. Seja C umacurva elítica. É possível mostrar que após uma série de mudanças de coordenadas, C é projetiva-mente equivalente à curva definida por

y2z = x(x− z)(x− λz)

para algum λ ∈ C \ {1, 0}. Observem que C possui apenas um ponto no infinito O = (0 : 1 : 0)e sua parte afim é dada pela equação y2 = x(x− 1)(x− λ). Neste caso é mais comum trabalharcom a equação da curva da forma y2 = g(x), onde g é um polinômio mônico de grau 3 em umavariável. Esta forma de equação de uma curva elítica é chamada de sua forma de Weierstrass. Nocaso singular é possível mostrar que após uma série de mudanças de coordenadas, C é projetiva-mente equivalente a y2z = x3 ou y2z = x2(x + z).

III. O grupo dos pontos racionais

Seja C uma curva elítica. Pelo argumento apresentado no final da seção anterior, concluímos queC pode ser vista como a união de sua parte afim com seu ponto no infinito. Um ponto de C échamado de ponto racional se suas coordenadas forem números racionais. Seja C(Q) o conjuntosdos pontos racionais de C. Observamos que C(Q) 6= ∅ uma vez que O ∈ C(Q).

2

Page 5: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

O objetivo principal desta seção é definir uma operação entre os pontos de C e verificarsuas propriedades. Um dos resultados mais importantes da teoria elementar de curvas elíti-cas é sobre seus pontos racionais. Por este motivo a partir deste momento trabalharemos ape-nas em C(Q). De fato consideramos uma curva elítica cuja parte afim é dada pela equaçãoy2 = x3 + ax2 + bx + c, onde a, b, c ∈ Q. Inicialmente mostraremos o seguinte fato.

Afirmação. Seja L a reta dada pela equação y = mx + n, onde m, n ∈ Q. Se esta reta interceptacom a parte afim de uma curva elítica C em dois pontos racionais, então o terceiro ponto deinterseção também é ponto racional.

Demonstração. Sejam y2 = x3 + ax2 + bx + c, onde a, b, c ∈ Q a equação da parte afim de C e(x1, y1) e (x2, y2) os dois pontos racionais da interseção de L com C. Os pontos da interseção sãodados pela equação

(mx + n)2 = x3 + ax2 + bx + c, ou, x3 + (a−m2)x2 + (b− 2mn)x + (c− n2) = 0.

Observe que x1 + x2 + x3 = −(a − m2). Então x3 ∈ Q e portanto y3 = mx3 + n ∈ Q, ou seja,(x3, y3) é um ponto racional.

Operação em C(Q)

Sejam C uma curva elítica cuja parte afim é dada por y2 = g(x), onde g ∈ Q[x] é mônico. Então

C(Q) = {(x, y) ∈ Q2 | y2 = x3 + ax2 + bx + c} ∪ {O}.

A seguir definiremos como “somar” dois pontos P, Q ∈ C(Q):

• Se um destes pontos for O, então a soma será o outro, ou seja, P +O = O + P = P.• Se P 6= O e Q 6= O, considere a reta que passa por P e Q e obtenha o terceiro ponto de

interseção desta reta com a cúbica. Denote este ponto por P ∗ Q e observe que pela afirmaçãoacima, este ponto é racional. Através de uma reta vertical, ligue o ponto O ao ponto P ∗ Q. Estareta interceptará a cúbica num ponto que denotaremos por P + Q. Novamente pela afirmaçãoacima P + Q ∈ C(Q). De fato se P ∗Q = (x, y), então P + Q = (x,−y).

Pela definição acima fica claro que esta operação é comutativa, seu elemento neutro é O e seP = (x, y) então −P = (x,−y). Mais precisamente:

Proposição. (C(Q), +) é um grupo abeliano.

A parte delicada da demonstração é a associatividade. A demonstração geométrica da asso-ciatividade pode ser encontrada em [DH].

Observe que os pontos da cúbica que estão sobre o eixo dos x, i.e, os pontos (x, y) ∈ C tais quey = 0, caso sejam racionais, são exatamente aqueles que satisfazem a equação P = −P ou 2P = O.Vale observar que T = {P ∈ C(Q) | 2P = O} possui um, dois ou quatro elementos de acordo como número das raízes racionais de g(x). Sabendo que (C(Q), +) é um grupo, claramente (T, +) é

3

Page 6: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

um subgrupo(finito) de (C(Q), +). A seguir determinaremos explicitamente as coordenadas deP1 + P2 o que pode ser utilizado para demonstrar algebricamente a associatividade da operação.Sejam P1 = (x1, y1), P2 = (x2, y2) pontos racionais de C e P1 ∗ P2 = (x3, y3). Então P1 + P2 =(x3,−y3).

Se P1 = P2, tomamos a reta tangente à cúbica C no ponto P1 = (x1, y1) para obter o pontoP1 ∗ P1 = O, logo P1 + P1 = 2P1 = O.

Antes de analisar o caso em que P1 6= P2, faremos a seguinte observação. Se y1 6= 0, a equaçãoda reta tangente à cúbica C em P1 = (x1, y1) é y = mx + n, onde

m =3x2

1 + 2ax1 + b2y1

e n = y1 −mx1.

Esta reta intercepta a cúbica duas vezes no ponto P1 = (x1, y1) e se P3 = (x3, y3) é o terceiroponto de interseção desta reta com a cúbica C (isto é P3 = P1 ∗ P1) então 2x1 + x3 = m2 − a, ouseja, x3 = m2 − a− 2x1, e assim, y3 = mx3 + n.

Para P1 6= P2, teremos dois casos a serem considerados: x1 = x2 e x1 6= x2. Se x1 = x2 a retaque liga P1 a P2 é vertical, logo P1 ∗ P2 = O e P1 + P2 = O. Se x1 6= x2 a reta que liga P1 a P2 é dotipo y = λx + ν, onde

λ =y1 − y2

x1 − x2

eν = y1 − λx1 = y2 − λx2.

Se P3 = (x3, y3) = P1 ∗ P2, isto é, P3 é a terceira interseção desta reta com a cúbica C, encontramos

x3 = λ2 − a− x2 − x1 e y3 = λx3 + ν

logo o ponto P1 + P2 está determinado, uma vez que P1 + P2 = (x3,−y3).

O fato mais importante na teoria elementar das curvas elíticas é o seguinte teorema:

Teorema de Mordell. Seja C uma curva elítica. Então (C(Q), +) é finitamente gerado, ou seja,existe um número finito de pontos P1, . . . , Pn ∈ C(Q) tal que para todo P ∈ C(Q),

∃k1, . . . , kn ∈ Z, P = k1P1 + · · ·+ knPn.

Vale destacar que nos casos em que C é singular, (C(Q), +) não é finitamente gerado, veja [S].

IV. Algoritmo de fatoração usando curvas elíticas

Discutiremos agora o problema de fatoração de inteiros. Pelo teorema fundamental de aritméticatodo inteiro possui uma única fatoração em termos de números primos. Às vezes utilizaremosum caso particular do pequeno teorema de Fermat, que afirma que se n é primo ímpar, então2n−1 ≡ 1(mod n), para verificar que n não é número primo. O primeiro e mais natural modode fatorarmos um número n é fazendo testes do tipo: tomar os primos anteriores ao número everificar se estes dividem o número n e quantas vezes. Pelo fato que o menor fator de n é menorque

√n, basta tentarmos números menores ou iguais a [

√n]. Mas para grandes valores isso não

4

Page 7: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

é muito prático. Vamos estudar um modo de fatorar grandes números.

Problema Dados a, k, n ∈ N, calcule ak(mod n).

Para explicar melhor a ideia, seja k = 1000. Escrever k como uma soma de potências de 2, ouseja, escrevendo na base 2.

1000 = 23 + 25 + 26 + 27 + 28 + 29,

então a1000 = a23 · a25 · · · · a29. Calcularemos o número Ai := a2i

(mod n).

A0 = a(mod n)A1 = A0 · A0 = a2(mod n)A2 = A1 · A1 = a4(mod n)

A3 = A2 · A2 = a23(mod n)

... =...

A9 = A8 · A8 = a29(mod n)

Então a1000(mod n) = A3 · A5 · A6 · A7 · A8 · A9. Observem que com apenas 9 operações paraobter os A′is e 6 operações para obter a1000(mod n) faremos o cálculo. Este é um método pode sermuito melhor e mais rápido do que calcular a1000 e depois determinar o resto da divisão por n.

Em geral escrevemos k na base 2:

k = k0 + k1 · 2 + k2 · 22 + k3 · 23 + · · ·+ kr · 2r.

A seguir calculamos A0 = a, A1 = A20, A2 = A2

1, . . . , Ar = A2r−1. Finalmente obtemos ak como

ak = (produto dos A′is para cada ki = 1).

Ou seja, com no máximo r operações(eventualmente ki = 0 para algum i) podemos calcularak(mod n). Assumindo kr = 1, pois é a expansão binária efetiva de k,

k = k0 + k12 + · · ·+ kr2r ≥ 2r ⇒ r ≤ log2 k.

Então provamos que é possível calcular ak(mod n) em no máximo 2 · log2 k operações, onde cadaoperação consiste de uma multiplicação e uma redução módulo n. Observe que para valoresgrandes de k, log2 k é “bem menor” que k.

Maior Divisor Comum Sejam a, b ∈ N. O objetivo é fazer uma estimativa do número dasoperações necessárias para determinar o maior divisor comum de a e b usando o algoritmo deEuclides. Ou seja, fazer divisões sucessivas:

a = bq1 + r2, 0 ≤ r2 < b,

b = r2q2 + r3, 0 ≤ r3 < r2,

5

Page 8: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

r2 = r3q3 + r4, 0 ≤ r4 < r3,...

rn−1 = rnqn + rn+1, 0 ≤ rn+1 < rn,

rn = rn+1qn+1.

Como a sequência dos restos é uma sequência decrescente de números inteiros não negativos,rn+2 = 0 para algum n. Pelo algoritmo (a, b) = rn+1. Afirmamos que:

∀i, ri+1 ≤ 12

ri−1.

De fato, se ri ≤ 12 ri−1, então concluímos porque ri+1 < ri. Por outro lado, suponha que ri > 1

2 ri−1.Sabemos que

ri−1 = riqi + ri+1 com 0 ≤ ri+1 < ri.

Agora sob a nossa suposição de que ri > 12 ri−1, encontramos

ri+1 = ri−1 − riqi < ri−1(1− 12

qi).

Claramente qi 6= 0 porque caso contrário ri−1 = ri+1, contradizendo o fato de que os r′is sãoestritamente decrescentes. Por isso, qi > 1 (de fato, qi = 1) e então ri+1 < 1

2 ri−1. Trocando a e bse necessário, podemos assumir que a ≥ b; sabemos que r2 < b. Por isso,

r4 <12

b, r6 =12

r4 <14

b, r8 <12

r6 <18

b, . . . , r2i <1

2i−1 b.

Mas r2i é um inteiro não negativo, assim 2i−1 ≥ b, e obtemos r2i < 1, o que significa que r2i = 0.Em outras palavras,

i ≥ 1 + log2 b = log2(2b) implica que r2i = 0.

Então usando o algoritmo de Euclides em no máximo 2 · log2(2b) = 2 · log2 max{2a, 2b} passosdeterminaremos o maior divisor comum de a e b.

Agora voltaremos ao problema de fatoração de inteiros em produto de primos. A seguir ex-plicaremos o algoritmo de Pollard.

Algoritmo de Pollard Este algoritmo constitui um protótipo daquilo que iremos estudar posteri-ormente, a saber a fatoração por curvas elíticas. A ideia é a seguinte: suponha que n tenha umfator primo p tal que p− 1 é um produto de pequenos primos. Pelo pequeno teorema de Fermat,se p não divide a então ap−1 ≡ 1(mod p). Assim p|(ap−1 − 1, n). Não conhecemos p e não sabe-mos calcular ap−1 − 1. Então escolheremos um inteiro da forma k = 2e2 · 3e3 · · · rer , onde 2, 3, . . . , rsão os primeiros primos e ei são inteiros positivos pequenos. Calculamos d := (ak − 1, n). Pe-los problemas discutidos acima, calculamos d em menos que 2 log2(2kn) operações, que é umaquantidade razoável de operações mesmo para valores grandes de k e n.

Se n tem um fator primo p e p − 1|k, então p|ak − 1. Nesse caso d ≥ p > 1. Se d 6= n,então teremos um fator próprio de n e repetiremos o procedimento para cada fator de n obtido

6

Page 9: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

desta forma. Se d = n, então escolhemos outro valor de a e faremos o procedimento acimanovamente. Como um exemplo, considere n = 246082373. A primeira coisa a verificar é se nnão é primo. Usando o método explicado acima, verificamos que 2n−1(mod n) 6= 1, então n écomposto. Tomamos

a = 2 e k = 22 · 32 · 5 = 180.

Visto que180 = 22 + 24 + 25 + 27,

precisamos calcular 22i(mod n) para 0 ≤ i ≤ 7. Estes valores são 2, 4, 16, 256, 65536, 111566955, 166204404

e 214344997 respectivamente. Então

2180 = 222 · 224 · 225 · 227

≡ 16 · 65536 · 111566955 · 28795219(mod 246082373)≡ 12129927(mod 246082373).

Um simples cálculo usando o algoritmo de Euclides mostra que

(2180 − 1, n) = (121299226, 246082373) = 1.

Assim o teste falha e n não tem fatores p tais que p− 1|180. Então escolhemos um k maior, porexemplo

k = [2, 3, . . . , 9] = 23 · 32 · 5 · 7 = 2520 = 23 + 24 + 26 + 27 + 28 + 211.

Usando o mesmo método,

22520 = 223+24+26+27+28+211 ≡ 101220672(mod 246082373),

pelo algoritmo de Euclides (22520 − 1, n) = (101220671, 246082373) = 2521, ou seja, encontramosum fator próprio de n, de fato n = 2521 · 97613, e cada fator é um número primo. Em geralseguiremos os seguintes passos para encontrar um fator de um número inteiro n ≥ 2:

Passo 1 Escolha um número k que seja produto de pequenos primos a pequenas potências:

k = [1, 2, 3, . . . , m]

para algum inteiro positivo m.Passo 2 Escolha um inteiro arbitrario satisfazendo 1 < a < n.Passo 3 Calcule (a, n). Se for estritamente maior que 1, então ele é um fator próprio de n. Casocontrário, vamos ao Passo 4.Passo 4 Calcule D = (ak − 1, n). Se 1 < D < n, então D é um fator próprio de n. Se D = 1,voltamos ao Passo 1 e tomaremos outro valor para k. Se D = n, voltamos ao Passo 2 e escolhemosoutro a.

Note que o algoritmo Pollard deve finalmente parar porque eventualmente k no passo 1 seráigual a 1

2 (p − 1) para algum primo p que divide n, então, eventualmente haverá algum p − 1dividindo k. No entanto, o algoritmo não é prático para grandes valores de n. O algoritmo

7

Page 10: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

só funciona em uma quantidade razoável de tempo, se acontece de n ter um divisor primo psatisfazendo

p− 1 = produto de pequenos primos a pequenas potências.

A seguir explicaremos o algoritmo de Lenstra para fatoração de números grandes usando curvaselíticas.

O algoritmo de Pollard é baseado no fato de que elementos não nulos de Z/pZ formam umgrupo (Z/pZ)∗ de ordem p− 1. Assim se p− 1|k, então ak = 1 para todo a ∈ (Z/pZ)∗. A ideiado algoritmo de Lenstra é substituir o grupo (Z/pZ)∗ pelo grupo dos pontos na curva elíticaC(Zp), e substituir o inteiro a pelo ponto P ∈ C(Zp). Como no algoritmo de Pollard, escolhemosum inteiro k composto de um produto de pequenos primos. Então, se ocorrer que o número deelementos de C(Zp) divida k, teremos kP = O em C(ZP). E tal como antes, o fato de que kP = Ogeralmente permite-nos encontrar um fator próprio de n. Qual é a vantagem do algoritmo deLenstra? Se escolhermos apenas uma curva C com coeficientes inteiros e considerarmos suaredução módulo números primos, então não há vantagens. Pois esse algoritmo funcionará separa algum primo p que divida n, #C(Zp) é produto de primos pequenos. Similarmente, teremosvantagem usando o algoritmo de Pollard se existir um primo p|n tal que p− 1 seja um produtode pequenos primos. Mas suponha agora que não consigamos usar o algoritmo de Pollard. Como algoritmo de Lenstra, existe a flexibilidade que nos permite continuar trabalhando, ou seja,somos livres para escolher uma nova curva elítica e repetir o processo. Variando a curva C edesde que #C(Zp) varie consideravelmente para cada primo p, nossas chances de eventualmenteconcluirmos o algoritmo são bastante boas. Agora vamos transformar essas observações numalgoritmo explícito. Notamos anteriormente que, se C é uma cúbica não sigular com coeficientesem Zp, então

#C(Zp) = p + 1− εp, |εp| ≤ 2√

p.

Além disso, pode-se mostrar que, como C varia para tais curvas, os números εp são bem dis-tribuídos ao longo do intervalo [−2

√p, 2√

p]. Por isso, é bastante provável (mas ainda nãorigorosamente provado) que vamos executar de forma bastante rápida através de uma curva Ccom #C(Zp) igual a um produto de números primos pequenos.

Algoritmo de curvas elíticas de Lenstra. Seja n ≥ 2 um inteiro composto para o qual buscamosum fator.Passo 1 Verifique que (n, 6) = 1 e também que n não seja da forma mr para algum r ≥ 2.Passo 2 Escolha aleatoriamente inteiros b, x1, y1 entre 1 e n.Passo 3 Seja c = y2

1 − x31 − bx1(mod n), considere a cúbica C : y2 = x3 + bx + c. Pela escolha de

c, P = (x1, y1) ∈ C.Passo 4 Verifique se (4b3 + 27c2, n) = 1. (Se for igual a n, volte e escolha um novo b. Se ele éestrito entre 1 e n então ele é um fator não trivial de n, e assim concluímos.)Passo 5 Escolha o número k como produto de pequenos primos a pequenas potências. Porexemplo tome k = [1, 2, 3, . . . , m], onde m é um inteiro inteiro positivo.Passo 6 Calcule kP = ( ak

d2k, bk

d3k).

Passo 7 Calculamos D = (dk, n). Se 1 < D < n, então D é um fator não trivial de n e assimconcluímos. Se D = 1, ou voltamos ao Passo 5 e aumentamos o valor de k. Faremos agora umestudo do funcionamento do algoritmo de Lenstra e como executaremos o cálculo P + P + · · ·+ Pdo passo 6. Para ver porque o algoritmo funciona, suponha que tenhamos a sorte de escolher uma

8

Page 11: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

curva C e o número k de modo que, para algum primo p dividindo n, temos #C(Zp) dividindok. Então todo elemento em C(Zp) tem ordem dividindo k. Assim, em particular, reduzindoP ∈ C(Q) módulo p temos que:

kP = kP = O.

Em outras palavras, a redução de kP módulo p é o ponto O no infinito e assim devemos ter p|dk,ou seja, p|(dk, n). Ainda mais, n não divide dk, portanto teremos um fator de n. Isto explicaporque o algoritmo de Lenstra funciona. Agora buscamos calcular kP eficientemente. Ao invésde fazer P + P + · · · + P usaremos o mesmo esquema que usamos para calcular ak. Primeiroescrevemos k como:

k = k0 + k1 · 2 + k2 · 22 + k3 · 23 + · · ·+ kr · 2r, ki ∈ {0, 1}.

Como antes, podemos fazer isso para r ≤ log2 k. A seguir calculamos

P0 = P

P1 = 2P0 = 2P

P2 = 2P1 = 22P

P3 = 2P2 = 23P...

Pr = 2Pr−1 = 2rP,

e finalmente fazemos kP =r∑

i=0Pi. Desse modo calculamos kP em menos de 2 log2 k passos, do-

brando e adicionando pontos. Note entretanto que não queremos calcular as coordenadas de kPcomo número racional porque o numerador e o denominador deveriam ter aproximadamentek2 dígitos. Então o melhor seria realizar nossos cálculos módulo n. Mas n não é primo, entãodevemos encontrar uma forma de usar as fórmulas para dobrar ou adicionar pontos. Considereo problema de adicionar dois pontos, digamos Q1 = (x1, y1) e Q2 = (x2, y2), onde x1, y1, x2,y2 são inteiros módulo n. Nossa fórmula para Q3 = Q1 + Q2 diz que: x3 = λ2 − x1 − x2 ey3 = −λx3 − (y1 − λx1), onde λ = y2−y1

x2−x1. A dificuldade encontra-se em calcular λ porque o

anel Z/nZ não é corpo, assim x2 − x1 talvez não possua inverso. Ao fazer fazer estes cálculos,encontraremos três possibilidades:

1) (x2 − x1, n) = 1. Neste caso x2 − x1 possui inverso em Z/nZ, assim podemos calcular Q3módulo n.

2) 1 < (x2 − x1, n) < n. Neste caso (x2 − x1, n) é um fator de n.

3) (x2 − x1, n) = n. Neste caso retornaremos ao passo 5 e reduziremos o valor de k, ou podemosretornar ao passo 2 e considerar outra curva.

Para duplicar o ponto Q = (x, y) módulo n, precisamos calcular a relação

λ =f ′(x)2y

=3x2 + 2ax + b

2y(mod n).

9

Page 12: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

Assim obtemos as mesmas 3 alternativas: calculamos 2Q(mod n) ou obtemos um fator própriode n, ou (y, n) = n e temos que recomeçar com um novo k ou uma nova curva.

Isto mostra como Lenstra funciona, embora na prática há diversos caminhos para fazer issomais eficientemente. Para ilustrar o processo geral, iremos agora usar o algoritmo de Lenstrapara fatorar o inteiro:

n = 175761513.

A primeira coisa a se fazer é checar que n não é primo. Usando sucessivamente o esquemadescrito antes, facilmente calculamos

2n−1 ≡ 93082891(mod n).

Pelo pequeno teorema de Fermat, n não é primo. Procuremos um fator. O primeiro passo noLenstra é checar que n não é potência perfeita

√n, 3√

n, 4√

n, . . . , 31√

n ≈ 1, 9855.

Nenhum desses são inteiros, assim n não é potência perfeita. Como√

1715761513 ≈ 42422concluímos que n tem algum fator primo p menor que 42422. Buscamos escolher um valor de kde modo que alguns inteiros próximos de p dividam k. Tentaremos k = LCM[1, 2, 3, . . . , 17] =12252240, que tem muitos fatores menores que 42422. A seguir temos de escolher uma curvaelítica e um ponto seu. Como indicado na descrição do algoritmo de Lenstra, é mais fácil fixaro ponto P e um dos coeficientes da curva, e então escolher o outro coeficiente tal que o pontoesteja na curva. Tome P = (2, 1). Tomamos vários valores de b, e então definimos c = −7− 2b.Para começar tomamos b = 1, então c = −9. Assim, olhando para a curva C e P (ponto) dadospor C : y2 = x3 + x− 9, P = (2, 1) ∈ C. Nosso objetivo é calcular kP(mod n) usando sucessivasduplicações. Assim a primeira coisa a fazer é expressar k como soma de potências de 2.

Por isso, para calcular kP(mod 3), precisamos determinar 2iP(mod 3) para 0 ≤ i ≤ 23. Pode-mos montar uma tabela, e finalmente, adicionando os pontos apropriados da tabela, encontramoso valor de kP(mod n). Assim, agora conhecemos que na curva y2 = x3 + x− 9 considerada mó-dulo n, temos

kP = 12252240(2, 1) ≡ (421401044, 664333727)(mod 1715761513).

Isso não diz sobre os fatores de n. O ponto principal do algoritmo de Lenstra é que ele nos dáum fator de n precisamente quando a lei da adição falha. Assim se pudermos calcular kP(mod n),temos que recomeçar com um novo k, um novo P, ou uma nova curva. Tomamos a últimaalternativa, variando a curva. Assim colocaremos com k = 12252240 e com P = (2, 1), mas agoratomaremos b = 2 e c = −7− 2b = −11. Usando esta curva e repetindo o cálculo anterior maisuma vez descobrimos que podemos calcular kP(mod n). Então tome b = 3 e c = −13, etc.

É possível calcular kP(mod n) para todo b = 3, 4, 5, . . . , 41. Entretanto, quando tentamos b = 42e c = −91, a lei da adição falha e encontramos um fator de n. O que acontece é o seguinte: nãotemos nenhuma dificuldade em fazer uma tabela dos 2iP(mod n) para 0 ≤ i ≤ 23, como acima.Então começamos adicionando os pontos da tabela para calcular kP(mod m). Como um penúltimopasso, encontramos

(24 + 26 + 210 + · · ·+ 220 + 221)P = 386363P

≡ (11150004543, 1676196055)(mod n)

10

Page 13: Fatora˘c~ao dos Numeros Inteiros e - UNESP: Câmpus de ... · Fatora˘c~ao dos Numeros Inteiros e Curvas El ticas ... Seja L a reta dada pela equação y = mx +n, onde m,n 2 Q. Se

XXV Semana de Matemática • 14 a 18 de Outubro de 2013 • Unesp-Ibilce

Também223P ≡ (1267572925, 848156341)(mod n).

Então para calcular kP teremos que somar estes últimos pontos módulo n. Para fazer isso temosque tomar a diferença de suas coordenadas x e encontrar o inverso de n. Mas quando tentamosfazer isso, descobrimos que o inverso não existe porque

(11150004543− 1267572925, n) = (−152568382, 1715761513) = 26927.

Assim a tentativa de calcular 12252240(2, 1) na curva

y2 = x3 + 42x− 91(mod 1715761513)

falha, mas ele leva a fatoração

n = 1715761513 = 26827 · 63719

É fácil conferir que cada um desses fatores é primo, assim o algoritmo nos dá a fatoração completade n.

Example 3 Seja n = 35. Observe que 35 não é primo e também não é uma potência perfeita. Considerek = 6 = 0 + 2 + 22. Tome b = 1 e c = 1− 1− 1 = −1(mod 35) = 34. Então C : y2 = x3 + x + 34 eP = (1, 1) ∈ C. Observamos (31216, 35) = 1. Sejam P1 := P e P2 := 2P1. Calculemos P1 := 2P:

x3 = λ2 − 2, λ =3 + 0 + 1

2(mod 35) = 2,

o que implica x3 = 2. Por outro lado, y3 = −2 · 2− (1− 2) = −3 = 32(mod 35), ou P1 = (2, 32). Pelomesmo processo, 2P1 = (25, 12), onde 25 = λ2 − x1 − x2, 12 = −λ · 25− (−y1 − λx1), x1 = x2 = 2,y1 = y2 = 32 e

λ =3 · 22 + 1

64(mod 35) =

1364

(mod 35) = 13 · 29(mod 35) = 377(mod 35) = 27.

Então d := (27− 2, n) = (25, 35) = 5. Como 1 < d < n = 35, pelo algoritmo que 5 é um fator de 35.

Referências

[H] Hefez, A. Introdução à Geometria Projetiva, Monografias de Matemática No 46 IMPA (1990)

[DH] Husemöller, D. Elliptic Curves, Graduate Texts in Matehmatics 111, Springer - Verlag (1987)

[S] Silverman, J. H and Tate, J. Rational Points on Elliptic Curves, Undergraduate Texts inMatehmatics Springer - Verlag (1992)

[V] Vainsencher, I. Introdução às Curvas Algébricas IMPA (2005)

11