factoring large numbers with quadratic...

119
Factoring Large Numbers With Quadratic Sieve

Upload: others

Post on 19-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Factoring Large Numbers With QuadraticSieve

Page 2: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

The Same Problem ...

The foundation of the most popular public-key cryptographyalgorithm in use today, RSA, rests on the difficulty of factoring largeintegers.

When keys are generated, efficient algorithms are used to generatetwo very large prime numbers and multiply them together. The personwho generated the keys knows these two numbers, but everyone elseonly knows the product.

The product contains enough information to encrypt a message to theperson; the two primes allow the recipient to decrypt it. There is noknown way to decrypt it without using the primes, but by factoring,we can extract the two prime factors from the product and break theencryption.

Page 3: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

The Same Problem ...

The foundation of the most popular public-key cryptographyalgorithm in use today, RSA, rests on the difficulty of factoring largeintegers.

When keys are generated, efficient algorithms are used to generatetwo very large prime numbers and multiply them together. The personwho generated the keys knows these two numbers, but everyone elseonly knows the product.

The product contains enough information to encrypt a message to theperson; the two primes allow the recipient to decrypt it. There is noknown way to decrypt it without using the primes, but by factoring,we can extract the two prime factors from the product and break theencryption.

Page 4: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

The Same Problem ...

The foundation of the most popular public-key cryptographyalgorithm in use today, RSA, rests on the difficulty of factoring largeintegers.

When keys are generated, efficient algorithms are used to generatetwo very large prime numbers and multiply them together. The personwho generated the keys knows these two numbers, but everyone elseonly knows the product.

The product contains enough information to encrypt a message to theperson; the two primes allow the recipient to decrypt it. There is noknown way to decrypt it without using the primes, but by factoring,we can extract the two prime factors from the product and break theencryption.

Page 5: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Pomerance and the Quadratic Sieve

At the time that RSA was invented in 1977, factoring integers with asfew as 80 decimal digits was intractable; all known algorithms wereeither too slow or required the number to have a special form. Thismade even small, 256-bit keys relatively secure.

The first major breakthrough was quadratic sieve, a relatively simplefactoring algorithm invented by Carl Pomerance in 1981, which canfactor numbers in excess of 100 digits. It’s still the best knownmethod for numbers under 110 digits or so.

For larger numbers, the general number field sieve (GNFS) is nowused. However, the general number field sieve is extremelycomplicated, and requires extensive explanation and background foreven the most basic implementation. However, GNFS is based on thesame fundamental ideas as quadratic sieve, so if factoring the largestnumbers in the world is your goal, this is the place to start.

We’ll begin by addressing a few problems that at first glance havenothing to do with factoring, then assemble them into a workingalgorithm.

Page 6: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Pomerance and the Quadratic Sieve

At the time that RSA was invented in 1977, factoring integers with asfew as 80 decimal digits was intractable; all known algorithms wereeither too slow or required the number to have a special form. Thismade even small, 256-bit keys relatively secure.

The first major breakthrough was quadratic sieve, a relatively simplefactoring algorithm invented by Carl Pomerance in 1981, which canfactor numbers in excess of 100 digits. It’s still the best knownmethod for numbers under 110 digits or so.

For larger numbers, the general number field sieve (GNFS) is nowused. However, the general number field sieve is extremelycomplicated, and requires extensive explanation and background foreven the most basic implementation. However, GNFS is based on thesame fundamental ideas as quadratic sieve, so if factoring the largestnumbers in the world is your goal, this is the place to start.

We’ll begin by addressing a few problems that at first glance havenothing to do with factoring, then assemble them into a workingalgorithm.

Page 7: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Pomerance and the Quadratic Sieve

At the time that RSA was invented in 1977, factoring integers with asfew as 80 decimal digits was intractable; all known algorithms wereeither too slow or required the number to have a special form. Thismade even small, 256-bit keys relatively secure.

The first major breakthrough was quadratic sieve, a relatively simplefactoring algorithm invented by Carl Pomerance in 1981, which canfactor numbers in excess of 100 digits. It’s still the best knownmethod for numbers under 110 digits or so.

For larger numbers, the general number field sieve (GNFS) is nowused. However, the general number field sieve is extremelycomplicated, and requires extensive explanation and background foreven the most basic implementation. However, GNFS is based on thesame fundamental ideas as quadratic sieve, so if factoring the largestnumbers in the world is your goal, this is the place to start.

We’ll begin by addressing a few problems that at first glance havenothing to do with factoring, then assemble them into a workingalgorithm.

Page 8: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Pomerance and the Quadratic Sieve

At the time that RSA was invented in 1977, factoring integers with asfew as 80 decimal digits was intractable; all known algorithms wereeither too slow or required the number to have a special form. Thismade even small, 256-bit keys relatively secure.

The first major breakthrough was quadratic sieve, a relatively simplefactoring algorithm invented by Carl Pomerance in 1981, which canfactor numbers in excess of 100 digits. It’s still the best knownmethod for numbers under 110 digits or so.

For larger numbers, the general number field sieve (GNFS) is nowused. However, the general number field sieve is extremelycomplicated, and requires extensive explanation and background foreven the most basic implementation. However, GNFS is based on thesame fundamental ideas as quadratic sieve, so if factoring the largestnumbers in the world is your goal, this is the place to start.

We’ll begin by addressing a few problems that at first glance havenothing to do with factoring, then assemble them into a workingalgorithm.

Page 9: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

Suppose I give you a set of integers and I ask you to find a subset ofthose integers whose product is a square, if one exists. For example,given the set {10, 24, 35, 52, 54, 78}, the product24× 52× 78 = 97344 = 3122. The brute-force solution, trying everysubset, is too expensive because there are an exponential number ofsubsets.

We’ll take a different approach based on prime factorizations andlinear algebra. First, we factor each of the input numbers into primefactors; for now we will assume that these numbers are easy to factor.For the above example set, we get:

10 = 2× 5 24 = 23 × 335 = 5× 7 52 = 22 × 1354 = 2× 33 78 = 2× 3× 13

Page 10: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

Suppose I give you a set of integers and I ask you to find a subset ofthose integers whose product is a square, if one exists. For example,given the set {10, 24, 35, 52, 54, 78}, the product24× 52× 78 = 97344 = 3122. The brute-force solution, trying everysubset, is too expensive because there are an exponential number ofsubsets.

We’ll take a different approach based on prime factorizations andlinear algebra. First, we factor each of the input numbers into primefactors; for now we will assume that these numbers are easy to factor.For the above example set, we get:

10 = 2× 5 24 = 23 × 335 = 5× 7 52 = 22 × 1354 = 2× 33 78 = 2× 3× 13

Page 11: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

When you multiply two numbers written as prime factorizations, yousimply add the exponents of the primes used. A number is a square ifand only if all the exponents in its prime factorization are even.

Suppose we write the above factorizations as vectors, where the kth

entry corresponds to the exponent of the kth prime number. We get:

1 0 1 0 0 03 1 0 0 0 00 0 1 1 0 02 0 0 0 0 11 3 0 0 0 01 1 0 0 0 1

Now, multiplying numbers is as simple as adding vectors. If we addrows 2, 4, and 6, we get [6 2 0 0 0 2] , which has all evenexponents and so must be a square.

Page 12: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

When you multiply two numbers written as prime factorizations, yousimply add the exponents of the primes used. A number is a square ifand only if all the exponents in its prime factorization are even.

Suppose we write the above factorizations as vectors, where the kth

entry corresponds to the exponent of the kth prime number. We get:

1 0 1 0 0 03 1 0 0 0 00 0 1 1 0 02 0 0 0 0 11 3 0 0 0 01 1 0 0 0 1

Now, multiplying numbers is as simple as adding vectors. If we addrows 2, 4, and 6, we get [6 2 0 0 0 2] , which has all evenexponents and so must be a square.

Page 13: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

When you multiply two numbers written as prime factorizations, yousimply add the exponents of the primes used. A number is a square ifand only if all the exponents in its prime factorization are even.

Suppose we write the above factorizations as vectors, where the kth

entry corresponds to the exponent of the kth prime number. We get:

1 0 1 0 0 03 1 0 0 0 00 0 1 1 0 02 0 0 0 0 11 3 0 0 0 01 1 0 0 0 1

Now, multiplying numbers is as simple as adding vectors. If we addrows 2, 4, and 6, we get [6 2 0 0 0 2] , which has all evenexponents and so must be a square.

Page 14: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

