<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx</link><description>Today I'm going to talk about how the quadratic sieve factoring algorithm works, giving a comprehensive description assuming knowledge of only basic university-level mathematics. The foundation of the most popular public-key cryptography algorithm in</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#640581</link><pubDate>Wed, 21 Jun 2006 02:25:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:640581</guid><dc:creator>Adi Oltean</dc:creator><description>Wonderful post, as usual. </description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#641742</link><pubDate>Wed, 21 Jun 2006 20:13:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:641742</guid><dc:creator>Seshagiri</dc:creator><description>I do not have any comments on this article but just wanted to say that I greatly appreciate your articles. I have subscribed to your site's rss feed and eagerly wait for new articles. The previous two on image compression and color quantization were very useful to me. 
&lt;br&gt;
&lt;br&gt;Seshagiri (HP)</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#642759</link><pubDate>Thu, 22 Jun 2006 14:34:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:642759</guid><dc:creator>olsson</dc:creator><description>Great post as usual. 
&lt;br&gt;
&lt;br&gt;And also far over my head, which I guess is part of the brilliance. Very inspiring!</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#643117</link><pubDate>Thu, 22 Jun 2006 21:35:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:643117</guid><dc:creator>dcoetzee</dc:creator><description>Thanks for your positive feedback, everyone. I assure you that incomprehensibility was not one of my goals (in this case :-). If there's anything I can do to help clarify this discussion or answer any specific questions, I'd appreciate your feedback. I do believe the quadratic sieve algorithm is accessible to everyone interested in algorithms if just explained in the right way.</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#728383</link><pubDate>Mon, 28 Aug 2006 17:27:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:728383</guid><dc:creator>Claude Bissonnette</dc:creator><description>Hi, thanks for your article, qs is something that I whish to learn for a while ... &amp;nbsp;While reading, two questions comes to me and I would like you to explain more in detail if you can. &amp;nbsp;&lt;br&gt;&lt;br&gt;1) I still can't figure out how to find the B-smooth bound for a given n. &amp;nbsp;Is there a formula or guide to tell us how to establish the bound or do we have to guess it?&lt;br&gt;&lt;br&gt;2) How long do we have to search for smooth numbers? &amp;nbsp;What would be the quantities of smooth numbers needed in order to solve the matrix? &amp;nbsp;In you article you wrote &amp;quot;... we just need more numbers than prime factors ... &amp;quot; Is it the answer to my question?&lt;br&gt;&lt;br&gt;Claude Bissonnette &amp;nbsp;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#728720</link><pubDate>Mon, 28 Aug 2006 21:27:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:728720</guid><dc:creator>dcoetzee</dc:creator><description>Hi Claude. Those are good questions. To answer them:&lt;br&gt;&lt;br&gt;1) In the mathematical theory behind quadratic sieve, B must be chosen carefully according to a specific formula in terms of n in order to guarantee the best asymptotic running time. Carl Pomerance gives this formula:&lt;br&gt;&lt;br&gt;B = exp((1/2 + o(1))(log n log log n)^(1/2))&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://www.math.leidenuniv.nl/~reinier/ant/sieving.pdf"&gt;http://www.math.leidenuniv.nl/~reinier/ant/sieving.pdf&lt;/a&gt;&lt;br&gt;&lt;br&gt;In practice, though, the B is usually somewhat less than this &amp;quot;ideal&amp;quot; B, because the matrix reduction step (benefitting from small B) is much more memory-consuming and much more difficult to parallelize than the search for smooth numbers (benefitting form large B).&lt;br&gt;&lt;br&gt;2) In order to ensure for certain that we will find a nontrivial zero, linear algebra requires that the matrix have more rows than columns - in other words, that we have more smooth numbers than prime numbers less than or equal to B. In practice, it's typical to find a nontrivial zero with quite a few less factors, and it can be profitable to attempt the reduction as soon as a heuristically &amp;quot;good&amp;quot; number of smooth numbers are found. Conversely, sometimes the matrix will only have one solution, and that solution will be trivial; in this case, a good way to look for a nontrivial solution is to just find a few more smooth numbers, which (hopefully) expands the dimension of the null space.&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#730297</link><pubDate>Tue, 29 Aug 2006 20:33:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:730297</guid><dc:creator>Adam</dc:creator><description>Do you have any .NET/ VB /C# code that implements Quadratic Sieve ?</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#734315</link><pubDate>Fri, 01 Sep 2006 01:43:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:734315</guid><dc:creator>dcoetzee</dc:creator><description>Hi Adam, that's a good question. It's rare to find an implementation of quadratic sieve in a high-level language because it depends on an efficient implementation of arbitrary-precision integers and reduction of sparse 0/1 matrices, which are easier to pull off in C, C++, or assembly language. I have no knowledge of such implementations, but it wouldn't be terribly difficult to write a basic one. Writing one with all the &amp;quot;bells and whistles&amp;quot; would be more involved and a nontrivial project.</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#3691612</link><pubDate>Wed, 04 Jul 2007 19:36:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3691612</guid><dc:creator>Tom</dc:creator><description>&lt;p&gt;In your explanation of reducing the matrix, you say that one needs &amp;quot;more columns than rows&amp;quot; to ensure a zero row. &amp;nbsp;This is incorrect (and probably just a typo), as you state in one of your responses the correct answer that you need more rows than columns. &amp;nbsp;I just thought you might want to make the correction.&lt;/p&gt;
&lt;p&gt;Also, thank you for a decent low-level description of the Quadratic Sieve and its improvements.&lt;/p&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#6460044</link><pubDate>Thu, 22 Nov 2007 00:45:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6460044</guid><dc:creator>epsi</dc:creator><description>&lt;p&gt;Thanks for your explanation of QS. It was very useful. I don't know why even in textbooks, authors manage to drown the fish as we say.&lt;/p&gt;
&lt;p&gt;I came up with a variant of Fermat's method that does not require incrementing a by 1. I only consider numbers of the form 6K+1 and 6k-1. Any number that is not of that form is either divisible by 2 or by 3. Factors of 2 and 3 can be easily extracted I assume leaving only a final number of the form 6k+/-1.&lt;/p&gt;
&lt;p&gt;Anyway, I am going to see if I can use the property of making a2-n values a square S.&lt;/p&gt;
&lt;p&gt;It's the only thing I wasn't aware of.&lt;/p&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#8527158</link><pubDate>Wed, 21 May 2008 11:55:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8527158</guid><dc:creator>Noelyuan</dc:creator><description>&lt;p&gt;Thanks a billion! &amp;nbsp;This article considerably enhance my understanding toward Quadratic Sieve.&lt;/p&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#8563616</link><pubDate>Fri, 30 May 2008 19:28:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8563616</guid><dc:creator>Greg Johnson</dc:creator><description>&lt;p&gt;I ran across this article while looking at the wquation for a qudratic reduction curve. I am not a mathematition in any way but need to calculate a cure for an application. I thought you may be able to answer a question.&lt;/p&gt;
&lt;p&gt;I an using the equation y= ax2 + bx + c (sorry couldn't do exponent). In this equation I have determined the meaining of x and c but not a nad b. Is there a culculation for a and b?&lt;/p&gt;
&lt;p&gt;Any help would be apptrciated&lt;/p&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#8567503</link><pubDate>Sun, 01 Jun 2008 14:28:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8567503</guid><dc:creator>mohan srinivasan</dc:creator><description>&lt;p&gt;Excellent way to explain to a layman.&lt;/p&gt;
&lt;p&gt;I found it very enlightening. brings out the basics very clearly.&lt;/p&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#8782307</link><pubDate>Mon, 28 Jul 2008 07:02:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8782307</guid><dc:creator>mark mcgoveran</dc:creator><description>&lt;p&gt;I have read this six times and the light comes on a little brighter each time!! I am doing some number theroy stuff as a hobby, and this diesn't seem to apply to what I am doing at all but it is great to attempt to understand it.&lt;/p&gt;</description></item><item><title>Xun&amp;#8217;s blog  &amp;raquo; Blog Archive   &amp;raquo; ????????????</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#9008527</link><pubDate>Tue, 21 Oct 2008 05:11:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9008527</guid><dc:creator>Xun&amp;#8217;s blog  &amp;raquo; Blog Archive   &amp;raquo; ????????????</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://uthz.com/2008/10/20/%e7%b4%a0%e6%95%b0%e5%88%86%e8%a7%a3/"&gt;http://uthz.com/2008/10/20/%e7%b4%a0%e6%95%b0%e5%88%86%e8%a7%a3/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title> Developing for Developers Factoring large numbers with quadratic sieve | Outdoor Ceiling Fans</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#9667571</link><pubDate>Sun, 31 May 2009 10:09:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9667571</guid><dc:creator> Developing for Developers Factoring large numbers with quadratic sieve | Outdoor Ceiling Fans</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://outdoorceilingfansite.info/story.php?id=1072"&gt;http://outdoorceilingfansite.info/story.php?id=1072&lt;/a&gt;&lt;/p&gt;
</description></item><item><title> Developing for Developers Factoring large numbers with quadratic sieve | patio set</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#9771647</link><pubDate>Thu, 18 Jun 2009 05:07:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9771647</guid><dc:creator> Developing for Developers Factoring large numbers with quadratic sieve | patio set</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://patiosetsite.info/story.php?id=674"&gt;http://patiosetsite.info/story.php?id=674&lt;/a&gt;&lt;/p&gt;
</description></item><item><title> Developing for Developers Factoring large numbers with quadratic sieve | storage bench</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#9782191</link><pubDate>Fri, 19 Jun 2009 10:45:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9782191</guid><dc:creator> Developing for Developers Factoring large numbers with quadratic sieve | storage bench</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://thestoragebench.info/story.php?id=5411"&gt;http://thestoragebench.info/story.php?id=5411&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#9871302</link><pubDate>Sun, 16 Aug 2009 02:43:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9871302</guid><dc:creator>Lieven van der Heide</dc:creator><description>&lt;p&gt;Maybe this was intended to be obvious from the context, but note that raising a number to (p−1)/2 to test if it's a quadratic residue only works if p is prime. For non prime modulus, you have to raise to totient(p) / 2.&lt;/p&gt;</description></item><item><title>re: Factoring large numbers with quadratic sieve</title><link>http://blogs.msdn.com/devdev/archive/2006/06/19/637332.aspx#9871648</link><pubDate>Sun, 16 Aug 2009 17:34:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9871648</guid><dc:creator>Lieven van der Heide</dc:creator><description>&lt;p&gt;Actually, ignore the last sentence in my previous post, as I was confused with something else:)&lt;/p&gt;</description></item></channel></rss>