fbpx
Wikipedia

Método de factorización de Dixon

En teoría de números, el método de factorización de Dixon (conocido también como método de los cuadrados aleatorios de Dixon[1]​ o algoritmo de Dixon) es un algoritmo general de factorización de enteros; es el método prototípico de base de factores, y el único método de este tipo para el cual los límites de ejecución no se basan en conjeturas sobre las propiedades de suavidad de los valores de un polinomio conocido.

Historia del algoritmo

Las ideas de este algoritmo provienen de Maurice Kraitchik, quien en la década de 1920 generalizó un famoso método debido a Pierre de Fermat[2]​ (que funciona bien cuando los factores son cercanos). D. H. Lehmer y R. E. Powers sugirieron una idea parecida en un artículo publicado en 1931,[3]​ utilizando fracciones continuas.

John Brillhart y Michael Morrison en 1975[4]​ muestran cómo mejorar el algoritmo utilizando el álgebra lineal sobre   (el cuerpo con dos elementos). John D. Dixon muestra la eficiencia del algoritmo en un artículo publicado en 1981.[5]

El algoritmo de criba cuadrática, debido a Carl Pomerance,[6]​ utiliza ideas similares a las de este método.

Ideas matemáticas sobre las que se basa

Si   es primo y  , entonces la ecuación   tiene dos soluciones distintas:  .

Sin embargo, si   es compuesto y no es la potencia de un primo, la ecuación   tiene más soluciones; estas soluciones vienen de la factorización de   como producto de dos enteros coprimos entre sí. Si   con   coprimos entonces tomando   tal que   y   (esto se puede hacer gracias al Teorema chino del resto) encontramos una solución a   que es distinta de   y  .

Recíprocamente, si   verifica   y  , entonces   no es coprimo con   ni múltiplo de él.

La idea básica del algoritmo es intentar encontrar dos enteros   tales que   y  , con lo que   será un divisor de   no trivial. Buscar al azar estos enteros lleva mucho tiempo y no hace eficaz el método. Lo que se hace para tener más probabilidad de "colisión" es tomar enteros cuyos cuadrados tengan factores primos pequeños.

Más concretamente: tomamos una "base de factores"   formada por enteros pequeños y buscamos   tales que  , . . . ,  . Luego escogemos   de forma que  , con cada uno de los   par.

Dadas las k-uplas  , . . . ,  , encontrar   tales que   sea un producto de elementos de   al cuadrado no es otra cosa que obtener una combinación lineal de las k-uplas que sea la nula módulo 2. O sea que es un problema de álgebra lineal en  , que puede resolverse en forma rápida.

El método

Sea   el entero compuesto que deseamos factorizar.

Tomamos   una cota, llamemos   al conjunto de los primos menores o iguales que   unión el -1.

Inicialmente, buscamos enteros   tales que   se pueda escribir como producto de elementos de  .

Supongamos que hemos encontrado suficientes de estos números (suficientes en general significa poco más que el cardinal de  ):  . Utilizamos el álgebra lineal (como se describe en la sección anterior) para encontrar un producto   que módulo n es el cuadrado de un producto de elementos de  .

O sea, hemos obtenido  , o, escribiéndolo de otra manera:  . Por lo tanto, el máximo común divisor entre   y   será distinto de 1 y   siempre que  .

En caso que   se busca otra combinación lineal que nos dé un producto de cuadrados de elementos de  .

Ejemplo

Sea  . Tomamos  , por lo que  .

Encontramos varios enteros cuyos cuadrados son factorizados (módulo  ) sobre  :

 

 

 

 

 .

Tenemos las 4-uplas: (0,2,1,1), (1,0,1,0), (1,0,1,1), (0,0,1,0) y (1,0,2,1); estos son los exponentes de la factorización de los cuadrados como productos de elementos de  . Al tener 5 4-uplas, debe haber una que sea combinación de las otras (módulo 2); o lo que es lo mismo, una suma de estas 4-uplas tendrá todas sus entradas pares.

De hecho, la suma de las primeras cuatro da (2,2,4,2). Esto quiere decir que al multiplicar los primeros cuatro números, su cuadrado será   (módulo n). O sea que  .

Reducimos:  . Esta combinación hallada no nos da ningún factor, ya que  .

Buscamos otra suma que nos dé con entradas pares: las tres últimas. Obtenemos de allí que  , o lo que es lo mismo:  . De aquí sí sacamos un factor no trivial de  :  .

Tiempo de ejecución

