Читать книгу Security Engineering - Ross Anderson - Страница 167

5.4.3 Feistel ciphers

Оглавление

Many block ciphers use a more complex structure, which was invented by Feistel and his team while they were developing the Mark XII IFF in the late 1950s and early 1960s. Feistel then moved to IBM and founded a research group that produced the Data Encryption Standard (DES) algorithm, which is still a mainstay of payment system security.

A Feistel cipher has the ladder structure shown in Figure 5.12. The input is split up into two blocks, the left half and the right half. A round function of the left half is computed and combined with the right half using exclusive-or (binary addition without carry), though in some Feistel ciphers addition with carry is also used. (We use the notation for exclusive-or.) Then, a function of the right half is computed and combined with the left half, and so on. Finally (if the number of rounds is even) the left half and right half are swapped.

A notation which you may see for the Feistel cipher is where , , , … are the successive round functions. Under this notation, the above cipher is . The basic result that enables us to decrypt a Feistel cipher – and indeed the whole point of his design – is that:


Figure 5.12: The Feistel cipher structure


In other words, to decrypt, we just use the round functions in the reverse order. Thus the round functions do not have to be invertible, and the Feistel structure lets us turn any one-way function into a block cipher. This means that we are less constrained in trying to choose a round function with good diffusion and confusion properties, and which also satisfies any other design constraints such as code size, software speed or hardware gate count.

Security Engineering

Подняться наверх