mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Factoring (https://www.mersenneforum.org/forumdisplay.php?f=19)
-   -   Difficulty of SNFS polynomials (https://www.mersenneforum.org/showthread.php?t=25968)

 StrongestStrike 2020-09-16 02:01

Difficulty of SNFS polynomials

I have recently come across SNFS factorization, and I have yet to find an answer to the following questions: How is the SNFS difficulty calculated? Is there an equation for calculating it?

 VBCurtis 2020-09-16 03:16

It's generally the size of the input, or the size of the original composite that generates the polynomial (for example, you might have a 25 digit factor already, but doing SNFS on the original number is faster than doing GNFS on the cofactor, so the SNFS difficulty doesn't match the composite size).

Say I'm trying to factor 2^901 - 1. That can be written 2x^6 - 1, with x equal to 2^150. That nice poly is what SNFS would use- so even if a couple of factors are known and the cofactor is 200 digits, this SNFS job at ~270 digits would be easier than a GNFS of 200.

 frmky 2020-09-16 06:54

SNFS requires two polynomials, a degree-[TEX]d[/TEX] polynomial [TEX]f(x)[/TEX], and a linear polynomial, [TEX]g(x)=ax-b[/TEX], which share a common root modulo the number you are factoring. The difficulty is given by the size of [TEX]a^d f(b/a)[/TEX].

In the example above, [TEX]f(x)=2x^6-1[/TEX] and [TEX]g(x)=x-2^{150}[/TEX]. [TEX]d=6[/TEX], [TEX]a=1[/TEX], and [TEX]b=2^{150}[/TEX]. So the difficulty is given by the size of [TEX]a^d f(b/a)=1^6 f(2^{150}/1) = 2*2^{900}-1 = 2^{901}-1[/TEX], the number being factored. Difficulty is usually expressed as the common log of the number, [TEX]\log_{2}(2^{901}-1)\approx 901\ \log_{10}(2) = 271.2[/TEX].

 xilman 2020-09-16 07:41

[QUOTE=frmky;557110]SNFS requires two polynomials, a degree-[TEX]d[/TEX] polynomial [TEX]f(x)[/TEX], and a linear polynomial, [TEX]g(x)=ax-b[/TEX], which share a common root modulo the number you are factoring. The difficulty is given by the size of [TEX]a^d f(b/a)[/TEX].[/QUOTE]Strictly speaking it does not require that one of the polynomials be linear. Any two polynomials which share a common root mod N will work.

A linear polynomial is almost always used (but not exclusively) because of the difficulty of finding good polynomials when neither are linear.

 CRGreathouse 2020-09-16 14:34

[QUOTE=xilman;557113]Strictly speaking it does not require that one of the polynomials be linear. Any two polynomials which share a common root mod N will work.

A linear polynomial is almost always used (but not exclusively) because of the difficulty of finding good polynomials when neither are linear.[/QUOTE]

:goodposting:

 henryzz 2020-09-16 20:02

Are there any good examples of snfs with nonlinear polynomials? As far as I know only gnfs has been done with nonlinear.

 xilman 2020-09-16 22:40

[QUOTE=henryzz;557161]Are there any good examples of snfs with nonlinear polynomials? As far as I know only gnfs has been done with nonlinear.[/QUOTE]
Good question. I will try to try to find out.

Nonetheless, the general point remains true.

 All times are UTC. The time now is 03:06.