International Data Encryption Algorithm (IDEA) Is Perceived As
International Data Encryption Algorithm (IDEA) Is Perceived As
International Data Encryption Algorithm (IDEA) Is Perceived As
The addition problem on the left did not require any bits to be
carried, since the sum of bits in each column was either 1 or 0,
not 10 or 11.
In the other two problems, there definitely were bits to be
carried, but the process of addition is still quite simple.
International Data Encryption Algorithm
Now, suppose that we are in round 2 of IDEA. Further, let us
assume that P2 = 1111111100000000 and
K2 = 1111111111000001.
First, simply add them. 1111111100000000
1111111111000001
-------------------------
11111111011000001
--------------------------
It produces 17-bit output which is not as per our requirement.
Therefore, we must reduce this number (which is 130753 in
decimal) to a 16-bit number. For this, we take modulo 65536 of
this. 130753 modulo 65536 yields 65217, which is
1111111011000001 in binary and is a 16-bit number.
International Data Encryption Algorithm
It simply ensures that even if the result of an addition or
multiplication of two 16-bit number contains more than 17 bit
bits, we bring it back to 16 bits.
Sub-key generation for a round –
Each of the eight rounds makes use of six sub keys ( so, 8 x 6 =
48 sub-keys are required for the rounds), and the final output
transformation uses four sub-keys (making a total of 48 + 4 = 52
sub-keys overall).
From an input key of 128 bits, how are these 52 sub-keys are
generated.
Based on the understanding of the sub key generation process for
the first two rounds, we will later tabulate the sub key generation
for all the rounds.
International Data Encryption Algorithm
First Round –
Initial key consists of 128-bits,from which 6 sub-key K1 to K6
are generated for the first round.
Since k1 to k6 consists of 16 bits each, out of the original 128
bits, the first 96 bits (6 sub-keys X 16 bits per sub key) are used
for the first round.
Thus, at the end of the first round, bits 97-128 of the original key
are unused.
International Data Encryption Algorithm
Second Round –
In the second round, firstly , the 31 unused bits of the first round
are used.
We know that each round requires 6 sub-keys k1 to k6, each of 16
bits, making total of 96 bits. Thus, for second round, we still
require ( 96-31=65) more bits. How do we now get the remaining
65 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 first bit after the shift, and the 25th bit of the
original key moves to the last position and becomes the 128th bit
after the shift.
The whole process is shown below -
Key Generation Process in IDEA
Key Generation Process in IDEA
Now, we can imagine the unused bits of the second round (i.e. bit
position 122-128 and 1-25) will firstly be used in round 3 and
then a circular-left shift of 25 bits will be performed on the last
key shown above.
This will mean that the new key will now start with bit position
number 51 ( original start of 26th bit + circular left shift of 25
bits).
Also, the end bit now will be bit number 50 ( original end of 25th
bit + circular-left shift of 25 bits).
This key will now be used for the rest of the round 3.
Again, its last portion will remain unused and round 4 will begin
with portion and so on.
These procedure for all the 8 rounds can be tabulated as show
Key Generation Process in IDEA
International Data Encryption Algorithm
At the end of 8th round, the key is exhausted.
Output Transformation –
The output transformation is a one-time operation.
It takes place at the end of the 8th round.
The input to the output transformation is, of course, the output of
the 8th round.
This is, as usual, a 64-bit value divided into four sub-blocks ( say
R1 to R4, each consisting of 16 bits ).
In this round, we need just four keys and not six.
The process of the output transformation is described here –
International Data Encryption Algorithm
The output of this process is the final 64-bit cipher text, which
is the combination of the four cipher text sub-blocks C1 to C4.
International Data Encryption Algorithm
Sub-key generation for the output transformation
The process for the sub-key generation for the output
transformation is exactly similar to the sub-key generation
process for the eight rounds.
At the end of eighth and the final round, the key is exhausted.
Therefore, output transformation must first perform a circular left
shift of 25 bits.
Post this shift operation, the 64 bits of the key are taken, and are
called as sub- keys K1 to K4 for the final output transformation
round.
International Data Encryption Algorithm
Idea decryption
The decryption process is exactly same as the encryption process.
There are some alterations in the generation and pattern of sub-
keys.
The decryption sub-keys are actually inverse of the encryption sub-
keys.
Strength of IDEA –
Idea uses a 128-bit key, which is double than the key size of DES.
Thus to break into IDEA 2 128 (i.e. 1038 ) encryption operation would
be required.
Even if we assume that to obtain the correct key only half of the
possible keys (i.e. half of the key space) needs to be examined and
tried out, a single computer performing one IDEA encryption per
microsecond would require more than
54000000000000000000000000 years to break IDEA!