The mixing and whitening phase on entry to the cipher is illustrated below:
Since mixing consists of Feistel round operations on pairs of bytes, ICE-style bit swapping is first applied to move half the bits from the left to the right side of that operation (and vice versa).
Then, after two rounds of mixing, an ICE-style swap moves half the bits from the left half of the block to the right half of the block (and vice versa), making it uncertain whether any bit is in the left-hand side simple Feistel round or in the right-hand side controlled Feistel round to begin with.
Finally, after two more rounds of mixing, and ICE-style swap moves bits between the left and right quarters of each half, randomizing what side of the f-function they start out on.
On exit from the cipher, the masks M4, M5, and M6 are applied in order, and the Feistel rounds applied to pairs of bytes still use the left byte as input to the f-function first, as illustrated below:
The masks are produced by applying a 4 of 8 code to subkey material, guaranteeing that exactly four of the eight bits in any byte are swapped in each swapping step.
Start of Section
Skip to Next Chapter
Table of Contents