In more familiar terms, we want the last bit of each entry in the sum tobe zero. But in this case, we don’t need to store all of the numbersabove, only the last bit of each number. This gives us the following:

1 0 1 0 0 01 1 0 0 0 00 0 1 1 0 00 0 0 0 0 11 1 0 0 0 01 1 0 0 0 1

Page 15: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

Moreover, since we’re only interested in last bits, we can perform allour addition using one-bit integers with wraparound semantics (inother words, modulo 2).

If we add rows 2, 4, and 6 in this way, we get

[0 0 0 0 0 0]

which is the zero vector. In fact, all squares correspond to the zerovector.

Page 16: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Finding a Subset of Integers Whose Product is a Square

Moreover, since we’re only interested in last bits, we can perform allour addition using one-bit integers with wraparound semantics (inother words, modulo 2).

If we add rows 2, 4, and 6 in this way, we get

[0 0 0 0 0 0]

which is the zero vector. In fact, all squares correspond to the zerovector.

Page 17: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Turning This to a Matrix Problem

If we transpose the above matrix, so that rows become columns, weget this:

1 1 0 0 1 10 1 0 0 1 11 0 1 0 0 00 0 1 0 0 00 0 0 0 0 00 0 0 1 0 1

Call this matrix A. If we multiply A by the vector

[0 1 0 1 0 1]

using one-bit integer arithmetic, we get the zero vector. This tells usprecisely which numbers we need to multiply to get a square. So, ourgoal is to find a nonzero vector x such that Ax = 0 (remember, allarithmetic here is with one-bit integers).

Page 18: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Turning This to a Matrix Problem

If we transpose the above matrix, so that rows become columns, weget this:

1 1 0 0 1 10 1 0 0 1 11 0 1 0 0 00 0 1 0 0 00 0 0 0 0 00 0 0 1 0 1

Call this matrix A. If we multiply A by the vector

[0 1 0 1 0 1]

using one-bit integer arithmetic, we get the zero vector. This tells usprecisely which numbers we need to multiply to get a square. So, ourgoal is to find a nonzero vector x such that Ax = 0 (remember, allarithmetic here is with one-bit integers).

Page 19: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Remember Back To Linear Algebra

This is the problem of finding the null space of a matrix, the set ofvectors such that Ax = 0. The problem can be solved using rowreduction. We row reduce the matrix, and then assign values to thefree variables in a way that gives us a nonzero solution. The othervariables will be determined by these values and the matrix. Youprobably studied this problem using rational numbers, not one-bitintegers, but it turns out row reduction works just as well for these.For example, if we add row 1 to row 3 in the above matrix, we get thefollowing:

1 1 0 0 1 10 1 0 0 1 10 1 1 0 1 10 0 1 0 0 00 0 0 0 0 00 0 0 1 0 1

Page 20: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Continuing with the Linear Algebra

Completing the row reduction, we eventually end up with this matrix:

1 0 0 0 0 00 1 0 0 1 10 0 1 0 0 00 0 0 1 0 10 0 0 0 0 00 0 0 0 0 0

If we turn this back into a system of equations and rearrange, we getthis:

x1 = 0

x2 = −x5 − x6

x3 = 0

x4 = −x6

Page 21: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Continuing with the Linear Algebra

Completing the row reduction, we eventually end up with this matrix:

1 0 0 0 0 00 1 0 0 1 10 0 1 0 0 00 0 0 1 0 10 0 0 0 0 00 0 0 0 0 0

If we turn this back into a system of equations and rearrange, we getthis:

x1 = 0

x2 = −x5 − x6

x3 = 0

x4 = −x6

Page 22: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Continuing with the Linear Algebra

Suppose we choose x5 = 0, x6 = 1. From the above equations, itfollows that the first four vectors have the values 0, 1, 0, and 1(remember, one-bit integer arithmetic). This gives us our final vector,

[0 1 0 1 0 1]

If we were to choose x5 = 1 and x6 = 0 instead, we’d get a differentsolution:

[0 1 0 0 1 0]

corresponding to 24× 54 = 1296 = 362.

Page 23: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Continuing with the Linear Algebra

Suppose we choose x5 = 0, x6 = 1. From the above equations, itfollows that the first four vectors have the values 0, 1, 0, and 1(remember, one-bit integer arithmetic). This gives us our final vector,

[0 1 0 1 0 1]

If we were to choose x5 = 1 and x6 = 0 instead, we’d get a differentsolution:

[0 1 0 0 1 0]

corresponding to 24× 54 = 1296 = 362.

Page 24: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Continuing with the Linear Algebra

Moreover, a theorem of linear algebra tells us precisely how manyinput numbers we need to guarantee that a square can be found: aslong as we have more columns than rows, the null space is guaranteedto be nontrivial, so that we have a nonzero solution. In other words,we just need more numbers than prime factors used by those numbers.As this case shows, though, this isn’t a necessary condition.

The one remaining problem with this method is that if one of thenumbers in our set happens to have very large factors, our matrix willhave a large number of rows, which requires a lot of storage andmakes row reduction inefficient. To avoid this, we require that theinput numbers are B-smooth, meaning that they only have smallfactors less than some integer B. This also makes them easy to factor.

Page 25: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Continuing with the Linear Algebra

Moreover, a theorem of linear algebra tells us precisely how manyinput numbers we need to guarantee that a square can be found: aslong as we have more columns than rows, the null space is guaranteedto be nontrivial, so that we have a nonzero solution. In other words,we just need more numbers than prime factors used by those numbers.As this case shows, though, this isn’t a necessary condition.

The one remaining problem with this method is that if one of thenumbers in our set happens to have very large factors, our matrix willhave a large number of rows, which requires a lot of storage andmakes row reduction inefficient. To avoid this, we require that theinput numbers are B-smooth, meaning that they only have smallfactors less than some integer B. This also makes them easy to factor.

Page 26: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

This method involves factoring using a difference of squares. Youmight be wondering what squares have to do with factoring. Theconnection is the very simple factorization method known as Fermat’smethod. Although not efficient in general, it embodies the same basicidea as quadratic sieve and works great for numbers with factors closeto their square root.

The idea is to find two numbers a and b such that a2 − b2 = n, thenumber we wish to factor. If we can do this, simple algebra tells usthat (a + b)(a− b) = n. If we’re lucky, this is a nontrivialfactorization of n; if we’re not so lucky, one of them is 1 and the otheris n.

Page 27: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

This method involves factoring using a difference of squares. Youmight be wondering what squares have to do with factoring. Theconnection is the very simple factorization method known as Fermat’smethod. Although not efficient in general, it embodies the same basicidea as quadratic sieve and works great for numbers with factors closeto their square root.

The idea is to find two numbers a and b such that a2 − b2 = n, thenumber we wish to factor. If we can do this, simple algebra tells usthat (a + b)(a− b) = n. If we’re lucky, this is a nontrivialfactorization of n; if we’re not so lucky, one of them is 1 and the otheris n.

Page 28: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

The concept behind Fermat’s algorithm is to search for an integer asuch that a2 − n is a square. If we find such an a, it follows that:

a2 − (a2 − n) = n

We have a difference of squares equal to n. The search is astraightforward linear search: we begin with the ceiling of the squareroot of n, the smallest possible number such that a2 − n is positive,and increment a until a2 − n becomes a square. If this ever happens,we try to factor n as

(a−√

a2 − n)(a +√

a2 − n)

If the factorization is trivial, we continue incrementing a.

Page 29: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

The concept behind Fermat’s algorithm is to search for an integer asuch that a2 − n is a square. If we find such an a, it follows that:

a2 − (a2 − n) = n

We have a difference of squares equal to n. The search is astraightforward linear search: we begin with the ceiling of the squareroot of n, the smallest possible number such that a2 − n is positive,and increment a until a2 − n becomes a square. If this ever happens,we try to factor n as

(a−√

a2 − n)(a +√

a2 − n)

If the factorization is trivial, we continue incrementing a.

Page 30: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Fermat’s Method

Let n = 5959; a starts out at 78.

The numbers 782 − 5959 and 792 − 5959 are not squares, but802 − 5959 = 441 = 212.

Hence (80− 21)(80 + 21) = 5959, and this gives the nontrivialfactorization 59× 101 = 5959.

Page 31: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Fermat’s Method

Let n = 5959; a starts out at 78.

The numbers 782 − 5959 and 792 − 5959 are not squares, but802 − 5959 = 441 = 212.

Hence (80− 21)(80 + 21) = 5959, and this gives the nontrivialfactorization 59× 101 = 5959.

