International Data Encryption Algorithm
International Data Encryption Algorithm
1) It is patented unlike DES and therefore must be licensed before it can be used in
commercial applications.
2) DES has a long history as compared to IDEA.
One popular e-mail privacy technology known as pretty good privacy (PGP) is based on IDEA.
PRINCIPLE:
Technically IDEA is block cipher. Like DES, it also works on 64 bit plain text block. The key is
longer and consists of 128 bits. IDEA is reversible like DES, that is, same algorithm is used for
encryption and decryption. IDEA uses both diffusion and confusion for encryption.
WORKING:
The 64-bit input plaintext block P is divided into 4 portions, each of 16 bits, i.e. (P1 to P4).
Thus, P1 to P4 are the inputs to the first round of the algorithm. There are eight such rounds.
The key consist of 128 bits.
In each round, six sub keys are generated from the original key. Each of the sub-keys is of 16
bits.
These six sub-keys are applied to the four input blocks P1 to P4.
Thus for the first round we will have the six keys K1 to K6. Similarly for the eighth round we
will have keys K43 to K48.
The final steps consist of an output transformation, which uses just four sub-keys (K49 to
K52).
The final output produced is the output produced by the output transformation step, which is
four blocks of cipher text named C1 to C4 (each of 16 bits). These are combined to form the
final 64 bit cipher text block.
The general working is shown in Figure 1:
There are eight rounds in IDEA and each round involves a series of operations on the four
data blocks using six keys.
There are several steps as shown in below which includes multiplications, addition and
XOR operations:
The asterisk (*) sign in the above mentioned steps indicates that the addition and multiplication
is not simple addition and multiplication but it is addition modulo 2^16 (i.e. addition modulo
65536) and multiplication modulo 2^16 + 1 (i.e. multiplication modulo 65537).
Modulo arithmetic is required in IDEA because it simply ensures that even if the result of
addition and multiplication of two 16-bit numbers contains more than 16-bits, we bring back to
16-bits.
The input block are shown as P1 to P4, the sub keys are denoted by K1 to K6 and the output of
this step is denoted by R1 to R4 (and not C1 to C4, because this is not the final cipher text but it
is an intermediate output, which will be processed in further rounds as well as in output
transformation).
First round:
……..
K1 (bits 1-16) K2 (bits 17-32) … K6 (bits 81-96) Unused(bits 97-128)
The initial key consists of 128 bits, from which 6 sub-keys K1 to K6 are generated for the
first round.
Since K1 to K6 consists of 16 bit each, out of original 128 bits, the first 96 bits are used for
the first round.
Thus at the end of the first round, bits 97 -128 of the original key are unused as shown in
Figure 3.
Second round:
In the second round, firstly, the 32 unused bits (i.e. bits 97-128) of the first round are used.
As each round requires 6 sub-keys K1 to K6, each of 16 bits, making a total of 96 bits.
Thus, for the second round we still require (96-32 = 64) more bits.
However, all the 128 bit of the original key are exhausted.
For remaining 64 bits IDEA employs the technique of key shifting.
At this stage, the original key is shifted left circularly by 25 bits.
That is, the 26th bit of the original key moves to the first position and becomes the 128th bit
after the shift.
The whole process is shown in the Figure 4:
Thus the same process goes on up to the last (8th) round. At the end of the last round, we have
no unused bits. They are used in the output transformation. Sub-key generation process for
each round is depicted in the Table 1:
Output Transformation:
The Output Transformation is the one time operation. It takes place at the end of the 8th round.
R1 R2 R3 R4
K1 Multiply* Add* K3
K2 Add* Multiply* K4
C1 C2 C3 C4
As shown in Figure 6, a 64-bit value is divided into four sub-blocks (R1 to R4 each of 16 bits).
Also, four sub-keys are applied here instead of six. Assume that these four 16 bits sub-keys (K1
to K4) are available to output transformation. The output of this process is the final 64-bit cipher
text, which is the combination of the four cipher text blocks C1 to C4.
IDEA Decryption:
The decryption process is exactly the same as encryption process. There are some alterations in
the generation and pattern of sub-keys. The decryption sub-keys are actually inverse of
encryption sub-keys.