Sei sulla pagina 1di 5

Factorización de enteros - Wikipedia, la enciclopedia libre https://es.wikipedia.

org/wiki/Factorización_de_enteros

Factorización de enteros
En teoría de números, la factorización de enteros, factorización de primos, factorización en primos o
árbol de factorización consiste en descomponer un número compuesto (no primo) en divisores no triviales, que
cuando se multiplican dan el número original.

Cuando los números son muy grandes no se conoce ningún algoritmo que resuelva eficientemente este problema;
un reciente intento de factorizar un número de 200 dígitos (RSA-200) tardó 18 meses y consumió más de medio
siglo de tiempo de cálculo. Su supuesta dificultad es el núcleo de ciertos algoritmos criptográficos, como el RSA.
Muchas áreas de las matemáticas y de las ciencias de la computación, como la teoría algebraica de números, las
curvas elípticas o la computación cuántica, están relacionadas con este problema.

Descomponer dos números de igual longitud no tiene por qué tener la misma complicación. Actualmente (2006)
se considera que los casos más duros son aquellos para los que los factores son dos números primos, elegidos al
azar, de aproximadamente el mismo tamaño.

Índice
Descomposición en factores primos
Factorización de enteros en tiempo polinómico
Aplicaciones prácticas
Estado actual
Dificultad y complejidad
Algoritmos de factorización
De propósito general
De propósito específico
Otros algoritmos importantes
Véase también
Referencias
Bibliografía
Enlaces externos
En español
En inglés

Descomposición en factores primos


Por el teorema fundamental de la aritmética, cada entero positivo tiene una única descomposición en números
primos (factores primos). La mayor parte de los algoritmos de factorización elementales son de propósito general,
es decir, permiten descomponer cualquier número introducido, y solo se diferencian sustancialmente en el tiempo
de ejecución.

1 de 5 19/09/2018 10:35
Factorización de enteros - Wikipedia, la enciclopedia libre https://es.wikipedia.org/wiki/Factorización_de_enteros

La imagen demuestra la
descomposición en primos del
número 864. Un método rápido

de escribir el resultado en
números primos es .

Factorización de enteros en tiempo polinómico


El problema de factorizar enteros en tiempo polinómico no ha sido aún resuelto en computación clásica. Si alguien
lo consiguiera, esto tendría gran interés en el ámbito de la criptografía, ya que muchos criptosistemas dependen de
su imposibilidad. En medios académicos, la existencia de tal avance sería una gran noticia; en otros círculos, sería
un gran secreto, por razones obvias. Existe, sin embargo, un algoritmo para computación cuántica, propuesto por
Peter Shor, capaz de encontrar la factorización de un entero en sus factores primos en tiempo polinomial con error
acotado, es decir, de clase BQP. Este descubrimiento disparó el interés en la computación cuántica y ya se han
construido algunos computadores cuánticos de unos pocos qubits, capaces de descomponer números pequeños. Se
espera que con los tremendos avances de los últimos años, pronto estos sistemas sean capaces de descomponer
números suficientemente grandes para quebrantar los múltiples sistemas criptográficos que se basan en esta
dificultad de descomposición.

Aplicaciones prácticas
La dureza de este problema, se encuentra en el núcleo de varios sistemas criptográficos importantes. Un algoritmo
veloz para la factorización de enteros significaría que el algoritmo de clave pública RSA es inseguro. Algunos
sistemas criptográficos, como el algoritmo de clave pública Rabin y el generador de números pseudoaleatorios
Blum Blum Shub garantizarían una mejora en su seguridad; cualquier método que logre quebrarlos puede ser
utilizado para crear un algoritmo de factorización más veloz; si la factorización de enteros es veloz, éstos se vuelven
más duros. En contraste, pueden existir ataques más eficientes al problema RSA, pero no se conoce ninguno.

Un problema duro similar con aplicaciones criptográficas es el problema del logaritmo discreto.

