• Nenhum resultado encontrado

Exemplo de Aplicação do “PQS”

3.3 Primos Grandes no “Crivo Quadrático”

3.3.2 Exemplo de Aplicação do “PQS”

Suponhamos que pretendemos factorizar o número composto n = 639913 utilizando o “crivo

quadrático”. Para o efeito, definimos o polinómio f : x 7→ x2− 639913 e, de acordo com a

equação (3.17), estabelecemos o limite da base de factores em Bmax = 17, obtendo assim o

conjunto B = {−1, 2, 3, 7, 13, 17}. Por fim, estabelecemos o limite do intervalo de crivagem

em M = 15, obtendo S = {x ∈ Z : |x − 800| < 15}.

Resultados da Etapa de Crivagem: Após crivar o polinómio f no referido intervalo

conseguimos obter 5 valores suaves de f , nomeadamente

f (794) = −9477 = −36· 13, f (797) = −4704 = −25· 3 · 72,

f (799) = −1512 = −23· 33· 7, f (803) = 4896 = 25· 32· 17,

f (805) = 8112 = 24· 3 · 132.

Ora, para garantir as condições do Lema 2.16 necessitamos de 7 valores suaves do polinómio

f , enquanto que apenas dispomos de 5. De facto, verifica-se facilmente através de uma

pesquisa exaustiva que não conseguimos combinar estes 5 valores por forma a obter um quadrado. Deste modo, para factorizarn com a versão original do “crivo quadrático” teríamos

necessariamente que aumentar o intervalo de crivagem e/ou a base de factores. No entanto, decidimos analisar os resultados desta etapa e verificar se com a variante “PQS” é possível obter algumas relações parciais que nos possam ser úteis na factorização deste inteiro.

Procura de Relações Parciais: Analisando a Tabela 3.6, podemos concluir que existem

11 valores def divisíveis por um único primo não pertencente à base de factores nas condições

de (3.21). Procedendo da maneira descrita anteriormente concluímos então que, destes 11, dois são divisíveis pelo mesmo primo 29, e outros dois são divisíveis pelo primo 47. Deste modo, obtemos duas combinações válidas:

f (795) · f (800) ≡ −24· 3 · 17 · 292 (mod 639913)

f (785) · f (813) ≡ −29· 32· 72· 472 (mod 639913).

Com estas duas congruências, equivalentes a relações completas, conseguimos já reunir os 7 valores def “suaves” de que necessitamos para garantir as condições do Lema 2.16, pelo que

agora temos a garantia de que existe um subconjunto de {f (794), f (797), f (799), f (803), f (805),

f (785) · f (813), f (795) · f (800)}

3. CRIVO QUADRÁTICO xi f (xi) Πi Suave? f (xi)/Πi (17, 172]? Pi Factorização def (xi) 785 −23688 −504 — 47 X 47 −23· 32· 7 · 47 786 −22117 −17 — 1301 — 787 −20544 −192 — 107 X 107 −26· 3 · 107 788 −18969 −3 — 6323 — 789 −17392 −16 — 1087 — 790 −15813 −63 — 251 X 251 −32· 7 · 251 791 −14232 −24 — 593 — 792 −12649 −91 — 139 X 139 −7 · 13 · 139 793 −11064 −24 — 461 — 794 −9477 −9477 X 795 −7888 −272 — 29 X 29 −24· 17 · 29 796 −6297 −3 — 2099 — 797 −4704 −4704 X 798 −3109 −1 — 3109 — 799 −1512 −1512 X 800 87 3 — 29 X 29 3 · 29 801 1688 8 — 211 X 211 23· 211 802 3291 3 — 1097 — 803 4896 4896 X 804 6503 7 — 929 — 805 8112 8112 X 806 9723 21 — 463 — 807 11336 104 — 109 X 109 23· 13 · 109 808 12951 9 — 1439 — 809 14568 24 — 607 — 810 16187 1 — 16187 — 811 17808 336 — 53 X 53 24· 3 · 7 · 53 812 19431 153 — 127 X 127 32· 17 · 127 813 21056 448 — 47 X 47 26· 7 · 47 814 22683 3 — 7561 — 815 24312 1 — 24312 —

