Positive energy theorem: Difference between revisions
en>Sodin removed Category:Theorems in mathematical physics using HotCat |
en>Anythingyouwant →References: insert link. |
||
Line 1: | Line 1: | ||
In [[mathematics]], the '''rational sieve''' is a general [[algorithm]] for [[integer factorization|factoring integers into prime factors]]. It is essentially a special case of the [[general number field sieve]], and while it is far less [[algorithmic efficiency|efficient]] than the general algorithm, it is conceptually far simpler. So while it is rather useless as a practical factoring algorithm, it is a helpful first step for those trying to understand how the general number field sieve works. | |||
== 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 number|smooth]] — i.e. all of their prime factors are in ''P''. We can therefore write, for suitable exponents <math>a_k</math>, | |||
<math>z=\prod_{p_i\in P} p_i^{a_i}</math> | |||
and likewise, for suitable <math>b_k</math>, we have | |||
<math>z+n=\prod_{p_i\in P} p_i^{b_i}</math>. | |||
But <math>z</math> and <math>z+n</math> are congruent modulo <math>n</math>, and so each such integer ''z'' that we find yields a multiplicative relation [[Modular arithmetic|(mod ''n'')]] among the elements of ''P'', i.e. | |||
:<math>\prod_{p_i\in P} p_i^{a_i} \equiv \prod_{p_i\in P} p_i^{b_i} \; \operatorname{(mod} \; n \operatorname{)}</math> | |||
(where the ''a<sub>i</sub>'' and ''b<sub>i</sub>'' 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 a<sup>2</sup>≡b<sup>2</sup> (mod ''n''), which can be turned into a factorization of ''n'', ''n'' = [[Greatest common divisor|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): | |||
*2<sup>1</sup>3<sup>0</sup>5<sup>0</sup>7<sup>0</sup> = 2 ≡ 189 = 2<sup>0</sup>3<sup>3</sup>5<sup>0</sup>7<sup>1</sup>.............(1) | |||
*2<sup>0</sup>3<sup>0</sup>5<sup>1</sup>7<sup>0</sup> = 5 ≡ 192 = 2<sup>6</sup>3<sup>1</sup>5<sup>0</sup>7<sup>0</sup>.............(2) | |||
*2<sup>0</sup>3<sup>2</sup>5<sup>0</sup>7<sup>0</sup> = 9 ≡ 196 = 2<sup>2</sup>3<sup>0</sup>5<sup>0</sup>7<sup>2</sup>.............(3) | |||
*2<sup>3</sup>3<sup>0</sup>5<sup>0</sup>7<sup>1</sup> = 56 ≡ 243 = 2<sup>0</sup>3<sup>5</sup>5<sup>0</sup>7<sup>0</sup>.............(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''<ref>Note that common factors cannot ''in general'' be canceled in a congruence, but they can ''in this case'', since the primes of the factor base are all required to be [[coprime]] to ''n'', as mentioned above. See [[modular multiplicative inverse]].</ref>), this reduces to 2<sup>4</sup> ≡ 3<sup>8</sup>, or 4<sup>2</sup> ≡ 81<sup>2</sup>. 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 3<sup>2</sup> ≡ 14<sup>2</sup> (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 ''p<sup>m</sup>'', 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 <math>\lfloor n^{ 1/b }\rfloor^b=n</math> holds for any 1 < b < log(n) using an integer version of [[Newton's method]] for the root extraction.<ref>R. Crandall and J. Papadopoulos, ''On the implementation of AKS-class primality tests,'' available at [http://www.apple.com/acg/pdf/aks3.pdf]</ref> | |||
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 ''n''<sup>1/''d''</sup> for some positive integer ''d'' (typically 3 or 5), rather than of order ''n'' as required here. | |||
== References == | |||
*A. K. Lenstra, H. W. Lenstra, Jr., M. S. Manasse, and J. M. Pollard, ''The Factorization of the Ninth Fermat Number,'' Math. Comp. '''61''' (1993), 319-349. A draft is available at [http://www.std.org/~msm/common/f9paper.ps www.std.org/~msm/common/f9paper.ps]. | |||
*A. K. Lenstra, H. W. Lenstra, Jr. (eds.) ''The Development of the Number Field Sieve,'' Lecture Notes in Mathematics 1554, Springer-Verlag, New York, 1993. | |||
== Footnotes == | |||
{{reflist}} | |||
{{number theoretic algorithms}} | |||
{{DEFAULTSORT:Rational Sieve}} | |||
[[Category:Integer factorization algorithms]] |
Latest revision as of 08:28, 13 September 2013
In mathematics, the rational sieve is a general algorithm for factoring integers into prime factors. It is essentially a special case of the general number field sieve, and while it is far less efficient than the general algorithm, it is conceptually far simpler. So while it is rather useless as a practical factoring algorithm, it is a helpful first step for those trying to understand how the general number field sieve works.
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 ,
and likewise, for suitable , we have
But and are congruent modulo , and so each such integer z that we find yields a multiplicative relation (mod n) among the elements of P, i.e.
(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[1]), this reduces to 24 ≡ 38, or 42 ≡ 812. 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 holds for any 1 < b < log(n) using an integer version of Newton's method for the root extraction.[2]
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
- A. K. Lenstra, H. W. Lenstra, Jr., M. S. Manasse, and J. M. Pollard, The Factorization of the Ninth Fermat Number, Math. Comp. 61 (1993), 319-349. A draft is available at www.std.org/~msm/common/f9paper.ps.
- A. K. Lenstra, H. W. Lenstra, Jr. (eds.) The Development of the Number Field Sieve, Lecture Notes in Mathematics 1554, Springer-Verlag, New York, 1993.
Footnotes
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
Template:Number theoretic algorithms
- ↑ Note that common factors cannot in general be canceled in a congruence, but they can in this case, since the primes of the factor base are all required to be coprime to n, as mentioned above. See modular multiplicative inverse.
- ↑ R. Crandall and J. Papadopoulos, On the implementation of AKS-class primality tests, available at [1]