Estoy tratando de entender el algoritmo Quadratic Sieve para la factorización de enteros, sigo la descripción en el libro "Prime Numbers" de Crandall y Pomerance, específicamente el Algoritmo 6.1.1. (Aunque la pregunta de abajo se aplica a cualquier descripción de QS, por lo que puedo ver).
Por favor, tengo algunas preguntas muy básicas sobre el método:
-
en la fase de inicialización se encuentran las raíces cuadradas ( $a_i$ ) en el número que se factoriza ( $N$ ) módulo de algún primo ( $p_i$ ). Pero en la descripción no se vuelven a mencionar las raíces, ¿para qué sirven?
-
fase de tamizado, esto es posiblemente sólo yo no entender el texto completamente, que debería "tamizar para $B$ -valores suaves". Creo que se puede leer en la palabra "suave" que tengo que probar todos los primos hasta el límite, pero creo que lo que se quiere decir aquí es que sólo debo probar los primos que tienen símbolo de Legendre igual a uno, de la fase anterior. (He probado ambos y no había ninguna diferencia )
-
por qué tengo que tener $(K+1) \times K$ en el paso de álgebra lineal ( $K$ es el número de primos encontrados durante la inicialización)? Es decir, si tengo suerte podría acabar teniendo sólo tres vectores de exponentes que sumen cero vector así que asumo que es porque el algoritmo utiliza el método de álgebra lineal para encontrar el subconjunto correcto, ¿correcto?
-
en el último paso, ¿qué hacer si el GCD no revela un factor no trivial? ¿Calcular simplemente más vectores de exponentes para el paso de álgebra lineal? ¿Quitar algunos de los ya calculados?