Estado actual
Un equipo en la Agencia Federal Alemana para Seguridad de Tecnología de Información (BSI) sostiene el récord
por factorización de semiprimos en la serie propuesta por la Competición de factorización RSA, con patrocinio de
RSA Security. El 9 de mayo de 2005, este equipo anunció la factorización de RSA-200, un número de 663 bits,
usando la criba general del cuerpo de números.

El mismo equipo más tarde anunció la factorización de RSA-640, un número más pequeño, conteniendo 193
dígitos decimales (640 bits) el 4 de noviembre de 2005.

Ambas factorizaciones requirieron varios meses de tiempo de computadoras, utilizando el poder combinado de 80
CPUs Opteron AMD.

2 de 5 19/09/2018 10:35
Factorización de enteros - Wikipedia, la enciclopedia libre https://es.wikipedia.org/wiki/Factorización_de_enteros

Dificultad y complejidad
Si un número grande, de b bits es el producto de dos primos de aproximadamente el mismo tamaño, no existe
algoritmo conocido capaz de factorizarlo en tiempo polinómico. Esto significa que ningún algoritmo conocido
puede factorizarlo en tiempo O(bk), para cualquier constante k. Aunque, existen algoritmos que son más rápidos
que O(ab) para cualquier a mayor que 1. En otras palabras, los mejores algoritmos son súper-polinomiales, pero
sub-exponenciales. En particular, el mejor tiempo asintótico de ejecución es el del algoritmo de criba general del
cuerpo de números (CGCN), que para un número n es:

Para una computadora ordinaria, la CGCN es el mejor algoritmo conocido para números grandes. Para una
computadora cuántica, en cambio, Peter Shor descubrió en 1994 un algoritmo que lo resuelve en tiempo
polinómico. Esto tendría implicaciones importantes en la criptografía, si alguna vez se construyese una
computadora cuántica. El algoritmo de Shor solo tarda un tiempo O((log n)3) y ocupa un espacio O(log n). En
2001, la primera computadora cuántica de 7 cubits fue la primera en correr el algoritmo de Shor. Factorizó el
número 15.

No se conoce exactamente cuales clases de complejidad contienen el problema de factorización de enteros. Se sabe
que su forma de decisión-problema ("¿Tiene N un factor menor que M?") tiene complejidad NP y co-NP. Esto es
porque tanto respuestas SI y NO pueden ser comprobadas si se proveen los factores primos junto a sus certificados
de primalidad. Se conoce que está en BQP gracias al algoritmo de Shor. Se sospecha que se encuentra fuera de las
tres clases de complejidad (P, NP Completo, co-NP Completo). Si fuese posible probar que se encuentra en
cualquiera de estas dos últimas, eso implicaría que NP = co-NP. Ese sería un resultado muy sorprendente, y por
ello se sospecha ampliamente que la factorización de enteros se encuentra fuera de ambas. Mucha gente ha
intentado encontrar algoritmos clásicos de tiempo polinomial para esta, y ha fallado; por esto se sospecha que se
encuentra fuera de P. Otro problema en NP pero que no se cree que sea P o NP Completo es el problema de
isomorfismo de grafo.