3.3. PRIMOS GRANDES NO “CRIVO QUADRÁTICO”

cujo produto é um quadrado. Ora, analisando cuidadosamente estes valores e as respectivas factorizações concluímos que

f (797) · f (805) · f (785) · f (813) =29· 32· 72· 13 · 472,

pelo que podemos tomar

a = 797 · 805 · 785 · 813 ≡ 343789 (mod 639913) b = 29· 32· 72· 13 · 47 ≡ 377617 (mod 639913) e tentar factorizar n.

Tentativa de Factorização: Tendo em conta os valores de a e b obtidos no passo ante-

rior obtemos a congruência não trivial 3437892 ≡ 3776172 (mod 639913), a partir da qual

conseguimos efectivamente obter dois divisores não triviais de 639913, nomeadamente mdc (343789 − 377617, 639913) = 2819

mdc (343789 + 377617, 639913) = 227.

3.3.3

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

No seu artigo [14], Arjen Lenstra e Mark Manasse propuseram uma extensão óbvia à variante “Um Primo Grande”: admitir também valores de f divisíveis por não um mas dois primos

que excedam o limite imposto à base de factores. Utilizando esta nova variante, denominada “Crivo Quadrático com Dois Primos Grandes” ou “PPQS”, Lenstra e Manasse verificaram um aumento do desempenho do “crivo quadrático” ainda maior que o obtido com a técnica descrita na secção anterior na factorização de números com mais de 100 algarismos.

A ideia fundamental do “PPQS” é a de permitir não só relações do tipo de (3.20) mas também congruências do tipo

(ai)2≡ biPiQi (modn) combi suave, (3.24)

chamadas relações bi-parciais, onde Pi e Qi são dois primos que excedem o limite Bmax da

base de factores mas que, tal como na variante anterior, são ambos menores que (Bmax)2.

Nesta variante do “crivo quadrático” impomos ainda a restrição adicional de que em cada relação bi-parcial o produto PiQi seja menor ou igual a (Bmax)3.

Por forma a descrever o modo de funcionamento desta variante, suponhamos que no final da etapa de crivagem do “crivo quadrático” obtínhamos um valor de f da forma

f (xi) =yiR, (3.25)

3. CRIVO QUADRÁTICO

ondeyi denota um inteiro suave e onde R é um inteiro que não é divisível por nenhum primo

da base de factores e que verifica uma das condições alternativas

(i) Bmax < R ≤ (Bmax)2 ou (ii) (Bmax)2 < R ≤ (Bmax)3.

Nestas condições, e caso se verifique a condição (i), R é como já sabemos um número primo, pelo que se obtém assim uma relação parcial que pode ser processada tal como na variante “Um Primo Grande”. No caso de se verificar a condição (ii), R tanto pode ser um número primo como um número composto. Se R for primo, poderia naturalmente ser considerado tal como os primos grandes da variante anterior. No entanto, qualquer valor de R nestas condições é já demasiado grande para que haja hipótese de encontrar outro valor def divisível

pelo mesmo primo, e portanto o respectivo valor de f deve ser ignorado. Por fim, e se, pelo

contrário, R for um número composto, verifica-se facilmente que este inteiro é divisível por exactamente dois primos P e Q maiores que Bmax, obtendo-se assim uma relação bi-parcial.

Numa aplicação prática desta variante, as condições (i) e (ii) separam-se muito facil- mente: se após o processo de crivagem o valor de Ri for maior que Bmax mas menor que

(Bmax)2, já sabemos da discussão efectuada em §3.3.1 como processar a relação parcial resul-

tante. Se, pelo contrário, Ri pertencer ao intervalo



(Bmax)2, (Bmax)3

i

, devem ser aplicados um ou dois testes rápidos de primalidade, como por exemplo o Teste de Fermat, para averiguar se Ri pode ser um número primo. Deste modo, se por exemplo se verificar

