articulo1-140612024026-phpapp01

6
Quadratic Sieve: Concepto, ALgoritmo y Ejemplos Daniel Cam Urquizo [email protected] Ingenier´ ıa informatica Algebra universal para C.C Universidad Nacional de Trujillo 12 de junio de 2014 1. Introducci´ on Estos algoritmos tienden a no ser tan eficiente cuando se trata de factorizar un umero general de que es un producto de dos n´ umeros primos , cada uno de los cua- les son aproximadamente del mismo tama˜ no , sin embargo , existen algoritmos que Factor n´ umero como estos en aproximadamente la misma cantidad de tiempo como estos son factores cualquier n´ umero del mismo tama˜ no . Tales algoritmos de facto- rizaci´ on se llaman de prop´ osito general, ya que, la velocidad no depende del tama˜ no de los factores primos, el n´ umero de factores primos, o la forma del n´ umero. En la pr´ actica, los mejores algoritmos de factorizaci´on de prop´osito general conocidos son la criba cuadr´atica y el tamiz campo de n´ umero. Versi´ on tamiz de segundo grado se han utilizado para definir todos los registros generales de factorizaci´on entre 1981 y 1994, la m´ as grande fue la factorizaci´on del n´ umero 129 d´ ıgitos conocen como RSA -129 El campo de n´ umero de asint´ oticamente m´ as r´ apido es relativamente nuevo en comparaci´ on con el tamiz cuadr´atica, y no se cree que es pr´ actico en primero. No fue sino hasta despu´ es de RSA -129 que los nfs convirtieron en lo suficientemente desarrollados como para factorizar n´ umeros enteros grandes algunos de manera efi- ciente. Uno de los ingredientes necesarios para el ´ exitode nfs fuela implementaci´on de algunas rutinas de ´algebra lineal muy r´ apidos. En 1994, se utiliz´ o nfs para fac- torizar un n´ umero de 130 d´ ıgitos conocido como RSA- 130, rompiendo el r´ ecord qs en un d´ ıgito . Los investigadores que realizaron este tamizado calim para RSA -130 se podr´ ıan haber hecho en menos de 15 % del tiempo de permanencia en el tiempo empleado en el n´ umero 129 d´ ıgitos. El m´ etodo descrito mediante el algoritmo de Quadratic sieve creado por Carl Pomerance en 1981, hizo posible por primera vez factorizar n´ umeros de m´as cien d´ ıgitos. Tuvo gran suceso cuando factorizo un entero de 129 d´ ıgitos, conocido como RSA-129 cuya factorizaci´on fue considerado como un descubrimiento por los creadores del RSA. 2. Definici´ on Es un algoritmo de factorizaci´on de enteros y, en la pr´actica, el segundo m´ etodo as r´apido conocido (despu´ es de Number field Sieve). Es todav´ ıa el m´ asr´apido para enteros que tienen 100 o menos d´ ıgitos decimales, y es considerado mucho m´as sencillo que la NFS. Es un algoritmo de factorizaci´on de prop´ osito general, lo que 1

Upload: noelia-lucia-ayala-dionicio

Post on 15-Sep-2015

219 views

Category:

Documents


1 download

DESCRIPTION

QUADRATIC SIEVE

TRANSCRIPT

  • Quadratic Sieve: Concepto, ALgoritmo y Ejemplos

    Daniel Cam [email protected]

    Ingeniera informatica

    Algebra universal para C.C

    Universidad Nacional de Trujillo

    12 de junio de 2014

    1. Introduccion

    Estos algoritmos tienden a no ser tan eficiente cuando se trata de factorizar unnumero general de que es un producto de dos numeros primos , cada uno de los cua-les son aproximadamente del mismo tamano , sin embargo , existen algoritmos queFactor numero como estos en aproximadamente la misma cantidad de tiempo comoestos son factores cualquier numero del mismo tamano . Tales algoritmos de facto-rizacion se llaman de proposito general, ya que, la velocidad no depende del tamanode los factores primos, el numero de factores primos, o la forma del numero. En lapractica, los mejores algoritmos de factorizacion de proposito general conocidos sonla criba cuadratica y el tamiz campo de numero. Version tamiz de segundo grado sehan utilizado para definir todos los registros generales de factorizacion entre 1981 y1994, la mas grande fue la factorizacion del numero 129 dgitos conocen como RSA-129 El campo de numero de asintoticamente mas rapido es relativamente nuevo encomparacion con el tamiz cuadratica, y no se cree que es practico en primero. Nofue sino hasta despues de RSA -129 que los nfs convirtieron en lo suficientementedesarrollados como para factorizar numeros enteros grandes algunos de manera efi-ciente. Uno de los ingredientes necesarios para el exito de nfs fue la implementacionde algunas rutinas de algebra lineal muy rapidos. En 1994, se utilizo nfs para fac-torizar un numero de 130 dgitos conocido como RSA- 130, rompiendo el record qsen un dgito . Los investigadores que realizaron este tamizado calim para RSA -130se podran haber hecho en menos de 15 % del tiempo de permanencia en el tiempoempleado en el numero 129 dgitos. El metodo descrito mediante el algoritmo deQuadratic sieve creado por Carl Pomerance en 1981, hizo posible por primera vezfactorizar numeros de mas cien dgitos. Tuvo gran suceso cuando factorizo un enterode 129 dgitos, conocido como RSA-129 cuya factorizacion fue considerado como undescubrimiento por los creadores del RSA.

    2. Definicion

    Es un algoritmo de factorizacion de enteros y, en la practica, el segundo metodomas rapido conocido (despues de Number field Sieve). Es todava el mas rapidopara enteros que tienen 100 o menos dgitos decimales, y es considerado mucho massencillo que la NFS. Es un algoritmo de factorizacion de proposito general, lo que

    1

  • significa que su tiempo de ejecucion unicamente depende el tamano del entero a serfactorizado, y no sobre una estructura especial o propiedades.

    2.1. Teorema: Principio Basico.

    Si n es un numero factorizado, el quadratic sieve intenta encontrar dos numerosxey tal que x 6 y (mod n) y x2 (mod n). Esto debera implicar que(xy)(x+y) 0modn, y nosotros calculamos (x y, n) usando el algoritmo de Euclides para versi es una division no trivial. Hay por lo menos un 1

    2de posibilidad de que el factor

    sea no trivial. Nuestro primer paso para hacerlo es definir:

    Q(x) = (x+ |n|)2n = x2 n.

    cY calcular Q(x1), Q(x2), . . . Q(xk). Determinando el xi, sera explicado asi: de lasevaluaciones deQ(x), queremos recoger un subconjunto queQ(xi1), Q(xi2), . . . Q(xir)es un cuadrado, y2. Entonces notamos que para todo x,Q(x) x2 (mod n). as quelo que tenemos es:

    Q(xi1)Q(xi2)...Q(xir) (xi1xi2...xir)2 (mod n)Y si las condiciones anteriores de retencion, entonces tienen factores de n.

    Demostracion. Sea d = mcd(x y, n), implica que d es un divisor de n entonces1 d , si d = n entonces n|(xy) entonces x y (mod n), donde es contrario conla hipotesis. Si d = 1 entonces n no divide a xy. pero n divide x2y2 = (xy)(x+y)por hipotesis, entonces n debe por lo tanto dividir el segundo factor x + y, por ellema de Euclides. En otras palabras x y (mod n), que es otra vez contrario a lahipotesis. Esta demostracion que 1 < d < n, asi d es un factor no-trivial de n, estoes lo que necesitamos para demostrar.

    3. Proposito

    La criba cuadratica se utiliza actualmente como un algoritmo eficiente para facto-rizar enteros compuestos. La idea es encontrar varias relaciones de la forma: (Xi)

    2 =un producto de pequenos numeros primos (mod n)

    Si usted consigue bastantes relaciones de esa forma, a continuacion, algunos deellos se pueden combinar para dar una congruencia x2 y2 (mod n)

    4. Algoritmo General

    Entrada : Un numero entero compuesto n que no sea una potencia prima.Salida : Factor no trivial d.Seleccionar el factor base p1, p2, ...pt donde pi = 1, pj, j 2 es el j 1 esimoprimo p, para el cual n es un residuo cuadrativo modulo p;Hallar m = |n|;i 1:while i t+ 1 do

    Hallar b = q(x) = (x+m)2 n; // x = 0,1,2, ...Testar cuando b es pt suave. Si no lo es, escoger nuevo x e ir al paso anterior;if b =

    tj=1 p

    eijj then

    ai (x+m);

    2

  • i x q(x) factorizacion q (x) ai vi1 0 -312 {{-1,1},{2,3},{3,1},{13,1}} 157 }1,1,1,0,1,0}2 1 3 {{3,1}} 158 }0,0,1,0,0,0}3 -1 -625 {{-1,1},{5,4}} 156 {1,0,0,0,0,0}4 2 320 {{2,6},{5,1}} 159 {0,0,0,1,0,0}5 -2 -936 {{-1,1},{2,3},{3,2},{13,1}} 155 {1,1,0,0,1,0}6 4 960 {{2,6},{3,1},{5,1}} 161 {0,0,1,1,0,0}7 -6 -2100 {{-1,1},{2,4},{3,3},{5,1}} 151 {1,0,1,1,0,0}

    Cuadro 1: Matriz de bucle

    bi b;vi (vi1 , vi2 , ..., vit) donde vij = eij (mod 2), 1 j t ;

    end ifi i+ 1

    end whileEn Z2 hallar 6= T 1,2,3,...,t+1 tal que

    iT vi=0;

    Hallar x=

    iT ai (mod n);for j, 1 j t dolj =

    iT eij2

    ;

    end fory=t

    j=1 pljj (mod n);

    if x y (mod n) thenEn Z2 hallar 6= T 1, 2, 3, ..., t+ 1 tal que

    iT vi=0;

    Ir a computar otro x;end ifd=mcd(x-y,n);retornar d

    5. Algoritmo Paso a Paso

    Algoritmo: Metodo Quadratic sieve se explicara con un ejemplo1. Algoritmo de factorizacion de quadratic sieve para el numero 24961Estableciendo la base de factores con la que se va a trabajar y se obtiene al

    aplicar el simbolo Jacobi, cuya posible respuesta es 1 y -1, a cada uno con n a partirde -1 s=p1, p2, ..., pt={-1,2,3,5,13,23} El tamano de s es t=6 Hallando m, dondem=

    24961=157Luego hallando el cuadro 1 segun se muestra

    Siguiendo los pasos dentro del primer bucle para cada i hallamos un q(x), dondex comenzara a usar el positivo como negativo de sus valores que comenzara en 0 eira aumentando, como tambien tomar valores entre un m X (donde X puede serun rango de 20 o mas dependiendo, lo cual veremos mas adelante), cada vez que secumpla que b es un primo-suave asignara valores a ai y bi y tambien la matriz vi conlos valores del exponente para cada Pj en modulo 2. El algoritmo requiere identificaraquellas filas que resultan combinacion lineal de otras en la matriz formada por losvi obtenidos de los exponentes de los primos en la base de factorial s.

    3

  • A =

    1 1 1 0 1 00 0 1 0 0 01 0 0 0 0 00 0 1 0 0 01 1 1 0 1 00 0 1 1 0 01 0 1 1 0 0

    Las filas de la matriz A (donde sus elementos estan en mod 2) que cumplen

    eT vij = 0{1, 2, 5}, {2, 4, 6}, {3, 6, 7}, {1, 4, 5, 6}, {2, 3, 4, 7}, {1, 3, 4, 5, 7}, {1, 2, 3, 5,

    6, 7} Es decir si yo multiplico cada uno de las de las filas como combinacion linealtendre 0, estas son las que cumplen.

    Se comienza a estudiar cada uno de estos grupos de filas, As, T {1, 2, ...,t+1}Sea T = {1, 2, 5}

    x =

    iT ai (mod n) = 3844930Para cada j, 1 j t, se calcula lj= (

    eyit)

    2

    l( 1 )=1l(2)=3l(3)=2l(4)=0l(5)=1l(6)=0

    Sea y =t

    j=1 ptjj (mod n) = 24025

    Se debe comprobar si x y (mod n). Si es asi se debe comprobar otro subcon-junto de T.Se cumple que 936 24025Se debe probar por tanto con el siguiente T.Sea T = {2,4,6} x =aiiT (mod n) = 4044642Para cada j,1 j t, se calcula lj= (

    eyit)

    2.Asi se tiene los siguientes valores:l(1)=0l(2)=6l(3)=1l(4)=1l(5)=0l(6)=0

    Sea y =t

    j=1 ptjj (mod n) = 960

    Se debe comprobar si x y (mod n). Si es asi se debe comprobar otro subcon-junto de T.

    Se cumple que 960 960Se debe probar con el siguiente TSea T ={3,6,7} x =aiiT (mod n) = 3792516Para cada j,1 j t, se calcula lj= (

    eyit)

    2.Asi se tiene los siguientes valores:

    l(1)=1

    4

  • i xi q(x) 2 3 5 7 13 vi1 4122 147875 0 0 3 1 2 }0,0,1,1,0}2 4150 454272 7 1 0 1 2 }1,1,0,1,0}3 4187 687960 3 3 1 2 1 {1,1,1,0,1}4 4241 1143072 5 6 0 2 0 {1,0,0,0,0}5 4407 3380000 5 0 4 0 2 {1,0,0,0,0}

    Cuadro 2: Matriz de bucle

    l(2)=5l(3)=2l(4)=3l(5)=0l(6)=0

    Sea y =t

    j=1 ptjj (mod n) = 13922

    Se debe comprobar si x y (mod n). Si es asi se debe comprobar otro subconjuntode T.Se cumple que 23405 6 13922. Se ha llegado a la solucion final Dos factores notriviales 24961 son 109 x 229

    6. Prueba con numero de 6 dgitos

    El numero con el que vamos a trabajar es n=16843009.El numero entero mas proximo de su raz es 4104. Si tomamos la base del factor deS como {2, 3, 5, 7, 13} obtenidos por la evaluacion de el smbolo Jacobi donde seaceptan cuyo valor sea 1 al realizar Jacobi(n, i), donde i es un numero primo que iraaumentando hasta un cierto valor, los primeros posibles valores de x se daran comoun rango entre 4104+310 como factores de y = f(x) :

    x=4105, y = 24.3.167; x=4106,y = 33.601 x=4017,y = 23.5.13.47,sin embargo en x= 4122 y y=147875 =53,7,132y apartir de all se encuentran losprimeros 5 Primos suaves de yi = f(xi) = x

    2i n, pues sus factores que se des-

    componen estan dentro de la base de factores, estos se incluyen, caso contrario no,obteniendose el cuadro 2:

    Lo que tenemos que hacer ahora es buscar las combinaciones de filas en el ulti-mo conjunto de columnas (los exponentes vi (mod 2)) que suman cero. Al hacerlohemos garantizado una combinacion de valores que dan incluso exponentes y por lotanto un cuadrado perfecto para y. por lo tanto una combinacion sumando a cero.Esta combinacion producira un conjunto de bases de factores a una potencia par ylos valores de x correspondientes se multiplican. Un metodo para obtener el vectorque multiplica las columnas es aumentar una matriz identidad y luego hacer unareduccion escalonada, de tal manera que aquellas filas que tengan 0s hasta el tamanode la matriz original, se toman la siguiente posicion hasta el final convirtiendose enuno de los posibles valores para resolver la combinacion lineal. En nuestro ejemplo,esto resulta ser facil: Podemos ver que las filas 4 y 5 son identicos en los exponentes(mod 2) de la matriz y por lo que la adicion es el vector cero (mod 2). Obteniendo:x = x4.x5= 4241.4497 = 19071777 y = y4y5=1143072.3380000= (25,33,52,71,131)2Podemos ver que x2 16054517 y (mod n). Estableciendo z = 25,33,52,71,131,donde nosotros calculamos d=mcd(x-z,n) donde d = 257 que es factor de n.Si tomamos ahora a S=2,3,5,7,13,17 entonces tenemos dos relaciones para los valores

    5

  • pequenos de j como x=4129, y=205632= 26,33,7,17y x=4133,y=248680=23,33,5,13,17

    multiplicando tenemos en mod 2 el vector (1,0,1,1,1,0). Cuando esto se agregaa la segunda, tercera y cuarta filas de la matriz anterior se tiene el vector cero(mod 2) y por lo que tomar: x= 4129.4133.4159.4187.4241 = 1260289859516184521,z = 212,38,5,73,132,17, donde y = z2. Nosotros vemos que x2 y = z2 mod n, ahoramcd(x-z,n)=65537, que es otro factor de n

    6