Page 32: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Fermat’s Method

Let n = 5959; a starts out at 78.

The numbers 782 − 5959 and 792 − 5959 are not squares, but802 − 5959 = 441 = 212.

Hence (80− 21)(80 + 21) = 5959, and this gives the nontrivialfactorization 59× 101 = 5959.

Page 33: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

This is a Slow Method ...

The reason Fermat’s method is slow is because simply performing alinear search of all possible a hoping that we’ll hit one with a2 − nsquare is a poor strategy - there just aren’t that many squares aroundto hit.

A better way of going about it is to proactively compute an a havingthis property (actually a similar property).

The key is to notice that if we take a number of a2 − n values, none ofwhich are squares themselves, and multiply them, we may get asquare, say S.

Let A be the product of the corresponding values of a. Basic algebrashows that A2 − S is a multiple of n. Hence, (A−

√S)(A +

√S) is a

factorization of some multiple of n; in other words, at least one ofthese shares a factor with n. By computing the greatest commondivisor of each with n using Euclid’s algorithm, we can identify thisfactor. Again, it may be trivial (just n itself); if so we try again with adifferent square.

Page 34: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

This is a Slow Method ...

The reason Fermat’s method is slow is because simply performing alinear search of all possible a hoping that we’ll hit one with a2 − nsquare is a poor strategy - there just aren’t that many squares aroundto hit.

A better way of going about it is to proactively compute an a havingthis property (actually a similar property).

The key is to notice that if we take a number of a2 − n values, none ofwhich are squares themselves, and multiply them, we may get asquare, say S.

Let A be the product of the corresponding values of a. Basic algebrashows that A2 − S is a multiple of n. Hence, (A−

√S)(A +

√S) is a

factorization of some multiple of n; in other words, at least one ofthese shares a factor with n. By computing the greatest commondivisor of each with n using Euclid’s algorithm, we can identify thisfactor. Again, it may be trivial (just n itself); if so we try again with adifferent square.

Page 35: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

This is a Slow Method ...

The reason Fermat’s method is slow is because simply performing alinear search of all possible a hoping that we’ll hit one with a2 − nsquare is a poor strategy - there just aren’t that many squares aroundto hit.

A better way of going about it is to proactively compute an a havingthis property (actually a similar property).

The key is to notice that if we take a number of a2 − n values, none ofwhich are squares themselves, and multiply them, we may get asquare, say S.

Let A be the product of the corresponding values of a. Basic algebrashows that A2 − S is a multiple of n. Hence, (A−

√S)(A +

√S) is a

factorization of some multiple of n; in other words, at least one ofthese shares a factor with n. By computing the greatest commondivisor of each with n using Euclid’s algorithm, we can identify thisfactor. Again, it may be trivial (just n itself); if so we try again with adifferent square.

Page 36: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

This is a Slow Method ...

The reason Fermat’s method is slow is because simply performing alinear search of all possible a hoping that we’ll hit one with a2 − nsquare is a poor strategy - there just aren’t that many squares aroundto hit.

A better way of going about it is to proactively compute an a havingthis property (actually a similar property).

The key is to notice that if we take a number of a2 − n values, none ofwhich are squares themselves, and multiply them, we may get asquare, say S.

Let A be the product of the corresponding values of a. Basic algebrashows that A2 − S is a multiple of n. Hence, (A−

√S)(A +

√S) is a

factorization of some multiple of n; in other words, at least one ofthese shares a factor with n. By computing the greatest commondivisor of each with n using Euclid’s algorithm, we can identify thisfactor. Again, it may be trivial (just n itself); if so we try again with adifferent square.

Page 37: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

All that remains is, given a list of a2 − n values, to find a subsetwhose product is a square. But this is precisely an instance of theproblem discussed in the last section.

Unfortunately, recall that that the method we came up with there isnot efficient for numbers with large factors; the matrix becomes toolarge. What do we do?

We simply throw away numbers with large factors. Theoretical resultsshow that there are a fairly large number of values in the sequencea2 − n that are smooth. This gives us a new factoring method thatworks pretty well up to a point.

Page 38: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

All that remains is, given a list of a2 − n values, to find a subsetwhose product is a square. But this is precisely an instance of theproblem discussed in the last section.

Unfortunately, recall that that the method we came up with there isnot efficient for numbers with large factors; the matrix becomes toolarge. What do we do?

We simply throw away numbers with large factors. Theoretical resultsshow that there are a fairly large number of values in the sequencea2 − n that are smooth. This gives us a new factoring method thatworks pretty well up to a point.

Page 39: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Fermat’s Method

All that remains is, given a list of a2 − n values, to find a subsetwhose product is a square. But this is precisely an instance of theproblem discussed in the last section.

Unfortunately, recall that that the method we came up with there isnot efficient for numbers with large factors; the matrix becomes toolarge. What do we do?

We simply throw away numbers with large factors. Theoretical resultsshow that there are a fairly large number of values in the sequencea2 − n that are smooth. This gives us a new factoring method thatworks pretty well up to a point.

Page 40: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

An Example

For example, consider the number 90283. If we start a at 301 andincrement it up to 360 while computing a2 − n, we get the followingvalues:

318 921 1526 2133 2742 33533966 4581 5198 5817 6438 70617686 8313 8942 9573 10206 10841

11478 12117 12758 13401 14046 1469315342 15993 16646 17301 17958 1861719278 19941 20606 21273 21942 2261323286 23961 24638 25317 25998 2668127366 28053 28742 29433 30126 3082131518 32217 32918 33621 34326 3503335742 36453 37166 37881 38598 39317

Page 41: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

An Example

None of these are squares (the first square occurs at a = 398);however, if we factor each value we will discover that 7 of thesevalues have no factor larger than 43:

6438, 10206, 16646, 19278, 19941, 30821, 35742

If we take these 7 values and feed them to the algorithm describedearlier, it finds a square:

19278×19941×30821×35742 = 423481541612104836 = 6507545942

The corresponding original a were 331, 332, 348, and 355, and theirproduct is 13576057680.

Page 42: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

An Example

None of these are squares (the first square occurs at a = 398);however, if we factor each value we will discover that 7 of thesevalues have no factor larger than 43:

6438, 10206, 16646, 19278, 19941, 30821, 35742

If we take these 7 values and feed them to the algorithm describedearlier, it finds a square:

19278×19941×30821×35742 = 423481541612104836 = 6507545942

The corresponding original a were 331, 332, 348, and 355, and theirproduct is 13576057680.

Page 43: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

An Example

Now, we can factor the number:

(13576057680− 650754594)(13576057680 + 650754594)

= 12925303086× 14226812274

is a multiple of 90283.

(90283, 12925303086) = 137

(90283, 14226812274) = 659

137× 659 = 90283

Page 44: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

An Example

Now, we can factor the number:

(13576057680− 650754594)(13576057680 + 650754594)

= 12925303086× 14226812274

is a multiple of 90283.

(90283, 12925303086) = 137

(90283, 14226812274) = 659

137× 659 = 90283

Page 45: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving for Smooth Numbers

The factorization algorithm above is considerably better than Fermat’salgorithm, but if we try to scale up the size of number we factor, wequickly encounter a bottleneck: finding the smooth numbers in thesequence.

Only 7 of the 60 values we computed in our last example were43-smooth (actually we were lucky to get a square with so fewvectors). As the size of the number that we’re factoring grows, sodoes the size of the numbers in the sequence, and the proportion ofsmooth numbers rapidly shrinks.

Although finding smooth numbers doesn’t require completelyfactoring every number in the sequence (we only have to test primesup to the smoothness limit), it’s still too expensive to test everynumber in the sequence this way.

Page 46: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving for Smooth Numbers

The factorization algorithm above is considerably better than Fermat’salgorithm, but if we try to scale up the size of number we factor, wequickly encounter a bottleneck: finding the smooth numbers in thesequence.

Only 7 of the 60 values we computed in our last example were43-smooth (actually we were lucky to get a square with so fewvectors). As the size of the number that we’re factoring grows, sodoes the size of the numbers in the sequence, and the proportion ofsmooth numbers rapidly shrinks.

Although finding smooth numbers doesn’t require completelyfactoring every number in the sequence (we only have to test primesup to the smoothness limit), it’s still too expensive to test everynumber in the sequence this way.

Page 47: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving for Smooth Numbers

The factorization algorithm above is considerably better than Fermat’salgorithm, but if we try to scale up the size of number we factor, wequickly encounter a bottleneck: finding the smooth numbers in thesequence.