Si en el algoritmo escogemos un   pequeño entonces es fácil saber si un entero se factoriza sobre  , pero es difícil encontrar naturales cuyo cuadrado sea producto de elementos de  . A la inversa, si   es grande será sencillo encontrar naturales cuyo cuadrado sea producto de elementos de   pero complicado saber si un entero se factoriza sobre  .

La clave para optimizar este método es escoger el valor adecuado de  . Puede probarse que si   tiene   dígitos es bueno tomar   con aproximadamente   dígitos. Esto hace que el tiempo de ejecución del algoritmo tenga un orden   para cierta constante  .[7]​ Dixon mostró que podía tomar  , pero Schnorr y Knuth lograron mejorar la prueba, asegurando que  .[6]

Referencias

  1. Kleinjung, Thorsten; et al. (2010). «Factorization of a 768-bit RSA modulus». Advances in Cryptology – CRYPTO 2010. Lecture Notes in Computer Science 6223. pp. 333-350. doi:10.1007/978-3-642-14623-7_18. 
  2. Pomerance, Carl. (1996). «A tale of two sieves». Notices of the American Mathematical Society 43 (12): 1473-1485. 
  3. D.H. Lehmer; R.E. Powers (1931). «On factoring large numbers». Bulletin American Math. Soc. 37: 1770-776. 
  4. M.A. Morrison; J. Brillhart (1975). «A method of factoring and the factorization of F7». Mathematics of computation 29: 183-205. 
  5. Dixon, J. D. (1981). «Asymptotically fast factorization of integers». Math. Comp. 36 (153): 255-260. JSTOR 2007743. doi:10.1090/S0025-5718-1981-0595059-1. 
  6. Pomerance, Carl (1982). «Analysis and Comparison of Some Integer Factoring Algorithms». Math. Centre Tract 154: 89-139. 
  7. Koblitz, Neal (2006). «Fermat factorization and factor bases». A course in number theory and cryptography (en inglés) (segunda edición). Springer. pp. 148-153. ISBN 0-387-94293-9. Consultado el 22 de junio de 2015. 

Enlaces externos

  •   Datos: Q1231787

