factorización de número enteros

Download Factorización de número enteros

Post on 08-Jul-2015

1.023 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

. 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 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 p