fbpx
Wikipedia

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.

Descomposición en factores primos

 
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  .

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.

 
 

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, estos 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.

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.

Curiosamente, 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. Este 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:

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.

Otros algoritmos importantes

Véase también

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 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
  • Factorización En línea además del resultado, muestra el procedimiento.

En inglés

  • Richard P. Brent, "Recent Progress and Prospects for Integer Factorisation Algorithms", Computing and Combinatorics", 2000, pp. 3-22
  • Manindra Agrawal, Nitin Saxena, Neeraj Kayal, , Preprint, 6 de agosto de 2002
  • [1] 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
  • - un reto de factorización.
  • Eric W. Weisstein, “RSA-640 Factored,” MathWorld Headline News, 8 de noviembre de 2005
  •   Datos: Q4846249
  •   Multimedia: Prime factorization

factorización, enteros, teoría, números, factorización, enteros, factorización, primos, factorización, primos, árbol, factorización, consiste, descomponer, número, compuesto, primo, divisores, triviales, cuando, multiplican, número, original, cuando, números, . En teoria de numeros la factorizacion de enteros factorizacion de primos factorizacion en primos o arbol de factorizacion consiste en descomponer un numero compuesto no primo en divisores no triviales que cuando se multiplican dan el numero original Cuando los numeros son muy grandes no se conoce ningun algoritmo que resuelva eficientemente este problema un reciente intento de factorizar un numero de 200 digitos RSA 200 tardo 18 meses y consumio mas de medio siglo de tiempo de calculo Su supuesta dificultad es el nucleo de ciertos algoritmos criptograficos como el RSA Muchas areas de las matematicas y de las ciencias de la computacion como la teoria algebraica de numeros las curvas elipticas o la computacion cuantica estan relacionadas con este problema Descomponer dos numeros de igual longitud no tiene por que tener la misma complicacion Actualmente 2006 se considera que los casos mas duros son aquellos para los que los factores son dos numeros primos elegidos al azar de aproximadamente el mismo tamano Indice 1 Descomposicion en factores primos 2 Factorizacion de enteros en tiempo polinomico 2 1 Aplicaciones practicas 3 Estado actual 3 1 Dificultad y complejidad 4 Algoritmos de factorizacion 4 1 De proposito general 4 2 De proposito especifico 4 3 Otros algoritmos importantes 5 Vease tambien 6 Referencias 6 1 Bibliografia 7 Enlaces externos 7 1 En espanol 7 2 En inglesDescomposicion en factores primos Editar La imagen demuestra la descomposicion en primos del numero 864 Un metodo rapido de escribir el resultado en numeros primos es 2 5 3 3 displaystyle 2 5 times 3 3 Por el teorema fundamental de la aritmetica cada entero positivo tiene una unica descomposicion en numeros primos factores primos La mayor parte de los algoritmos de factorizacion elementales son de proposito general es decir permiten descomponer cualquier numero introducido y solo se diferencian sustancialmente en el tiempo de ejecucion 72 2 36 2 18 2 9 3 3 3 1 displaystyle begin array r l 72 amp 2 36 amp 2 18 amp 2 9 amp 3 3 amp 3 1 amp end array 72 2 3 3 2 displaystyle 72 2 3 cdot 3 2 Factorizacion de enteros en tiempo polinomico EditarEl problema de factorizar enteros en tiempo polinomico no ha sido aun resuelto en computacion clasica Si alguien lo consiguiera esto tendria gran interes en el ambito de la criptografia ya que muchos criptosistemas dependen de su imposibilidad En medios academicos la existencia de tal avance seria una gran noticia en otros circulos seria un gran secreto por razones obvias Existe sin embargo un algoritmo para computacion cuantica propuesto por Peter Shor capaz de encontrar la factorizacion de un entero en sus factores primos en tiempo polinomial con error acotado es decir de clase BQP Este descubrimiento disparo el interes en la computacion cuantica y ya se han construido algunos computadores cuanticos de unos pocos qubits capaces de descomponer numeros pequenos Se espera que con los tremendos avances de los ultimos anos pronto estos sistemas sean capaces de descomponer numeros suficientemente grandes para quebrantar los multiples sistemas criptograficos que se basan en esta dificultad de descomposicion Aplicaciones practicas Editar La dureza de este problema se encuentra en el nucleo de varios sistemas criptograficos importantes Un algoritmo veloz para la factorizacion de enteros significaria que el algoritmo de clave publica RSA es inseguro Algunos sistemas criptograficos como el algoritmo de clave publica Rabin y el generador de numeros pseudoaleatorios Blum Blum Shub garantizarian una mejora en su seguridad cualquier metodo que logre quebrarlos puede ser utilizado para crear un algoritmo de factorizacion mas veloz si la factorizacion de enteros es veloz estos se vuelven mas duros En contraste pueden existir ataques mas eficientes al problema RSA pero no se conoce ninguno Un problema duro similar con aplicaciones criptograficas es el problema del logaritmo discreto Estado actual EditarUn equipo en la Agencia Federal Alemana para Seguridad de Tecnologia de Informacion BSI sostiene el record por factorizacion de semiprimos en la serie propuesta por la Competicion de factorizacion RSA con patrocinio de RSA Security El 9 de mayo de 2005 este equipo anuncio la factorizacion de RSA 200 un numero de 663 bits usando la criba general del cuerpo de numeros El mismo equipo mas tarde anuncio la factorizacion de RSA 640 un numero mas pequeno conteniendo 193 digitos 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 Dificultad y complejidad Editar Si un numero grande de b bits es el producto de dos primos de aproximadamente el mismo tamano no existe algoritmo conocido capaz de factorizarlo en tiempo polinomico Esto significa que ningun algoritmo conocido puede factorizarlo en tiempo O bk para cualquier constante k Aunque existen algoritmos que son mas rapidos que O ab para cualquier a mayor que 1 En otras palabras los mejores algoritmos son super polinomiales pero sub exponenciales En particular el mejor tiempo asintotico de ejecucion es el del algoritmo de criba general del cuerpo de numeros CGCN que para un numero n es O exp 64 9 b 1 3 log b 2 3 displaystyle O left exp left left begin matrix frac 64 9 end matrix b right 1 over 3 log b 2 over 3 right right Para una computadora ordinaria la CGCN es el mejor algoritmo conocido para numeros grandes Para una computadora cuantica en cambio Peter Shor descubrio en 1994 un algoritmo que lo resuelve en tiempo polinomico Esto tendria implicaciones importantes en la criptografia si alguna vez se construyese una computadora cuantica El algoritmo de Shor solo tarda un tiempo O log n 3 y ocupa un espacio O log n En 2001 la primera computadora cuantica de 7 cubits fue la primera en correr el algoritmo de Shor Factorizo el numero 15 No se conoce exactamente cuales clases de complejidad contienen el problema de factorizacion de enteros Se sabe que su forma de decision 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 esta 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 ultimas eso implicaria que NP co NP Ese seria un resultado muy sorprendente y por ello se sospecha ampliamente que la factorizacion de enteros se encuentra fuera de ambas Mucha gente ha intentado encontrar algoritmos clasicos 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 Curiosamente el problema de decision es N un numero compuesto o lo que es igual es N un numero primo parece ser mucho mas 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 polinomico sobre el numero n de cifras de N de acuerdo a un reciente articulo referenciado mas adelante Ademas existen varios algoritmos aleatorios que pueden comprobar la primalidad de un numero muy rapidamente si se esta dispuesto a aceptar una pequena posibilidad de error La facilidad de la prueba de primalidad es una parte crucial del algoritmo RSA puesto que es necesaria para encontrar numeros primos grandes Algoritmos de factorizacion EditarDe proposito general Editar El tiempo de ejecucion de un algoritmo de factorizacion de proposito general depende solamente del tamano del entero a factorizar Este es el tipo de algoritmo usado para factorizar numeros RSA La mayoria de algoritmos de factorizacion de proposito general estan basados en el metodo de congruencia de cuadrados A continuacion se listan algunos de los algoritmos de proposito general mas conocidos Algoritmo de Dixon Factorizacion con fracciones continuas Criba cuadratica Criba racional Algoritmo general de criba del cuerpo de numeros Factorizacion de formas cuadradas de ShanksDe proposito especifico Editar El tiempo de ejecucion de un algoritmo de factorizacion de proposito especifico depende de las propiedades de sus factores desconocidos tamano forma especial etc Dichos factores cambian de un algoritmo a otro Division por tentativa Algoritmo rho de Pollard Algoritmo p 1 de Pollard Algoritmo p 1 de Williams Factorizacion de curva eliptica de Lenstra Metodo de factorizacion de Fermat Metodo de factorizacion de Euler Algoritmo especial de criba del cuerpo de numerosOtros algoritmos importantes Editar Algoritmo de Shor para computadores cuanticosVease tambien EditarTabla de factores primosReferencias EditarBibliografia Editar Donald Knuth The Art of Computer Programming Volumen 2 Seminumerical Algorithms Tercera Edicion Addison Wesley 1997 ISBN 0 201 89684 2 Seccion 4 5 4 Factoring into Primes pp 379 417 Richard Crandall y Carl Pomerance Prime Numbers A Computational Perspective 2001 Springer 1ª edicion ISBN 0 387 94777 9 Capitulos 5 7 Enlaces externos EditarEn espanol Editar http www alpertron com ar ECMC HTM es un applet Java para la factorizacion de enteros que usa el Metodo de la Curva Eliptica y la Criba Cuadratica Auto inicializada Factoring calculadora Factorizacion En linea ademas del resultado muestra el procedimiento En ingles Editar Richard P Brent Recent Progress and Prospects for Integer Factorisation Algorithms Computing and Combinatorics 2000 pp 3 22 Manindra Agrawal Nitin Saxena Neeraj Kayal PRIMES is in P Preprint 6 de agosto de 2002 The PRIMES is in P FAQ 1 es un programa de dominio publico para la factorizacion de enteros que se ejecuta sobre MS Windows Los autores afirman que puede tratar cifras de 80 bits Vease tambien la pagina web del programa MIRACL The RSA Challenge Numbers un reto de factorizacion Eric W Weisstein RSA 640 Factored MathWorld Headline News 8 de noviembre de 2005 Datos Q4846249 Multimedia Prime factorizationObtenido de https es wikipedia org w index php title Factorizacion de enteros amp oldid 136137728, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos