Cryptography Reference
In-Depth Information
4.6.4 DESX
Many different variants of DES have been proposed. An interesting one is meant to make an exhaustive key
search (by trying all possible 56-bit keys) much harder, while not increasing the complexity of the original al-
gorithm at all. DESX uses the exact same algorithm as DES above but involves extra steps called whitening.
Essentially, if we have a DES function using a key k on a plaintext P, we can, for example, write our cipher-
text as
C = DES k ( P )
To whiten DES, we take two additional keys of 64 bits each, say, k 2 and k 3 , and XOR them to the plaintext and
ciphertext, respectively:
C = k 3 DES k ( P k 2 )
The XOR operation used is where the “X” in “DESX” comes from.
The security of this is actually more than it appears at first glance: Adding these XORs does not appear to
make the cipher less secure and could possibly increase the virtual key to be 56 + 64 + 64 = 184 bits, instead
of the standard 56 bits. In addition, it is trivial to take a normal algorithm that calculates a DES ciphertext and
modify it for DESX: Simply XOR the plaintext once before running the algorithm, and XOR the ciphertext af-
terwards.
This covers the basic workings of DES, although I don't explicitly state the values of the S-boxes and P-
boxes. This information is readily available in the specification and in many topics.
4.7 FEAL
FEAL (the Fast Encipherment Algorithm) is one of the simpler Feistel-based ciphers. Because many crypt-
analytic attacks work on FEAL, it demonstrates many weaknesses for us to analyze.
FEAL was created in the 1980's as a fast alternative of DES. There was a feeling that DES was too slow, es-
pecially for most personal computers in that era (Intel 8086's, Motorola 68000's, etc.), because of its fairly large
number of complicated round functions that must be calculated just to get 64 bits of output. FEAL, like DES, is
based on a Feistel structure, but designed to provide a simpler, faster, and still secure variant, replacing the large
S-boxes with simple functions. (However, as we see below, it fails miserably in the secure department.)
FEAL Algorithm
The basic encryption and decryption algorithm follows a simple Feistel structure, as seen in Figure 4-8 . There
are several functions that I will cover, but the overall algorithm is as follows:
 
Search WWH ::




Custom Search