<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Algorithms on kenji.blog</title><link>http://kenji.blog/pt/tags/algorithms/</link><description>Recent content in Algorithms on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>pt</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 09:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/pt/tags/algorithms/index.xml" rel="self" type="application/rss+xml"/><item><title>Existe algum algoritmo além do GNFS (Crivo Geral dos Campos de Números)?</title><link>http://kenji.blog/pt/p/beyond-gnfs-integer-factorization-algorithms/</link><pubDate>Fri, 11 Sep 2026 09:00:00 +0900</pubDate><guid>http://kenji.blog/pt/p/beyond-gnfs-integer-factorization-algorithms/</guid><description>&lt;img src="http://kenji.blog/p/beyond-gnfs-integer-factorization-algorithms/img/eyecatch.jpg" alt="Featured image of post Existe algum algoritmo além do GNFS (Crivo Geral dos Campos de Números)?" />&lt;h2 id="1-introdução-a-fatoração-de-inteiros-e-a-base-da-criptografia-moderna">1. Introdução: A Fatoração de Inteiros e a Base da Criptografia Moderna
&lt;/h2>&lt;p>A segurança das comunicações na Internet na sociedade moderna depende fortemente da segurança da criptografia de chave pública RSA. A segurança do RSA baseia-se na suposição matemática da &amp;ldquo;dificuldade de fatorar números compostos gigantes&amp;rdquo;. Se um algoritmo de fatoração extremamente eficiente for descoberto, a infraestrutura de comunicação em todo o mundo desmoronaria desde a sua base.&lt;/p>
&lt;p>Atualmente, o &lt;strong>Crivo Geral dos Campos de Números (GNFS - General Number Field Sieve)&lt;/strong> reina como o algoritmo mais rápido e poderoso para a fatoração de números inteiros gigantes utilizando computadores clássicos. O GNFS nasceu como uma extensão do Crivo Especial dos Campos de Números (SNFS), proposto no final da década de 1980, e estabeleceu recordes de fatoração para números compostos enormes como o RSA-768 e RSA-250 até os dias de hoje.&lt;/p>
&lt;p>No entanto, criptógrafos e matemáticos sempre se fazem as seguintes perguntas: &amp;ldquo;Existe algum algoritmo clássico que supere o GNFS?&amp;rdquo; &amp;ldquo;Onde está o limite dos computadores clássicos?&amp;rdquo; e &amp;ldquo;Como os computadores quânticos irão contornar essa situação?&amp;rdquo;&lt;/p>
&lt;p>Neste artigo, dissecaremos exaustivamente as profundas estruturas matemáticas por trás do GNFS e conduziremos uma análise técnica detalhada da seleção de polinômios, processo de crivagem e etapas de álgebra linear usando o método de Block Wiedemann. Além disso, consideraremos métodos de extensão para GNFS, como as melhorias de Coppersmith, e compararemos e explicaremos as diferenças cruciais entre os algoritmos clássicos de tempo subexponencial (Sub-exponential time) e os algoritmos quânticos de tempo polinomial a partir de uma perspectiva matemática.&lt;/p>
&lt;hr>
&lt;h2 id="2-complexidade-assintótica-e-notação-l-l-notation">2. Complexidade Assintótica e Notação L (L-notation)
&lt;/h2>&lt;p>Ao avaliar a complexidade de algoritmos de fatoração, a &lt;strong>Notação L (L-notation)&lt;/strong> é usada para expressar o tempo subexponencial relativo ao número de dígitos da entrada $n$, ao invés da notação padrão de tempo polinomial (como $O(n^k)$). A notação L é definida da seguinte forma:&lt;/p>
$$
L_n[\alpha, c] = \exp \left( (c + o(1)) (\ln n)^\alpha (\ln \ln n)^{1-\alpha} \right)
$$
&lt;p>Aqui, $n$ é o número inteiro a ser fatorado e $\ln n$ é o logaritmo natural, o qual é proporcional ao comprimento em bits de $n$.&lt;/p>
&lt;ul>
&lt;li>Quando $\alpha = 0$: $L_n[0, c] = \exp(c \ln \ln n) = (\ln n)^c$, representando um &lt;strong>tempo polinomial (Polynomial time)&lt;/strong> em relação ao comprimento em bits.&lt;/li>
&lt;li>Quando $\alpha = 1$: $L_n[1, c] = \exp(c \ln n) = n^c$, representando um &lt;strong>tempo exponencial (Exponential time)&lt;/strong> em relação ao comprimento em bits.&lt;/li>
&lt;li>Quando $0 &lt; \alpha &lt; 1$: Representa um &lt;strong>tempo subexponencial (Sub-exponential time)&lt;/strong> localizado entre o tempo polinomial e o tempo exponencial.&lt;/li>
&lt;/ul>
&lt;p>A evolução dos algoritmos de fatoração no passado tem sido a história de reduzir gradualmente o valor desse $\alpha$.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Fração Contínua (CFRAC) e Crivo Quadrático de Múltiplos Polinômios (MPQS)&lt;/strong>: Pertencem à classe $\alpha = 1/2$ e a complexidade de cálculo é de cerca de $L_n[1/2, 1]$.&lt;/li>
&lt;li>&lt;strong>Crivo Geral dos Campos de Números (GNFS)&lt;/strong>: Alcançou $\alpha = 1/3$ e ostenta a complexidade computacional mais rápida de $L_n[1/3, (64/9)^{1/3}]$ entre os algoritmos clássicos conhecidos atualmente.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="3-visão-geral-do-algoritmo-gnfs-e-estrutura-matemática">3. Visão Geral do Algoritmo GNFS e Estrutura Matemática
&lt;/h2>&lt;p>O GNFS possui uma base matemática muito complexa e avançada. A ideia básica é uma extensão do Pequeno Teorema de Fermat e do Crivo Quadrático (QS), consistindo em encontrar um par não-trivial $(X, Y)$ que satisfaça a congruência $X^2 \equiv Y^2 \pmod n$ e $X \not\equiv \pm Y \pmod n$, para assim derivar um fator $\gcd(X-Y, n)$ de $n$.&lt;/p>
&lt;p>No entanto, a verdadeira essência do GNFS não é fazer isso apenas no corpo dos números racionais $\mathbb{Q}$, mas sim buscar simultaneamente por &amp;ldquo;números suaves (Smooth numbers)&amp;rdquo; tanto em uma extensão de corpo chamada Corpo de Números Algébricos (Algebraic Number Field) $\mathbb{Q}(\alpha)$ quanto no corpo dos números racionais, e construir uma relação de congruência por meio de um homomorfismo.&lt;/p>
&lt;p>O processo do GNFS é amplamente dividido em 5 fases.&lt;/p>
&lt;div class="mermaid">graph TD
A["Problema de fatoração de inteiros (entrada n)"] --> B["1. Seleção de polinômios (Polynomial Selection)"]
B --> C["2. Processo de crivagem (Sieving Phase)"]
C --> D["3. Filtragem (Filtering Phase)"]
D --> E["4. Álgebra Linear (Linear Algebra Phase)"]
E --> F["5. Raiz quadrada (Square Root Phase)"]
F --> G["Saída dos fatores primos p, q"]&lt;/div>
&lt;h3 id="31-fase-1-seleção-de-polinômios-polynomial-selection">3.1 Fase 1: Seleção de polinômios (Polynomial Selection)
&lt;/h3>&lt;p>O sucesso do GNFS depende fortemente da seleção adequada dos polinômios. O objetivo é encontrar dois polinômios irredutíveis $f_1(x)$ (lado racional) e $f_2(x)$ (lado algébrico) que compartilham uma raiz comum $m$. Ou seja,
$f_1(m) \equiv f_2(m) \equiv 0 \pmod n$
satisfazendo.&lt;/p>
&lt;p>Normalmente, um polinômio linear $f_1(x) = x - m$ é escolhido para o lado racional, e um polinômio mônico $f_2(x)$ de grau $d$ (tipicamente 5 ou 6) é escolhido para o lado algébrico. A abordagem mais clássica é o &lt;strong>Método de base $m$ (Base-$m$ method)&lt;/strong>.
Escolhe-se um inteiro $m = \lfloor n^{1/(d+1)} \rfloor$ próximo à raiz $1/(d+1)$ de $n$ e expande-se $n$ na base $m$.
$n = c_d m^d + c_{d-1} m^{d-1} + \dots + c_1 m + c_0$
Com isso, obtemos o polinômio $f_2(x) = c_d x^d + c_{d-1} x^{d-1} + \dots + c_0$. Claramente, $f_2(m) = n \equiv 0 \pmod n$.&lt;/p>
&lt;p>Entretanto, em implementações modernas o &lt;strong>Algoritmo de Kleinjung&lt;/strong> é utilizado. Ele busca polinômios cujos coeficientes não se tornem extremamente grandes (otimização de Skewness) enquanto otimiza propriedades algébricas (valor $E$ de Murphy e valor $\alpha$), facilitando a geração de números suaves durante o processo de crivagem. Esta etapa por si só requer uma enorme quantidade de recursos computacionais.&lt;/p>
&lt;h3 id="32-fase-2-processo-de-crivagem-sieving-phase">3.2 Fase 2: Processo de crivagem (Sieving Phase)
&lt;/h3>&lt;p>Uma vez que os polinômios são determinados, entra-se na fase de &amp;ldquo;Crivagem (Sieving)&amp;rdquo;, que é a fase mais exigente do ponto de vista computacional do algoritmo. Aqui, buscamos pares $(a, b)$. Este par deve ser coprimo entre si e é requerido que os dois valores seguintes sejam simultaneamente &amp;ldquo;suaves (Smooth)&amp;rdquo;.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Norma do lado racional&lt;/strong>: $F_1(a, b) = b \cdot f_1(a/b) = a - bm$&lt;/li>
&lt;li>&lt;strong>Norma do lado algébrico&lt;/strong>: $F_2(a, b) = b^d \cdot f_2(a/b)$&lt;/li>
&lt;/ol>
&lt;p>&amp;ldquo;Suave&amp;rdquo; significa que o valor pode ser fatorado apenas por números primos menores ou iguais a um limite especificado (Sieve bound). Uma base de fatores (Factor base) para o lado racional e outra para o lado algébrico são preparadas, e números suaves são encontrados eficientemente em um enorme espaço de busca utilizando uma técnica semelhante ao Crivo de Eratóstenes.
Hoje, uma técnica chamada &lt;strong>Crivo em Reticulado (Lattice Sieving)&lt;/strong> é dominante, onde se fixa um número primo específico $q$ e realiza-se a crivagem apenas em pares $(a, b)$ em um sub-reticulado no qual tanto o lado racional quanto o algébrico são múltiplos de $q$, alcançando assim uma eficiência extremamente alta.&lt;/p>
&lt;h3 id="33-fase-3-filtragem-filtering-phase">3.3 Fase 3: Filtragem (Filtering Phase)
&lt;/h3>&lt;p>O número de relações suaves (relations) encontradas no processo de crivagem chega a centenas de milhões, ou até bilhões. No entanto, muitas destas contêm informações inúteis.
O objetivo da filtragem é construir uma enorme matriz esparsa (Sparse Matrix) ao mesmo tempo que reduz a sua dimensionalidade ao máximo possível.&lt;/p>
&lt;p>Especificamente, realizam-se as seguintes operações:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Remoção de singletons (Singleton removal)&lt;/strong>: Excluir as relações que contêm fatores primos que aparecem apenas uma vez.&lt;/li>
&lt;li>&lt;strong>Remoção de cliques / Mesclagem (Clique removal / Merging)&lt;/strong>: Multiplicar relações que possuem fatores primos que aparecem duas ou mais vezes, eliminando variáveis para reduzir para um sistema de equações de maior densidade, porém menor dimensionalidade.&lt;/li>
&lt;/ul>
&lt;p>Com isso, uma matriz com bilhões de linhas é comprimida em uma enorme matriz esparsa $\mathbf{A}$ (com elementos 0 e 1 sobre o corpo $\mathbb{F}_2$) de nível de dezenas de milhões de linhas.&lt;/p>
&lt;h3 id="34-fase-4-álgebra-linear-linear-algebra-phase">3.4 Fase 4: Álgebra Linear (Linear Algebra Phase)
&lt;/h3>&lt;p>Aqui, buscamos um vetor de solução não trivial $\mathbf{x}$ para a equação $\mathbf{A} \mathbf{x} \equiv \mathbf{0} \pmod 2$. Ou seja, é o problema de encontrar o espaço nulo à esquerda (Left Nullspace) de uma enorme matriz esparsa.&lt;/p>
&lt;p>Devido ao tamanho extremo da matriz, é totalmente inviável calcular com a eliminação gaussiana padrão ($O(N^3)$). Portanto, utilizam-se métodos iterativos, que são um tipo de método de subespaço de Krylov. Historicamente, o &lt;strong>Método Block Lanczos&lt;/strong> tem sido utilizado, mas em ambientes modernos de computação distribuída o &lt;strong>Algoritmo de Block Wiedemann&lt;/strong>, que pode reduzir drasticamente a sobrecarga de comunicação, é o dominante.&lt;/p>
&lt;p>O método Block Wiedemann calcula o polinômio mínimo a partir da matriz $\mathbf{A}$ e de sequências de vetores e constrói a base do espaço nulo utilizando o algoritmo de Berlekamp-Massey. Esse passo é extremamente difícil de paralelizar, o que exige redes de comunicação estreitamente acopladas em supercomputadores ou grandes clusters, sendo um dos maiores gargalos do GNFS.&lt;/p>
&lt;h3 id="35-fase-5-raiz-quadrada-square-root-phase">3.5 Fase 5: Raiz quadrada (Square Root Phase)
&lt;/h3>&lt;p>A partir das soluções da álgebra linear, constrói-se um produto que é um &amp;ldquo;quadrado perfeito&amp;rdquo; em ambos os lados, o racional e o algébrico.
No lado racional, $\prod (a-bm)$ torna-se o quadrado $X^2$ de um determinado inteiro $X$, enquanto no lado algébrico o produto dos ideais correspondentes torna-se um quadrado perfeito $\gamma^2$ no corpo de números algébricos.
Ao calcular esse $\gamma$ no corpo de números algébricos e aplicar o homomorfismo ao anel dos inteiros racionais $\phi: \alpha \mapsto m \pmod n$, obtemos a congruência:
$X^2 \equiv \phi(\gamma)^2 \equiv Y^2 \pmod n$
obtém-se.&lt;/p>
&lt;p>O cálculo da raiz quadrada no corpo de números algébricos utiliza algoritmos complexos, como o &lt;strong>Método de Montgomery&lt;/strong>, exigindo um profundo conhecimento em teoria algébrica dos números. Finalmente, $\gcd(X-Y, n)$ é calculado, e se um fator não trivial for obtido, a fatoração estará concluída.&lt;/p>
&lt;hr>
&lt;h2 id="4-existe-algum-algoritmo-clássico-que-supere-o-gnfs">4. Existe algum algoritmo clássico que supere o GNFS?
&lt;/h2>&lt;p>Até o momento, não foi descoberto nenhum algoritmo clássico que seja capaz de atingir uma complexidade assintótica abaixo de $L_n[1/3, c]$ para a fatoração de números inteiros gerais. No entanto, existem algumas tentativas e algoritmos derivados voltados a romper esses limites teóricos e práticos.&lt;/p>
&lt;h3 id="41-crivo-de-múltiplos-campos-de-números-mnfs-multiple-number-field-sieve">4.1 Crivo de Múltiplos Campos de Números (MNFS: Multiple Number Field Sieve)
&lt;/h3>&lt;p>Como uma abordagem estendida do GNFS, existe o &lt;strong>Crivo de Múltiplos Campos de Números (MNFS)&lt;/strong> de D. Coppersmith. Enquanto o GNFS utiliza 2 polinômios (um lado racional e um algébrico), o MNFS utiliza múltiplos polinômios algébricos diferentes em conjunto com um único polinômio racional.&lt;/p>
$$ f_1(x), f_{2,1}(x), f_{2,2}(x), \dots, f_{2,V}(x) $$
&lt;p>Ao usar múltiplos corpos algébricos, a probabilidade de &amp;ldquo;ser suave em qualquer um dos corpos algébricos&amp;rdquo; em cada etapa da crivagem aumenta drasticamente. Com essa abordagem, Coppersmith conseguiu reduzir ligeiramente a constante $c$ da complexidade $L_n[1/3, c]$.
Especificamente, enquanto a constante no GNFS é $c = (64/9)^{1/3} \approx 1.923$, mostrou-se teoricamente que a complexidade pode ser reduzida até $c \approx 1.902$ ao otimizar o MNFS.
No entanto, na prática, a sobrecarga de gerenciar múltiplos corpos é grande, e não houve grandes avanços definitivos em módulos RSA em escalas de uso no mundo real.&lt;/p>
&lt;h3 id="42-algoritmos-de-classe-l_n14-são-possíveis">4.2 Algoritmos de classe $L_n[1/4]$ são possíveis?
&lt;/h3>&lt;p>O tema sobre &amp;ldquo;se um algoritmo com expoente $\alpha = 1/4$ existe&amp;rdquo;, quanto ao limite dos algoritmos clássicos de fatoração, tem sido debatido há muito tempo entre os matemáticos.
O GNFS atual e suas derivações estão fortemente atrelados ao modelo de &amp;ldquo;busca por suavidade&amp;rdquo; usando crivos, e é amplamente acreditado que $\alpha = 1/3$ é o limite desse paradigma. Com base na análise das probabilidades de distribuição de números inteiros suaves utilizando a função de Dickman, acredita-se que não é possível superar a barreira de $O(L_n[1/3])$ com a combinação dos métodos de construção de campos algébricos e de crivos atuais, não importa o quanto se otimize.&lt;/p>
&lt;p>Se um algoritmo $L_n[1/4]$ ou mesmo um algoritmo polinomial clássico existisse, dependeria de uma estrutura matemática inteiramente nova e inimaginável pela humanidade até então (como, por exemplo, a abordagem muito mais avançada de geometria algébrica, semelhante ao Algoritmo de Schoof para a criptografia de curvas elípticas), e não na abordagem de &amp;ldquo;base em suavidade&amp;rdquo; como no GNFS. No entanto, atualmente não há sinal disso.&lt;/p>
&lt;hr>
&lt;h2 id="5-o-grande-avanço-da-computação-quântica-algoritmo-de-shor">5. O Grande Avanço da Computação Quântica: Algoritmo de Shor
&lt;/h2>&lt;p>Enquanto os computadores clássicos enfrentam a barreira de $L_n[1/3]$, o &lt;strong>Algoritmo de Shor (Shor&amp;rsquo;s Algorithm)&lt;/strong>, introduzido por Peter Shor em 1994, destruiu esta parede mudando fundamentalmente o modelo de computação em si.&lt;/p>
&lt;h3 id="51-o-impacto-do-tempo-polinomial-quântico">5.1 O impacto do tempo polinomial quântico
&lt;/h3>&lt;p>O Algoritmo de Shor reduz o problema da fatoração a um &amp;ldquo;Problema de Busca de Ordem (Order Finding Problem)&amp;rdquo;. Dado um inteiro $a$, é o problema de encontrar o período (ordem) $r$ da função $f(x) = a^x \pmod n$.
Um computador clássico leva um tempo exponencial para encontrar esse período, mas usando a &lt;strong>Estimação de Fase Quântica (QPE: Quantum Phase Estimation)&lt;/strong> e a &lt;strong>Transformada de Fourier Quântica (QFT: Quantum Fourier Transform)&lt;/strong> em um computador quântico, todas as superposições de estado (Superposition) podem ser avaliadas em paralelo, o que permite extrair o período $r$ com alta probabilidade.&lt;/p>
&lt;p>Em termos de complexidade computacional, o tempo de execução do Algoritmo de Shor é de &lt;strong>tempo polinomial quântico&lt;/strong>, especificamente o seguinte:
&lt;/p>
$$ O((\log n)^3) $$
&lt;p>
Tendo em vista as implementações de circuitos otimizadas nos últimos anos, afirma-se que o tempo pode ser reduzido até $O((\log n)^2 \log \log n)$.&lt;/p>
&lt;div class="mermaid">graph LR
A["Algoritmo clássico (GNFS)"] -->|Limite| B["Tempo subexponencial L_n[1/3]"]
C["Algoritmo quântico (Shor)"] -->|Avanço| D["Tempo polinomial O((log n)^3)"]
B --> E["Uso contínuo de criptografia RSA (aumento do tamanho da chave)"]
D --> F["Colapso completo da criptografia RSA"]&lt;/div>
&lt;h3 id="52-tempo-subexponencial-clássico-vs-tempo-polinomial-quântico">5.2 Tempo subexponencial clássico vs Tempo polinomial quântico
&lt;/h3>&lt;p>A diferença entre essas duas classes de complexidade tem um significado decisivo na segurança de criptografias no mundo real.&lt;/p>
&lt;p>Por exemplo, considere a fatoração do RSA-2048 (um número composto de 2048 bits).&lt;/p>
&lt;ul>
&lt;li>&lt;strong>GNFS (Clássico)&lt;/strong>: Substituindo $n \approx 2^{2048}$ em $L_n[1/3, 1.923]$, serão necessárias cerca de $2^{112}$ operações. Essa é uma quantidade de cálculos astronômica que demoraria mais que a idade do universo, mesmo se reuníssemos todos os recursos de computação do planeta.&lt;/li>
&lt;li>&lt;strong>Algoritmo de Shor (Quântico)&lt;/strong>: No algoritmo $O((\log n)^3)$, seriam necessárias apenas cerca de $2048^3 \approx 8.5 \times 10^9$ operações em portas lógicas. Isso significa que a computação poderia ser concluída de apenas algumas horas a alguns dias se houvesse o hardware adequado (um computador quântico universal capaz de corrigir erros com alguns milhões de qubits físicos).&lt;/li>
&lt;/ul>
&lt;p>A mudança de paradigma da complexidade subexponencial com &amp;ldquo;expoente $\alpha=1/3$&amp;rdquo; para &amp;ldquo;tempo polinomial&amp;rdquo; anula a estratégia tradicional de criptografia que consiste em garantir a segurança por meio do alongamento do comprimento da chave.&lt;/p>
&lt;hr>
&lt;h2 id="6-conclusão-perspectivas-para-a-próxima-geração">6. Conclusão: Perspectivas para a próxima geração
&lt;/h2>&lt;p>O consenso atual na comunidade científica em relação à pergunta &amp;ldquo;Existe algum algoritmo clássico que supere o GNFS?&amp;rdquo; é o seguinte:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Aprimoramentos práticos continuam, mas não há um grande salto assintótico&lt;/strong>: As tentativas de melhorar o fator $c$ do GNFS através do MNFS, da otimização na seleção de polinômios, da paralelização do Método de Block Wiedemann, etc., seguem ocorrendo. Contudo, considera-se extremamente improvável que seja descoberto um algoritmo clássico abaixo de $\alpha = 1/3$.&lt;/li>
&lt;li>&lt;strong>A segurança do RSA em computadores clássicos permanece forte&lt;/strong>: A complexidade computacional do GNFS continua enorme, e os RSA-2048 e RSA-4096 permanecerão protegidos contra ataques vindos de computadores clássicos durante as próximas décadas.&lt;/li>
&lt;li>&lt;strong>A verdadeira ameaça é o algoritmo quântico&lt;/strong>: O Algoritmo de Shor, baseado nos princípios da mecânica quântica, ultrapassou os limites da complexidade computacional. Como resultado, o mundo é obrigado a realizar a transição para a Criptografia Pós-Quântica (PQC). A fronteira da criptografia de hoje encontra-se em novos problemas matemáticos, como a criptografia baseada em reticulados e a criptografia baseada em hashes, as quais são consideradas difíceis de se decifrar até para computadores quânticos (ou seja, não possuem resolução no tempo polinomial).&lt;/li>
&lt;/ol>
&lt;p>O Crivo Geral dos Campos de Números (GNFS) é uma das maiores conquistas matemáticas alcançadas pela humanidade ao desafiar os limites do design de algoritmos e matemática clássica. Compreender a profunda estrutura matemática do GNFS não é apenas aprender sobre a história da criptanálise, é também uma jornada de exploração intelectual que nos permite tocar na beleza da teoria da complexidade computacional e da teoria algébrica dos números. Até ao dia em que os computadores quânticos se tornarem práticos, o GNFS deverá manter a sua coroa como o algoritmo de fatoração de inteiros mais poderoso.&lt;/p></description></item></channel></rss>