Interesantemente, el problema de decisión "¿es N un número compuesto?" (o lo que es igual: "¿es N un número
primo?") parece ser mucho más sencillo que el problema de encontrar los factores enteros en los que se
descompone N. En concreto, el primer problema puede ser resuelto en tiempo polinómico (sobre el número n de
cifras de N), de acuerdo a un reciente artículo referenciado más adelante. Además, existen varios algoritmos
aleatorios que pueden comprobar la primalidad de un número muy rápidamente, si se está dispuesto a aceptar una
pequeña posibilidad de error. La facilidad de la prueba de primalidad es una parte crucial del algoritmo RSA,
puesto que es necesaria para encontrar números primos grandes.

Algoritmos de factorización

De propósito general
El tiempo de ejecución de un algoritmo de factorización de propósito general depende solamente del tamaño del
entero a factorizar. Éste es el tipo de algoritmo usado para factorizar números RSA. La mayoría de algoritmos de
factorización de propósito general están basados en el método de congruencia de cuadrados. A continuación se
listan algunos de los algoritmos de propósito general más conocidos:

Algoritmo de Dixon
Factorización con fracciones continuas

3 de 5 19/09/2018 10:35
Factorización de enteros - Wikipedia, la enciclopedia libre https://es.wikipedia.org/wiki/Factorización_de_enteros

Criba cuadrática
Criba racional
Algoritmo general de criba del cuerpo de números
Factorización de formas cuadradas de Shanks

De propósito específico
El tiempo de ejecución de un algoritmo de factorización de propósito específico depende de las propiedades de sus
factores desconocidos: tamaño, forma especial, etc. Dichos factores cambian de un algoritmo a otro.

División por tentativa


Algoritmo rho de Pollard
Algoritmo p-1 de Pollard
Algoritmo p+1 de Williams
Factorización de curva elíptica de Lenstra
Método de factorización de Fermat
Método de factorización de Euler
Algoritmo especial de criba del cuerpo de números

Otros algoritmos importantes


Algoritmo de Shor, para computadores cuánticos

Véase también
Tabla de factores primos

Referencias

Bibliografía
Donald Knuth. The Art of Computer Programming, Volumen 2: Seminumerical Algorithms, Tercera Edición.
Addison-Wesley, 1997. ISBN 0-201-89684-2. Sección 4.5.4: Factoring into Primes, pp.379–417.
Richard Crandall y Carl Pomerance, Prime Numbers: A Computational Perspective, 2001, Springer, 1ª
edición, ISBN 0-387-94777-9, Capítulos 5-7.

Enlaces externos

En español
http://www.alpertron.com.ar/ECMC.HTM (http://www.alpertron.com.ar/ECMC.HTM) es un applet Java para la
factorización de enteros que usa el Método de la Curva Elíptica y la Criba Cuadrática Auto-inicializada.
Factoring calculadora (http://www.nap.st/factorization_on_prime_numbers/?lang=es)
Factorización Online (http://matematicasies.com/ayudame/factoriza/factoriza.php) además del resultado,
muestra el procedimiento.

En inglés
Richard P. Brent, "Recent Progress and Prospects for Integer Factorisation Algorithms"
(http://citeseer.ist.psu.edu/327036.html), Computing and Combinatorics", 2000, pp.3-22

4 de 5 19/09/2018 10:35
Factorización de enteros - Wikipedia, la enciclopedia libre https://es.wikipedia.org/wiki/Factorización_de_enteros

Manindra Agrawal, Nitin Saxena, Neeraj Kayal, "PRIMES is in P" (https://web.archive.org


/web/20050716082540/http://www.cse.iitk.ac.in/news/primality.html), Preprint, 6 de agosto de 2002
The "PRIMES is in P" FAQ (https://web.archive.org/web/20050723210919/http://crypto.cs.mcgill.ca/~stiglic
/PRIMES_P_FAQ.html)
[1] (http://archive.wikiwix.com/cache/20110217051807/ftp://ftp.computing.dcu.ie/pub/crypto/factor.exe) es un
programa de dominio público para la factorización de enteros que se ejecuta sobre MS Windows. Los autores
afirman que puede tratar cifras de 80 bits. Véase también la página web del programa MIRACL
(http://indigo.ie/~mscott/)
The RSA Challenge Numbers (https://web.archive.org/web/20061209135708/http://www.rsasecurity.com
/rsalabs/node.asp?id=2093) - un reto de factorización.
Eric W. Weisstein, “RSA-640 Factored,” (http://mathworld.wolfram.com/news/2005-11-08/rsa-640/) MathWorld
Headline News, 8 de noviembre de 2005

Obtenido de «https://es.wikipedia.org/w/index.php?title=Factorización_de_enteros&oldid=106545445»

Esta página se editó por última vez el 28 mar 2018 a las 01:37.

El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; pueden aplicarse
cláusulas adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.

5 de 5 19/09/2018 10:35

Potrebbero piacerti anche