On Sat June 6 2009, jaze lee wrote:
> 
> i  still not understand the problem. although i don''t get the result.
> 

Q1: Why is this problem "hard" - as in: "computationally hard" ?

A1: There are two many number trials (computations) required in a 
"cryptographically hard" number.

True, for any brute force approach.

My apologies in advance to any and all mathematicians reading this... ;)

Q2: But is it all that hard for something other than "brute force"?
Q3: Where did that "approximately 300 decimal digits" come from?

Actually, 10^316 is the better approximation of "cryptographically hard"
as will be seen shortly.

Hyp1: We want to give up on any "try each number computationally" (brute force).

Q4: If we don't try all numbers (in a range), how do we know when (if)
we have found all of the prime numbers in that range?

We can throw out the obvious and those that violate the definition of prime.
Numbers divisible by 1 don't matter - that divisor is allowed by definition.
Like, all even numbers (they are divisible by 2) -

DAQ1: How many integer numbers are there?  (an uncountable value)
DAQ2: How many after we throw away all the even ones?  (an uncountable value)

Obviously, this isn't leading to a simplification of the problem; re-think...
List the first few prime numbers, just so they are in front of us:
1, 2, 3, 5, 7, 11, 13 ... to (an uncountable value - see: DAQ1 & DAQ2)

Q5: Is there some way to know how many prime numbers there are, less than x?
Ans: Yes, several of them - within limitations.
We know from above that there must be at least one prime number between
13 (the largest we know of) and twice that number (26).

If we know that it is not practical to test each number, then whatever means
we use, we have to know when to stop trying (because we found them all).

Enter here, the: "Prime Number Theorem" (google it).
and the "prime counting function" [I'll write: pc(x)].
The first approximation found for pc(x) was: x div (Ln(x)
Carl Gauss found a 'better' approximation for pc(x) was: Li(x)

So now our problem is: find all primes between 13..26, stop when we have
found: pc(26) - pc(13) new primes.
Use whatever search and trial method you like - with modern 32bit and 64bit
integer machines common, you can have a lot of fun finding primes and learning
ways to search for them.  You know you could try a modified, binary search for 
one.

Q6: But will this approach always work?
A6: No.  (I almost had you, didn't I?)
Google: "Skewes' number"

That is the smallest, natural, number for which: pc(x) is approximately: Li(x) 
is false.
In fact, pc(x) > Li(x) is true (by definition of a Skewes Number).

So if we can't pre-determine how many prime numbers there is in the range we are
considering, how do we know when to stop looking?

Modern, computerized, studies place the smallest number for which pc(x) > Li(x)
is true at about 1.397*10^316.

A1..5: One workable (layman's) definition of "cryptographically hard" (10^316).

I.E: Any method you come up with for your prime-finding will fail, since you
don't know how many primes there are in that range, you don't know when to
stop "prime-finding", hence you have to test them all (brute force, again).
And we are already agreed that brute force is not practical.

Hope this helps (and that true mathematicians don't black-ball me from the ml).

Mike




______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to