Only 7 of the 60 values we computed in our last example were43-smooth (actually we were lucky to get a square with so fewvectors). As the size of the number that we’re factoring grows, sodoes the size of the numbers in the sequence, and the proportion ofsmooth numbers rapidly shrinks.

Although finding smooth numbers doesn’t require completelyfactoring every number in the sequence (we only have to test primesup to the smoothness limit), it’s still too expensive to test everynumber in the sequence this way.

Page 48: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Being Aware of Prime Factors

The key is to observe that the prime factors of the sequence a2 − nfollow a predictable sequence. Let’s take a look at the primefactorizations of the first ten or so numbers in our example sequenceabove:

318 = 2× 3× 53

921 = 3× 307

1526 = 2× 7× 109

2133 = 33 × 79

2742 = 2× 3× 457

3353 = 7× 479

3966 = 2× 3× 661

4581 = 32 × 509

5198 = 2× 23× 113

5817 = 3× 7× 277

Page 49: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Observations

The most obvious pattern is that every other number is even,beginning with the first one. This should be no surprise, since we’reeffectively adding 2a + 1 to get each new number, which is alwaysodd.

Also, you’ll notice that the first and second numbers are divisible by3, as are the fourth and fifth, the seventh and eighth, and so on.

If you look at the larger list, you’ll notice similar patterns for largerprimes; for example, the 3rd and 6th numbers are divisible by 7, andevery 7th number after each of them as well. And, mysteriously, notone number in our entire sequence is divisible by 5 ...

Page 50: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Observations

The most obvious pattern is that every other number is even,beginning with the first one. This should be no surprise, since we’reeffectively adding 2a + 1 to get each new number, which is alwaysodd.

Also, you’ll notice that the first and second numbers are divisible by3, as are the fourth and fifth, the seventh and eighth, and so on.

If you look at the larger list, you’ll notice similar patterns for largerprimes; for example, the 3rd and 6th numbers are divisible by 7, andevery 7th number after each of them as well. And, mysteriously, notone number in our entire sequence is divisible by 5 ...

Page 51: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Observations

The most obvious pattern is that every other number is even,beginning with the first one. This should be no surprise, since we’reeffectively adding 2a + 1 to get each new number, which is alwaysodd.

Also, you’ll notice that the first and second numbers are divisible by3, as are the fourth and fifth, the seventh and eighth, and so on.

If you look at the larger list, you’ll notice similar patterns for largerprimes; for example, the 3rd and 6th numbers are divisible by 7, andevery 7th number after each of them as well. And, mysteriously, notone number in our entire sequence is divisible by 5 ...

Page 52: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Quadratic Residues

So what’s going on? The answer involves what number theorists callquadratic residues.

DefinitionA number a is called a quadratic residue (modulo p) if there is somesquare S such that S− a is divisible by p.

Half of all numbers are quadratic residues modulo p, regardless of thevalue of p, and there’s a simple formula for determining whether ornot a particular number is: just take a, raise it to the power p−1

2 , andthen take the remainder after division by p. Then a is a quadraticresidue modulo p if and only if the answer is 1.

Although this computation seems to involve very large values, in factwe can compute it quite quickly using exponentiation by squaringcombined with frequent remainder operations.

Page 53: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Quadratic Residues

So what’s going on? The answer involves what number theorists callquadratic residues.

DefinitionA number a is called a quadratic residue (modulo p) if there is somesquare S such that S− a is divisible by p.

Half of all numbers are quadratic residues modulo p, regardless of thevalue of p, and there’s a simple formula for determining whether ornot a particular number is: just take a, raise it to the power p−1

2 , andthen take the remainder after division by p. Then a is a quadraticresidue modulo p if and only if the answer is 1.

Although this computation seems to involve very large values, in factwe can compute it quite quickly using exponentiation by squaringcombined with frequent remainder operations.

Page 54: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Quadratic Residues

So what’s going on? The answer involves what number theorists callquadratic residues.

DefinitionA number a is called a quadratic residue (modulo p) if there is somesquare S such that S− a is divisible by p.

Half of all numbers are quadratic residues modulo p, regardless of thevalue of p, and there’s a simple formula for determining whether ornot a particular number is: just take a, raise it to the power p−1

2 , andthen take the remainder after division by p. Then a is a quadraticresidue modulo p if and only if the answer is 1.

Although this computation seems to involve very large values, in factwe can compute it quite quickly using exponentiation by squaringcombined with frequent remainder operations.

Page 55: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Quadratic Residues

So what’s going on? The answer involves what number theorists callquadratic residues.

DefinitionA number a is called a quadratic residue (modulo p) if there is somesquare S such that S− a is divisible by p.

Half of all numbers are quadratic residues modulo p, regardless of thevalue of p, and there’s a simple formula for determining whether ornot a particular number is: just take a, raise it to the power p−1

2 , andthen take the remainder after division by p. Then a is a quadraticresidue modulo p if and only if the answer is 1.

Although this computation seems to involve very large values, in factwe can compute it quite quickly using exponentiation by squaringcombined with frequent remainder operations.

Page 56: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Quadratic Residues Explain No 5s

If we compute 902835−1

2 (mod 5), we get 4, which is not 1 (rememberthat 90283 is our original n to be factored). Thus, there is no squaresuch that S− n is divisible by 5.

All numbers in our sequence have this form. In practice, this meanswe can compute just once ahead of time which factors may occur inthe sequence (primes p such that n is a quadratic residue modulo p),and ignore all others.

Page 57: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Quadratic Residues Explain No 5s

If we compute 902835−1

2 (mod 5), we get 4, which is not 1 (rememberthat 90283 is our original n to be factored). Thus, there is no squaresuch that S− n is divisible by 5.

All numbers in our sequence have this form. In practice, this meanswe can compute just once ahead of time which factors may occur inthe sequence (primes p such that n is a quadratic residue modulo p),and ignore all others.

Page 58: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Every pth Number is Divisible By p?

For our next mystery, why is it that given a number in the sequencedivisible by p, every pth number after that is also divisible by p? Well,simple algebra shows that if a2 − n = kp, then:

(a + p)2 − n = (a2 − n) + p(2a + p) = kp + p(2a + p).

But this doesn’t explain why it always seems to be the case that thereare exactly two different initial values of a such that a2− n is divisibleby p (with the exception of p = 2).

For example, in our sequence above the 3rd and 6th values weredivisible by 7. The answer again is quadratic residues: it can beshown that the modular equation x2 ≡ y (mod p) has exactly twosolutions (if it has any), and in fact there is an efficient algorithm forcomputing these two solutions called the Tonelli-Shanks algorithm.

Page 59: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Every pth Number is Divisible By p?

For our next mystery, why is it that given a number in the sequencedivisible by p, every pth number after that is also divisible by p? Well,simple algebra shows that if a2 − n = kp, then:

(a + p)2 − n = (a2 − n) + p(2a + p) = kp + p(2a + p).

But this doesn’t explain why it always seems to be the case that thereare exactly two different initial values of a such that a2− n is divisibleby p (with the exception of p = 2).

For example, in our sequence above the 3rd and 6th values weredivisible by 7. The answer again is quadratic residues: it can beshown that the modular equation x2 ≡ y (mod p) has exactly twosolutions (if it has any), and in fact there is an efficient algorithm forcomputing these two solutions called the Tonelli-Shanks algorithm.

Page 60: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Every pth Number is Divisible By p?

For our next mystery, why is it that given a number in the sequencedivisible by p, every pth number after that is also divisible by p? Well,simple algebra shows that if a2 − n = kp, then:

(a + p)2 − n = (a2 − n) + p(2a + p) = kp + p(2a + p).

But this doesn’t explain why it always seems to be the case that thereare exactly two different initial values of a such that a2− n is divisibleby p (with the exception of p = 2).

For example, in our sequence above the 3rd and 6th values weredivisible by 7. The answer again is quadratic residues: it can beshown that the modular equation x2 ≡ y (mod p) has exactly twosolutions (if it has any), and in fact there is an efficient algorithm forcomputing these two solutions called the Tonelli-Shanks algorithm.

Page 61: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

The Tonelli-Shanks algorithm is used within modular arithmetic tosolve a congruence of the form

x2 ≡ n (mod p)

where n is a quadratic residue modulo p and p is an odd prime.

Note: Tonelli-Shanks cannot be used for composite moduli; findingsquare roots modulo composite numbers is a computational problemequivalent to integer factorization.

Page 62: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

The Tonelli-Shanks algorithm is used within modular arithmetic tosolve a congruence of the form

