In 1975, Whitfield Diffie and Martin Hellman proposed a
different sort of relationship between encryption and decryption
keys. What if encryption and decryption were performed using
two different, but related, keys? The consequences turned out
to be quite radical. What we get is what is known as
"public-key" or "asymmetric" algorithms.
The previous section of this tutorial discussed the general
concept of public-key encryption. Here,
we will hop right into a look at some actual public-key
algorithms.
The most popular public-key algorithm by far
is called RSA (after its creators, Ronald L. Rivest,
Adi Shamir, and Leonard M. Adleman). For years,
the only real hindrance to RSA's even more widespread use
was its patent status; however, that patent recently
expired, and the algorithm is now in the public-domain. The
El Gamal scheme runs a somewhat distant second and is based
on the difficulty of calculating discrete logarithms in a
finite field. RSA is based on the difficulty of factoring,
and will be the only public-key algorithm discussed in
greater detail in this tutorial.