hddd123456789 said:
From what I gather, the very strength of RSA is based on the difficulty in determining the two prime factors that multiply together to produce an arbitrarily large number. And by arbitrarily large, I mean a number that might have several hundred digits, or more. To find which two primes are factors would require one to determine whether the numbers we are looking at is prime or not. And if the prime factors are in themselves large enough, then no computer can determine this in a useful amount of time.
Determining whether a number is prime can be efficiently computed using
AKS but, as you allude to, identifying the prime factors for an n-bit number, requires potentially checking all 2
n-1 possible divisors - which is not feasible for large numbers.
However, there may well be a strategy by which a number may be factored in n
c operations for some constant c - it's an open question. An efficient factoring algorithm would be quite a significant achievement in the field of Computer Science (and quite possibly a national threat).
It might interest you that there is another computational problem that is also not known to be efficiently solvable,
Graph Isomorphism, which asks whether two graphs of n nodes are essentially the same graph.
Graph Isomorphism and Integer Factorization sit in the same "unknown spot", between the complexity classes
P and
NP-Complete, not known to belong to either one.
These open questions in Computer Science are a lot of fun to think about if you enjoy a good puzzle - why can't we determine whether two graphs are the same in n
2 operations?