Note that there are some explanatory texts on larger screens.

plurals
  1. PORainbow tables as a solution to large prime factoring
    primarykey
    data
    text
    <p>In explanations I've read about public key cryptography, it is said that some large number is come up with by multiplying together 2 extremely large primes. Since factoring the product of large primes is almost impossibly time-consuming, you have security.</p> <p>This seems like a problem that could be trivially solved with rainbow tables. If you know the approximate size of primes used and know there are 2 of them, you could quickly construct a rainbow table. It'd be a mighty large table, but it could be done and the task could be parallelized across hardware.</p> <p>Why are rainbow tables not an effective way to beat public key crypto based on multiplying large primes?</p> <p>Disclaimer: obviously tens of thousands of crazy-smart security conscious people didn't just happen to miss for decades what I thought up in an afternoon. I assume I'm misunderstanding this because I was reading simplified layman explanations (eg: if more than 2 numbers are used) but I don't know enough yet to know where my knowledge gap is.</p> <p><em>Edit:</em> I know "rainbow table" relates to using pre-calculated <em>hashes</em> in a lookup table but the above sounds like a rainbow table attack so I'm using the term here.</p> <hr> <p><em>Edit 2:</em> As noted in the answers, there's no way to store just all of the primes, much less all of their products.</p> <ul> <li><a href="http://www.bennetyee.org/ucsd-pages/Courses/cse127.w03/lec10/index.html" rel="noreferrer">This site</a> says there are about this many 512 bit primes: ((2^511) * 1) / (512 log(2)) = 4.35 × 10<sup>151</sup></li> <li>The <a href="http://en.wikipedia.org/wiki/Sun" rel="noreferrer">mass of the sun</a> is 2 × 10<sup>30</sup> kg or 2 × 10<sup>33</sup> g</li> <li>That's 2.17 × 10<sup>124</sup> primes per gram of the sun.</li> <li>Qty. of 512 bit numbers that can fit in a kilobyte: 1 kb = 1024 bytes = 8192 bits / 512 = 16</li> <li>That can fit in a terabyte: 16*1024*1024*1024 = 1.72 × 10<sup>10</sup></li> <li>Petabyte: 16*1024*1024*1024*1024 = 1.72 × 10<sup>13</sup><br /></li> <li>Exabyte: 16*1024*1024*1024*1024*1024 = 1.72 × 10<sup>16</sup></li> </ul> <p>Even if 1 exabyte weighed 1 gram, we're nowhere close to reaching the 2.17 × 10<sup>124</sup> needed to be able to fit all of these numbers into a hard drive with the mass of the sun</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload