applied cryptography - protocols, algorithms, and source code in c

# Read earthwebs privacy statement to access the

This preview shows page 1. Sign up to view the full content.

This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ) All these operations (and these are the only operations in the algorithm—there are no bit-level permutations) operate on 16-bit sub-blocks. This algorithm is even efficient on 16-bit processors. Description of IDEA Figure 13.9 is an overview of IDEA. The 64-bit data block is divided into four 16-bit sub-blocks: X1, X2, X3, and X4. These four sub-blocks become the input to the first round of the algorithm. There are eight rounds total. In each round the four sub-blocks are XORed, added, and multiplied with one another and with six 16-bit subkeys. Between rounds, the second and third sub-blocks are swapped. Finally, the four sub-blocks are combined with four subkeys in an output transformation. In each round, the sequence of events is as follows: (1) Multiply X1 and the first subkey. (2) Add X2 and the second subkey. (3) Add X3 and the third subkey. (4) Multiply X4 and the fourth subkey. (5) XOR the results of steps (1) and (3). (6) XOR the results of steps (2) and (4). (7) Multiply the results of step (5) with the fifth subkey. (8) Add the results of steps (6) and (7). (9) Multiply the results of step (8) with the sixth subkey. (10) Add the results of steps (7) and (9). Figure 13.9 IDEA. (11) (12) (13) (14) XOR the results of steps (1) and (9). XOR the results of steps (3) and (9). XOR the results of steps (2) and (10). XOR the results of steps (4) and (10). The output of the round is the four sub-blocks that are the results of steps (11), (12), (13), and (14). Swap the two inner blocks (except for the last round) and that’s the input to the next round. After the eighth round, there is a final output transformation: (1) Multiply X1 and the first subkey. (2) Add X2 and the second subkey. (3) Add X3 and the third subkey. (4) Multiply X4 and the fourth subkey. Finally, the four sub-blocks are reattached to produce the ciphertext. Creating the subkeys is also easy. The algorithm uses 52 of them (six for each of the eight rounds and four more for the output transformation). First, the 128-bit key is divided into eight 16-...
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online