Está en la página 1de 41

.

Factorizacin de nmero enteros

5.1. Introduccin Los criptosistemas de clave pblica estn basados en un problema que de alguna manera es difcil de resolver. Difcil en este caso se refiere a los requisitos computacionales para encontrar una solucin que es la concepcin del problema. Estos problemas se llaman problemas duros. Algunos de los ms conocidos ejemplos son factorizados, teoremademostracin y el problema del vendedor viajante . Hay dos clases de grandes problemas que interesan a los criptgrafos, P y NP. Simplemente formulemos, un problema si este esta en P puede resolverse en tiempo polinmico ,mientras si el problema est en NP puede verificarse la validez de una solucin propuesta en tiempo polinmico.. Casa problema en P est en NIP, pero nosotros no sabemos s P=NP o no. Por ejemplo, el problema de multiplicar dos nmeros est en P. Es decir el numero de operaciones de bit requeridos para multiplicar dos nmeros de bit de longitud k es al menos k', un polinomio. El problema de hallar un factor de un nmero est en NP, porque una solucin sugerida puede verificarse en tiempo polinmico. Sin embargo, no es conocido si este problema est en P. La factorizacin es el acto de subdividir un entero en un grupo de enteros ms pequeos( los factores) qu, cuando multiplicados juntos, forma el entero original. Por ejemplo, los factores de 15 son 3 y 5; el problema de la factorizacin consiste en encontrar 3 y 5 cuando nos dan 15. La factorizacin de un primo requiere un entero subdividido en factores que son nmeros primos; cada entero tiene una factorizacin de primos nicos. Multiplicando dos nmeros primos enteros es fcil, pero hasta donde sabemos, factorizar el producto de dos (o ms) nmeros primos es mucho ms difcil. La factorizacin es el fundamento, presumiblemente de un problema duro en que algunos criptosistemas de clave pblica basan su seguridad, incluso el algoritmo RSA. La factorizacin de un mdulo de RSA habra permitido a un atacante deducir la clave privada; as, cualquiera que pueda factorizar el mdulo puede desencriptar los mensajes y falsificar las firmas. La seguridad del algoritmo de RSA depende del problema de la factorizacin siendo difcil y no hay presencia de ningn otro tipo de ataque. Ha habido recientemente evidencia que la ruptura del criptosistema de RSA no es equivalente a la factorizacin . Esto no ha sido probado esta factorizacin debe ser difcil, y all queda la posibilidad que un mtodo de factorizacin rpido y fcil pueda descubrirse, sin embargo investigadores de la factorizacin consideran esta posibilidad remota. No es necesariamente cierto que un nmero grande sea ms difcil de factorizar que un nmero ms pequeo. Por ejemplo, el nmero 101000 es fcil de factorizar, mientras el nmero de 155-dgitos RSA-155 se factoriz despus de siete meses de clculos extensos. Lo que es en general verdad es que un nmero con factores primos grandes es ms difcil de factorizar que un nmero con factores primos pequeos (todava, el tiempo de ejecucin de algunos algoritmos de factorizacin, depende de el tamao del nmero nicamente y no

de el tamao de sus factores primos). Esto es porque el tamao del mdulo en el algoritmo de RSA determina cmo obtener un uso real del criptosistema RSA. Un mdulo de RSA es el producto de dos nmeros primos grandes; con un mdulo ms grande, el primo se ha vuelto ms grande y un atacante necesitar ms tiempo para factorizarlo. Recordemos que un nmero con factores primos grandes puede poseer ciertas propiedades hacindolo fcil de factorizar. Por ejemplo, ste es el caso de los factores primos estn muy cerca el uno del otro. El descomponer en factores es un campo de investigacin muy activo entre matemticos e informticos. En este captulo trataremos diversos mtodos de factorizacin, desde la criba de Eratstenes hasta los mtodos de factorizacin ms modernos como pueden ser NFS,MPQS,CFRAC. El descomponer en factores ha llegado a ser ms fcil durante los ltimos 15 aos, sto se debe a tres razones: el hardware ha llegado a ser de ms alcance las ordenadores son mas baratos y abundantes mejoran descomponer en factores

Todo esto supone un beneficio a la persona que pretende romper el criptosistema del RSA,que como hemos visto anteriormente se basa en la factorizacin de nmeros primos. Antes de desarrollar este tema en profundidad veamos que es un numero primo, un nmero primo es aquel que su nica factorizacin, aparte del orden de los factores es p=1*p. Como hemos mencionado anteriormente en estas lneas, decidir si un nmero es primo o no, no es una pregunta que resulte fcil de responder, ya que basta con considerar nmeros grandes. Antes de desarrollar los mtodos de factorizacin de nmeros enteros ,veamos unos criterios para decidir si un numero es primo o no, los tests de primalidad. 5.2. Tests de primalidad El problema de la primalidad consiste en determinar, de forma aleatoria, nmeros primos grandes. El problema surge, entre otras razones porque el criptosistema del RSA necesita, para ser implementado, dos nmeros primos grandes P y Q, de longitud considerable grande, es decir alrededor de 200 dgitos. Para resolver este problema se recurre a los test de primalidad. Definicin. Un entero p > 1 se dice que es primo si sus nicos divisores son 1 y el propio p, es decir, si no tiene divisores propios. (Obsrvese que 1 no es primo. El nmero primo ms pequeo es el 2, y todos los dems primos 3, 5, 7, 11, . . . , son impares.) Un entero n > 1 se dice que es compuesto si admite divisores propios, es decir, si se puede

expresar de la forma

Definicin Un test de primalidad es un criterio para decidir si un numero dado es o no primo Lema Un entero n > 1 es compuesto si, y slo si, es divisible por algn primo . Demostracin: Si n es divisible por algn primo p con 1 < se cumple que n es compuesto. Recprocamente, si n es compuesto, es n = ab donde 1 < a , b < n; al menos uno de los dos (a b) ha de ser menor o igual que (de lo contrario, ab > n) y dicho factor ha de ser divisible por algn primo , el cual tambin divide a n. Este mtodo es efectivo para enteros pequeos, ya que no hay que considerar demasiados nmeros primos, pero cuando n se hace grande se necesita demasiado tiempo: por el teorem de los Nmeros Primos, el nmero de primos viene dado por

5.2.1.

Test de primalidad de Fermat

Quiz la forma ms conocida de sospechar que un nmero es primo, es aplicar la identidad conocida por el Teorema pequeo de Fermat y consiste en la siguiente afirmacin: Si es un nmero primo y entonces En efecto esto lo cumple cualquier nmero primo, es decir, si encontramos a un nmero y un nmero tal que no cumpla la igualdad, entonces es compuesto, sin embargo, la afirmacin recproca no se cumple, es decir, existen nmeros que cumplen la igualdad y no son primos. . En resumen estrictamente hablando, el mtodo de Fermat no da el 100% de certeza para poder encontrar nmeros primos. Si n es compuesto y pasa el test de Fermat de base a, se dice que n es un pseudoprimo respecto de la base b. Un entero compuesto que sea pseudoprimo respecto de todas las bases se llama nmero de Carmichael, la existencia de estos nmeros impide que se pueda disear un test de primalidad prctico basado en el test de Fermat. Teorema (Alford,Granville,Pomerance,1992) Existen infinitos nmeros de Carmichael.

Ejemplos de nmeros de Carmichael son : 561=3*11*17 1105=5*13*17

5.2.2.

Test de primalidad de Miller Rabin

Sean n y b enteros, con n impar y (b, n) = 1. Sea n - 1 = 2kn0, con no impar, y sean x0=bn0,x1=x02,,xk=x2k-1=b2kn0 =1 (mod n) Si n es primo, x0=1 o -1 {x0,......,xk-1} Cuando se cumple esta condicin se dice que n pasa el Test de Miller-Rabin de base b. Si n es compuesto y pasa el test de Miller-"bin de base b, se dice que n es pseudoprimo fuerte respecto de la base b. Teorema. Si n es compuesto, el nmero de bases 1 < b < n respecto de las cuales es pseudoprimo fuerte es < ( n) / 4 Test de primalidad de Miller-Rabin. Dado un entero impar n, sean b1,.........., bt enteros del intervalo 1 < bi < n tomados aleatoriamente. Entonces 1 para algn , n es compuesto, - Si (bi, n) - Si n no pasa el test de Miller-Rabin para algn bi, n es compuesto. -Si n pasa el test de Miller-Rabin para todos los bi, la probabilidad de que no sea primo es < (l/ 4)t. 5.2.3. Test de primalidad de Solovay Strassen Sean n y b enteros, con n impar y (b, n) = (b/n) (mod n). 1. Si n es primo, b(n-1)/2 Cuando se cumple esta igualdad se dice que n pasa el Test de Solovay-Strassen de base b. Si n es compuesto y pasa el test de Solovay-Strassen de base b, se dice que n es pseudoprimo de Euler respecto de la base b. Teorema. Si n es compuesto, el nmero de bases 1 <, b < n respecto de las cuales es pseudoprimo de Euler es < (n)/2. Test de primalidad de Solovay-Strassen.