x2 ≡ n (mod p)

where n is a quadratic residue modulo p and p is an odd prime.

Note: Tonelli-Shanks cannot be used for composite moduli; findingsquare roots modulo composite numbers is a computational problemequivalent to integer factorization.

Page 63: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

Inputp, an odd primen, an integer which is a quadratic residue modulo p, meaning thatthe Legendre symbol

(np

)= 1.

DefinitionLet p be an odd prime number. An integer a is a quadratic residue modulo pif it is congruent to a perfect square modulo p and a quadratic nonresidueotherwise. The Legendre symbol is a function of a and p defined as follows:

(ap

)=

1 if a is a quadratic residue moduo p and a 6≡ 0 (mod p)-1 if a is a quadratic nonresidue modulo p0 if a ≡ 0 (mod p)

OutputR, an integer satisfying R2 ≡ n (mod p).

Page 64: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

Inputp, an odd primen, an integer which is a quadratic residue modulo p, meaning thatthe Legendre symbol

(np

)= 1.

DefinitionLet p be an odd prime number. An integer a is a quadratic residue modulo pif it is congruent to a perfect square modulo p and a quadratic nonresidueotherwise. The Legendre symbol is a function of a and p defined as follows:

(ap

)=

1 if a is a quadratic residue moduo p and a 6≡ 0 (mod p)-1 if a is a quadratic nonresidue modulo p0 if a ≡ 0 (mod p)

OutputR, an integer satisfying R2 ≡ n (mod p).

Page 65: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

Inputp, an odd primen, an integer which is a quadratic residue modulo p, meaning thatthe Legendre symbol

(np

)= 1.

DefinitionLet p be an odd prime number. An integer a is a quadratic residue modulo pif it is congruent to a perfect square modulo p and a quadratic nonresidueotherwise. The Legendre symbol is a function of a and p defined as follows:

(ap

)=

1 if a is a quadratic residue moduo p and a 6≡ 0 (mod p)-1 if a is a quadratic nonresidue modulo p0 if a ≡ 0 (mod p)

OutputR, an integer satisfying R2 ≡ n (mod p).

Page 66: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

1 Factor out the powers of 2 from p− 1, defining Q and S as

p− 1 = Q · 2S

with Q odd. Note that if S = 1, i.e. p ≡ 3 (mod 4), then thesolutions are given directly by

R ≡ ±np+1

4

Select a z such that the Legendre symbol(

zp

)= −1 (that is, z

should be a quadratic nonresidue modulo p) and set c ≡ zQ.

2 Let R ≡ nQ+1

2 , t ≡ nQ, M = S.3 Loop:

1 If t ≡ 1, return R.2 Otherwise, find the lowest i, 0 < i < M such that t2i ≡ 13 Let b ≡ c2M−i−1

and set R = Rb, t ≡ tb2, c = b2 and M = i.Once you have solved the congruence with R, the secondsolution is p− R.

Page 67: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

1 Factor out the powers of 2 from p− 1, defining Q and S as

p− 1 = Q · 2S

with Q odd. Note that if S = 1, i.e. p ≡ 3 (mod 4), then thesolutions are given directly by

R ≡ ±np+1

4

Select a z such that the Legendre symbol(

zp

)= −1 (that is, z

should be a quadratic nonresidue modulo p) and set c ≡ zQ.2 Let R ≡ n

Q+12 , t ≡ nQ, M = S.

3 Loop:1 If t ≡ 1, return R.2 Otherwise, find the lowest i, 0 < i < M such that t2i ≡ 13 Let b ≡ c2M−i−1

and set R = Rb, t ≡ tb2, c = b2 and M = i.Once you have solved the congruence with R, the secondsolution is p− R.

Page 68: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

1 Factor out the powers of 2 from p− 1, defining Q and S as

p− 1 = Q · 2S

with Q odd. Note that if S = 1, i.e. p ≡ 3 (mod 4), then thesolutions are given directly by

R ≡ ±np+1

4

Select a z such that the Legendre symbol(

zp

)= −1 (that is, z

should be a quadratic nonresidue modulo p) and set c ≡ zQ.2 Let R ≡ n

Q+12 , t ≡ nQ, M = S.

3 Loop:1 If t ≡ 1, return R.

2 Otherwise, find the lowest i, 0 < i < M such that t2i ≡ 13 Let b ≡ c2M−i−1

and set R = Rb, t ≡ tb2, c = b2 and M = i.Once you have solved the congruence with R, the secondsolution is p− R.

Page 69: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

1 Factor out the powers of 2 from p− 1, defining Q and S as

p− 1 = Q · 2S

with Q odd. Note that if S = 1, i.e. p ≡ 3 (mod 4), then thesolutions are given directly by

R ≡ ±np+1

4

Select a z such that the Legendre symbol(

zp

)= −1 (that is, z

should be a quadratic nonresidue modulo p) and set c ≡ zQ.2 Let R ≡ n

Q+12 , t ≡ nQ, M = S.

3 Loop:1 If t ≡ 1, return R.2 Otherwise, find the lowest i, 0 < i < M such that t2i ≡ 1

3 Let b ≡ c2M−i−1and set R = Rb, t ≡ tb2, c = b2 and M = i.

Once you have solved the congruence with R, the secondsolution is p− R.

Page 70: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

1 Factor out the powers of 2 from p− 1, defining Q and S as

p− 1 = Q · 2S

with Q odd. Note that if S = 1, i.e. p ≡ 3 (mod 4), then thesolutions are given directly by

R ≡ ±np+1

4

Select a z such that the Legendre symbol(

zp

)= −1 (that is, z

should be a quadratic nonresidue modulo p) and set c ≡ zQ.2 Let R ≡ n

Q+12 , t ≡ nQ, M = S.

3 Loop:1 If t ≡ 1, return R.2 Otherwise, find the lowest i, 0 < i < M such that t2i ≡ 13 Let b ≡ c2M−i−1

and set R = Rb, t ≡ tb2, c = b2 and M = i.

Once you have solved the congruence with R, the secondsolution is p− R.

Page 71: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Tonelli-Shanks Algorithm

1 Factor out the powers of 2 from p− 1, defining Q and S as

p− 1 = Q · 2S

with Q odd. Note that if S = 1, i.e. p ≡ 3 (mod 4), then thesolutions are given directly by

R ≡ ±np+1

4

Select a z such that the Legendre symbol(

zp

)= −1 (that is, z

should be a quadratic nonresidue modulo p) and set c ≡ zQ.2 Let R ≡ n

Q+12 , t ≡ nQ, M = S.

3 Loop:1 If t ≡ 1, return R.2 Otherwise, find the lowest i, 0 < i < M such that t2i ≡ 13 Let b ≡ c2M−i−1

and set R = Rb, t ≡ tb2, c = b2 and M = i.Once you have solved the congruence with R, the secondsolution is p− R.

Page 72: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Example

Solve the congruence x2 ≡ 10 (mod 13) using Tonelli-Shanks.

It is clear that 13 is odd, and since

1013−1

2 = 106 ≡ 1 (mod 13)

10 is a quadratic residue.Step 1: Observe p− 1 = 12 = 3 · 22, so Q = 3 andS = 2.

Step 2: Take z = 2 as the quadratic nonresidue byEuler’s criterion since

213−1

2 ≡ −1 (mod 13)

Set c = 23 ≡ 8 (mod 13).Step 3: R = 102 ≡ −4, t = 103 ≡ −1(mod 13), M = 2

Page 73: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Example

Solve the congruence x2 ≡ 10 (mod 13) using Tonelli-Shanks.

It is clear that 13 is odd, and since

1013−1

2 = 106 ≡ 1 (mod 13)

10 is a quadratic residue.Step 1: Observe p− 1 = 12 = 3 · 22, so Q = 3 andS = 2.Step 2: Take z = 2 as the quadratic nonresidue byEuler’s criterion since

213−1

2 ≡ −1 (mod 13)

Set c = 23 ≡ 8 (mod 13).

Step 3: R = 102 ≡ −4, t = 103 ≡ −1(mod 13), M = 2

Page 74: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Example

Solve the congruence x2 ≡ 10 (mod 13) using Tonelli-Shanks.

It is clear that 13 is odd, and since

1013−1

2 = 106 ≡ 1 (mod 13)

10 is a quadratic residue.Step 1: Observe p− 1 = 12 = 3 · 22, so Q = 3 andS = 2.Step 2: Take z = 2 as the quadratic nonresidue byEuler’s criterion since

