SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
Quadratic Sieve: Concepto, ALgoritmo y Ejemplos
Daniel Cam Urquizo
dancourbano@gmail.com
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
n´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 ´exito de nfs fue la 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
m´as r´apido conocido (despu´es de Number field Sieve). Es todav´ıa el m´as r´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
significa que su tiempo de ejecuci´on ´unicamente depende el tama˜no del entero a ser
factorizado, y no sobre una estructura especial o propiedades.
2.1. Teorema: Principio B´asico.
Si n es un n´umero factorizado, el quadratic sieve intenta encontrar dos n´umeros
xey tal que x ≡ ±y (m´od n) y x2
(m´od n). Esto deber´ıa implicar que(x−y)(x+y) ≡
0modn, y nosotros calculamos (x − y, n) usando el algoritmo de Euclides para ver
si es una divisi´on no trivial. Hay por lo menos un 1
2
de posibilidad de que el factor
sea no trivial. Nuestro primer paso para hacerlo es definir:
Q(x) = (x + |
√
n|)2
–n = x2
− n.
cY calcular Q(x1), Q(x2), . . . Q(xk). Determinando el xi, ser´a explicado asi: de las
evaluaciones de Q(x), queremos recoger un subconjunto que Q(xi1), Q(xi2), . . . Q(xir)
es un cuadrado, y2
. Entonces notamos que para todo x, Q(x) ≡ x2
(m´od n). as´ı que
lo que tenemos es:
Q(xi1)Q(xi2)...Q(xir) ≡ (xi1xi2...xir)2
(m´od n)
Y si las condiciones anteriores de retenci´on, entonces tienen factores de n.
Demostraci´on. Sea d = mcd(x − y, n), implica que d es un divisor de n entonces
1 ≤ d ≤, si d = n entonces n|(x−y) entonces x ≡ y (m´od n), donde es contrario con
la hip´otesis. Si d = 1 entonces n no divide a x−y. pero n divide x2
–y2
= (x−y)(x+y)
por hip´otesis, entonces n debe por lo tanto dividir el segundo factor x + y, por el
lema de Euclides. En otras palabras x ≡ −y (m´od n), que es otra vez contrario a la
hip´otesis. Esta demostraci´on que 1 < d < n, asi d es un factor no-trivial de n, esto
es lo que necesitamos para demostrar.
3. Proposito
La criba cuadr´atica 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 peque˜nos n´umeros primos (m´od n)
Si usted consigue bastantes relaciones de esa forma, a continuaci´on, algunos de
ellos se pueden combinar para dar una congruencia x2
≡ y2
(m´od n)
4. Algoritmo General
Entrada : Un n´umero 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 ´esimo
primo 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 = t
j=1 p
eij
j then
ai ←(x+m);
2
i x q(x) factorizaci´on q (x) ai vi
1 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 (m´od 2), 1≤ j ≤ t ;
end if
i ← i + 1
end while
En Z2 hallar φ = T ⊆ 1,2,3,...,t+1 tal que i∈T vi=0;
Hallar x= i∈T ai (m´od n);
for j, 1 ≤ j ≤ t do
lj = i∈T eij
2
;
end for
y= t
j=1 p
lj
j (m´od n);
if x ≡ ±y (m´od n) then
En Z2 hallar φ = T ⊆ 1, 2, 3, ..., t + 1 tal que i∈T vi=0;
Ir a computar otro x;
end if
d=mcd(x-y,n);
retornar d
5. Algoritmo Paso a Paso
Algoritmo: M´etodo Quadratic sieve se explicar´a con un ejemplo
1. Algoritmo de factorizaci´on de quadratic sieve para el numero 24961
Estableciendo 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 partir
de -1 s=p1, p2, ..., pt={-1,2,3,5,13,23} El tama˜no de s es t=6 Hallando m, donde
m=
√
24961=157
Luego hallando el cuadro 1 segun se muestra
Siguiendo los pasos dentro del primer bucle para cada i hallamos un q(x), donde
x comenzar´a a usar el positivo como negativo de sus valores que comenzara en 0 e
ir´a aumentando, como tambi´en tomar valores entre un m ± X (donde X puede ser
un rango de 20 o m´as dependiendo, lo cual veremos mas adelante), cada vez que se
cumpla que b es un primo-suave asignar´a valores a ai y bi y tambien la matriz vi con
los valores del exponente para cada Pj en modulo 2. El algoritmo requiere identificar
aquellas filas que resultan combinaci´on lineal de otras en la matriz formada por los
vi obtenidos de los exponentes de los primos en la base de factorial s.
3
A =










