S. A. Cook and Leonid Levin, Proceedings of the 3rd Annual ACM Symposium on Theory of Computing (1971), pp. 151–158.
P is the class of problems whose solution can be found in polynomial time. NP is the class of problems whose solution can be found in polynomial time with a non-deterministic algorithm or, equivalently, whose solution (if it exists) can be deterministically verified in polynomial time. Naturally, any problem in P is also in NP. The P versus NP question is whether NP is also a subset of P, and hence whether the classes are equal. One can see the question as a specific case of the problem in proving lower bounds for computational problems.
If the classes are equal then we can solve many problems that are currently considered intractable. If they are not, then NP-complete problems are problems that are probably hard. P=NP would imply that one-way functions do not exist (see below).
Though the question is far from being settled, most experts believe that the classes are different.
One-way functions are easy to compute but hard to invert. Although there are several candidates for which no good (i.e. quick) reverse algorithms are currently known, it has not yet been proven that any function exists for which no such reverse algorithms exist.
If one-way functions do not exist then secure public key cryptography is impossible. Their existence would imply that many complexity classes are not learnable, and that P≠NP. P≠NP does not imply that one-way functions exist, however.
It is assumed but unproven that they do exist. Several encryption systems are based on the assumption that modular exponentiation is a one-way function.