213−1

2 ≡ −1 (mod 13)

Set c = 23 ≡ 8 (mod 13).Step 3: R = 102 ≡ −4, t = 103 ≡ −1(mod 13), M = 2

Page 75: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Step 4: Now we start the loop:t 6≡ 1 (mod 13), so 0 < i < 2; i.e., i = 1

Let b ≡ 822−1−1 ≡ 8 (mod 13), sob2 ≡ 82 ≡ −1 (mod 13)Set R = −4 · 8 ≡ 7 (mod 13). Sett ≡ −1 · −1 ≡ 1 (mod 13) and M = 1. We restartthe loop and since t ≡ 1 (mod 13). We are done,returning R ≡ 7 (mod 13)

Notice that 72 = 49 ≡ 10 (mod 13) and (−7)2 ≡ 62 ≡ 10 (mod 13).So, the algorithm yields two solutions to our congruence.

Page 76: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Step 4: Now we start the loop:t 6≡ 1 (mod 13), so 0 < i < 2; i.e., i = 1Let b ≡ 822−1−1 ≡ 8 (mod 13), sob2 ≡ 82 ≡ −1 (mod 13)

Set R = −4 · 8 ≡ 7 (mod 13). Sett ≡ −1 · −1 ≡ 1 (mod 13) and M = 1. We restartthe loop and since t ≡ 1 (mod 13). We are done,returning R ≡ 7 (mod 13)

Notice that 72 = 49 ≡ 10 (mod 13) and (−7)2 ≡ 62 ≡ 10 (mod 13).So, the algorithm yields two solutions to our congruence.

Page 77: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Step 4: Now we start the loop:t 6≡ 1 (mod 13), so 0 < i < 2; i.e., i = 1Let b ≡ 822−1−1 ≡ 8 (mod 13), sob2 ≡ 82 ≡ −1 (mod 13)Set R = −4 · 8 ≡ 7 (mod 13). Sett ≡ −1 · −1 ≡ 1 (mod 13) and M = 1. We restartthe loop and since t ≡ 1 (mod 13). We are done,returning R ≡ 7 (mod 13)

Notice that 72 = 49 ≡ 10 (mod 13) and (−7)2 ≡ 62 ≡ 10 (mod 13).So, the algorithm yields two solutions to our congruence.

Page 78: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Example Using Tonelli-Shanks

Step 4: Now we start the loop:t 6≡ 1 (mod 13), so 0 < i < 2; i.e., i = 1Let b ≡ 822−1−1 ≡ 8 (mod 13), sob2 ≡ 82 ≡ −1 (mod 13)Set R = −4 · 8 ≡ 7 (mod 13). Sett ≡ −1 · −1 ≡ 1 (mod 13) and M = 1. We restartthe loop and since t ≡ 1 (mod 13). We are done,returning R ≡ 7 (mod 13)

Notice that 72 = 49 ≡ 10 (mod 13) and (−7)2 ≡ 62 ≡ 10 (mod 13).So, the algorithm yields two solutions to our congruence.

Page 79: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Back to Our Situation

It suffices to test the first p numbers to see which are divisible by p.For larger primes, it becomes important to avoid this expensive scan.

Recall the Sieve of Eratosthenes, an algorithm for locating primenumbers. It starts with a list of numbers, then crosses off all numbersnot divisible by 2 except 2, then does the same for 3, 5, and so on untilit’s done. The numbers that remain must be prime. When attemptingto find a list of prime numbers, this strategy is much more efficientthan running even the most advanced primality test on each numberindividually.

Page 80: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Back to Our Situation

It suffices to test the first p numbers to see which are divisible by p.For larger primes, it becomes important to avoid this expensive scan.

Recall the Sieve of Eratosthenes, an algorithm for locating primenumbers. It starts with a list of numbers, then crosses off all numbersnot divisible by 2 except 2, then does the same for 3, 5, and so on untilit’s done. The numbers that remain must be prime. When attemptingto find a list of prime numbers, this strategy is much more efficientthan running even the most advanced primality test on each numberindividually.

Page 81: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Our Strategy

We take a similar strategy here: we begin with a table of the originalvalues in the sequence. We then visit all the numbers divisible by 2and divide out a factor of 2. We do the same for each power of 2 up tothe size of the sequence.

We then do the same for every other prime up to our smoothnessbound (43 in our example). In the end, the smooth numbers and onlythe smooth numbers will have become 1. Since we visit less and lesslist elements as the prime factor increases, the overall work is muchless.

Page 82: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Our Strategy

We take a similar strategy here: we begin with a table of the originalvalues in the sequence. We then visit all the numbers divisible by 2and divide out a factor of 2. We do the same for each power of 2 up tothe size of the sequence.

We then do the same for every other prime up to our smoothnessbound (43 in our example). In the end, the smooth numbers and onlythe smooth numbers will have become 1. Since we visit less and lesslist elements as the prime factor increases, the overall work is muchless.

Page 83: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Back to Our Example

For example, here’s our original list from the above example:

318 921 1526 2133 2742 33533966 4581 5198 5817 6438 70617686 8313 8942 9573 10206 10841

11478 12117 12758 13401 14046 1469315342 15993 16646 17301 17958 1861719278 19941 20606 21273 21942 2261323286 23961 24638 25317 25998 2668127366 28053 28742 29433 30126 3082131518 32217 32918 33621 34326 3503335742 36453 37166 37881 38598 39317

Page 84: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Our Example and the Sieve

We visit elements 1, 3, 5, and so on, dividing out 2. Here’s the listafter this first pass is complete:

159 921 763 2133 1371 33531983 4581 2599 5817 3219 70613843 8313 4471 9573 5103 108415739 12117 6379 13401 7023 146937671 15993 8323 17301 8979 186179639 19941 10303 21273 10971 22613

11643 23961 12319 25317 12999 2668113683 28053 14371 29433 15063 3082115759 32217 16459 33621 17163 3503317871 36453 18583 37881 19299 39317

Page 85: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Our Example and the Sieve

Here it is after dividing out the prime factors 3, 5, 7, 11, 13, and 17:

53 307 109 79 457 479661 509 2599 277 1073 706161 163 263 3191 1 10841

1913 577 6379 1489 2341 20992557 1777 1189 5767 2993 18617

1 23 10303 1013 1219 226133881 163 12319 2813 619 266814561 1039 2053 9811 5021 37103 10739 16459 1601 1907 35033851 12151 18583 1403 919 39317

Page 86: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Our Example and the Sieve

We see a couple 1s have already appeared; these are 17-smoothnumbers. When we get all the way up through 43, we have:

53 307 109 79 457 479661 509 113 277 1 30761 163 263 3191 1 293

1913 577 6379 1489 2341 20992557 1777 1 5767 73 18617

1 1 10303 1013 53 226133881 163 12319 97 619 266814561 1039 2053 9811 5021 1103 10739 16459 1601 1907 35033

1 419 18583 61 919 39317

We see several numbers set to 53 or 61; these would be smooth if weraised our bound a little bit.

Page 87: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving Example

This sieving process is where quadratic sieve gets its name from. Thisdrastically decreases the overall work needed to find a sufficientnumber of smooth numbers, making it practical for very largenumbers. This basic implementation could probably handle numbersup to 50-60 digits.

ExampleFactor n = 16843009 using the quadratic sieve algorithm with afactor base of B = {2, 3, 5, 7, 11, 13}.

Page 88: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving Example

This sieving process is where quadratic sieve gets its name from. Thisdrastically decreases the overall work needed to find a sufficientnumber of smooth numbers, making it practical for very largenumbers. This basic implementation could probably handle numbersup to 50-60 digits.

ExampleFactor n = 16843009 using the quadratic sieve algorithm with afactor base of B = {2, 3, 5, 7, 11, 13}.

Page 89: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving Example

First, the nearest square root of n is 4104. We are searching for twoterms of the form a2 − n that are B-smooth and so that the sum of thepowers of these primes is even.

a a2 − n 2 3 5 7 11 134122 147875 0 0 3 1 0 24159 454272 7 1 0 1 0 24187 687960 3 3 1 2 0 14241 1143072 5 6 0 2 0 04497 3380000 5 0 4 0 0 2

Page 90: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving Example

We see that for the last two values of a, the sum of the powers is evenso we have

a1 = 1143072 = 25 · 36 · 50 · 72 · 110 · 130

a2 = 3380000 = 25 · 30 · 54 · 70 · 110 · 132

This gives

4241 · 4497 = 19071777