método, factorización, dixon, teoría, números, método, factorización, dixon, conocido, también, como, método, cuadrados, aleatorios, dixon, algoritmo, dixon, algoritmo, general, factorización, enteros, método, prototípico, base, factores, único, método, este, . En teoria de numeros el metodo de factorizacion de Dixon conocido tambien como metodo de los cuadrados aleatorios de Dixon 1 o algoritmo de Dixon es un algoritmo general de factorizacion de enteros es el metodo prototipico de base de factores y el unico metodo de este tipo para el cual los limites de ejecucion no se basan en conjeturas sobre las propiedades de suavidad de los valores de un polinomio conocido Indice 1 Historia del algoritmo 2 Ideas matematicas sobre las que se basa 3 El metodo 4 Ejemplo 5 Tiempo de ejecucion 6 Referencias 7 Enlaces externosHistoria del algoritmo EditarLas ideas de este algoritmo provienen de Maurice Kraitchik quien en la decada de 1920 generalizo un famoso metodo debido a Pierre de Fermat 2 que funciona bien cuando los factores son cercanos D H Lehmer y R E Powers sugirieron una idea parecida en un articulo publicado en 1931 3 utilizando fracciones continuas John Brillhart y Michael Morrison en 1975 4 muestran como mejorar el algoritmo utilizando el algebra lineal sobre F 2 displaystyle F 2 el cuerpo con dos elementos John D Dixon muestra la eficiencia del algoritmo en un articulo publicado en 1981 5 El algoritmo de criba cuadratica debido a Carl Pomerance 6 utiliza ideas similares a las de este metodo Ideas matematicas sobre las que se basa EditarSi n N displaystyle n in mathbb N es primo y a 0 m o d n displaystyle a not equiv 0 mod n entonces la ecuacion x 2 a 2 m o d n displaystyle x 2 equiv a 2 mod n tiene dos soluciones distintas a a displaystyle a a Sin embargo si n displaystyle n es compuesto y no es la potencia de un primo la ecuacion x 2 a 2 m o d n displaystyle x 2 equiv a 2 mod n tiene mas soluciones estas soluciones vienen de la factorizacion de n displaystyle n como producto de dos enteros coprimos entre si Si n p q displaystyle n p cdot q con p q displaystyle p q coprimos entonces tomando x displaystyle x tal que x a m o d p displaystyle x equiv a mod p y x a m o d q displaystyle x equiv a mod q esto se puede hacer gracias al Teorema chino del resto encontramos una solucion a x 2 a 2 m o d n displaystyle x 2 equiv a 2 mod n que es distinta de a displaystyle a y a displaystyle a Reciprocamente si x displaystyle x verifica x 2 a 2 m o d n displaystyle x 2 equiv a 2 mod n y x a displaystyle x not equiv pm a entonces x a displaystyle x a no es coprimo con n displaystyle n ni multiplo de el La idea basica del algoritmo es intentar encontrar dos enteros x a displaystyle x a tales que x a displaystyle x not equiv pm a y x 2 a 2 m o d n displaystyle x 2 equiv a 2 mod n con lo que m c d x a n displaystyle mcd x a n sera un divisor de n displaystyle n no trivial Buscar al azar estos enteros lleva mucho tiempo y no hace eficaz el metodo Lo que se hace para tener mas probabilidad de colision es tomar enteros cuyos cuadrados tengan factores primos pequenos Mas concretamente tomamos una base de factores B p 1 p k displaystyle B p 1 ldots p k formada por enteros pequenos y buscamos c 1 c k 1 displaystyle c 1 ldots c k 1 tales que c 1 2 p 1 a 1 1 p k a 1 k m o d n displaystyle c 1 2 equiv p 1 alpha 1 1 times ldots times p k alpha 1 k mod n c k 1 2 p 1 a k 1 1 p k a k 1 k m o d n displaystyle c k 1 2 equiv p 1 alpha k 1 1 times ldots times p k alpha k 1 k mod n Luego escogemos c i 1 c i r displaystyle c i 1 ldots c i r de forma que c i 1 2 c i r 2 p 1 b 1 p k b k m o d n displaystyle c i 1 2 times ldots times c i r 2 equiv p 1 beta 1 times ldots times p k beta k mod n con cada uno de los b i displaystyle beta i par Dadas las k uplas a 1 1 a 1 k displaystyle alpha 1 1 ldots alpha 1 k a k 1 1 a k 1 k displaystyle alpha k 1 1 ldots alpha k 1 k encontrar i 1 i r displaystyle i 1 ldots i r tales que c i 1 c i r m o d n displaystyle c i 1 times ldots times c i r mod n sea un producto de elementos de B displaystyle B al cuadrado no es otra cosa que obtener una combinacion lineal de las k uplas que sea la nula modulo 2 O sea que es un problema de algebra lineal en F 2 displaystyle F 2 que puede resolverse en forma rapida El metodo EditarSea n N displaystyle n in mathbb N el entero compuesto que deseamos factorizar Tomamos H displaystyle H una cota llamemos B displaystyle B al conjunto de los primos menores o iguales que H displaystyle H union el 1 Inicialmente buscamos enteros z displaystyle z tales que z 2 m o d n displaystyle z 2 mod n se pueda escribir como producto de elementos de B displaystyle B Supongamos que hemos encontrado suficientes de estos numeros suficientes en general significa poco mas que el cardinal de B displaystyle B z 1 z r displaystyle z 1 ldots z r Utilizamos el algebra lineal como se describe en la seccion anterior para encontrar un producto z j 1 2 z j t 2 displaystyle z j 1 2 times ldots times z j t 2 que modulo n es el cuadrado de un producto de elementos de B displaystyle B O sea hemos obtenido z j 1 2 z j t 2 p 1 2 a 1 p h 2 a h m o d n displaystyle z j 1 2 times ldots times z j t 2 p 1 2 alpha 1 times ldots times p h 2 alpha h mod n o escribiendolo de otra manera z j 1 z j t 2 p 1 a 1 p h a h 2 m o d n displaystyle z j 1 times ldots times z j t 2 p 1 alpha 1 times ldots times p h alpha h 2 mod n Por lo tanto el maximo comun divisor entre z j 1 z j t p 1 a 1 p h a h displaystyle z j 1 times ldots times z j t p 1 alpha 1 times ldots times p h alpha h y n displaystyle n sera distinto de 1 y n displaystyle n siempre que z j 1 z j t p 1 a 1 p h a h m o d n displaystyle z j 1 times ldots times z j t neq pm p 1 alpha 1 times ldots times p h alpha h mod n En caso que z j 1 z j t p 1 a 1 p h a h m o d n displaystyle z j 1 times ldots times z j t pm p 1 alpha 1 times ldots times p h alpha h mod n se busca otra combinacion lineal que nos de un producto de cuadrados de elementos de B displaystyle B Ejemplo EditarSea n 50861 displaystyle n 50861 Tomamos H 5 displaystyle H 5 por lo que B 1 2 3 5 displaystyle B 1 2 3 5 Encontramos varios enteros cuyos cuadrados son factorizados modulo n displaystyle n sobre B displaystyle B 1295 2 2 2 3 5 displaystyle 1295 2 equiv 2 2 times 3 times 5 1726 2 1 3 displaystyle 1726 2 equiv 1 times 3 2449 2 1 3 5 displaystyle 2449 2 equiv 1 times 3 times 5 2567 2 3 displaystyle 2567 2 equiv 3 2624 2 1 3 2 5 displaystyle 2624 2 equiv 1 times 3 2 times 5 Tenemos las 4 uplas 0 2 1 1 1 0 1 0 1 0 1 1 0 0 1 0 y 1 0 2 1 estos son los exponentes de la factorizacion de los cuadrados como productos de elementos de B displaystyle B Al tener 5 4 uplas debe haber una que sea combinacion de las otras modulo 2 o lo que es lo mismo una suma de estas 4 uplas tendra todas sus entradas pares De hecho la suma de las primeras cuatro da 2 2 4 2 Esto quiere decir que al multiplicar los primeros cuatro numeros su cuadrado sera 1 2 2 2 3 4 5 2 displaystyle 1 2 times 2 2 times 3 4 times 5 2 modulo n O sea que 1295 1726 2449 2567 2 2 3 2 5 2 m o d n displaystyle 1295 times 1726 times 2449 times 2567 2 equiv 2 times 3 2 times 5 2 mod n Reducimos 1295 1726 2449 2567 19639 m o d n displaystyle 1295 times 1726 times 2449 times 2567 equiv 19639 mod n Esta combinacion hallada no nos da ningun factor ya que 19639 2 3 2 5 displaystyle 19639 equiv 2 times 3 2 times 5 Buscamos otra suma que nos de con entradas pares las tres ultimas Obtenemos de alli que 2449 2567 2624 2 3 2 5 2 m o d n displaystyle 2449 times 2567 times 2624 2 equiv 3 2 times 5 2 mod n o lo que es lo mismo 4751 2 45 2 m o d n displaystyle 4751 2 equiv 45 2 mod n De aqui si sacamos un factor no trivial de n displaystyle n m c d 4751 45 n 181 displaystyle mcd 4751 45 n 181 Tiempo de ejecucion EditarSi en el algoritmo escogemos un H displaystyle H pequeno entonces es facil saber si un entero se factoriza sobre B displaystyle B pero es dificil encontrar naturales cuyo cuadrado sea producto de elementos de B displaystyle B A la inversa si H displaystyle H es grande sera sencillo encontrar naturales cuyo cuadrado sea producto de elementos de B displaystyle B pero complicado saber si un entero se factoriza sobre B displaystyle B La clave para optimizar este metodo es escoger el valor adecuado de H displaystyle H Puede probarse que si n displaystyle n tiene r displaystyle r digitos es bueno tomar H displaystyle H con aproximadamente r displaystyle sqrt r digitos Esto hace que el tiempo de ejecucion del algoritmo tenga un orden O e C l o g n l o g l o g n displaystyle O e C sqrt log n log log n para cierta constante C R displaystyle C in mathbb R 7 Dixon mostro que podia tomar C 3 2 displaystyle C 3 sqrt 2 pero Schnorr y Knuth lograron mejorar la prueba asegurando que C 2 2 displaystyle C 2 sqrt 2 6 Referencias Editar Kleinjung Thorsten et al 2010 Factorization of a 768 bit RSA modulus Advances in Cryptology CRYPTO 2010 Lecture Notes in Computer Science 6223 pp 333 350 doi 10 1007 978 3 642 14623 7 18 Pomerance Carl 1996 A tale of two sieves Notices of the American Mathematical Society 43 12 1473 1485 D H Lehmer R E Powers 1931 On factoring large numbers Bulletin American Math Soc 37 1770 776 M A Morrison J Brillhart 1975 A method of factoring and the factorization of F7 Mathematics of computation 29 183 205 Dixon J D 1981 Asymptotically fast factorization of integers Math Comp 36 153 255 260 JSTOR 2007743 doi 10 1090 S0025 5718 1981 0595059 1 a b Pomerance Carl 1982 Analysis and Comparison of Some Integer Factoring Algorithms Math Centre Tract 154 89 139 Koblitz Neal 2006 Fermat factorization and factor bases A course in number theory and cryptography en ingles segunda edicion Springer pp 148 153 ISBN 0 387 94293 9 Consultado el 22 de junio de 2015 Enlaces externos EditarWeisstein Eric W Dixon s Factorization Method En Weisstein Eric W ed MathWorld en ingles Wolfram Research Datos Q1231787 Obtenido de https es wikipedia org w index php title Metodo de factorizacion de Dixon amp oldid 130007687, 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