2Ri−1 ≡ 1 (mod R

i) e 3Ri−1≡ 1 (mod Ri)

o inteiro Ri pode efectivamente ser um número primo, devendo portanto ser ignorado junta-

mente com o respectivo valor def (xi). Se, por outro lado, se verificar que 2Ri−16≡ 1 (mod Ri)

ou 3Ri−1 6≡ 1 (mod R

i), o inteiro Ri é um número composto, e portanto, tendo em conta a

discussão anterior, é produto de dois primos Pie Qi maiores que Bmax. Neste caso, e uma vez

que R é já relativamente “pequeno” quando comparado comn, estes primos podem ser obtidos

recorrendo a um método de factorização mais elementar, como o “método ró” [5, pp. 229–231]. Descrita a forma como são obtidas as relações parciais ou bi-parciais no “PPQS”, resta descrever uma forma de as combinar por forma a obter relações completas que nos sejam úteis. Nesta nova variante não é tão fácil obter estas combinações como era na variante “Um Primo Grande”, já que agora trabalhamos com dois tipos diferentes de relações. Por exemplo, supondo que obtemos as factorizações

3.3. PRIMOS GRANDES NO “CRIVO QUADRÁTICO”

facilmente se verifica que não é possível obter uma relação completa que lhe seja equivalente. No entanto, se as relações obtidas forem

f (x1) =y1P1, f (x2) =y2P2 e f (x3) =y3P1P2

é também fácil verificar que (x1x2x3)2 ≡ y1y2y3(P1)2(P2)2 (modn), equivalendo esta con-

gruência a uma relação completa que podemos utilizar da forma descrita anteriormente. Uma forma fácil de, de entre uma lista de relações parciais e bi-parciais, detectar todas as combinações que permitem obter relações completas equivalentes consiste em considerar um grafo G = (V, E) onde cada primo Pi que figure nestas relações represente um vértice

vi, e onde dois vértices vi e vj estão ligados por uma aresta se e só se os primos Pi e

Pj ocorrem como factores na mesma relação bi-parcial. Considerando também um vértice

adicional associado ao inteiro 1, ligado por uma aresta a cada primo P0 que figura numa relação parcial, detectar combinações de relações parciais e bi-parciais que permitam obter uma relação completa passa a ser equivalente a determinar todos os ciclos do grafoG, tarefa

para a qual existem algoritmos eficientes (para uma descrição mais aprofundada de conceitos relacionados com a Teoria dos Grafos, remetemos o leitor para a leitura de [4]).

Para finalizar a descrição do “PPQS”, convém ainda referir um facto muito importante: segundo Lenstra e Manasse [14], esta variante do “crivo quadrático” só deve ser utilizada em números na ordem dos 100 algarismos, uma vez que são várias as situações que podem prejudicar o seu desempenho ao trabalhar com números mais pequenos:

(a) Para factorizar números pequenos com a versão básica do “crivo quadrático” são pre- cisas muito menos relações completas e estas obtêm-se muito mais frequentemente que em factorizações de números grandes. Deste modo, e uma vez que não é fácil obter um ciclo no grafo descrito no parágrafo anterior sem antes obter um número muito grande de relações completas ou parciais válidas, até se conseguir obter uma combi- nação válida com dois primos grandes é muito provável que já se tivesse conseguido factorizar o número em questão apenas com relações completas ou mesmo parciais. (b) Para além do referido no ponto anterior, nesta variante é necessário utilizar testes de

primalidade e outros métodos de factorização em cada valor de f da forma de (3.25),

o que se traduz no facto do algoritmo demorar mais tempo a verificar cada um dos valores seleccionados no processo de crivagem.

(c) Para concluir, se permitirmos que sejam seleccionados valores def que verifiquem a

equação (3.25) com Bmax < R ≤ (Bmax)3 são seleccionados muito mais valores para

uma segunda verificação, o que pode prejudicar a eficiência do método.

3. CRIVO QUADRÁTICO