1143072 · 3380000 = 25 · 33 · 52 · 71 · 110 · 131· = 1965600

Now, we need to find the greatest common factor of the sum anddifference of these two with n = 16843009.

(19071777− 1965600, 16843009) = 257

(19071777 + 1965600, 16843009) = 65537

Page 91: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving Example

We see that for the last two values of a, the sum of the powers is evenso we have

a1 = 1143072 = 25 · 36 · 50 · 72 · 110 · 130

a2 = 3380000 = 25 · 30 · 54 · 70 · 110 · 132

This gives

4241 · 4497 = 19071777

1143072 · 3380000 = 25 · 33 · 52 · 71 · 110 · 131· = 1965600

Now, we need to find the greatest common factor of the sum anddifference of these two with n = 16843009.

(19071777− 1965600, 16843009) = 257

(19071777 + 1965600, 16843009) = 65537

Page 92: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Sieving Example

We see that for the last two values of a, the sum of the powers is evenso we have

a1 = 1143072 = 25 · 36 · 50 · 72 · 110 · 130

a2 = 3380000 = 25 · 30 · 54 · 70 · 110 · 132

This gives

4241 · 4497 = 19071777

1143072 · 3380000 = 25 · 33 · 52 · 71 · 110 · 131· = 1965600

Now, we need to find the greatest common factor of the sum anddifference of these two with n = 16843009.

(19071777− 1965600, 16843009) = 257

(19071777 + 1965600, 16843009) = 65537

Page 93: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Quadratic sieve admits a number of ‘bells and whistles’ todramatically improve its runtime in practice.

The simple row reduction method of Gaussian elimination is not ableto accommodate the very large smoothness bounds needed to factorlarge numbers, which often range in the millions, mostly due to spacelimitations; such matrices, if stored explicitly, would require trillionsof bits.

However, this method is wasteful, because most of the entries in thematrix are zero (they must be; each number has no more than log2nprime factors).

Instead of using an actual two-dimensional array, we can just keep alist for each column that lists the positions of the 1 bits in that column.We then use a method well-suited to reducing sparse matrices such asthe Lanczos algorithm.

Page 94: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Quadratic sieve admits a number of ‘bells and whistles’ todramatically improve its runtime in practice.

The simple row reduction method of Gaussian elimination is not ableto accommodate the very large smoothness bounds needed to factorlarge numbers, which often range in the millions, mostly due to spacelimitations; such matrices, if stored explicitly, would require trillionsof bits.

However, this method is wasteful, because most of the entries in thematrix are zero (they must be; each number has no more than log2nprime factors).

Instead of using an actual two-dimensional array, we can just keep alist for each column that lists the positions of the 1 bits in that column.We then use a method well-suited to reducing sparse matrices such asthe Lanczos algorithm.

Page 95: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Quadratic sieve admits a number of ‘bells and whistles’ todramatically improve its runtime in practice.

The simple row reduction method of Gaussian elimination is not ableto accommodate the very large smoothness bounds needed to factorlarge numbers, which often range in the millions, mostly due to spacelimitations; such matrices, if stored explicitly, would require trillionsof bits.

However, this method is wasteful, because most of the entries in thematrix are zero (they must be; each number has no more than log2nprime factors).

Instead of using an actual two-dimensional array, we can just keep alist for each column that lists the positions of the 1 bits in that column.We then use a method well-suited to reducing sparse matrices such asthe Lanczos algorithm.

Page 96: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Quadratic sieve admits a number of ‘bells and whistles’ todramatically improve its runtime in practice.

The simple row reduction method of Gaussian elimination is not ableto accommodate the very large smoothness bounds needed to factorlarge numbers, which often range in the millions, mostly due to spacelimitations; such matrices, if stored explicitly, would require trillionsof bits.

However, this method is wasteful, because most of the entries in thematrix are zero (they must be; each number has no more than log2nprime factors).

Instead of using an actual two-dimensional array, we can just keep alist for each column that lists the positions of the 1 bits in that column.We then use a method well-suited to reducing sparse matrices such asthe Lanczos algorithm.

Page 97: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Lanczos Algorithm

The Lanczos algorithm is an iterative algorithm devised by CorneliusLanczos that is an adaptation of power methods to find eigenvaluesand eigenvectors of a square matrix or the singular valuedecomposition of a rectangular matrix. It is particularly useful forfinding decompositions of very large sparse matrices. In latentsemantic indexing, for instance, matrices relating millions ofdocuments to hundreds of thousands of terms must be reduced tosingular-value form.

Page 98: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

This still requires a fair amount of space; it’s common to use blockalgorithms that work on small portions of the matrix at one time,storing the rest of the matrix on disk. The matrix step is notoriouslydifficult to parallelize and for large problems is often done on a singlehigh-performance supercomputer.

The most expensive step by far is the sieving, which can requirescanning billions of numbers to locate the needed smooth numbers. Acommon trick is to only track the approximate logarithm of eachnumber, usually in fixed-point arithmetic. Then, when visiting eachnumber, instead of performing an expensive division we only have tosubtract.

Page 99: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

This still requires a fair amount of space; it’s common to use blockalgorithms that work on small portions of the matrix at one time,storing the rest of the matrix on disk. The matrix step is notoriouslydifficult to parallelize and for large problems is often done on a singlehigh-performance supercomputer.

The most expensive step by far is the sieving, which can requirescanning billions of numbers to locate the needed smooth numbers. Acommon trick is to only track the approximate logarithm of eachnumber, usually in fixed-point arithmetic. Then, when visiting eachnumber, instead of performing an expensive division we only have tosubtract.

Page 100: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

This introduces a bit of rounding error into the algorithm, but that’sokay; by rounding consistently in the correct direction, we can ensurethat we don’t miss any smooth numbers and only capture a fewspurious numbers that we can quickly check and reject. Because thelogarithms of small primes are small, and require visiting morenumbers than any others, primes like 2 and 3 are often droppedaltogether.

Page 101: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Another problem is that a2 − n grows fairly quickly; because smallernumbers are more likely to be smooth, we get diminishing returns aswe scan higher in the sequence.

To get around this, we scan values of not just the sequence a2 − n butalso a number of similar sequences such as (Ca + b)2 − n for suitableconstants C, b. This variation is called the multiple polynomialquadratic sieve, since each of these sequences can be seen as thevalues of polynomial in a.

Finally, although the matrix step does not admit simple parallelizationdue to many data dependencies, the sieving step is perfectly suited tomassive parallelization.

Page 102: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Another problem is that a2 − n grows fairly quickly; because smallernumbers are more likely to be smooth, we get diminishing returns aswe scan higher in the sequence.

To get around this, we scan values of not just the sequence a2 − n butalso a number of similar sequences such as (Ca + b)2 − n for suitableconstants C, b. This variation is called the multiple polynomialquadratic sieve, since each of these sequences can be seen as thevalues of polynomial in a.

Finally, although the matrix step does not admit simple parallelizationdue to many data dependencies, the sieving step is perfectly suited tomassive parallelization.

Page 103: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Improvements and Optimizations

Another problem is that a2 − n grows fairly quickly; because smallernumbers are more likely to be smooth, we get diminishing returns aswe scan higher in the sequence.

To get around this, we scan values of not just the sequence a2 − n butalso a number of similar sequences such as (Ca + b)2 − n for suitableconstants C, b. This variation is called the multiple polynomialquadratic sieve, since each of these sequences can be seen as thevalues of polynomial in a.

Finally, although the matrix step does not admit simple parallelizationdue to many data dependencies, the sieving step is perfectly suited tomassive parallelization.

Page 104: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization?

The problem: Given a matrix Am,r, where each of its elements isdenoted aij with 1 ≤ i ≤ m and 1 ≤ j ≤ r, and a matrix Br,n, whereeach of its elements is denoted bij with 1 ≤ i ≤ r, and 1 ≤ j ≤ n, thematrix C resulting from the operation of multiplication of matrices Aand B, C = A× B, is such that each of its elements is denoted ij with1 ≤ i ≤ m and 1 ≤ j ≤ n, and is calculated as follows

cij =

r∑k=1

aikbkj

The number of required operations to multiply A× B is mn(2r − 1).

Page 105: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization?

The problem: Given a matrix Am,r, where each of its elements isdenoted aij with 1 ≤ i ≤ m and 1 ≤ j ≤ r, and a matrix Br,n, whereeach of its elements is denoted bij with 1 ≤ i ≤ r, and 1 ≤ j ≤ n, thematrix C resulting from the operation of multiplication of matrices Aand B, C = A× B, is such that each of its elements is denoted ij with1 ≤ i ≤ m and 1 ≤ j ≤ n, and is calculated as follows

