Designed by Richard Outerbridge, who developed a construction for using a block cipher with one block size to create a new one with a larger block size, DEAL is a Feistel round cipher with a small number of rounds that uses DES as its f-function. Its description is available at http://www.ii.uib.no/~larsr/newblock.html

The block is divided into two 64-bit halves. In each round, the
*right* half of the block is XORed with the *left* half
of the block after encryption under DES with the current 64-bit round
key with parity bits (the *least* significant bit of each
byte) ignored as the key.

Eight rounds are recommended for use with a 256-bit key; with a 128-bit key or a 192-bit key, six rounds are used, which gives DEAL essentially exactly the same speed as Triple-DES.

The halves of the block are swapped after every round, including the last one.

For all key generation, the encryption or convolution step used is encryption with DES, using the constant key X'0123456789ABCDEF'.

For a 128-bit key, keys are generated as follows:

The 128-bit key is considered to consist of two 64-bit blocks, K1 and K2.

The first round key is K1 encrypted.

The second round key is (K2 xor the first round key), encrypted.

The third round key is (K1 xor the second round key xor X'8000000000000000'), encrypted.

The fourth round key is (K2 xor the third round key xor X'4000000000000000'), encrypted.

The fifth round key is (K1 xor the fourth round key xor X'1000000000000000'), encrypted.

The sixth round key is (K2 xor the fifth round key xor X'0100000000000000'), encrypted.

For a 192-bit key, keys are generated as follows:

The first round key is K1 encrypted.

The second round key is (K2 xor the first round key), encrypted.

The third round key is (K3 xor the second round key), encrypted.

The fourth round key is (K1 xor the third round key xor X'8000000000000000'), encrypted.

The fifth round key is (K2 xor the fourth round key xor X'4000000000000000'), encrypted.

The sixth round key is (K3 xor the fifth round key xor X'1000000000000000'), encrypted.

For a 256-bit key, keys are generated as follows:

The first round key is K1 encrypted.

The second round key is (K2 xor the first round key), encrypted.

The third round key is (K3 xor the second round key), encrypted.

The fourth round key is (K4 xor the third round key), encrypted.

The fifth round key is (K1 xor the fourth round key xor X'8000000000000000'), encrypted.

The sixth round key is (K2 xor the fifth round key xor X'4000000000000000'), encrypted.

The seventh round key is (K3 xor the sixth round key xor X'1000000000000000'), encrypted.

The eighth round key is (K4 xor the seventh round key xor X'0100000000000000'), encrypted.

[Next] [Up] [Previous] [Index]

Next

Skip to Next Section

Chapter Start

Table of Contents

Main Page