IDEA ALGORITHM – A Complete Overview In 2 Easy Points


IDEA is basically an encryption algorithm. It stands for International Data Encryption Algorithm. It was originally called IPES (Improved proposed Encryption Standard). IDEA is basically a Symmetric Key Block Cipher.

  1. What is the IDEA Algorithm?
  2. Understanding IDEA Algorithm

1) What is the IDEA Algorithm?

First, let’s get a birds-eye view of this IDEA algorithm. Let us divide a plain text of 64 bit into four parts and name it as p1, p2, p3, and p4. This implies that each of them is 16 bit (64bit/4 = 16 bit). These keys will be fed to the first round. After processing(this will be discussed later), these keys will be transferred to the next round and so on till the next 8 rounds. After the 8th round, they will be fed to the output transformation round, the output of which will be a ciphertext.

6 subkeys will be used in each round. Let’s name the keys k1, K2… So in the first-round k1-k6 will be used and k7-k12 in the 2nd round and so on up to k43-k48 in the 8th round. The remaining 4 keys (k49, k50, k51, k52) will be used in the output transformation round.

2) Understanding IDEA Algorithm 

All about Single round Transformation

Originally we will have a 128-bit key which will be divided into subparts of 16 bit keys each. So what we get now is 8 subkeys of 16 bit each. But we need only 6 subkeys per round. So the first subkeys, namely k1 to k6, will be used in the first round and the remaining 2 will be used in the next round. The second 128bit key will also provide 8 subkeys out of which only 4(k9 to k12) are used in the 2nd round as k7 and k8 of the first 128bit key will be used here to make them 6 in all.

The next 128bit key will give us 8 subkeys out of which 2 are used along with 4 subkeys of the previous key for the 3rd round. And remaining 6 subkeys of the 3rd key are used for the 4th round. This completes 4 rounds. And similarly,   the next 4 rounds are carried out to make 8 rounds in all. 

Pictorial representation of the above is available in

Understanding IDEA Algorithm in Detail 

Refer to Image for clarity.

∙€€€€€€€€ Step1: Multiply*p1 and k1

∙€€€€€€€€ Step2: Add*p2 and k2

∙€€€€€€€€ Step3: Add*p3 and k3

∙€€€€€€€€ Step4: Add*p4 and k4

∙€€€€€€€€ Step5: XOR the results of step1 and 2

∙€€€€€€€€ Step6: XOR the results of step 2 and 4

∙€€€€€€€€ Step7: Multiply* the results of step5 with k5

∙€€€€€€€€ Step8: Add the results step7 and step9

∙€€€€€€€€ Step9: Multiply* the results of step8 and k6 

∙€€€€€€€€ Step10: Add* the results of step7 and step9

∙€€€€€€€€ Step11: XOR the results of step1 and step9

∙€€€€€€€€ Step12: XOR the results of step3 and step9

∙€€€€€€€€ Step13: XOR the results of step2 and step10

∙€€€€€€€€ Step14: XOR the results ofstep4 and step10

For all multiply* and Add* refer to Multiplication modulo and addition modulo respectively. 

For the output transformation round we will use the outcome of previous rounds namely, R1 to R4,

∙€€€€€€€€ Step1:Multiply *R1 and K1

∙€€€€€€€€ Step2: Add*R2 and K2

∙€€€€€€€€ Step3: Add*R3 and K3

∙€€€€€€€€ Step4: Multiply*R4 and K4

And what you get as a result of this is ultimately the Cipher Text of International Data Encryption Algorithm. And this is a text of 64 bit which you got from the 64-bit plain text given as an input.


So this is all about Understanding IDEA cipher. IDEA is considered to be the most secure encryption and also to be the best publicly known algorithm. One must know that this is not the end as what is given above is just the basic level understanding of the International Data Encryption Algorithm. One should proceed to the advanced stages and procure more knowledge about the same.

So, have you made up your mind to make a career in Cyber Security? Visit our Master Certificate in Cyber Security (Red Team) for further help. It is the first program in offensive technologies in India and allows learners to practice in a real-time simulated ecosystem, that will give them an edge in this competitive world.


Related Articles

Please wait while your application is being created.
Request Callback