Chapter 3
Symmetric Key Crypto
The chief forms of beauty are order and symmetry…
—Aristotle
“You boil it in sawdust: you salt it in glue:You condense it with locusts and tape:Still keeping one principal object in view—To preserve its symmetrical shape.”
—Lewis Carroll, The Hunting of the Snark
3.1 Introduction
In this chapter, we discuss the two branches of the symmetric key crypto family tree: stream ciphers and block ciphers. Stream ciphers generalize the idea of a one-time pad, except that we trade provable security for a relatively small (and manageable) key. The key is stretched into a long stream of bits, which is then used just like a one-time pad. Like their one-time pad brethren, stream ciphers employ (in Shannon’s terminology) confusion only.
Block ciphers can be viewed as the modern successors to the classic code-book ciphers, where the key determines the codebook. The internal workings of block cipher algorithms can be fairly intimidating, so it is useful to keep in mind that a block cipher is really just an “electronic” version of a codebook. Internally, block ciphers employ both confusion and diffusion.
We’ll take a fairly close look at two stream cipher algorithms, A5/1 and RC4, both of which have been widely deployed. The A5/1 algorithm (used in GSM cell phones) is a good representative of a large class of stream ciphers that are based in hardware. RC4 is used in many places, including the SSL and WEP protocols. RC4 is virtually unique among stream ciphers since ...