Girish Mahajan (Editor)

Rational sieve

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In mathematics, the rational sieve is a general algorithm for factoring integers into prime factors. It is a special case of the general number field sieve. While it is less efficient than the general algorithm, it is conceptually simpler. It serves as a helpful first step in understanding how the general number field sieve works.

Contents

Method

Suppose we are trying to factor the composite number n. We choose a bound B, and identify the factor base (which we will call P), the set of all primes less than or equal to B. Next, we search for positive integers z such that both z and z+n are B-smooth — i.e. all of their prime factors are in P. We can therefore write, for suitable exponents a k ,

z = p i P p i a i

and likewise, for suitable b k , we have

z + n = p i P p i b i .

But z and z + n are congruent modulo n , and so each such integer z that we find yields a multiplicative relation (mod n) among the elements of P, i.e.

p i P p i a i p i P p i b i ( m o d n )

(where the ai and bi are nonnegative integers.)

When we have generated enough of these relations (it's generally sufficient that the number of relations be a few more than the size of P), we can use the methods of linear algebra to multiply together these various relations in such a way that the exponents of the primes are all even. This will give us a congruence of squares of the form a2≡b2 (mod n), which can be turned into a factorization of n, n = gcd(a-b,n)×gcd(a+b,n). This factorization might turn out to be trivial (i.e. n=n×1), in which case we have to try again with a different combination of relations; but with luck we will get a nontrivial pair of factors of n, and the algorithm will terminate.

Example

We will factor the integer n = 187 using the rational sieve. We'll arbitrarily try the value B=7, giving the factor base P = {2,3,5,7}. The first step is to test n for divisibility by each of the members of P; clearly if n is divisible by one of these primes, then we are finished already. However, 187 is not divisible by 2, 3, 5, or 7. Next, we search for suitable values of z; the first few are 2, 5, 9, and 56. The four suitable values of z give four multiplicative relations (mod 187):

  • 21305070 = 2 ≡ 189 = 20335071.............(1)
  • 20305170 = 5 ≡ 192 = 26315070.............(2)
  • 20325070 = 9 ≡ 196 = 22305072.............(3)
  • 23305071 = 56 ≡ 243 = 20355070.............(4)
  • There are now several essentially different ways to combine these and end up with even exponents. For example,

  • (1)×(4): After multiplying these and canceling out the common factor of 7 (which we can do since 7, being a member of P, has already been determined to be coprime with n), this reduces to 24 ≡ 38 (mod n), or 42 ≡ 812 (mod n). The resulting factorization is 187 = gcd(81-4,187) × gcd(81+4,187) = 11×17.
  • Alternatively, equation (3) is in the proper form already:

  • (3): This says 32 ≡ 142 (mod n), which gives the factorization 187 = gcd(14-3,187) × gcd(14+3,187) = 11×17.
  • Limitations of the algorithm

    The rational sieve, like the general number field sieve, cannot factor numbers of the form pm, where p is a prime and m is an integer. This is not a huge problem, though—such numbers are statistically rare, and moreover there is a simple and fast process to check whether a given number is of this form. Probably the most elegant method is to check whether n 1 / b b = n holds for any 1 < b < log(n) using an integer version of Newton's method for the root extraction.

    The biggest problem is finding a sufficient number of z such that both z and z+n are B-smooth. For any given B, the proportion of numbers that are B-smooth decreases rapidly with the size of the number. So if n is large (say, a hundred digits), it will be difficult or impossible to find enough z for the algorithm to work. The advantage of the general number field sieve is that one need only search for smooth numbers of order n1/d for some positive integer d (typically 3 or 5), rather than of order n as required here.

    References

    Rational sieve Wikipedia