For centuries, mathematical progress has followed a two-process cycle; defining a problem, then proving a solution. The emphasis here should be on proving, there are many problems for which many solutions have been conjectured, but none have yet been proven. These problems are considered unsolved, and for mathematical work to advance with any level of confidence, mathematicians must be completely certain that what they are working with is true.
One unsolved problem that could either make certain that the methods we use to secure confidential data are safe forever, or expose a vulnerability in almost every single “secure” transaction is known as the P vs NP problem. The P vs NP problem, originally proposed by John Nash in 1950, questions whether any problem whose solution can be verified in polynomial time can also be solved in polynomial time. Polynomial time is bounded by a polynomial expression such as nk such that as n increases, the value of the function increases polynomially. Nondeterministic polynomial time is not bounded, making it possible that as n gets increasingly large it is impossible to determine the value of the function. Problems that can be solved in polynomial time are represented by P, and those that cannot be NP.
One example of a P vs NP problem is finding prime roots of large numbers. To find the prime roots of a large number, one must attempt to divide it by each prime root with a lesser value. This requires many computations, and as the number of digits in the number increases, it becomes impossible for even the most powerful computers to find the solution. However, it is very easy to check the solution, only requiring the numbers to be multiplied together. This is why it is base for modern encryption, because it is easy to solve if you have the right number, but impossible if you do not.