Folks who know just a little bit about cryptography often
think of cryptography as methods of hiding data from prying
eyes. While this function -- encryption -- is indeed an
important part of cryptography, there are many other aspects
that are equally important. Here are a few that
relate more to proving things about a message than
they do to hiding a message.
Authentication: Prove that a message actually
originates with its claimed originator. Suppose Peggy wishes
to prove she sent a message. Peggy may prove to Victor that
the message comes from her by performing a transformation on
the message that Victor knows only Peggy knows how to perform
(that is, because only Peggy, and maybe Victor, knows the key).
Peggy may send the transformation either instead of or in
addition to M, depending on the protocol.
Integrity: Prove that a message has not been
altered in unauthorized ways. Peggy might demonstrate the integrity of a message
in a number of different ways. The most common means is by using a cryptographic hash
(discussed later). Anyone may perform a cryptographic hash
transformation, in the general case, but Peggy may take
steps to publish the hash on a channel less prone to
tampering than the message channel.
Non-repudiation: Prevent an originator from denying
credit (or blame) for creating or sending a message.
Protocols for accomplishing this goal are a bit complicated,
but the traditional non-digital world has familiar means of
accomplishing the same goal through signatures, notarization,
and presentation of photo ID. Non-repudiation has many
similarities to authentication, but there are also subtle
differences.