2. • Feistel Networks
• F-Functions
• Rounds
Contents • Balanced Feistel Networks
• A Taxonomy of Feistel Networks
• Unbalanced Feistel Networks
• Homogenous & Heterogenous UFNs
• Incomplete & Inconsistent UFNs
• Generalized UFNs
• Cycles & Rotations
• Rate of Confusion
• Rate of Diffusion
• Examples
• Comparison of Generic Constructions
• Differential Cryptanalysis
• Linear Cryptanalysis
• Conclusions & Open Problems
3. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
F-Functions
A Feistel network is a general method of transforming any function, usually called
F-Function, into a permutation. It was invented by Horst Feistel, a scientist from
IBM, in his design of Lucifer in the early 1970s and has been used in many block
cipher designs: DES, FEAL, Khufu and Khafre, Blowfish and RC5.
Def1. The F-function of a conventional Feistel network can be expressed as:
F : {0,1}n / 2 {0,1}k {0,1}n / 2
Where n is the size of the block, F is a function taking n/2 bits and k bits of a key as input, and producing an output of length n/2 bits.
4. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rounds
Def2. One round of a conventional (balanced) Feistel network is:
Xi 1 (Fk i (msbn/2 (Xi )) lsb n/2 (Xi )) msbn/2 (Xi )
Here, Xi is the input to the round, Xi+1 is the output of the round, ki is the key, n is the block length, lsbn/2(x) and
msbn/2(x) select the least significant and most significant u bits of X, indicates modulo-2 addition, and indicates
concatenation.
In each round msbn/2 (X) operates, via a key-dependent non-linear F-Functon on
lsbn/2 (X). This is often referred to as the left half operating on the right half.
5. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Balanced Feistel Networks
Def3. A Balanced Feistel Network consists of j rounds:
Xi 1 (Fk i (msbn/2 (X i )) lsb n/2 (X i )) msb n/2 (X i )
The keys ki are the round keys, which typically are out-
put from a key schedule algorithm on input a key K.
The security of a Feistel network is based on the
iteration of the F-function. The number of rounds
required for resistance to a given attack depends
of the properties of the function.
6. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Unbalanced Feistel Networks
An Unbalanced Feistel Network (UFN) is a Feistel network where the left half and
the right half are not of equal size.
Def4. One round of a s-on-t, or s:t, UFN is:
Xi 1 (F(msbs (Xi ), k i ) lsb t (Xi )) msbs (Xi )
The msbn/2(Xi) called the source block. The lsbn/2(Xi) is called the target block. UFNs
where s > t are called source heavy, and UFNs where s < t are called target heavy. A
sub-block, b, is gcd( s, t, n). The F-function is a collection of 2k mappings of the s-bit
numbers onto the t-bit numbers, or s/b sub-blocks onto t/b sub-blocks.
7. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Homogenous & Heterogenous UFNs
Def5. A UFN is homogenous when the F-function function is identical in each
round, except for the round keys. A UFN is heterogeneous when the F-function for
different rounds is not always identical except for the round keys.
The advantage of a heterogenous UFN is that, since its internal properties change
from round to round, it may be much more difficult to find any kind of characteristic
that propogates well through all of the different kinds of round that appear in the
cipher.
8. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Incomplete & Inconsistent UFNs
Def6. A UFN is complete when s+t = n, that is, when in each round every bit in the
block is either part of the source block or part of the target block. A UFN is
incomplete when s+t < n. In an incomplete UFN, the n-s-t = z bits that are not part
of the source block or part ofthe target block are called the null block.
Def7. UFN is consistent when s, t, z, and n remain constant for the entire cipher. A
UFN in which the sizes of the source and target block change during encryption is
called inconsistent.
9. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Generalized UFNs
The most general case of a Feistel Network simply requires that one part of the
block being encrypted controls the encryption of another part of the block. For
example, given some n-bit keyed reversible function, Ek (X), we can define a block
cipher whose rounds look like:
Xi 1 Eki msbs ( X i ) (lsbt ( X i )) msb s ( X i )
Further, we need not leave the source block alone in each round-we may perform
some unkeyed reversible function on it, as well. Additionally, we can apply some
nonreversible function on the source block to derive the key for the keyed
reversible function.
10. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Generalized UFNs
Def7. One round of a s:t n-bit Generalized Unbalanced Feistel Network (GUFN) is
defined as:
Xi 1 R(G(ki , msbs ( X i ), lsbt ( X i )), msbs ( X i ))
where R is some reversible function, and G is some reversible function in the sense
that there is a function H such that for all K, Y, Z:
H (K,Y,G(K,Y,Z)) = Z
If G = H, then the GUFN is called symmetric.
11. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Cycles & Rotations
A cycle is the number of rounds necessary for each bit in the block to have been
part of both the source and target blocks at least once. A rotation is the number of
rounds needed for each bit in the block to return to its starting position.
n
Lemma 1. A cycle, C, of a s:t UFN is C [ ]
min( s, t )
n
Lemma 2. A rotation, G, of an s:t UFN is G [ ]
gcd(s, t )
Def9. A UFN is called even if C = G; otherwise it is called odd. A UFN is prime
when G = n.
12. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Confusion
An observer who knows some information about Xi, but not round key ki, should
wind up knowing less about Xi+i. The process by which this observer loses
knowledge of the sequence of Xi values is called confusion.
In a Feistel Network, bit j of the block can be obscured only when bit j appears in
the target block of a given round. This means that the number of times that bit j
can be obscured per cycle can be no larger than the number of times per cycle that
bit j appears in the source block. This is called the rate of confusion, denoted as Rc.
13. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Confusion
Def10. The rate of confusion of a consistent UFN is the minimum number of times
per cycle that any bit can occur in the target block.
t
Lemma 3. For a s:t UFN, the rate of confusion, Rc
n
Note that it can never take fewer than 1/ Rc rounds for an observer to lose all
information about the block in a UFN.
14. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Confusion
The rate of confusion and linear cryptanalysis An increase in Rc tends to increase
resistance to linear cryptanalysis, when all other variables are held constant.
Lemma 4. A complete UFN is even if and only if min(s,t) divides n.
Def11. An active round in a linear attack is a round in which there is some linear
approximation in the target block.
15. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Confusion
Theorem 1. If an even complete UFN has C rounds per cycle, then the fraction of
rounds per cycle that are active in a linear attack is at least Rc = t/n.
This follows from the fact that Rc measures the minimum number of times per cycle that any bit or
subset of bits may have appeared in the target block. □
Theorem 2. Let p be the bias of the best possible approximation for an active round
under a linear attack. Then the output bias of any nontrivial linear characteristic
propagating through C rounds is at most (2(CRc-1)pCRc).
From our previous assertions, we can see that in each C rounds, there are at least CRc active rounds
under a linear attack. The best possible bias of a C-round approximation follows from this, and from the
rules for concatenating linear characteristics. □
16. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Confusion
Intuitively, anytime a bit string with any uncertainty at all is XORed into the bits of
an approximation, that approximation's bias decreases. Assuming that there is no
perfect approximation of any subset of the F-function's outputs, this implies that a
higher rate of confusion leads to a smaller bias for a linear approximation sent
through a full cycle. It is important to note, however, that a high rate of confusion is
not enough to guarantee resistance to linear cryptanalysis.
17. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Diffusion
Any change in Xi should have some chance to change every bit of Xi+1, for some t.
The process by which one bit in the block has the chance to affect other bits in the
block is called diffusion.
In a Feistel cipher, the only time bit j can affect other bits in the block is when bit j
is in the source block. This leads naturally to the idea of the rate of diffusion.
Def12. The rate of diffusion is the smallest number of times per cycle that a given
bit can have the chance to affect other bits in the block.
s
Lemma 5. For a s:t UFN, the rate of diffusion is Rd
t
18. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Diffusion
The rate of diffusion is the measure of how many times per cycle each bit is used to
encrypt other bits. It is upwardly bounded by the proportion of the block used as
input to the F-function.
The rate of diffusion and differential cryptanalysis. An increase in Rd tends to
increase resistance to differential cryptanalysis, when all other variables are held
constant.
19. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Diffusion
Def13. An active round under a differential attack is a round in which there is a
nonzero input difference into the F-function.
Theorem 3. If an even complete UFN has C rounds per cycle, then the fraction of
rounds per cycle that are active in a differential attack is at least Rd = s/n.
This follows from the definition of an active round under differential attack, and from the definition of
the rate of diffusion. □
20. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Diffusion
Theorem 4. Let p be the greatest possible probability for a nontrivial characteristic
to propagate through a round. Then, the probability of any nontrivial characteristic
propagating through C consecutive rounds is at most p(CRd) assuming that
characteristics can be concatenated by multiplying their probabilities.
A differential characteristic has its probability computed by multiplying all of its constituent
characteristics probabilities. No C round characteristic can have fewer than CRd active one round
characteristics, and inactive round character-istics have probability of one. Since no one round active
characteristic can have probability of more than p, it's clearly impossible for any C round characteristic to
have greater than pCRi probability. □
21. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Rate of Diffusion
Intuitively, each time an input difference appears in the source block, unless the
desired output difference happens with probability 1, the differential characteristic
becomes less likely to successfully pass through a cycle. However, it is important to
note that a high rate of diffusion alone is not sufficient to ensure resistance to
differential attack-the differential properties of the cipher's F-function must also be
taken into account. Additionally, differential attacks on source-heavy UFNs (those
with realtively high rates of diffusion) are compli-cated by the fact that inputs into
successive rounds are closely related. This is discussed below.
22. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Examples
MacGuffin is a 48:16 UFN (b = 16 and n = 64) designed to introduce the concept of
UFNs. The F-function closely mirrors DES; it consists of a permutation, an XOR of 48
key bits, an S-box substitution (using the high-order two bit output of the eight DES
S-boxes), and another permutation.
BEAR and LION are block cipher constructions designed by Ross Anderson and Eli
Biham, which can be used to build a three-round inconsistent heterogenous UFN
out of any keyed hash function with an n-bit output, and any stream cipher with an
n-bit key.
23. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Examples
The MD4 Family of Hash Functions The underlying structure of all these hash
functions is a block algorithm, with a Davies-Meyer feedforward function to convert
it into a one-way hash function. In SHA, for example, the block algorithm is an 80-
round, 128:32 even complete UFN.
There are some additional complications making SHA a GUFN: the output of the F-
function is combined with the target block using addition modulo 232 instead of
XOR, and there is an additional cyclic shift of part of the source block in each
round. Note that these hash functions' compression functions are source-heavy
heterogenous UFNs.
24. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
If we assume a b:3b UFN, and that an input difference a produces a zero difference,
this can be used to create a 4-round characteristic with probability p
(In the following examples, a, b and 0 are all b-bit numbers. In this section, δs — δt is used to show the
actual differential relationship which is being exploited).
25. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
In general, the differential can be used in a ub:vb UFN to create a (u + v)-round
iterative characteristic with probability pu.
While at first glance, this seems to imply that UFNs with a larger Rd are less likely to
have good multi-round differential characteristics, this is not always the case. As b
gets smaller, the assumptions required to produce this characteristic become more
implausible. However, as t gets smaller, it appears that high-probability differentials
become easier to find again. Note that this may lead to situations in which a multi-
round characteristic is extremely difficult to find, but relatively easy to exploit.
26. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Consider a different type of differential: Assume a b:3b UFN, and that an input
difference a produces an output difference (0, b, 0) with probability p1, and an
input difference b produces an output difference (0, a, 0) with probability p2. These
differentials can be used to create a 6-round characteristic with probability p1 p2 —
one that can be concatenated with another similar characteristic to create a 12-
round iterated characteristic with probability p12p22:
27. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Complications
Related inputs to successive rounds. F-functions source-heavy UFNs have the
property that successive rounds have some portions of their inputs in common. This
is significantly different than the situation in a balanced Feistel Network, in which
the entire input to the F-function was XORed with the output of the previous
round's F-function, and thus may be assumed to be somewhat random.
28. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Complications
Key-dependent characteristics. A key-dependent differential characteristic is a
differential characteristic whose probability is partially a function of the specific
round keys chosen. In some cases, such as the attacks on RDES and Lucifer in, this
provides a generally useful attack on the cipher. In other cases, such as in the weak
keys of IDEA, a rare weak key condition (consisting of an interaction between the
cipher key, the key schedule, and the round function) can lead to relatively high
probability differential characteristics.
29. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Complications
Using multiple key-dependent differential characteristics to learn key information
When there are many possible key-dependent differential characteristics, we may
be able to the fact that some characteristics pass through the cipher, while others
do not, as a way to immediately learn quite a bit of internal key information.
30. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Complications
Treating different sub-blocks of the F-function's input differently. Good differential
characteristics seem less likely to exist when different sub-blocks of the F-function's
input are treated differently enough that they do not have the same differential
properties.
31. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Conclusions
1. As a general rule, differential cryptanalysis becomes more difficult as the rate of
diffusion becomes higher—that is, more source-heavy UFNs tend to have more
inherent resistance to differential attacks.
2. F-functions which treat different sub-blocks of input differently are much more
likely to be resistant to differential cryptanalysis than F-functions which treat
different sub-blocks identically.
32. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Differential Cryptanalysis
Conclusions
3. Determining the susceptibility to differential attack of a UFN is somewhat more
complex than is suggested by the first section of our discussion, above. In particular,
source heavy UFNs have related inputs going into successive rounds’ F-functions,
and in some circumstances, this can lead to new vul-nerabilities to differential
cryptanalysis. In other circumstances, such UFNs can actually be strengthened
against some kinds of differential attack by this property.
33. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Linear Cryptanalysis
Consider an F-function with a linear approximation of some output bits, a, based on
some linear combination of the key bits only. Note that, in the tables in this section, As — At
is used to denote the actual linear approximation being exploited in a given round.
In these examples, ? indicates no approximation.
34. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Linear Cryptanalysis
If we assume a 3b:b UFN, this linear approximation gives rise to a 4-round
characteristic with probability (1/2+ pi)
While at first glance, this seems to imply that UFNs with a larger Rc are less likely to
have good multi-round linear characteristics, this is not always the case: as t gets
larger with respect to s, it is more likely to have linear relationships.
35. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Linear Cryptanalysis
Complications
There are some complications that need to be dealt with in linear cryptanalysis of
UFNs. First, an n-round b:3b UFN has an F-function output which has three times
as many output bits as input bits. This appears to make linear relationships
between the input and output bits, or simply between output bits, more likely to
occur. Second, in a source-heavy UFN, the inputs to successive rounds' F-functions
are closely related—depending upon the definition of the F-function, this may
further complicate linear cryptanalysis of this kind of UFN.
36. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Linear Cryptanalysis
Conclusions
While this analysis is by no means exhausting, it strongly suggests that resistance
to linear cryptanalysis is tied directly to Rc: as the size of t grows with respect to s,
linear attacks become more difficult. However, the larger the target block, the
more likely it is to have some useful linear approximations. Extremely target-heavy
UFNs (such as an 8:1024 UFN) are certain to have some strong linear
approximations in the outputs of their F-functions.
37. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Conclusions
The structure of the Feistel network affects the security of the block cipher.
Modifying the ratio of s and t can systematically affect the security of the cipher,
when all other variables are held constant. Additionally, such issues as how the
round keys are combined into the cipher can become important in UFN design—
much more so than in balanced Feistel cipher design.
UFN designs may allow us to design faster and better block ciphers than we could if
we limited ourselves to balanced Feistel structures.
38. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Open Problems
It seems that source-heavy UFNs have some inherent resistance to differential
attacks. Assuming some basic number of cycles, perhaps four, is there an optimal
s:t ratio for resistance to differential attacks?
Is it reasonable to alternate several rounds of source-heavy UFN for resis-tance to
differential attacks, followed by several rounds of target-heavy UFN for resistance
to linear attacks? What would differential and linear attacks against such structures
look like?
39. Feistel Networks Taxonomy Generic Constructions Comparison Conclusions & Open Problems
Resource
Unbalanced Feistel Networks and Block-Cipher Design
by Bruce Schneier and John Kelsey