3.1. Block Cipher Principles
Most symmetric block encryption algorithms in current use are
based on a structure referred to as a Feistel block cipher [FEIS73]. For that reason, it is
important to examine the design principles of the Feistel cipher. We begin with a comparison of stream
ciphers and block ciphers. Then we discuss the motivation for the Feistel block
cipher structure. Finally, we discuss some of its implications.
Stream Ciphers and Block Ciphers
A stream
cipher is one that encrypts a digital data stream one bit or one byte at
a time. Examples of classical stream ciphers are the autokeyed Vigenère cipher
and the Vernam cipher. A block
cipher is one in which a block of plaintext is treated as a whole and
used to produce a ciphertext block of equal length. Typically, a block size of
64 or 128 bits is used. Using some of the modes of operation explained in Chapter 6, a block cipher can be used to
achieve the same effect as a stream cipher.
Far more effort has gone into analyzing block ciphers. In
general, they seem applicable to a broader range of applications than stream
ciphers. The vast majority of network-based symmetric cryptographic applications
make use of block ciphers. Accordingly, the concern in this chapter, and in our
discussions throughout the book of symmetric encryption, will focus on block
ciphers.
Motivation for the Feistel Cipher Structure
A block cipher operates on a plaintext block of n bits to produce a ciphertext block of n bits. There are 2n possible different plaintext blocks and, for
the encryption to be reversible (i.e., for decryption to be possible), each must
produce a unique ciphertext block. Such a transformation is called reversible,
or nonsingular. The following examples illustrate nonsingular and singular
transformation for n = 2.
Plaintext
|
Ciphertext
|
---|---|
00
|
11
|
01
|
10
|
10
|
00
|
11
|
01
|
Plaintext
|
Ciphertext
|
---|---|
00
|
11
|
01
|
10
|
10
|
01
|
11
|
01
|
In the latter case, a ciphertext of 01 could have been produced
by one of two plaintext blocks. So if we limit ourselves to reversible mappings,
the number of different transformations is 2n!.
Figure 3.1 illustrates
the logic of a general substitution cipher for n
= 4. A 4-bit input produces one of 16 possible input states, which is mapped by
the substitution cipher into a unique one of 16 possible output states, each of
which is represented by 4 ciphertext bits. The encryption and decryption
mappings can be defined by a tabulation, as shown in Table 3.1. This is the most general form of block cipher and can be used to define any reversible mapping
between plaintext and ciphertext. Feistel refers to this as the ideal block cipher, because it allows for the maximum
number of possible encryption mappings from the plaintext block [FEIS75].
Plaintext
|
Ciphertext
|
---|---|
0000
|
1110
|
0001
|
0100
|
0010
|
1101
|
0011
|
0001
|
0100
|
0010
|
0101
|
1111
|
0110
|
1011
|
0111
|
1000
|
1000
|
0011
|
1001
|
1010
|
1010
|
0110
|
1011
|
1100
|
1100
|
0101
|
1101
|
1001
|
1110
|
0000
|
1111
|
0111
|
0000
|
1110
|
0001
|
0011
|
0010
|
0100
|
0011
|
1000
|
0100
|
0001
|
0101
|
1100
|
0110
|
1010
|
0111
|
1111
|
1000
|
0111
|
1001
|
1101
|
1010
|
1001
|
1011
|
0110
|
1100
|
1011
|
1101
|
0010
|
1110
|
0000
|
1111
|
0101
|
But there is a practical problem with the ideal block cipher.
If a small block size, such as n = 4, is used,
then the system is equivalent to a classical substitution cipher. Such systems,
as we have seen, are vulnerable to a statistical analysis of the plaintext. This
weakness is not inherent in the use of a substitution cipher but rather results
from the use of a small block size. If n is
sufficiently large and an arbitrary reversible substitution between plaintext
and ciphertext is allowed, then the statistical characteristics of the source
plaintext are masked to such an extent that this type of cryptanalysis is
infeasible.
An arbitrary reversible substitution cipher (the ideal block
cipher) for a large block size is not practical, however, from an implementation
and performance point of view. For such a transformation, the mapping itself
constitutes the key. Consider again Table
3.1, which defines one particular reversible mapping from plaintext to
ciphertext for n = 4. The mapping can be defined
by the entries in the second column, which show the value of the ciphertext for
each plaintext block. This, in essence, is the key that determines the specific
mapping from among all possible mappings. In this case, using this
straightforward method of defining the key, the required key length is (4 bits)
x (16 rows) = 64 bits. In general, for an n-bit
ideal block cipher, the length of the key defined in this fashion is n x 2n bits.
For a 64-bit block, which is a desirable length to thwart statistical attacks,
the required key length is 64 x 264 = 270 1021bits.
In considering these difficulties, Feistel points out that what
is needed is an approximation to the ideal block cipher system for large n, built up out of components that are easily
realizable [FEIS75].
But before turning to Feistel's approach, let us make one other observation. We
could use the general block substitution cipher but, to make its implementation
tractable, confine ourselves to a subset of the possible reversible mappings.
For example, suppose we define the mapping in terms of a set of linear
equations. In the case of n = 4, we have
y1
|
= k11x1 + k12x2 + k13x3 + k14x4
|
y2
|
= k21x1 + k22x2 + k23x3 + k24x4
|
y3
|
= k31x1 + k32x2 + k33x3 + k34x4
|
y4
|
= k41x1 + k42x2 + k43x3 + k44x4
|
where the xi are the
four binary digits of the plaintext block, the yi are the four binary digits of the
ciphertext block, the kij are the
binary coefficients, and arithmetic is mod 2. The key size is just n2, in this case 16 bits. The danger with
this kind of formulation is that it may be vulnerable to cryptanalysis by an
attacker that is aware of the structure of the algorithm. In this example, what
we have is essentially the Hill cipher discussed in Chapter 2, applied to binary data rather than
characters. As we saw in Chapter 2, a
simple linear system such as this is quite vulnerable.
No comments:
Post a Comment