If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains ***.kastatic.org** and ***.kasandbox.org** are unblocked.

Main content

Current time:0:00Total duration:2:58

- [Voiceover] Over 2,000
years ago, Euclid showed every number has exactly
one prime factorization, which we can think of as a secret key. It turns out that prime factorization is a fundamentally hard problem. Let's clarify what we
mean by "easy" and "hard", by introducing what's
called "time complexity". We have all multiplied numbers before, and each of us our own rules for doing so, in order to speed things up. If we program a computer
to multiply numbers, it can do so much faster
than any human can. Here is a graph that
shows the time required for a computer to multiply two numbers. And, of course, the time
required to find the answer increases as the numbers get larger. Notice that the computation time stays well under one second, even with fairly large numbers. Therefore, it is "easy" to perform. Now, compare this to prime factorization. If someone told you to find
the prime factorization of 589, you will notice the problem feels harder. No matter what your strategy, it will require some trial and error until you find a number
which evenly divides 589. After some struggle, you will find 19 times 31 is the prime factorization. If you were told to find
the prime factorization of 437, 231, you'd probably give up and get a computer to help you. This works fine for small numbers, though if we try to get a computer to factor larger and larger numbers, there is a runaway effect. The time needed to
perform the calculations increases rapidly, as there
are more steps involved. As the numbers grow, the
computer needs minutes, then hours, and eventually it will require hundreds, or thousands of
years to factor huge numbers. We therefore say it is a "hard" problem due to this growth rate of
time needed to solve it. So factorization is what Cocks used to build the trapdoor solution. Step one, imagine Alice randomly generated a prime number over 150 digits long; call this "p one". Then, a second randon prime number roughly the same size; call this "p two". She then multiplies
these two primes together to get a composite number, N, which is over 300 digits long. This multiplication step
would take less than second; we could even do it in a web browser. Then, she takes the factorization of N, p one times p two, and hides it. Now, if she gave N to anyone else, they would have to have a computer running for years to find the solution. Step two, Cocks needed to find a function which depends on knowing
the factorization of N. For this, he looked back
to work done in 1760 by Swiss mathematician, Leonhard Euler.