Re: Reimplementing the cubic sieve faster

Laël Cellier <[email protected]>
Newsgroups gmane.comp.mathematics.pari.user
Message-ID <[email protected]>
In my case, p is 255bits large safe prime and I need to solve multiple 
discrete logarithm with such kind of p hence why 
https://www.sciencedirect.com/science/article/pii/S0747717113001703 
would be relevant. Also in the formulas you gave, what’s the factor 
base ? What do you mean about finding non trivial factorisation since 
it’s about computing a discrete logarithm ? Is finding relations about 
computing many value of x+y*a ? How to select the values of a ? should 
it be purely done purely randomly based on size ?

When picking a triplet such a+b+c=0, do you mean picking mod p ?

Sorry for having problems to understand how cubic sieve works…

Le 02/06/2025 à 14:56, Bill Allombert a écrit :
> On Mon, Jun 02, 2025 at 11:44:12AM +0200, Laël Cellier wrote:
>> Bonjour,
>>
>> as you know, the cubic sieve already exist in Pari‑ɢᴘ, but as far I
>> understand, it lacks the improvement of
>> https://www.sciencedirect.com/science/article/pii/S0747717113001703 for
>> computing the initial cubic sieve congruence far more faster.
> The cubic sieve is implemented in PARI for F_p^n for small p and not for
> F_p for large p. In PARI case, there is no need to search for initial cubic
> sieve congruence.
>
>> A part of the
>> problem, is I fail to understand how to implement the main algorithm in any
>> language (which of course include pari/ɢᴘ).
>>
>> Would it be possible to get help for understanding how exactly to perform
>> the sieving and relation collection steps ? My use case would be on prime
>> fields…
> Start with  x^3 = y^2*z  mod p with x,y and z of size (p^(1/3))
>
> Add to you factor basis all the elements (x+y*a) for all very small 'a'.
>
> Now pick a triplet (a,b,c) such that a+b+c=0. It follows
>
> (x+a*y)*(x+b*y)*(x+c*y) = x^3   + (a*b+a*c+a*c)*y^2*x + a*b*c*y^3
> (x+a*y)*(x+b*y)*(x+c*y) = y^2*z + (a*b+a*c+a*c)*y^2*x + a*b*c*y^3 mod p
>                          = y^2*(z+ (a*b+a*c+a*c)*x + a*b*c*y) mod p
>
> Thus we get a non-trivial factorization of (x+a*y)*(x+b*y)*(x+c*y) over the factor basis
> as soon as we find a factorization of z+(a*b+a*c+a*c)*x+a*b*c*y over the factor basis.
>
> Since a,b,c are very small and x,y,z are of size p^(1/3)
> z+(a*b+a*c+a*c)*x+a*b*c*y is of size p^(1/3)
>
> The point is that a number of size p^(1/3) is much more likely to be smooth
> than a number of size p^(1/2) as used by the quadratic sieve.
>
> Cheers,
> Bill.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.