cij =

r∑k=1

aikbkj

The number of required operations to multiply A× B is mn(2r − 1).

Page 106: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization

The idea of parallelization is that we have p parallel processors withdense matrices (not a lot of 0s). So suppose we have two squarematrices A and B of size n.

Here is our process:1 Partition the matrices into p square blocks, where p is the

number of processes available.2 Create a matrix of processes of size p

12 × p

12 so that each process

can maintain a block of matrix A and a block of matrix B.3 Each block is sent to each process, and the copied sub-blocks are

multiplied together and the results are added to the partial resultsin the C sub-blocks.

4 The A sub-blocks are rolled one step to the left and the Bsub-blocks are rolled one step upward.

5 Repeat steps 3 and 4√

p times.

Page 107: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization

The idea of parallelization is that we have p parallel processors withdense matrices (not a lot of 0s). So suppose we have two squarematrices A and B of size n.

Here is our process:1 Partition the matrices into p square blocks, where p is the

number of processes available.

2 Create a matrix of processes of size p12 × p

12 so that each process

can maintain a block of matrix A and a block of matrix B.3 Each block is sent to each process, and the copied sub-blocks are

multiplied together and the results are added to the partial resultsin the C sub-blocks.

4 The A sub-blocks are rolled one step to the left and the Bsub-blocks are rolled one step upward.

5 Repeat steps 3 and 4√

p times.

Page 108: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization

The idea of parallelization is that we have p parallel processors withdense matrices (not a lot of 0s). So suppose we have two squarematrices A and B of size n.

Here is our process:1 Partition the matrices into p square blocks, where p is the

number of processes available.2 Create a matrix of processes of size p

12 × p

12 so that each process

can maintain a block of matrix A and a block of matrix B.

3 Each block is sent to each process, and the copied sub-blocks aremultiplied together and the results are added to the partial resultsin the C sub-blocks.

4 The A sub-blocks are rolled one step to the left and the Bsub-blocks are rolled one step upward.

5 Repeat steps 3 and 4√

p times.

Page 109: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization

The idea of parallelization is that we have p parallel processors withdense matrices (not a lot of 0s). So suppose we have two squarematrices A and B of size n.

Here is our process:1 Partition the matrices into p square blocks, where p is the

number of processes available.2 Create a matrix of processes of size p

12 × p

12 so that each process

can maintain a block of matrix A and a block of matrix B.3 Each block is sent to each process, and the copied sub-blocks are

multiplied together and the results are added to the partial resultsin the C sub-blocks.

4 The A sub-blocks are rolled one step to the left and the Bsub-blocks are rolled one step upward.

5 Repeat steps 3 and 4√

p times.

Page 110: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization

The idea of parallelization is that we have p parallel processors withdense matrices (not a lot of 0s). So suppose we have two squarematrices A and B of size n.

Here is our process:1 Partition the matrices into p square blocks, where p is the

number of processes available.2 Create a matrix of processes of size p

12 × p

12 so that each process

can maintain a block of matrix A and a block of matrix B.3 Each block is sent to each process, and the copied sub-blocks are

multiplied together and the results are added to the partial resultsin the C sub-blocks.

4 The A sub-blocks are rolled one step to the left and the Bsub-blocks are rolled one step upward.

5 Repeat steps 3 and 4√

p times.

Page 111: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

So What Is Parallelization

The idea of parallelization is that we have p parallel processors withdense matrices (not a lot of 0s). So suppose we have two squarematrices A and B of size n.

Here is our process:1 Partition the matrices into p square blocks, where p is the

number of processes available.2 Create a matrix of processes of size p

12 × p

12 so that each process

can maintain a block of matrix A and a block of matrix B.3 Each block is sent to each process, and the copied sub-blocks are

multiplied together and the results are added to the partial resultsin the C sub-blocks.

4 The A sub-blocks are rolled one step to the left and the Bsub-blocks are rolled one step upward.

5 Repeat steps 3 and 4√

p times.

Page 112: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Parallelization Example

ExampleMultiply

A =

2 1 5 30 7 1 69 2 4 43 6 7 2

× B =

6 1 2 34 5 6 51 9 8 -84 0 -8 5

Page 113: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Parallelization Example

Divide the matrices into 4 square blocks as follows:

P0,0 P0,12 1 5 30 7 1 6

P1,0 P1,19 2 4 45 3 7 2

P0,0 P0,16 1 2 34 5 6 5

P1,0 P1,11 9 8 -84 0 -8 5

Now, after the initial alignment, A and B become

2 1 5 30 7 1 6

4 4 9 27 2 5 3

6 1 8 -84 5 -8 5

1 9 2 34 0 6 5

Page 114: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Parallelization Example

Divide the matrices into 4 square blocks as follows:

P0,0 P0,12 1 5 30 7 1 6

P1,0 P1,19 2 4 45 3 7 2

P0,0 P0,16 1 2 34 5 6 5

P1,0 P1,11 9 8 -84 0 -8 5

Now, after the initial alignment, A and B become

2 1 5 30 7 1 6

4 4 9 27 2 5 3

6 1 8 -84 5 -8 5

1 9 2 34 0 6 5

Page 115: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Parallelization Example

So, we get the following:

C0,0 =

[2 10 7

]×[

6 14 5

]=

[16 728 35

]C0,1 =

[5 31 6

]×[

8 -8-8 5

]=

[16 -25-40 22

]C1,0 =

[4 47 2

]×[

1 94 0

]=

[20 3615 63

]C1,1 =

[9 25 3

]×[

2 36 5

]=

[30 3742 39

]

Page 116: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Parallelization Example

Now, shift A one step to the left and B one step up, rotatingappropriately within the matrix.

5 3 2 11 6 0 7

1 9 2 34 0 6 5

9 2 4 45 3 7 2

6 1 8 -84 5 -8 5

Page 117: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Parallelization Example

Now the local matrix multiplication.

C0,0 =

[2 10 7

[6 14 5

]=

[16 728 35

]+

[17 4525 9

]=

[33 5253 44

]C0,1 =

[5 31 6

[8 -8-8 5

]=

[16 -25-40 22

]+

[10 1142 35

]=

[26 -142 57

]C1,0 =

[4 47 2

[1 94 0

]=

[20 3615 63

]+

[62 1942 33

]=

[82 5557 96

]C1,1 =

[9 25 3

[2 36 5

]=

[30 3742 39

]+

[0 -12

40 -46

]=

[30 2582 -7

]

Page 118: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Back To Massive Parallelization

Each processor or machine simply takes a portion of the sequence toscan for smooth numbers by itself, returning the small quantity ofsmooth numbers that it discovers to a central processor. As soon asthe central processor has accumulated enough smooth numbers, itasks all the workers to stop. In the multiple polynomial variant, it’scommon to assign some of the polynomials to each machine.

One peculiar idea for massively parallelizing the sieving step,invented by Adi Shamir, is to use not computers but a speciallyconstructed sieving device based on light emitters and sensors that hecalls TWINKLE. The concept is that we have a light for each primenumber whose intensity is proportional to the logarithm of that prime.Each light turns on just two times every p cycles, corresponding to thetwo square roots of n (mod p). A sensor senses the combined intensityof all the lights together, and if this is close enough to the logarithm ofthe current value, that value is a smooth number candidate.

Page 119: Factoring Large Numbers With Quadratic Sievebtravers.weebly.com/uploads/6/7/2/9/6729909/quadratic_sieve_slides.pdf · algorithm in use today, RSA, rests on the difficulty of factoring

Back To Massive Parallelization

Each processor or machine simply takes a portion of the sequence toscan for smooth numbers by itself, returning the small quantity ofsmooth numbers that it discovers to a central processor. As soon asthe central processor has accumulated enough smooth numbers, itasks all the workers to stop. In the multiple polynomial variant, it’scommon to assign some of the polynomials to each machine.

One peculiar idea for massively parallelizing the sieving step,invented by Adi Shamir, is to use not computers but a speciallyconstructed sieving device based on light emitters and sensors that hecalls TWINKLE. The concept is that we have a light for each primenumber whose intensity is proportional to the logarithm of that prime.Each light turns on just two times every p cycles, corresponding to thetwo square roots of n (mod p). A sensor senses the combined intensityof all the lights together, and if this is close enough to the logarithm ofthe current value, that value is a smooth number candidate.