Design of Function F
The heart of a Feistel block cipher is the function F. As we
have seen, in DES, this function relies on the use of S-boxes. This is also the
case for most other symmetric block ciphers, as we shall see in Chapter 4. However, we can make some general comments
about the criteria for designing F. After that, we look specifically at S-box
design.
Design Criteria for F
The function F provides the element of confusion in a Feistel
cipher. Thus, it must be difficult to "unscramble" the substitution performed by
F. One obvious criterion is that F be nonlinear, as we discussed previously. The
more nonlinear F, the more difficult any type of cryptanalysis will be. There
are several measures of nonlinearity, which are beyond the scope of this book.
In rough terms, the more difficult it is to approximate F by a set of linear
equations, the more nonlinear F is.
Several other criteria should be considered in designing F. We
would like the algorithm to have good avalanche properties. Recall that, in
general, this means that a change in one bit of the input should produce a
change in many bits of the output. A more stringent version of this is the strict avalanche criterion (SAC) [WEBS86], which states that any output
bit j of an S-box should change with probability
1/2 when any single input bit i is inverted for
all i, j. Although
SAC is expressed in terms of S-boxes, a similar criterion could be applied to F
as a whole. This is important when considering designs that do not include
S-boxes.
Another criterion proposed in [WEBS86] is the bit independence criterion (BIC), which states that
output bits j and k should change independently when any single input bit
i is inverted, for all i, j, and k. The SAC and BIC criteria appear to strengthen the
effectiveness of the confusion function.
S-Box Design
One of the most intense areas of research in the field of
symmetric block ciphers is that of S-box design. The papers are almost too
numerous to count.[10] Here we mention some general principles. In
essence, we would like any change to the input vector to an S-box to result in
random-looking changes to the output. The relationship should be nonlinear and
difficult to approximate with linear functions.
One obvious characteristic of the S-box is its size. An n x m S-box has n input bits and m
output bits. DES has 6 x 4 S-boxes. Blowfish, described in Chapter 6, has 8 x 32 S-boxes. Larger S-boxes, by and
large, are more resistant to differential and linear cryptanalysis [SCHN96]. On the other
hand, the larger the dimension n, the
(exponentially) larger the lookup table. Thus, for practical reasons, a limit of
n equal to about 8 to 10 is usually imposed.
Another practical consideration is that the larger the S-box, the more difficult
it is to design it properly.
S-boxes are typically organized in a different manner than used
in DES. An n x m
S-box typically consists of 2n rows of
m bits each. The n
bits of input select one of the rows of the S-box, and the m bits in that row are the output. For example, in an 8
x 32 S-box, if the input is 00001001, the output consists of the 32 bits in row
9 (the first row is labeled row 0).
Mister and Adams
[MIST96] propose a
number of criteria for S-box design. Among these are that the S-box should
satisfy both SAC and BIC. They also suggest that all linear combinations of
S-box columns should be bent. Bent functions are
a special class of Boolean functions that are highly nonlinear according to
certain mathematical criteria [ADAM90]. There has been increasing
interest in designing and analyzing S-boxes using bent functions.
A related criterion for S-boxes is proposed and analyzed in [HEYS95]. The authors
define the guaranteed avalanche (GA) criterion
as follows: An S-box satisfies GA of order p if, for a
1-bit input change, at least p output bits change. The
authors conclude that a GA in the range of order 2 to order 5 provides strong
diffusion characteristics for the overall encryption algorithm.
For larger S-boxes, such as 8 x 32, the question arises as to
the best method of selecting the S-box entries in order to meet the type of
criteria we have been discussing. Nyberg, who has written a lot about the theory
and practice of S-box design, suggests the following approaches (quoted in [ROBS95b]):
-
Random: Use some pseudorandom number generation or some table of random digits to generate the entries in the S-boxes. This may lead to boxes with undesirable characteristics for small sizes (e.g., 6 x 4) but should be acceptable for large S-boxes (e.g., 8 x 32).
-
Random with testing: Choose S-box entries randomly, then test the results against various criteria, and throw away those that do not pass.
-
Human-made: This is a more or less manual approach with only simple mathematics to support it. It is apparently the technique used in the DES design. This approach is difficult to carry through for large S-boxes.
-
Math-made: Generate S-boxes according to mathematical principles. By using mathematical construction, S-boxes can be constructed that offer proven security against linear and differential cryptanalysis, together with good diffusion.
A variation on the first technique is to use S-boxes that are
both random and key dependent. An example of this approach is Blowfish,
described in Chapter 6, which starts
with S-boxes filled with pseudorandom digits and then alters the contents using
the key. A tremendous advantage of key-dependent S-boxes is that, because they
are not fixed, it is impossible to analyze the S-boxes ahead of time to look for
weaknesses.
No comments:
Post a Comment