Compromised entry guards rejecting safe circuits (was Re: OSI 1-3 attack on Tor? in it.wikipedia)
Ben Wilhelm
zorba-tor at pavlovian.net
Sat Feb 16 18:39:00 UTC 2008
Anon Mus wrote:
> A fully global networked array of prime number testers, prime numbers
> being the underlying basis for your public key encryption technology.
>
> 1 million decimal digit long primes achieved, the search for 10 million
>
> digit primes underway.
>
> http://en.wikipedia.org/wiki/Great_Internet_Mersenne_Prime_Search
>
> http://mersenne.org/primenet/
>
> " The virtual machine's sustained throughput
> <http://mersenne.org/ips/stats.html>* is currently *29479 billion
> floating point operations per second* (gigaflops), or 2448.9 CPU years
> (Pentium 90Mhz) computing time per day. For the testing of Mersenne
> numbers, this is equivalent to 1052 Cray T916 supercomputers"
>
> Take a look at just which org is offering the $100,000 prize !!! (In
> the
> para. headed by "*v22.12 Mersenne Research Software Released")*
>
> http://mersenne.org/ips/index.html#contest
>
> This project went live in 1997 and the CM5 (
> http://en.wikipedia.org/wiki/FROSTBURG ) was phased out in 1999 .. you
> decide.
>
> Makes 512 bit prime location and storage look like a walk in the park.
You're suffering from several very serious misconceptions.
First off, the Mersenne primality testing network is designed to test
prime numbers of a very specific type, namely 2^n-1. It turns out that
you can test primality for those numbers in a much more efficient manner
than for general primes. The Mersenne algorithm is useless for general
primes, and virtually every prime used in modern cryptography is not
going to be a Mersenne prime.
Second, merely testing to see if something is prime is not isn't
particularly helpful in breaking modern cryptography. You already know
that the public key isn't a prime (since it's the product of two private
keys) and you also already know that the private keys are prime (since
that's necessary for the algorithm to function.) What you'd need to do
in order to derive the private keys from a public key is to *factor* an
extremely large number with no convenient properties. This is an
entirely different issue from mere primality testing.
Without major breakthroughs in number factoring, I seem to remember it's
actually provable that modern public keys literally cannot be factored
within the heat death of the universe. As in, "if you turned every atom
of the universe into energy, and used it to power a universe-sized
supercomputer which reaches the theoretical limits of efficiency, you
would not be done factoring a single public key by the time you ran out
of energy". Unless you want to claim that the US government is actually
*more powerful* than this, any number of supercomputers and databases
they might have is completely irrelevant.
Now, if you do want to keep on with the "the government is all-powerful
and can corrupt Tor installations easily", there's a few easy tactics
you can use.
First, you can claim that the US governmenet has come up with a
factoring breakthrough that makes factoring - and thus far, far easier.
There's certainly nothing we've discovered yet that proves this is
impossible. Of course, there's no evidence for it being possible either.
Second, private keys are only as secure as they system they are stored
on. Much more plausibly, you could claim that the US government has
backdoors into most (if not all) modern OSes, including the ones used to
generate Tor's directory server private keys. If the government got the
private keys that way there would be, of course, no barrier to them
intercepting Tor communications in exactly the way you claim.
But claiming that the government has huge datacenters that derive public
keys from private keys is simply impossible. The math doesn't add up.
Now for a bit of hard math, just to demonstrate that you need to think
about your numbers a bit further:
The density of prime numbers can be approximated as 1/log(N), as you've
mentioned. This means, for 256-binary-digit primes, the density is
approximately 1/log(2^256) or 0.012976. There are 2^255 (that's about
5.7896 * 10^76) 256-digit numbers, therefore we can assume that there
are approximately 1/log(2^256) * 2^255 primes in that area.
This is approximately 7.5127 * 10^74 primes.
If we assume we can store each prime number on a single atom of hydrogen
(this is obviously a hilarious overestimation of storage density, but
bear with me) we can store 6.02214 * 10^23 prime numbers in one gram of
hydrogen. Thus we will need 1.2475 * 10^51 grams in order to store our
"prime database". The Sun masses approximately 1.98892 * 10^33 grams, so
we'll need the hydrogen of approximately 627 thousand million million
suns merely to store a list of all the 256-digit prime numbers.
If Tor uses 512-bit keys then we're approximately seventy orders of
magnitude too small, however.
(That was actually kind of fun to work out.)
-Ben
More information about the tor-talk
mailing list