1 1 1 0 1 0
0 0 1 0 0 0
1 0 0 0 0 0
0 0 1 0 0 0
1 1 1 0 1 0
0 0 1 1 0 0
1 0 1 1 0 0










Las filas de la matriz A (donde sus elementos est´an en mod 2) que cumplen
e∈T 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 lineal
tendr´e 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 = i∈T ai (m´od n) = 3844930
Para cada j, 1 ≤ j ≤ t, se calcula lj= (
ey
i∈t)2
l( 1 )=1
l(2)=3
l(3)=2
l(4)=0
l(5)=1
l(6)=0
Sea y = t
j=1 p
tj
j (m´od n) = 24025
Se debe comprobar si x ≡ ±y (m´od n). Si es asi se debe comprobar otro subcon-
junto de T.
Se cumple que 936≡ ± 24025
Se debe probar por tanto con el siguiente T.
Sea T ⊆= {2,4,6} x = ai
i∈T (m´od n) = 4044642
Para cada j,1≤ j ≤ t, se calcula lj= (
ey
i∈t)2
.
Asi se tiene los siguientes valores:
l(1)=0
l(2)=6
l(3)=1
l(4)=1
l(5)=0
l(6)=0
Sea y = t
j=1 p
tj
j (m´od n) = 960
Se debe comprobar si x ≡ ±y (m´od n). Si es asi se debe comprobar otro subcon-
junto de T.
Se cumple que 960 ≡ ± 960
Se debe probar con el siguiente T
Sea T ⊆={3,6,7} x = ai
i∈T (m´od n) = 3792516
Para cada j,1≤ j ≤ t, se calcula lj= (
ey
i∈t)2
.
Asi se tiene los siguientes valores:
l(1)=1
4
i xi q(x) 2 3 5 7 13 vi
1 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)=5
l(3)=2
l(4)=3
l(5)=0
l(6)=0
Sea y = t
j=1 p
tj
j (m´od n) = 13922
Se debe comprobar si x ≡ ±y (m´od n). Si es asi se debe comprobar otro subconjunto
de T.
Se cumple que 23405 ≡ ± 13922. Se ha llegado a la soluci´on final Dos factores no
triviales 24961 son 109 x 229
6. Prueba con n´umero de 6 d´ıgitos
El n´umero con el que vamos a trabajar es n=16843009.
El n´umero entero m´as pr´oximo de su ra´ız es 4104. Si tomamos la base del factor de
S como {2, 3, 5, 7, 13} obtenidos por la evaluaci´on de el s´ımbolo Jacobi donde se
aceptan cuyo valor sea 1 al realizar Jacobi(n, i), donde i es un n´umero primo que ira
aumentando hasta un cierto valor, los primeros posibles valores de x se daran como
un 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,132
y apartir de all´ı se encuentran los
primeros 5 Primos suaves de yi = f(xi) = x2
i − n, pues sus factores que se des-
componen est´an 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 hacerlo
hemos garantizado una combinaci´on de valores que dan incluso exponentes y por lo
tanto un cuadrado perfecto para y. por lo tanto una combinaci´on sumando a cero.
Esta combinaci´on producir´a un conjunto de bases de factores a una potencia par y
los valores de x correspondientes se multiplican. Un m´etodo para obtener el vector
que multiplica las columnas es aumentar una matriz identidad y luego hacer una
reducci´on escalonada, de tal manera que aquellas filas que tengan 0´s hasta el tama˜no
de la matriz original, se toman la siguiente posicion hasta el final convirtiendose en
uno de los posibles valores para resolver la combinacion lineal. En nuestro ejemplo,
esto resulta ser f´acil: Podemos ver que las filas 4 y 5 son id´enticos en los exponentes
(mod 2) de la matriz y por lo que la adici´on es el vector cero (mod 2). Obteniendo:
x = x4.x5= 4241.4497 = 19071777 y = y4 −y5=1143072.3380000= (25
,33
,52
,71
,131)2
Podemos ver que x2
≡ 16054517 ≡ y (m´od 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
peque˜nos 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 agrega
a 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, ahora
mcd(x-z,n)=65537, que es otro factor de n
6

Mais conteúdo relacionado

Mais procurados

Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
Vitoto96
 
Método de gauss seidel
Método de gauss seidelMétodo de gauss seidel
Método de gauss seidel
mariacadena
 
3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi
Roger Burgos
 
Metodos jacobi y gauss seidel
Metodos jacobi y gauss seidelMetodos jacobi y gauss seidel
Metodos jacobi y gauss seidel
Cesar Mendoza
 
Optimización sin restricciones
Optimización sin restriccionesOptimización sin restricciones
Optimización sin restricciones
Diego Gomez
 
3.metodo directo
3.metodo directo3.metodo directo
3.metodo directo
rjvillon
 
Cap9 interpolextrapolnumer-ajustedatos3
Cap9 interpolextrapolnumer-ajustedatos3Cap9 interpolextrapolnumer-ajustedatos3
Cap9 interpolextrapolnumer-ajustedatos3
JAHADIEL
 
Reconocimiento unidad 2
Reconocimiento unidad 2Reconocimiento unidad 2
Reconocimiento unidad 2
Diego Perdomo
 

Mais procurados (19)

Gauss con pivoteo
Gauss con pivoteoGauss con pivoteo
Gauss con pivoteo
 
Resumen de la unidad iii (analisis numerico) Mirian Rodriguez
Resumen de la unidad iii (analisis numerico) Mirian RodriguezResumen de la unidad iii (analisis numerico) Mirian Rodriguez
Resumen de la unidad iii (analisis numerico) Mirian Rodriguez
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
 
Aplicaciones de la derivada
Aplicaciones de la derivadaAplicaciones de la derivada
Aplicaciones de la derivada
 
Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinarias
 
Método de gauss seidel
Método de gauss seidelMétodo de gauss seidel
Método de gauss seidel
 
Ode45
Ode45Ode45
Ode45
 
3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi
 
9.metododegauss
9.metododegauss9.metododegauss
9.metododegauss
 
Metodos jacobi y gauss seidel
Metodos jacobi y gauss seidelMetodos jacobi y gauss seidel
Metodos jacobi y gauss seidel
 
Optimización sin restricciones
Optimización sin restriccionesOptimización sin restricciones
Optimización sin restricciones
 
Métodos iterativos
Métodos  iterativosMétodos  iterativos
Métodos iterativos
 
3.metodo directo
3.metodo directo3.metodo directo
3.metodo directo
 
Cap9 interpolextrapolnumer-ajustedatos3
Cap9 interpolextrapolnumer-ajustedatos3Cap9 interpolextrapolnumer-ajustedatos3
Cap9 interpolextrapolnumer-ajustedatos3
 
Reconocimiento unidad 2
Reconocimiento unidad 2Reconocimiento unidad 2
Reconocimiento unidad 2
 
Método de jacobi
Método de jacobiMétodo de jacobi
Método de jacobi
 
Método de jacobi Metodos Numericos
Método de jacobi Metodos NumericosMétodo de jacobi Metodos Numericos
Método de jacobi Metodos Numericos
 
Trabajo Range-Kutta
Trabajo Range-KuttaTrabajo Range-Kutta
Trabajo Range-Kutta
 
Metodo Jacobiano
Metodo JacobianoMetodo Jacobiano
Metodo Jacobiano
 

Semelhante a Quadratic Sieve, algoritmos y ejemplos

Método de Newton
Método de NewtonMétodo de Newton
Método de Newton
Kike Prieto
 
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacion
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacionApuntes metodos-numericos-aproximacion-funcional-e-interpolacion
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacion
miguelcasa
 

Semelhante a Quadratic Sieve, algoritmos y ejemplos (20)

E book itzayana nava montiel
E book itzayana nava montielE book itzayana nava montiel
E book itzayana nava montiel
 
Cadenas de markov
Cadenas de markovCadenas de markov
Cadenas de markov
 
E book itzayana nava montiel
E book itzayana nava montielE book itzayana nava montiel
E book itzayana nava montiel
 
Oviedo mco nolineales
Oviedo mco nolinealesOviedo mco nolineales
Oviedo mco nolineales
 
METODO ELIMINACION GAUSSIANA UNIDAD III
METODO ELIMINACION GAUSSIANA UNIDAD IIIMETODO ELIMINACION GAUSSIANA UNIDAD III
METODO ELIMINACION GAUSSIANA UNIDAD III
 
Pagr0
Pagr0Pagr0
Pagr0
 
Sistema de Ecuaciones 2x2
Sistema de Ecuaciones 2x2Sistema de Ecuaciones 2x2
Sistema de Ecuaciones 2x2
 
Alea 0506 resumen-----simulacion
Alea 0506 resumen-----simulacionAlea 0506 resumen-----simulacion
Alea 0506 resumen-----simulacion
 
Sucesiones Progresiones
Sucesiones ProgresionesSucesiones Progresiones
Sucesiones Progresiones
 
Método de Newton
Método de NewtonMétodo de Newton
Método de Newton
 
Ebook
EbookEbook
Ebook
 
Matrices
MatricesMatrices
Matrices
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Binomial Negativa.pdf
Binomial Negativa.pdfBinomial Negativa.pdf
Binomial Negativa.pdf
 
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacion
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacionApuntes metodos-numericos-aproximacion-funcional-e-interpolacion
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacion
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
NÚMEROS REALES II
NÚMEROS REALES IINÚMEROS REALES II
NÚMEROS REALES II
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no lineales
 
Coaquira l metodos numericos_t2
Coaquira l metodos numericos_t2Coaquira l metodos numericos_t2
Coaquira l metodos numericos_t2
 
Ay t mod9-10
Ay t mod9-10Ay t mod9-10
Ay t mod9-10
 

Mais de Daniel Cam Urquizo

Clasificacion de sistemas de informacion
Clasificacion de sistemas de informacionClasificacion de sistemas de informacion
Clasificacion de sistemas de informacion
Daniel Cam Urquizo
 
Aplicacion de descriptores de sonido
Aplicacion de descriptores de sonidoAplicacion de descriptores de sonido
Aplicacion de descriptores de sonido
Daniel Cam Urquizo
 
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Daniel Cam Urquizo
 
Identificacion de voz usando wavelets
Identificacion de voz usando waveletsIdentificacion de voz usando wavelets
Identificacion de voz usando wavelets
Daniel Cam Urquizo
 

Mais de Daniel Cam Urquizo (13)

OOSE
OOSEOOSE
OOSE
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 
Patrones de Diseño y Frameworks
Patrones de Diseño y FrameworksPatrones de Diseño y Frameworks
Patrones de Diseño y Frameworks
 
8 reinas
8 reinas8 reinas
8 reinas
 
Tecnicas de busqueda por similitud de patrones
Tecnicas de busqueda por similitud de patronesTecnicas de busqueda por similitud de patrones
Tecnicas de busqueda por similitud de patrones
 
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
Dispositivos que se usan para detectar el olor y el sabor y su aplicacion en ...
 
Sonido en el hombre
Sonido en el hombreSonido en el hombre
Sonido en el hombre
 
Clasificacion de sistemas de informacion
Clasificacion de sistemas de informacionClasificacion de sistemas de informacion
Clasificacion de sistemas de informacion
 
Base de datos multimedia
Base de datos multimediaBase de datos multimedia
Base de datos multimedia
 
Aplicacion de descriptores de sonido
Aplicacion de descriptores de sonidoAplicacion de descriptores de sonido
Aplicacion de descriptores de sonido
 
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
Aplicación grafica para aprendizaje multimedia sobre representación de patolo...
 
Identificacion de voz usando wavelets
Identificacion de voz usando waveletsIdentificacion de voz usando wavelets
Identificacion de voz usando wavelets
 
proyeccion oblicua
proyeccion oblicuaproyeccion oblicua
proyeccion oblicua
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 

Último (20)

Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Sesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptxSesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptx
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docx
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 

Quadratic Sieve, algoritmos y ejemplos

  • 1. Quadratic Sieve: Concepto, ALgoritmo y Ejemplos Daniel Cam Urquizo dancourbano@gmail.com 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 n´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 ´exito de nfs fue la 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 m´as r´apido conocido (despu´es de Number field Sieve). Es todav´ıa el m´as r´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
  • 2. significa que su tiempo de ejecuci´on ´unicamente depende el tama˜no del entero a ser factorizado, y no sobre una estructura especial o propiedades. 2.1. Teorema: Principio B´asico. Si n es un n´umero factorizado, el quadratic sieve intenta encontrar dos n´umeros xey tal que x ≡ ±y (m´od n) y x2 (m´od n). Esto deber´ıa implicar que(x−y)(x+y) ≡ 0modn, y nosotros calculamos (x − y, n) usando el algoritmo de Euclides para ver si es una divisi´on no trivial. Hay por lo menos un 1 2 de posibilidad de que el factor sea no trivial. Nuestro primer paso para hacerlo es definir: Q(x) = (x + | √ n|)2 –n = x2 − n. cY calcular Q(x1), Q(x2), . . . Q(xk). Determinando el xi, ser´a explicado asi: de las evaluaciones de Q(x), queremos recoger un subconjunto que Q(xi1), Q(xi2), . . . Q(xir) es un cuadrado, y2 . Entonces notamos que para todo x, Q(x) ≡ x2 (m´od n). as´ı que lo que tenemos es: Q(xi1)Q(xi2)...Q(xir) ≡ (xi1xi2...xir)2 (m´od n) Y si las condiciones anteriores de retenci´on, entonces tienen factores de n. Demostraci´on. Sea d = mcd(x − y, n), implica que d es un divisor de n entonces 1 ≤ d ≤, si d = n entonces n|(x−y) entonces x ≡ y (m´od n), donde es contrario con la hip´otesis. Si d = 1 entonces n no divide a x−y. pero n divide x2 –y2 = (x−y)(x+y) por hip´otesis, entonces n debe por lo tanto dividir el segundo factor x + y, por el lema de Euclides. En otras palabras x ≡ −y (m´od n), que es otra vez contrario a la hip´otesis. Esta demostraci´on que 1 < d < n, asi d es un factor no-trivial de n, esto es lo que necesitamos para demostrar. 3. Proposito La criba cuadr´atica 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 peque˜nos n´umeros primos (m´od n) Si usted consigue bastantes relaciones de esa forma, a continuaci´on, algunos de ellos se pueden combinar para dar una congruencia x2 ≡ y2 (m´od n) 4. Algoritmo General Entrada : Un n´umero 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 ´esimo primo 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 = t j=1 p eij j then ai ←(x+m); 2
  • 3. i x q(x) factorizaci´on q (x) ai vi 1 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 (m´od 2), 1≤ j ≤ t ; end if i ← i + 1 end while En Z2 hallar φ = T ⊆ 1,2,3,...,t+1 tal que i∈T vi=0; Hallar x= i∈T ai (m´od n); for j, 1 ≤ j ≤ t do lj = i∈T eij 2 ; end for y= t j=1 p lj j (m´od n); if x ≡ ±y (m´od n) then En Z2 hallar φ = T ⊆ 1, 2, 3, ..., t + 1 tal que i∈T vi=0; Ir a computar otro x; end if d=mcd(x-y,n); retornar d 5. Algoritmo Paso a Paso Algoritmo: M´etodo Quadratic sieve se explicar´a con un ejemplo 1. Algoritmo de factorizaci´on de quadratic sieve para el numero 24961 Estableciendo 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 partir de -1 s=p1, p2, ..., pt={-1,2,3,5,13,23} El tama˜no de s es t=6 Hallando m, donde m= √ 24961=157 Luego hallando el cuadro 1 segun se muestra Siguiendo los pasos dentro del primer bucle para cada i hallamos un q(x), donde x comenzar´a a usar el positivo como negativo de sus valores que comenzara en 0 e ir´a aumentando, como tambi´en tomar valores entre un m ± X (donde X puede ser un rango de 20 o m´as dependiendo, lo cual veremos mas adelante), cada vez que se cumpla que b es un primo-suave asignar´a valores a ai y bi y tambien la matriz vi con los valores del exponente para cada Pj en modulo 2. El algoritmo requiere identificar aquellas filas que resultan combinaci´on lineal de otras en la matriz formada por los vi obtenidos de los exponentes de los primos en la base de factorial s. 3
  • 4. A =           1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0           Las filas de la matriz A (donde sus elementos est´an en mod 2) que cumplen e∈T 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 lineal tendr´e 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 = i∈T ai (m´od n) = 3844930 Para cada j, 1 ≤ j ≤ t, se calcula lj= ( ey i∈t)2 l( 1 )=1 l(2)=3 l(3)=2 l(4)=0 l(5)=1 l(6)=0 Sea y = t j=1 p tj j (m´od n) = 24025 Se debe comprobar si x ≡ ±y (m´od n). Si es asi se debe comprobar otro subcon- junto de T. Se cumple que 936≡ ± 24025 Se debe probar por tanto con el siguiente T. Sea T ⊆= {2,4,6} x = ai i∈T (m´od n) = 4044642 Para cada j,1≤ j ≤ t, se calcula lj= ( ey i∈t)2 . Asi se tiene los siguientes valores: l(1)=0 l(2)=6 l(3)=1 l(4)=1 l(5)=0 l(6)=0 Sea y = t j=1 p tj j (m´od n) = 960 Se debe comprobar si x ≡ ±y (m´od n). Si es asi se debe comprobar otro subcon- junto de T. Se cumple que 960 ≡ ± 960 Se debe probar con el siguiente T Sea T ⊆={3,6,7} x = ai i∈T (m´od n) = 3792516 Para cada j,1≤ j ≤ t, se calcula lj= ( ey i∈t)2 . Asi se tiene los siguientes valores: l(1)=1 4
  • 5. i xi q(x) 2 3 5 7 13 vi 1 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)=5 l(3)=2 l(4)=3 l(5)=0 l(6)=0 Sea y = t j=1 p tj j (m´od n) = 13922 Se debe comprobar si x ≡ ±y (m´od n). Si es asi se debe comprobar otro subconjunto de T. Se cumple que 23405 ≡ ± 13922. Se ha llegado a la soluci´on final Dos factores no triviales 24961 son 109 x 229 6. Prueba con n´umero de 6 d´ıgitos El n´umero con el que vamos a trabajar es n=16843009. El n´umero entero m´as pr´oximo de su ra´ız es 4104. Si tomamos la base del factor de S como {2, 3, 5, 7, 13} obtenidos por la evaluaci´on de el s´ımbolo Jacobi donde se aceptan cuyo valor sea 1 al realizar Jacobi(n, i), donde i es un n´umero primo que ira aumentando hasta un cierto valor, los primeros posibles valores de x se daran como un 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,132 y apartir de all´ı se encuentran los primeros 5 Primos suaves de yi = f(xi) = x2 i − n, pues sus factores que se des- componen est´an 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 hacerlo hemos garantizado una combinaci´on de valores que dan incluso exponentes y por lo tanto un cuadrado perfecto para y. por lo tanto una combinaci´on sumando a cero. Esta combinaci´on producir´a un conjunto de bases de factores a una potencia par y los valores de x correspondientes se multiplican. Un m´etodo para obtener el vector que multiplica las columnas es aumentar una matriz identidad y luego hacer una reducci´on escalonada, de tal manera que aquellas filas que tengan 0´s hasta el tama˜no de la matriz original, se toman la siguiente posicion hasta el final convirtiendose en uno de los posibles valores para resolver la combinacion lineal. En nuestro ejemplo, esto resulta ser f´acil: Podemos ver que las filas 4 y 5 son id´enticos en los exponentes (mod 2) de la matriz y por lo que la adici´on es el vector cero (mod 2). Obteniendo: x = x4.x5= 4241.4497 = 19071777 y = y4 −y5=1143072.3380000= (25 ,33 ,52 ,71 ,131)2 Podemos ver que x2 ≡ 16054517 ≡ y (m´od 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
  • 6. peque˜nos 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 agrega a 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, ahora mcd(x-z,n)=65537, que es otro factor de n 6