Now that we have seen a few simple examples of ciphers, it is good to formalize what a cipher is [1].
Definition (cryptosystem)
A cryptosystem (or cipher) can be defined as a quintuple where
- is the set of plaintexts
- is the set of ciphertexts
- is the set of keys
- is the encryption function
- is the decryption function
Let and . We will write and to denote and , i.e., the encryption and decryption under key of and , respectively.
We require that
- , i.e., decrypting a ciphertext with the right key gives the original plaintext;
- computing or given a ciphertext is infeasible (so complex that cannot be done in a reasonable time).
Example (shift cipher)
The variant of Caesar cipher above can be formally defined by letting , meaning that we encode letters as numbers from 0 to 25, and we use arithmetic modulo 26. It is now easy to formalize encryption and decryption as
It is trivial to see that the first property holds: . The second property does not hold because of the above mentioned brute force attack on the key space.
Example (substitution cipher)
We have and with
The first property trivially holds: . The second property does not hold because of the above mentioned statistical attack.
References
[1] D. R. Stinson, Cryptography, Theory and Practice, CRC Press