Dado un entero impar n, sean b1,..., bt enteros del intervalo 1 < bi < n tomados aleatoriamente. Entonces 1 para algn , n es Si (bi, n) compuesto. Si n no pasa el test de Solovay-Strassen para algn bi, n es compuesto. Si n pasa el test de Solovay-Strassen para todos los bi, la probabilidad de que no sea primo es < (1/2)t. 5.2.4. Mtodo de Lehmann Es uno de los tests ms sencillos para saber si un nmero p es o no primo. 1. 2. Escoger un numero aleatorio a < p. Calcular b = a((p-1)/2) (mod p) Si b -1(mod p),p no es primo p) y b

1(mod 3.

4. Si b 1(mod p) o b -1(mod p),la probabilidad de que p sea primo es igual o superior al 50% Repitiendo el algoritmo n veces, la probabilidad de que p supere el test y sea compuesto (es decir, no primo) sera de 1 / 2^n. 5.2.5. Test de primalidad con curvas elpticas El test de primalidad con curvas elpticas sigue los siguientes principios. Sea n un posible primo. Si es realmente n).n,n+1+2primo, entonces, |E(a,b)/n| est en este intervalo (n+1-2 Adems, es sabido que si n es primo, entonces hay siempre elementos de orden alto. Lo que acabamos de hacer es muy impreciso, lo que quiere decir que hay suficientes elementos de ordenes suficientemente altos para hacer el test de primalidad que queremos describir. Si podemos factorizar |E(a,b)/n|,sea |E(a,b)/n|=q1a1*...*qrar. Entonces ahora elegimos un punto P=(Xo,Yo,z0) aleatoriamente y encontrar su orden.El ordern debe ser un divisor de | E(a,b)/n| y asi podemos empezar revisando p#(| E(a,b)/n|/qi) para cad i. Si la coordenada es relativamente primo con n para cada i y si n divide a la coordenada z de p#| E(a,b)/n|,entonces el orden de P en E(a,b)/p n para cada primo p que divide a n. Esto prueba que n n+1-2 es | E(a,b)/n| debe ser primo. Podemos an esperar que una o ms de las coordenadas de z sea divisible pon n. Para cada i, podemos encontrar el entero positivo ms pequeo bi, tal que la coordenada z

P#( | E(a,b)/n|/ qibi ) Es relativamente primo con n. El orden de p en E(a,b)/p ser entonces al menos | E(a,b)/n|*q11-b2 * .....*qr1-br Para cada primo p que divide a n, debido a que este orden es mayor que .n debe ser primo. El problema del test de primalidad con curvas elpticas ha servido para evaluar el orden de E(a,b)/n Desafortunadamente esto no es fcil, la frmula ms directa para computar el orden implica encontrar y sumar n trminos. El primer test de curvas elpticas, propuesto por S. Goldwasser y J. Killian en 1986, usaba el algoritmo de divisin de puntos para encontrar |E(a,b)/n|. Aunque este mtodo es mucho ms rpido, es an poco prctico para valores grandes de n. El primer mtodo prctico para computar | E(a,b)/n| fue descrito por A.K Lenstra y H.W Lenstra jr en 1987 y est basado en una idea que fue sugerida por Atkin. Se basa en la matemtica del siglo XX y en particular en una nocin que lleva el nombre de curvas elpticas con multiplicacin compleja. Para establecerlo en toda su fuerza se necesita evaluar ciertas funciones thetas que esta mas all del alcance de este trabajo. Sin embargo, nos gustara resear su sentido mostrando como funciona en algunos casos muy especiales. Especficamente, si n es congruente con 1 mdulo 4, determinaremos los rdenes de cuatro grupos elpticos mdulo n. Y si n es congruente 1 mdulo 3,veremos como determinar los rdenes de seis grupos elpticos. 5.2.6. La prueba de Abril La cuestin principal es si este problema est o no en P. En otras palabras, hay un algoritmo que dado un primo de n dgitos, pare en un nmero de pasos acotado por un polinomio en n? G. Miller (1976) demostr que tal algoritmo existe, pero su validez depende de la hiptesis de Riemann extendida. Solovay y Strassen (1977) encontraron un algoritmo de Monte Carlo rpido para el reconocimiento de nmeros primos, pero si la entrada del algoritmo no es primo hay una pequea probabilidad de que diga que es primo. El mejor algoritmo determinstico conocido es el de Adleman, Pomerance y Rumely (1983), y corre en tiempo , que es ligeramente peor que polinomial. Una variante de este, debida a H. Cohen y H.W. Lenstra (1982), corre con nmeros de hasta 100 dgitos decimales en aproximadamente 45 segundos. Ultimamente se ha demostrado que tres problemas importantes estn en la clase P. El

primero es la programacin lineal, demostrado por Khachian en 1979. El segundo es determinar si dos grafos de grado como mucho d son isomorfos, demostrado por Luks en 1980 (el algoritmo es polinomial sobre el nmero de vrtices para un d fijo, pero exponencial en d). El tercero es la factorizacin de polinomios con coeficientes racionales, fue demostrado por Lenstra y Lovaz en 1982 para polinomios de una variable. La generalizacin para polinomios en cualquier nmero fijado de variables fue demostrada por Kaltofen en 1982. 5.3. Factorizacin Una forma de clasificar a los mtodos de factorizacin es en dos grupos: 1. Los mtodos de propsito especial, quienes buscan propiedades especiales a los factores de y 2. Los mtodos de propsito general que dependen slo del tamao de . Entre los mtodos de propsito especial estn: El mtodo del ensao de divisores pequeos (conocido por la criba de Eratstenes) El algoritmo de Pollard El mtodo que usa curvas elpticas (MCE) Criba de cuerpos numricos especial (CCNE) Entre los mtodos de propsito general estn Criba cuadrtica Criba de cuerpos numricos general (CCNG)

En general no existe una forma eficiente de factorizar a un nmero entero si no se conoce nada acerca de l, ya que algunos mtodos son ms eficientes en algunos casos que en otros. En estas siguientes lneas esperamos daros algunos mtodos de factorizacin desde los ms antiguos hasta algunos de los mas recientes como puede ser el NFS, se puede distinguir dos etapas en los mtodos de factorizacin de nmeros enteros hasta 1970,y partir de ese ao ya en dicho ao aparece el primer mtodo de factorizacin con tiempo subexponencial como es el CFRAC. El principal resultado que veremos en esta seccin es el Teorema Fundamental de la Aritmtica, el cual garantiza que cualquier entero n > 1 puede ser descompuesto, de forma nica, como producto de primos. Esto permite reducir muchos problemas que se plantean al trabajar con nmeros enteros a cuestiones sobre nmeros primos. El segundo resultado importante es el Teorema de Euclides sobre la existencia de infinitos nmeros primos. Adems de existir infinitos nmeros primos, estos se distribuyen de forma bastante irregular entre los enteros y hemos incluido algunos resultados que nos permiten predecir dnde pueden encontrarse nmeros primos o dnde aparecen frecuentemente. Lema

Sea p primo y sean a y b enteros cualesquiera. Entonces: 1. p | a p y a son primos entre s. 2. p | ab p | a p | b Demostracin: 1. Por definicin d = mcd(a,p) | p, por lo que, al ser p primo, debe ser d = 1 d= p. a. Si d= p, como d | a se tiene que p | a b. Si d=1 los nmeros a y p son primos entre s. 2. Supongamos que p | ab. Si p no divide a a, del apartado (1) se deduce que mcd(a, p) = 1. La identidad de Bezout nos dice entonces que 1= au + pv para algunos enteros u y v, por lo que b = aub + pvb. Como suponemos que p | ab, divide tambin a aub y como divide evidentemente a pvb, tambin divide a b como queramos probar. Los dos apartados pueden fallar si p no es primo: por ejemplo, para p = 4, a = 6 y b = 10. El Lema puede ser generalizado para el producto de cualquier nmero de factores. Corolario . Si p es primo y p | a1a2 ak, entonces p divide a ai para algn i=1, 2, . . . , k. Demostracin: Haremos induccin en k. 1. Si k = 1 la hiptesis es que p | a1, por lo que la conclusin es cierta. 2. Supongamos ahora que k > 1 y que el resultado es cierto para todos los productos de k1 factores. Si denotamos por a al producto a = a1a2 ak-1 y b = ak entonces a1a2 ak = ab y por tanto, p | ab. Por el Lema se tiene que p | a o bien p | b. En el primero de los casos, la hiptesis de induccin nos dice que p | ai para algn i = 1, . . . , k-1; en el segundo de los casos p | ak. En cualquiera de los casos p | ai para algn i, como se pretenda probar. Una aplicacin directa de este corolario es la siguiente. Corolario. Si p es primo y p | ak, entonces p | a y, por tanto, pk | ak. El siguiente resultado, conocido como Teorema Fundamental de la Aritmtica explica la importancia de los nmeros primos. Teorema [Teorema Fundamental de la Aritmtica] Cada entero n >1 admite una descomposicin en factores primos n = p1e1 p2e2 pkek donde p1, p2, . . . , pk son primos distintos y e1, e2, . . . , ek enteros positivos. Esta factorizacin es nica, independientemente de las permutaciones de sus factores. (Por ejemplo, 200 admite la descomposicin en factores primos 23 52 o, alternativamente, 52 23 si permutamos sus factores, pero no admite ninguna otra factorizacin posible.) Demostracin: 1. Existencia: Utilizaremos el principio de induccin completa para probar la existencia de la descomposicin en factores primos. Como hemos asumido que n > 1, comenzaremos la induccin por n = 2.

a. Si n = 2, la requerida factorizacin es n = 21. b. Asumamos ahora que n > 2 y que cualquier entero estrictamente contenido entre 1 y n admite una descomposicin en factores primos. Si n es primo entonces n = n1 es la factorizacin buscada, por lo que podemos asumir que n es compuesto. En dicho caso n = ab con 1 < a , b < n. Por la hiptesis de induccin, a y b admiten descomposiciones en factores primos. Sustituyendo estas en la ecuacin n = ab y asociando las potencias de cada factor primo pi, obtenemos una descomposicin en factores primos de n. 2. Unicidad: Para probar que es nica, supongamos que n admite las factorizaciones n = p1e1 p2e2 pkek = q1 f1 q2 f2 qh fh donde p1, p2 pk , q1, q2 qh son dos conjuntos diferentes de primos, y los exponentes ei (1 i k) y fj (1 j h) son todos positivos. La primera factorizacin prueba que p1 | n, por lo que el Corolario (aplicado a la segunda factorizacin) nos dice que p1| qj para algn j = 1, . . ., h. Permutando el orden de los factores primos de la segunda factorizacin, podemos asumir que j=1, es decir, que p1| q1. Como q1 es primo, se sigue que p1= q1, por lo que cancelando dicho factor primo de ambas factorizaciones obtenemos que p1e1-1 p2e2 pkek = q1 f1-1 q2 f2 qh fh Reiterando este razonamiento, vamos emparejando primos en ambas factorizaciones y cancelndolos hasta que eliminemos todos los primos de una de las factorizaciones. Si una de ellas se elimina antes que la otra, el resto de la factorizacin que nos queda es una factorizacin de 1 como producto de primos pi o qj, lo cual es imposible ya que pi, qj > 1. Se tiene entonces que ambas factorizaciones se cancelan simultneamente, por lo que debemos cancelar cada copia ei de cada factor primo pi con el mismo nmero fi de copias de qi; es decir, k = h, cada pi = qi (salvo permutacin de los factores) y cada ei = fi, por lo que la descomposicin en factores primos de un entero n es nica. Teorema [Teorema de Euclides] Existen infinitos nmeros primos. Demostracin: Lo demostraremos por reduccin al absurdo. Suponemos que slo existe un nmero finito de primos y llegamos a una contradiccin, por lo que debe existir una cantidad infinita de ellos. Supongamos que slo existen los primos p1, p2, . . . , pk y sea m = p1 p2 pk + 1. Como m es un entero mayor que 1, el Teorema Fundamental de la Aritmtica nos asegura que es divisible por algn primo p (incluyendo la posibilidad de que m = p ). Segn nuestra hiptesis, el primo p ha de ser uno de los nicos primos que existen p1, p2, . . . , pk, por lo que p divide al producto p1 p2 pk. Como p divide a m y a p1 p2 pk debe dividir a m - p1 p2 pk= 1, lo cual es imposible. Deducimos de aqu que nuestra hiptesis es falsa, por lo que deben existir infinitos nmeros primos 5.2.1 La criba de Eratstenes Es una forma sistemtica de construir la lista de los nmeros primos existentes hasta un entero dado n. Se escribe, en primer lugar, la lista de enteros 2, 3, . . . , n en orden creciente. Subrayamos el 2 (que es primo) y eliminamos todos los mltiplos de 2 tales como 4, 6, 8, . .

. (por ser compuestos). El primer entero, posterior a 2, que no ha sido eliminado es 3. Obsrvese que no ha sido eliminado por no ser divisible por ningn primo anterior, por lo que podemos asegurar que es primo. Lo subrayamos y eliminamos todos sus mltiplos 6, 9, 12, . . . En la siguiente etapa subrayamos 5 y eliminamos todos sus mltiplos 10, 15, 20, . . . Continuamos de esta forma hasta que todos los elementos de la lista hayan sido o bien subrayados o bien eliminados. En cada etapa, el primer entero que no ha sido eliminado debe ser primo, ya que de lo contrario habra resultado eliminado por ser mltiplo de alguno de los primos anteriores, por lo que slo los primos aparecern subrayados y, recprocamente, todos los primos de la lista aparecern subrayados, por lo que al finalizar el proceso, aparecen subrayados todos los primos p n. (De hecho, podemos detener el proceso cuando eliminamos todos los mltiplos de los primos )Se da a continuacin la tabla de los 100 primeros nmeros primos. 2 3 5 7 11 71 73 79 83 89 151 157 163 179 181 191 257 263 269 283 293 307 379 383 389 419 421 431 499 503 509 13 97 167 193 271 311 397 433 521 17 101 173 197 277 313 401 439 523 19 103 23 29 107 31 109 223 337 457 37 113 227 347 461 41 127 229 349 463 43 47 131 233 353 467 53 137 239 359 479 59 139 241 367 487 61 149 251 373 491 67

199 211 281 317 331 409 443 449 541

5.3.2. Mtodo de Fermat Otro mtodo interesante por sus aplicaciones tericas, ms que por su eficacia, es el mtodo de factorizacin de Fermat. La idea del mtodo para factorizar un nmero impar, que no sea cuadrado, como producto de dos n=a*b, consiste en expresarle como diferencia de cuadrados: n= x2 y2 ,de modo que se obtiene su factorizacin en la forma: n=(x+y)*(x-y). Es claro que x > n], por lo que en[ n] +l, a continuacin se halla z= a2primer lugar se determina el valor de a= [ -n y se prueba si z es o no un cuadrado. Si fuera un cuadrado, el procedimiento concluye, pues se tiene: z= b2 =a2 -n; es decir, n= a2- b2=(a-b)*(a+b). En caso contrario, se intenta con el siguiente valor de x, que es a+l, y se calcula la diferencia (a+1) 2-n=m2+2*m+I-n=z+2*m+1, repitindose el procedimiento anterior. Ejemplo: Factorizar n=20081 9. Consideremos 200819) +1 =449. Ahora 4492 -200819 =782, que no es un cuadradoa=[( perfecto.

Se intenta con el siguiente valor de a: a=450, 4502-200819= 1681 =412. Por tanto, 200819=4502-412=(450-41)'(450+41) = 491 *409. 5.3.3. Mtodo de Legrende El mtodo de Legendre para factorizar un nmero n, utiliza una distincin entre los nmero primos compuestos con respecto al nmero de soluciones de la congruencia X2= y2(mod n). Para los nmeros primos, la congruencia anterior nicamente tiene como soluciones las triviales: x=+-y(mod n), mientras que si n es compuesto la congruencia anterior admite ms soluciones. No triviales a la congruencia anterior. Como x2-y2 = 0 (mod n), si (x+y) es una solucin no trivial, un factor de n se determina hallando el mcd(x+y,n). 5.3.4. Mtodo p de Pollard El algoritmo Pollards Rho es un algoritmo de factorizacin de propsito especfico para encontrar los factores pequeos de un nmero compuesto. Un algoritmo de propsito especfico es aquel en el que su comportamiento depende de la forma que tiene el nmero a factorizar. En general, el algoritmo encuentra factores de hasta 10 dgitos. Sea f: S S una funcin aleatoria, donde S es un conjunto finito de cardinalidad n y n es el nmero a factorizar. Sea x0 un elemento aleatorio de S y sea la secuencia x0, x1, x2, definida de la siguiente 0. manera: xi+1 = f(xi) para i Como S es un conjunto finito, en algn momento la secuencia va a comenzar a ciclar. El algoritmo de Pollards Rho define la secuencia x0, x1, x2, de la siguiente manera: x0 = 2 xi+1 = 0, f(xi) = xi2 + 1 mod n; para i se intenta encontrar duplicados en la secuencia utilizando el mtodo de Floyd para encontrar ciclos x2m (mod p). Como p / n pero es desconocido, en una secuencia de manera que xm se computan los trminos xi mod n de la secuencia y se prueba si 1 < mcd(xm - x2m, n) < n, en ese caso hemos encontrado un factor no trivial de n (no necesariamente primo). En cambio si d = n quiere decir que el mtodo fall en encontrar un factor de n. El algoritmo: pk para algn p Entrada: un entero n compuesto tal que n . primo, k

Salida:

un factor no trivial de n (no necesariamente primo)

1. Inicializar a := 2, b := 2. 2. Para i = 1, 2, hacer 2.1. Calcular a := a2+1 mod n, b := b2+1 mod n, b := b2+1 mod n. 2.2. Calcular d := mcd(a-b, n). 2.3. if 1 < d < n entonces devolver(d). 2.4. if d = n entonces terminar el algoritmo (no se encontr un factor). Un Ejemplo: Apliquemos el algoritmo de factorizacin Pollards Rho a n = 455459. La siguiente tabla muestra los valores de a, b y d al final de cada iteracin del paso 2. Un factor no trivial de n = 455459 es 743. Por lo tanto 455459 / 743 = 613 es otro factor de n. Proposicin. El tiempo de ejecucin esperado de algoritmo p de Pollard para localizar un factor de p de n es =( p1/2) multiplicaciones modulares; es decir, el tiempo esperado para encontrar un factor no trivial de n es O(n1/4) multiplicaciones modulares. 5.3.5. Metodo p-1 de Pollard Este mtodo de factorizacin puede usarse de forma eficiente para localizar algn factor primo p, de un nmero compuesto n, si se verifica que p-1 es suave (smooth). Un nmero se dice que es suave respecto a una cota B si todos sus factores primos B. son La idea del algoritmo p-1 de Pollard consiste en fijar una cota de suavidad B, y considerar el mnimo comn n. B que son mltiplo Q, de todas las potencias de los primos Si p es un factor primo de n, de modo que p es B-suave, entonces P-1/Q, por lo que para cada a que satisfaga mcd(a,p)=1, por el Teorema de Fermat se tiene a0=1 (mod p). Por tanto, si mcd(a0-l.n)=d, entonces p/d. Es posible que fuera d=n, en cuyo caso el algoritmo falla. Sin embargo, esta situacin probable que ocurra si n tiene al menos dos factores primos grandes distintos. El algoritmo del mtodo p-1 de Pollard de factorizacin es el siguiente: ENTRADA - un entero compuesto n, que no es la potencia de un primo SALIDA - un factor no trivial d de n 1. Seleccionar una cota de suavidad B.

2. n-1 y a Seleccionar un entero aleatoria a que verifique las condiciones 2 mcd(a,n)=1 (si no es as, se ha encontrado un factor no trivial de n) B DO 3. FOR cada primo q 3.1 Calcular FORMULA 3.2 Calcular a=aqt (mod n) 4. Calcular d=mcd(a-1,n) 5. IF d=1 OR d=n THEN terminar el algoritmo con fallo ELSE regresar (d) Ejemplo. Factorizar 17441 1. 2. 3. q 2 3 5 7 11 13 17 19 Seleccionar la cota de suavidad B=19 Se selecciona el entero a=3 Para este paso se obtienen los siguientes valores intermedios l 14 8 6 5 4 3 3 3 a 6045 14642 4291 11939 3150 12446 3587 8151

4. Se calcula d=mcd(8151-1, 17441)=163. 5.Entonces, dos factores no triviales de n=17441 son p=163 y q= 174411163 = 107 (que de hecho son primos). En el algoritmo anterior se puede apreciar que p-1 =l 62=2*34 y q-1 =l 06= 2*53; es decir, p-1 es 19-suave, mientras que q-1 no lo es. Proposicin. El tiempo de ejecucin de algoritmo p-1 de Pollard es O(B In n/in B) multiplicaciones modulares. 5.3.6. Mtodo de Gauss Este mtodo es muy importante ya que es la base para muchos otros mtodos de

factorizacin. Se trata de un mtodo de exclusin, que consiste en encontrar la mayor cantidad posible de residuos cuadrticos (RC) mdulo N, de forma tal de excluir cada vez ms primos como posibles factores de N. De esta forma se reduce tanto el nmero de posibles factores, que nos permite utilizar una tcnica conocida como trial division utilizando aquellos factores que nos quedan. La idea que existe detrs de este mtodo es que como un entero a es residuo cuadrtico de casi la mitad de los primos, entonces el hecho de que a sea RC mdulo N, nos permitir excluir x2 cerca de la mitad de los primos como divisores de N. Esto es porque si a x2 mod p, para cualquier p divisor de N. mod N, entonces implica que a Residuo cuadrtico: Un nmero a es residuo cuadrtico mdulo N, x tal que si x2 mod N. a Reglas para RC y no RC: el producto de dos RC es siempre un RC y el producto de un RC y un no RC no es un RC. Consiste en realizar divisiones del nmero N por los primos pequeos. Se puede tener una tabla con los primos ms bajos hasta un lmite y tener un rpido programa en contraste con el espacio para almacenarlos o generarlos y tener un programa un poco ms lento pero sin demanda de espacio de almacenamiento. Es ventajoso no utilizar slo primos como divisores. Es bueno, por ejemplo, utilizar los enteros 2 y 3 y luego todos los enteros positivos de la forma 6k+1 y 6k-1 como divisores. Estas frmulas incluyen todos los primos y algunos nmeros compuestos; como por ejemplo 25, 35, 49; para realizar las divisiones. Realizar tambin estas divisiones no es desventaja ya que el ciclo en el programa para la generacin de estos nmeros es muy rpido. Aplicndola en el mtodo de Gauss, esta tarea, consiste en realizar divisiones con los primos que resulten de la variacin de los k's en las frmulas obtenidas en la etapa anterior y generada a partir de los RC, utilizando un algoritmo optimizado. Adicionalmente, para mejorar la recorrida de los enteros positivos de las frmulas encontradas, como estos pueden llegar a ser nmeros compuestos, se realizan chequeos rpidos sobre los nmeros tal que no sea necesario realizar divisiones con nmeros grandes. Es as como se chequea divisibilidad por:

Tres: Sumando todos los dgitos y viendo si el resultado es divisible por 3. Cinco: Viendo si el ltimo dgito termina en 0 o 5. Once: Se suman las cifras en posiciones impares, y se restan las de posiciones pares. Finalmente se verifica si el nmero resultante es divisible por 11. Si se cumple alguna de las condiciones aqu presentadas, entonces el nmero es salteado, ya que es un nmero compuesto, y si dividiera a n, se hubiera descubierto antes con alguno de los factores 3, 5 o 11 al recorrerlos originalmente (si el nmero es 3, 5 u 11 no se considera este chequeo).

5.3.7. Factorizacin con curvas elpticas El procedimiento siguiente para factorizar nmeros enteros mediante curvas elpticas debido a A. K. Lennstra y a W. H. Lenstra jr. Sea n un nmero compuesto relativamente primo a 6. En la prctica, n se sabe para tener ningunos pequeos factores principales. Al azar escogemos un parmetro n<x, y para nuestra curva elptica y un punto (x, y) sobre la curva, 0 Note que los valores de un x e y determinan univocamente la b: y^2-x^3-ax b Nosotros verificaremos que gcd(4^3+27b^2,n)=1Si no entonces hemos encontrado probablemente un factor de n. Convirtiendo nuestra inicial (x, y, 1) a (X,Y,Z). Si p es primo dividimos n y |E(a,b)/p| por k factorial ,entonces k#3)#2)#)#k!=(..(((X,Y,Z)#(X,Y,Z) Ser la identidad en E(a,b)/p, lo cual significa que p dividir Zk! Si k es demasiado grande, hay un excelente posibilidad de que gcd(Zk!,n) sea un divisor no trivial. ALGORITMO: factorizacion con curvas elpticas Sea n el numero a factorizar, n debe ser relativamente primo con 6.Las constantes X,Y,a son nmeros enteros arbitrarios, X,Y, son no negativos y menores que n. MAX es el mximo valor de k antes de acabar Programa Initialize: read n,X,X,a;MAX Y*Y-X*X*X-a*X mod n b gcd(4*a*a*a+27*b*b,n) g 1 then call terminate if g 1 Z 2k max do Compute_loop: while k For I=1 to 10 do Call nextvalues(X,Z,k) k+1 k gcd(Z,n) g 1 then call terminate IF g Terminate: write g Si g=1, entonces,MAX no era suficientemente alto para encontrar el primer divisor de n. Si

g=n, entonces hemos recogido todos los divisores primos de n. En cada uno de estos caso, se empieza con diferentes valores de X, Y, a. Si g distinto de n 1, entonces n factoriza como n= g*n/g Nextvalues(Y,Z,k) 5.3.8. CFRAC Nuestro objetivo es la implementacin del mtodo de factorizacin de Morrison y Brillhart s (CFRAC). El mtodo, originalmente, puede dividirse en dos grandes tareas que se describen a continuacin: Encontrar una solucin no y2 mdulo N. trivial a la congruencia x2 Computar un factor p de N aplicando el algoritmo de Euclides a (x + y, N). Este mtodo es uno de los ms eficientes mtodos generales de factorizacin que se hayan utilizado en forma extensiva en computadoras. Fue el primer mtodo con tiempo de ejecucin subexponencial, que quiere decir: si el tiempo de ejecucin (lentamente) decrece a medida , entonces para factorizar N es denotado como N que N crece. Durante la poca de 1970, fue el principal mtodo utilizado para factorizar enteros grandes, sin tener estos nmeros ninguna forma matemtica particular, como lo hacan otros mtodos. Antes de comenzar con el desarrollo del mtodo, introduciremos un concepto que utilizaremos a continuacin. Este concepto es el de fracciones continuas. Una fraccin continua es una expresin de la forma: En el caso de que todos los numeradores ai son 1 y los bi son enteros positivos, entonces la fraccin se dice regular. A continuacin se describe como encontrar la expresin de la fraccin continua para un nmero real X. un nmero real X.

Donde b0 es un entero y todos los bi / i > 0 son enteros positivos. Los valores se obtienen de la computacin sucesiva de:

Una vez introducido este concepto, desarrollaremos en qu consiste la tcnica.

Esta tcnica de y2 mod N fue inspirada en el mtodo de encontrar soluciones no triviales a x2 factorizacin de Legendre, del cual se toma la idea de encontrar residuos cuadrticos pequeos a partir de la expansin como fraccin continua de y de la idea de combinar residuos cuadrticos para obtener otros nuevos. El mtodo de Legendre utiliza la siguiente distincin entre nmeros primos y compuestos: para cada N, primo o compuestos, - y mod N, + y mod N y x y2 mod N tiene las soluciones x la congruencia x2 que llamamos las soluciones triviales. Para un N compuesto, adems existen otras soluciones, que pueden ser utilizadas para calcular eventuales factores de N. y2 As, si N = pq, la congruencia x2 - z mod N, aparte de + z mod N y x mod N tiene un par ms de soluciones x las soluciones triviales. Esto puede ser utilizado para hallar la factorizacin de N = pq. Primero de todo, debemos encontrar la solucin no trivial a la 0 mod pq y como x + y o x congruencia. Luego, como x2 - y2 = (x + y).(x y) y no son divisibles por ambos p y q, entonces uno de ellos es divisible por p y el otro por q. Este factor p puede hallarse utilizando el algoritmo de Euclides entre (x + y, N). La primera parte del mtodo consiste en computar parcialmente la expansin de la fraccin continua de Las siguientes ecuaciones, son las que conforman la base fundamental del mtodo. A partir de ellas, se realizan los clculos necesarios para el algoritmo.

El prximo paso en el mtodo es buscar combinaciones cuadrticas de los Qi completamente factorizados. Esta combinacin, podemos notarlo como: Es 1 son pares. y producida si todos los exponentes Para poder obtener estas combinaciones cuadrticas, debemos generar una matriz con la factorizacin completa de los Qi, y aplicarle el algoritmo de eliminacin Gaussiana mod 2. Cada una de las filas de la matriz, corresponder a un vector de 1's y 0's. Habr un 0 en la posicin i, en caso que el primo Pi no se encuentre o sea un cuadrado. En caso contrario encontraremos en esa posicin un 1. Cada una de las combinaciones encontradas, pueden resultar soluciones triviales o no triviales, con lo cual, debe chequearse de que se trata de una solucin no trivial. En caso que sea trivial la solucin encontrada, se debe descartar y continuar con la bsqueda. Debemos encontrar un conjunto de nmeros denominados Qn como sigue: Qn = ( N Pn2 ) / Qn-1 Donde N es el nmero grande a factorizar, y

Pn = bn-1 * Qn-1 Pn-1 donde bn = [xn] (parte entera inferior) donde xn = 1 / ( xn-1 bi-1 ) Tambin calculamos: An = bn*An-1 + An-2 Para realizar estos clculos, se deber calcular primero: Q0 = 1 A0 = b0 P0 = 0, P1 = [ ] A-1 = 1 x0 = b0 = [ x0 ] y luego Calcular xn en base a xn-1 y bn-1 Calcular bn en base a xn Calcular pn en base a bn-1, qn-1, pn-1 Calcular qn en base a pn, qn-1 Factorizar qn y almacenar su factorizacin (slo los primos elevados a potencias impares). 5.3.9. MPQS Para intentar entender este mtodo de factorizacin veamos primero el Quadratic Sieve, ya que el MPQS es una variante del QS, se diferencian en que toman polinomios diferente como veremos ahora. El mtodo QS fue propuesto por Carl Pomerance extediendo las ideas de Kraitchik y Dixon, fue uno de los algoritmos ms eficientes de los aos 80 hasta principios de los 90. Veamos como funciona el QS, si n es el numero que deseamos factorizar, el QS intenta encontrar dos nmeros tales que x2 y2 mod n y x +- y mod n. Esto implicar que (xy)*(x+y) 0 mod n,y simplemente computando el (x-y,n) usando el algoritmo de Euclides para ver si es o no un factor no trivial de n. Nuestro primer paso ser definir Q(x)=(x+n)2-n=z2-n Y computar Q(x1),,Q(xn),donde los xi sern explicados ms adelante. Desde la evaluacin de los Q(x),nosotros queremos encontrar un subconjunto tal que Q(xi1), ,Q(xin) sea un cuadrado y2.Entonces notar que para todo x, Q(x) 0 mod n. As que nosotros tenemos Q(xi1),,Q(xin) (xi1xin)2 mod n y si las condiciones se cumplen, nosotros tenemos un factor de n. Nosotros necesitamos un camino eficiente para determinar nuestros xi,y para obtener que el producto de los Q(xi) sea un cuadrado. Ahora para probar si el producto es cuadrado, los exponentes de los factores primos del producto necesitan ser todos pares. As necesitaremos

factorizar cada uno de los Q(xi). Por consiguiente, queremos que ellos sean pequeos y factorizar sobre un conjunto fijado de nmeros primos, incluyendo el -1, a este conjunto lo llamaremos base de factores. Para hacer Q(x) pequeo necesitamos seleccionar valores de x cerca de 0,asi nosotros fijamos un limite M y solo considerar valores de x sobre el intervalo de criba [-M,M]. Ahora si x esta en dicho intervalo, y algn primo p divide a Q(x), entonces (x2-[n])2n mod p, as n es un residuo cuadrtico mod p. Una vez que tenemos un conjunto de primos para nuestra base de factores, comenzamos a tomar nmeros x de nuestro intervalo de criba y calculamos Q(x),y verificamos si estn completamente factorizados sobre nuestra base de factores, si es as diremos que es suave en caso contrario no lo consideramos y seguimos con el siguiente elemento de nuestro intervalo de criba. Si Q(x) esta completamente factorizado, entonces podemos tomar los exponentes (mod 2) de los primos en la base de factores dentro de un vector como describiremos ahora. Pondremos todos sus vectores dentro de una matriz A, donde cada fila representa a un Q(xi), y las columnas representan los exponentes mod 2 de los primos de la base de factores. As por ejemplo si nuestra base de factores es {-1,2,3,13,17,19,29} y Q(x)=2*3*172*19,entonces la fila correspondiente ser (0,1,1,0,0,1,0).Recordar que nosotros queremos que el producto de esos Q(xi) sea un cuadrado perfecto, as que queremos que la suma de los exponentes de cada factor primo en la base de factores sea par, y congruente 0 mod 2. Hay varios caminos para obtener un cuadrado perfecto de los Q(xi),cual es bueno, algunos de ellos no nos darn un factor de n. As dados Q(x1),,Q(xk),nosotros deseamos encontrar unas solucin para : Q(x1)e1++Q(xk)ek donde cada ei es uno o cero As si i es la fila correspondiente a Q(xi) entonces nosotros queremos: ie1+.+kek0 mod 2 sto significa que nosotros necesitamos resolver eA=0 siendo e=(e1en),mediante la eliminacin gausiana de esta forma encontraremos un conjunto de soluciones. Por lo tanto nosotros necesitamos encontrar al menos tantos Q(xi) como primos hay en la base de factores. Cada elemento del conjunto de soluciones se corresponde a un subconjunto de los Q(xi),cuyo producto es un cuadrado perfecto. Probamos la solucin de los vectores para ver si de los Q(xi) y los xi son un cuadrado perfecto produce un factor de n haciendo el mcd descrito al principio, si no es as probamos con el siguiente elemento del conjunto de soluciones hasta obtener un factor de n. Como el nombre sugiere el MPQS , usa varios polinomios en vez de Q(x) en el algoritmo, y fue Montgomery el primero que lo sugiri. Esos polinomios son de la forma Q(x)=ax2+2bx+c.donde a, b y c son elegidos segn unas ciertas condiciones. La motivacin de esto es que usando varios polinomios, podemos hacer el intervalo de criba ms pequeo, los cuales hacen mas pequeo a Q(x).

Los coeficientes de nuestro polinomio les escogemos de la siguiente manera, sea a un cuadrado perfecto, entonces tomamos b verificando que 0b<a tal que b2n mod a. Esto es nicamente verdad si n es un cuadrado para cada primo que q|a. As que deseamos elegir a con la factorizacin conocida tal que (n/q)=1 para cada primo q|a. Finalmente elegimos c tal que b2-4ac=n. Cuando nosotros encontremos un Q(x) notar que: aQ(x)=(ax)2+abx+ac=(ax+b)2-n as que (ax+b)2aQ(x) mod n, avisamos de que a es un cuadrado as que Q(x) debe serlo. 5.3.10. NFS La criba del cuerpo de nmeros o NFS es un algoritmo de factorizacin de nmeros enteros grandes muy utilizado hoy en da. Adems este mtodo se caracteriza por ser el ms rpido. En estas siguientes lneas intentaremos daros la descripcin del algoritmo. Sea n el nmero que deseamos factorizar. Los pasos a realizar son los siguientes: 1. determinar un polinomio monico e irreducible en Z[x],y un m Z tal que f(x)=m

Nota:para determinar un polinomio de esa forma consideramos un grado d para el polinomio tal que 2c< n siendo c=d2.Sea m la parte entera de n1/d. 2. sea una de las races de f(x) y definimos el siguiente cuerpo Z()

3. consideramos dos bases de factores, sea P una base de factores de Z y sea G una base de factores de Z() Nota: una base de factores es una lista de primos pequeos 4. encontrar pares (a,b) con a,b en Z tales que verifiquen: a+bm es P-suave y a+b sea G-suave . Es decir que estn completamente factorizados en P y en G 5. construir una matriz de bases de factores, es decir encontrar pares (a,b) mas que la suma de los cardinales de la bases de factores. Formar una matriz de vectores de ese orden mod 2, despus encontrar pares linealmente dependientes de (a,b) tales que: i(ai+bim)= (pu)2 donde p pertenece a P i(ai+bi )= (c)2 donde pertenece aG Nota: estamos buscando pares dependientes,porque dependiente implica la existencia de bases de factores comunes. 6. considerar el siguiente homomorfismo : Z[]Zn, dado por f()=f(m) mod m,y obtenemos (pu)2 (c)2 mod n

Nota: este es el paso clave del algoritmo. Desde Zn es difcil, as pues, examinamos la estructura similar de Z() primero y aplicamos a Zn. 7. ahora llegamos a x2y2 mod n. Computamos pares (x,y) y calculamos mcd(x-y,n) y as obtenemos el divisor de n 5.3.11. Tiempo d factorizacin El descomponer en factores es un campo de la investigacin muy activo entre matemticos e informticos; los mejores algoritmos el descomponer en factores se mencionan abajo con algunas referencias y sus eficacias asintticas grandes de O; O - la notacin refiere al lmite superior en el tiempo en marcha asinttico de un algoritmo . Los algoritmos de propsito especial de descomponer en factores p), incluyen el mtodo del rho de Pollar,con el tiempo en marcha previsto O ( ), donde est el y el mtodo de Pollard p -1, con el tiempo en marcha O ( p factor p primero ms grande de p -1. El mtodo de Pollard p +1 es tambin un propsito especial que descompone en factores algoritmo, con el tiempo en marcha ), , donde est el factor p primero ms grande de p +1, todos de O ( p estos toma a la cantidad de tiempo que sea exponencial en el tamao (longitud del pedacito) de p , el factor primero que encuentran; as estos algoritmos son demasiado lentos para la mayora de los trabajos el descomponer en factores. El mtodo elptico de la curva ( ECM ) es (lnln de 2(ln p p) superior a stos; su tiempo en marcha asinttico es O (( e }). El ECM se utiliza a menudo en la prctica para encontrar factores de nmeros aleatoriamente generados; no es bastante rpido al factor que un mdulo grande de la clase utiliz en el criptosistema de RSA. El mejor algoritmo de uso general el descomponer en factores es hoy el tamiz del campo del nmero ( NFS ) ,que funciona en el tiempo aproximadamente O ( e 1.9(ln n) 1/3 (lnln n) 2/3 ). Previamente, el algoritmo de uso general lo ms extensamente posible usado era el tamiz cuadrtico polinmico mltiple ( MPQS ) ,que tiene tiempo en marcha O ( e (ln n) el 1/2 (lnln n) el 1/2 ). Las mejoras recientes al tamiz del campo del nmero hacen el NFS ms eficiente que MPQS en descomponer en factores nmeros ms en gran parte que cerca de 115 dgitos , mientras que MPQS es mejor para los nmeros enteros pequeos. Mientras que Rsa-129 fue descompuesto en factores usando una variacin de MPQS, una variante del NFS fue utilizada en descomponer en factores reciente de Rsa-155 (un nmero 155-digit). Ahora se estima que si el NFS hubiera sido utilizado para Rsa-129, habra tomado un cuarto del tiempo. Claramente, el NFS ha alcanzado MPQS como usado lo ms extensamente posible descomponiendo en factores algoritmo. Mtodos de Factorizacin prima.

Los mtodos de factorizacin prima son algoritmos que permiten hallar los factores primos de un nmero. Dichos algoritmos se puede clasificar en: factorizacin por factores primos y por factores compuestos. Para el desarrollo de estos algoritmos es indispensable identificar los nmeros primos, por ello, al final del presente trabajo se brinda una tabla con los nmeros primos menores que 200. Seguidamente se explican cada una de estos tipos de mtodos de factorizacin prima.

Mtodos de factorizacin por factores primos. Estos mtodos son la aplicacin directa del teorema de factorizacin prima, pues da un nmero natural consisten en hallar de manera ascendente cada uno de los factores primos de En forma general estos algoritmos siguen los siguientes pasos:

Paso 1.

Paso 2. Determinar el nmero primo ms pequeo que divide a Paso 3. Este sera llamado

Se define Paso 4. Si es primo entonces finaliza el procedimiento y se obtiene que

donde se pasa al paso 5

son primos y adems

Si no

Paso 5. Incrementar en una unidad y pasar al paso 2.

Bsicamente, estos mtodos siguen un procedimiento de bsquedad lineal, es decir no se puede determinar el k-simo primo, si no se han determinado todos los anteriores:

lo que provoca que estos mtodos sea muy ineficientes para nmeros grandes. A continuacin se presentan los dos mtodos que obedecen este procedimiento.

Mtodo de ensayo y error.

En este mtodo, para el paso 2 se procede realizando la divisin de hasta obtener el primer primo divisor de Ejemplo 1. Determine la factorizacin prima de

entre

veamos el siguiente ejemplo.

Solucin. Los resultados del mtodo ensayo y error se presentan en la siguiente tabla

As, en este caso se obtiene que Mtodo por reglas de divisibilidad.

Este mtodo es una variacin del anterior y consiste en sustituir algunas de las divisiones por reglas de divisibilidad. Para efectos de dicha presentacin se enumeran seguidamente. Dado un nmero 1. 2. 3. 4. 5. 6. Ejemplo 2. Determine la factorizacin prima de se dice que

es divisible entre si su ltimo digito es es divisible entre si la suma de sus dgitos es mltiplo de es divisible entre si su ltimo digito es 0 es divisible entre si el nmero que queda suprimiendo el dgito de de las unidades, disminuido en el doble de las unidades es 0 o mltiplo de es divisible entre si la suma de los dgitos de las posiciones pares menos la suma de los dgitos de las posiciones impares es 0 o mltiplo de

Solucin. Los resultados del mtodo por reglas de divisibilidad se observan en la siguiente tabla.

Por lo tanto se realiza

Nota: Esta tabla como la del ejemplo anterior, es una manera de exhibir los resultados del mtodo posterior a su aplicacin, pues una vez aplicado el mtodo, se sabe cuantas columnas se requieren. Si bien este mtodo es ms eficiente que el anterior, se puede mejorar. En efecto, la idea consiste en romper el orden de menor a mayor de los primos y verificar primero si el es divisible por 5 y luego por 2, que es fcil de comprobarlo. Esto permitir obtener luego un ms cmodo para determinar si es divisible por Hasta el momento se han presentado en los ejemplos, unas tablas que ilustran muy bien el procedimiento de los algoritmos utilizados. Sin embargo, en secundaria se utiliza una tabla donde se suele omitir el paso 2 de los algoritmos, las cuales tienen la ventaja de que se puede utilizar para ir presentado los datos conforme el mtodo avanza, y no como en las anteriores, en donde no se poda construir la tabla hasta que el algoritmo finalice. El docente puede optar en un primer momento, por utilizar tablas similares a las expuestas en los ejemplos, permitiendo que los alumnos se familiaricen con los algoritmos, y posteriormente, utilizar la tradicional tabla que se expone en el siguiente ejemplo. Ejemplo 3. Determine la factorizacin prima de

Solucin. Aplicando el algoritmo se tiene que

Por lo tanto

Desventajas de los mtodos por factores primos.

Como se han mencionado anteriormente, una de las mayores desventajas de estos mtodos de factorizacin de un nmero natural es que utilizan un procedimiento de bsquedad lineal para hallar los factores primos de Otras desventajas que tienen estos mtodos son: 1. Funcionan slo para nmeros "pequeos". Para nmeros muy grandes estos algoritmos requieren mucho tiempo. 2. Se cuenta con pocas reglas de divisibilidad. Ests son slo para los primeros primos. 3. Es complicado saber si un nmero mayor que 100 es primo. La mayora de personas conocen a lo sumo los veinte primeros nmeros. Esto provoca que si esta compuesto con primos mayores que 100, se une al algoritmo la dificultad de tener que ir determinando los primos en el orden que se sigue.

Mtodos de factorizacin por factores compuestos.

Estos mtodos consisten en, dado un nmero natural hallar dos nmeros y (no necesariamente primos) que cumplan De manera general, estos algoritmos siguen los siguientes pasos para la factorizacin de : Paso 1. Hallar dos nmeros naturales Paso 2. Factorizar y y que cumplan que

utilizando algunos de los mtodos de factorizacin.

Si se contina aplicando este mismo tipo de mtodo, se puede apreciar que se sigue un procedimiento de bsqueda de rbol, pues se va simultneamente hallando los factores primos de

Veamos el siguiente ejemplo.

Ejemplo 4. Determine la factorizacin prima de

Solucin. Se tiene que y como y entonces dos nmeros que

No siempre es tan fcil determinar para un nmero natural

multiplicados entre s den como resultado Es fcil cuando el nmero es divisible por o Por lo tanto, en los mtodos que presentaremos en las secciones siguientes se asumir que el nmero a factorizar es impar y no es divisible por 3 ni por 5, pues, en caso contrario, es mejor aplicar inicialmente algunos de los mtodos vistos, hasta obtener factores (un valor que cumplan dicho supuesto.

Mtodo de factorizacin de Fermat

Sea

un nmero natural impar, se quiere hallar dos naturales

que cumplan

Como

es impar entonces tanto entonces,

como y

son impares y suponiendo sin prdida de son nmeros naturales. Tmese

generalidad que

Note que

por lo tanto

As, nuestro problema se reduce ha hallar dos nmeros naturales

que cumplan

Note que de

se tiene que

entonces

y se sigue que

Por otro lado, de por

se deduce que

debe ser un cuadrado perfecto, que se denotar

por lo tanto

debe ser un cuadrado perfecto En resumen a partir de y el Mtodo de Fermat sigue los siguientes pasos, para determinar los factores y de un nmero natural :

Paso 1. Si tome y finaliza el algoritmo. Sino pase al paso

Paso 2.

Sea k el nmero natural entre

pase al paso siguiente

Paso 3.

Si es cuadrado perfecto tome y finaliza el algoritmo. Si no, pase al paso siguiente.

Paso 4. Incremente en una unidad y pase al paso anterior.

Ejemplo 5. Determine la factorizacin prima de

Solucin.

En este caso se tiene que nmero que cumpla:

por lo tanto se debe buscar un se un cuadrado perfecto. Por lo tanto se a partir de hasta obtener que

procede de manera inductiva sobre sea un cuadrado perfecto:

Por lo tanto factorizado por Como de y

y se obtiene que el nmero

puede ser

son primos, entonces dicha factorizacin es la factorizacin prima

Ahora bien, este mtodo se puede mejorar si se halla una frmula recursiva para efecto, note que

En

Dicha frmula facilita el clculo de El siguiente ejemplo muestra que a pesar de que el Mtodo de Fermat requiere menos tiempo que los anteriores, no es tan rpido.

Ejemplo 6. Determine la factorizacin prima de

Solucin. Note que este nmero es divisible entre Sea lo tanto, se obtiene que por lo tanto nos interesa factorizar se tiene que Por

As, tanto

por lo

Ahora, factoricemos

note que

Por otro lado, utilicemos el mtodo de Fermat para factorizar . Se sigue que

donde

As,

se

obtiene

que

entonces

Por

se concluye que

Mtodo de Factorizacin de Euler

Suponga que el nmero impar a factorizar puede ser representado en dos formas distintas, como la suma de dos cuadrados perfectos:

con Como es impar, entonces solo puede ser expresado como la suma de un impar y un par, por lo tanto, supongamos sin perdida de generalidad que y son nmeros impares, en tanto, y esto, note que tanto, son pares, y adems mientras por lo tanto es de la forma Debido a por lo

es de la forma

es de la forma se tiene que y se sigue que

Por otro lado, de

Sea cumplen:

por lo tanto existen dos nmeros naturales y

que

Note que que

es par, pues

son pares. Sustituyendo

en

se obtiene

Como natural

entonces es divisor de que cumple

y entonces existe un nmero

Sustituyendo

en

se sigue

Debido a

se obtiene que

y como

son pares se concluye que es par. Dado que dada por y son nmeros pares, verifiquemos que una factorizacin de est

En efecto, expandiendo

se obtiene que

aplicando

se deduce que

es equivalente a

Lo anterior justifica el Mtodo de Euler que se enuncia en las siguientes lneas. En resumen, para poder factorizar un nmero impar debe cumplir: con el Mtodo de Euler, este

1. 2. 3.

Es de la forma . Se puede representar como la suma de dos cuadrados perfectos: , con impar y par. Posee otra representacin como la suma de dos cuadrados perfectos: , con impar y par.

As para un que cumple con las reglas anteriores, se puede factorizar siguiendo los siguientes pasos:

Paso 1. Calcular

Paso 2.

Hallar

Paso 3.

Determinar Paso 4.

La factorizacin de

esta dada por

Ejemplo 7. Determine la factorizacin prima de

Solucin. Dado que se tiene que

Por lo tanto,

El principal inconveniente de este mtodo es la determinacin de 2 representaciones del nmero a factorizar como la suma de dos cuadrados. Sin embargo, al igual que en el Mtodo de Fermat, se puede buscar por medio de una tabla, dos valores enteros de entre y para los cuales es un cuadrado perfecto se obtiene que

En caso de que existan dichos valores de , digamos y tiene 2 representaciones como la suma de dos cuadrados:

Adems, se puede establecer una frmula recursiva para Ejemplo 8. Determine la factorizacin prima de

Solucin.

En la siguiente tabla se aprecian los valores de

As, se tiene que

adems con estos valores se

obtiene: la factorizacin prima de 10001 es

Por lo tanto,

Ejemplo 9. Determine la factorizacin prima de

Solucin. Note que se sabe que la factorizacin prima de factorizar y por el ejercicio anterior por lo que solo resta y

para el cual se tiene los siguientes valores de

As, se obtiene que

Por lo tanto prima de

Se concluye que la factorizacin es

Con este ejemplo se finaliza esta presentacin, esperamos que esta sea de utilidad al lector.

Factorizacin

Para entender la operacin algebraica llamada factorizacin es preciso repasar los siguientes conceptos: Cualquier expresin que incluya la relacin de igualdad (=) se llama ecuacin. Una ecuacin se denomina identidad si la igualdad se cumple para cualquier valor de las variables; si la ecuacin se cumple para ciertos valores de las variables pero no para otros, la ecuacin es condicional. Un trmino es una expresin algebraica que slo contiene productos de constantes y variables; 2x, a, 3x son algunos ejemplos de trminos. La parte numrica de un trmino se denomina coeficiente. Los coeficientes de cada uno de los ejemplos anteriores son 2, 1, y 3. Una expresin que contiene un solo trmino se denomina monomio; si contiene dos trminos se llama binomio y si contiene tres trminos, es un trinomio. Un polinomio es una suma (o diferencia) finita de trminos. En este contexto, el grado es el mayor exponente de las variables en un polinomio. Por ejemplo, si el mayor exponente de la variable es 3, como en ax3 + bx2 + cx, el polinomio es de tercer grado. Una ecuacin lineal en una variable es una ecuacin polinmica de primer grado; es decir, una ecuacin de la forma ax + b = 0. Se les llama ecuaciones lineales porque representan la frmula de una lnea recta en la geometra analtica. Una ecuacin cuadrtica en una variable es una ecuacin polinmica de segundo grado, es decir, de la forma ax2 + bx + c = 0. Un nmero primo es un entero (nmero natural) que slo se puede dividir exactamente por s mismo y por 1. As, 2, 3, 5, 7, 11 y 13 son todos nmeros primos.

Las potencias de un nmero se obtienen mediante sucesivas multiplicaciones del nmero por s mismo. El trmino a elevado a la tercera potencia, por ejemplo, se puede expresar como aaa o a3 Los factores primos de un cierto nmero son aquellos factores en los que ste se puede descomponer de manera que el nmero se puede expresar slo como el producto de nmeros primos y sus potencias.

Descomposicin de nmeros naturales en sus factores primos


Por ejemplo, un nmero natural como 20 puede expresarse como un producto de nmeros de diferentes formas: 20 = 2 10 = 1 20 = 4 5 En cada uno de estos casos, los nmeros que forman el producto son los factores. Es decir, cuando expresamos el nmero 20 como el producto 2 10, a cada uno de los nmeros (2 y 10) se les denomina factor. En el caso de 1 20 los factores son 1 y 20 y finalmente en el caso de 4 5, los factores son 4 y 5. Cada uno de los nmeros 1, 2, 4, 5, 10, 20 se denominan a su vez divisores de 20. Otro ejemplo, los factores primos de 15 son 3 y 5. Del mismo modo, como 60 = 22 3 5, los factores primos de 60 son 2, 3 y 5. Debe recordarse, adems, que cuando un nmero es divisible nicamente por s mismo y por la unidad el nmero se denomina primo.

Factorizacin y productos notables


As como los nmeros naturales pueden ser expresados como producto de dos o ms nmeros, los polinomios pueden ser expresadas como el producto de dos o ms factores algebraicos. Cuando un polinomio no se puede factorizar se denomina irreducible. En los casos en que la expresin es irreducible, solo puede expresarse como el producto del nmero 1 por la expresin original. Al proceso de expresar un polinomio como un producto de factores se le denomina factorizacin. El proceso de factorizacin puede considerarse como inverso al proceso de multiplicar.

Factorizar, entonces, quiere decir identificar los factores comunes a todos los trminos y agruparlos. Los factores comunes son aquellos nmeros que aparecen multiplicando a todos los trminos de una expresin algebraica. Estos nmeros pueden estar dados explcitamente o representados por letras. As, factorizar un polinomio es descomponerlo en dos o ms polinomios llamados factores, de tal modo que al multiplicarlos entre s se obtenga el polinomio original. En otras palabras, dada una expresin algebraica complicada, resulta til, por lo general, el descomponerla en un producto de varios trminos ms sencillos. Por ejemplo, 2x3 + 8x2y se puede factorizar, o reescribir, como 2x2(x + 4y). Algunos ejemplos: De la expresin ab2 + 3cb b3 podemos factorizar b

y obtenemos la expresin: b(ab + 3c b2) (1) Veamos paso a paso cmo se obtuvo la expresin:

ahora podramos reacomodar la expresin que queda dentro del parntesis:

Finalmente si sustituimos este ltimo resultado en (1), obtenemos: ab2 + 3cb b3 = b (b (a b) + 3c) ab2 + 3cb b3 = b (ab b2 + 3c) ab2 + 3cb b3 = b (ab +3c b2) Por otro lado, algunos productos sencillos que tienen una estructura determinada y que pueden ser evaluados de forma directa se denominan Productos notables. En general los casos de factorizacin corresponden a los casos de productos notables. Antes de mostrar ejercicios de aplicacin de factorizacin y productos notables, es necesario recordar la forma de hallar el mximo comn divisor (mcd) de un conjunto de nmeros dados. Ejemplo: Determinar el mximo comn divisor (mcd) de los nmeros 56, 42 y 28. El mximo comn divisor de un conjunto de nmeros dados corresponde al mayor nmero natural que los divide simultneamente, con residuo cero. Para hallar el mcd de un conjunto determinado de nmeros, estos se dividen simultneamente por los diferentes nmeros primos (tomados en orden ascendente, y desechando los nmeros primos por los cuales no se pueda hacer la divisin con residuo cero de todos los nmeros de la fila) segn el arreglo mostrado a continuacin. El proceso termina, cuando los nmeros que aparecen en la fila inmediatamente inferior a la ltima divisin simultnea, no pueden dividirse simultneamente por algn nmero primo. El mcd buscado es el producto de los nmeros primos que aparecen a la derecha:

56 28 4

42 21 3

28 14 2

2 7

Los nmeros originales (56, 42, 28) se escriben desde la izquierda hacia la derecha. A la derecha de ellos se escribe el 2 (primer nmero primo de la lista) y se divide cada uno de estos nmeros por 2, escribiendo el resultado obtenido en la misma columna del nmero original. La segunda fila muestra estos resultados. Como los nmeros 28, 21 y 14 no pueden dividirse simultneamente por 3, este nmero primo se desecha. De forma similar se desecha el 5. El siguiente nmero primo en la lista es 7. En este caso se puede hacer la divisin simultneamente obtenindose los nmeros 4, 3 y 2. Esta ltima fila no puede dividirse simultneamente ni por 2 ni por 3. Como el siguiente nmero primo (5) es mayor que 4, el proceso termina. Por lo tanto, el mcd de los nmeros 56, 42 y 28 es el producto de los nmeros primos de la derecha: 2 7 = 14 Lo anterior se expresa como: mcd (56, 42, 28) = 14 (el mximo comn divisor de los nmeros 56, 42 y 28 es igual a 14) Ejemplo: Factorizar 9x + 6y - 12z Este es un ejemplo sencillo de la factorizacin por factor comn. Dada una expresin algebraica se encuentra el mximo comn divisor (mcd) de los coeficientes de los trminos de la expresin algebraica. Este mcd corresponde al coeficiente del factor comn. Para la parte literal se toman las variables comunes a todos los trminos con el menor exponente que aparezca.

Para este ejercicio el mcd de 9, 6 y 12 es 3; adems como no hay variables comunes en los tres trminos tenemos: 9x + 6y 12z = 3(3x + 2y 4z) es decir 9x + 6y 12z se ha expresado como el producto de los factores 3 y 3x + 2y 4z. Ejemplo: Factorizar 9xy2 + 6y4 12 y3z En este caso adems del factor comn 3 (mcd de 9, 6, 12) la variable y es comn a los tres trminos. La menor potencia comn es y2 por lo tanto la factorizacin queda: 9xy2 + 6y4 12y3z = 3y2(3x + 2y2 4yz) Los factores en este caso son 3x + 2y2 4yz y 3y2. Para verificar, al realizar el producto indicado se obtiene la expresin original: 3y2(3x + 2y2 4yz) = (3y2 * 3x) + (3y2 * 2y2) (3y2 * 4yz) = 9xy2 + 6y4 12y3z Ntese que se ha aplicado la propiedad distributiva del producto. En general no es necesario hacer la verificacin de la factorizacin, pero es conveniente cuando existan dudas sobre el resultado obtenido: