Introduction and 1.1.1
Introduction and 1.1.1
People have always had a fascination with keeping information away from others. As children, many
of us had magic decoder rings for exchanging coded messages with our friends and possibly keeping
secrets from parents, siblings, or teachers. History is filled with examples where people tried to keep
information secret from adversaries. Kings and generals communicated with their troops using basic
cryptographic methods to prevent the enemy from learning sensitive military information. In fact,
Julius Caesar reportedly used a simple cipher, which has been named after him.
As society has evolved, the need for more sophisticated methods of protecting data has increased.
Now, with the information era at hand, the need is more pronounced than ever. As the world becomes
more connected, the demand for information and electronic services is growing, and with the
increased demand comes increased dependency on electronic systems. Already the exchange of
sensitive information, such as credit card numbers, over the Internet is common practice. Protecting
data and electronic systems is crucial to our way of living.
The techniques needed to protect data belong to the field of cryptography. Actually, the subject has
three names, cryptography, cryptography, cryptography which are often used interchangeably.
Technically, however, cryptology is the all-inclusive term for the study of communication over
nonsecure channels, and related problems. The process of designing systems to do this is called
cryptography. Cryptanalysis deals with breaking such systcms. Of course, it is essentially impossible
to do either cryptography or cryptanalysis without having a good understanding of the methods of
both mens.
Often the term coding theory is used to describe cryptography; howover, this can lead to confusion.
Coding theory deals with representing Input information symbols by output symbols called code
symbols. There are three basic applications that coding theory covers: compression, secrecy, mid
error correction. Over the past few decades, the term coding theory has become associated
predominantly with error correcting codes. Coding theory thus studies communication over noisy
channels and how to ensure that the message received is the correct message, as opposed to
cryptography, which protects communication over nonsecure channels.
Although error correcting codes are only o secondary focus of this book, wo should emphasize that,
in any real-world system, error correcting codes arc used in conjunction with encryption, since the
change of a single bit is enough to destroy the message completely in a well-designed cryptosystem.
Modern cryptography is a field that draws heavily upon mathematics, computer science, and
cleverness. This book provides an introduction to the mathematics and protocols needed to make data
transmission and electronic systems secure, along with techniques such as electronic signatures and
secret sharing.
1.1 Secure Communications
In the basic communication scenario, depicted in Figure 1.1, there are two parties, we’ll call them
Alice and Bob, who want to communicate with each other. A third party, Eve, is a potential
eavesdropper.
When Alice wants to send a message, called the plaintext, to Bob, she encrypts it using a method
prearranged with Bob. Usually, the encryption method is assumed to be known to Eve; what keeps
the message secret is a key. When Bob receives the encrypted message, called the ciphertext, he
changes it back to the plaintext using a decryption key.
Eve could have one of the following goals:
1. Read the message.
2. Find the key and thus read all messages encrypted with that key.
3. Corrupt Alice’s message into another message in such a way that Bob will think Alice sent the
altered message.
4. Masquerade as Alice, and thus communicate with Bob even though Bob believes he is
communicating with Alice.
Encryption Key Decryption Key
Plaintext Ciphertext
Eve