cryptography

Cryptography is the science of encoding and decoding messages so that they are only understood by intended senders and recipients.

Informally, the basic ingredients in cryptography consist of

1.

An alphabetΣ. A word over Σ is called a plaintext or cleartext. The set M:=Σ* of all plaintexts is called the message space.

2.

An alphabet Δ. A word over Δ is called a ciphertext or cryptotext. The set C:=Δ* of all ciphertexts is called the ciphertext space.

3.

A set K called the key space, such that each k∈K, called a key, determines functionsek:M→C and dk:C→M called encryption function and decryption function respectively. It is generally required that dk∘ek=1M (and usually ek∘dk=1C so that ek and dk are inverses of one another). The pair (ek,dk) is usually called a key pair.

The triple (M,C,K) is called a cryptosystem.

Given a cryptosystem, one generally wants both ek and dk to be easily computable, so that encryption by the sender and decryption by the intended receiver can be done effortlessly. For example, if A were to send B an encrypted message, A needs to be able to easily encrypt a plaintext u into a ciphertext v=ek⁢(u). Upon receiving v, the intended receiver B needs to be able to easily decrypt v into plaintext u=dk⁢(v). On the other hand, one also wants the task of recovering the plaintext from the ciphertext very difficult, or intractible, without knowing the decryption functions dk. For example, if an eavesdropper C ever gets hold of v, he/she will have a very hard time recovering u without knowing dk, sometimes even in the presence of knowing ek.

Here, the adjectives “easy”, “difficult”, “intractible” are measured in terms of the complexity involved in the computations. For example, “easy” could mean that the time involved in the computations depends linearly on the length of the input u (hopefully with a small coefficient), whereas “difficult” could mean the dependence be exponential instead. A function f such that it is easy to compute f⁢(u) given u but very hard to find u given f⁢(u) is usually called a one-way function. For example, f⁢(m,n)=m⁢n where m,n are primes, is one-way, or nearly so. It is easy to multiply, but very hard to factor, particularly when both m and n are large.

The study of cryptogrpahy thus can be loosely broken up into two main branches: the construction of a good cryptosystem (meaning that the encryption functions should be one-way, and the decryption functions should be easy to compute), and the breaking of a ciphertext in some given setting (for example, where the encryption functions are known). The latter of the two branches is also known as cryptanalysis.