Cryptography Reference
In-Depth Information
Chapter 4
Block Ciphers
So far, we have covered basic mathematics for studying encryption algorithms and even learned how to use sev-
eral forms of asymmetric algorithms (ones that usually have a split key, a private and a public key). Before
progressing further into modern symmetric algorithms (ones where both parties share the same key), we need to
have an overview of the different forms of block ciphers.
To review, a block cipher is one that takes more than one character (or bit) at a time, processes them together
(either encryption or decryption), and outputs another block. A block usually consists of a contiguous set of bits
that is a power of 2 in size; common sizes are 32, 64, 128, and 256 bits. (A block size of 8 or 16 bits would pos-
sibly mean that it is not so much a stream cipher, but more just a character-for-character cipher, like we studied
earlier.)
The simplest example of a block cipher is the columnar transposition cipher studied above. However, colum-
nar transposition ciphers are based on character transformations and have variable block size, depending on the
column size chosen. The ciphers studied from here on out are used in digital computers and thus will normally
have bit operations.
Before the 20th century, people normally wanted to send messages consisting of text. This required operations
on letters and blocks of letters, since these messages were written, either by hand or perhaps type; thus, the tools
and techniques of cryptography were focused on letters and blocks of letters. In the modern age, we are con-
cerned with digital information, such as text files, audio, video, and software, typically transmitted on computers
or computer-like devices (e.g., phones, ATMs). The standard way to represent these forms of data is in bits, bytes,
and words.
The following section presents a quick review of the basic building blocks of modern cryptography, such as
bits and bytes. The rest of the chapter is devoted to more complicated structures of modern ciphers that we need
to understand, so that we can break them in further chapters. I also present the inner workings of a few of the
most popular targets for modern cryptanalysis (because of their widespread use), such as DES and AES.
This chapter is not an exhaustive study of modern cryptography. There are many good topics on cryptography:
the building of ciphers, as well as tools and techniques for doing so [11, 16]. Here, we wish to understand the
basic structure of most ciphers, especially related to how we can manipulate those structures in later chapters.
4.1 Operations on Bits, Bytes, Words
A bit , as seen above but not quite defined, is a binary digit that is either a 0 or a 1. The standard byte is composed
of 8 contiguous bits, representing values 0 through 255 (assuming we are only concerned with non-negative in-
tegers). When writing a byte in terms of its 8 bits, we write them as we do with normal numbers in decimal
Search WWH ::




Custom Search