IDEA stands for the International Data Encryption Algorithm. IDEA is a symmetric-key block cipher. It is denoted the same key can be used to encrypt the plaintext and decrypt the ciphertext.
IDEA needed both the encrypting and decrypting parties to have a secret key that is different from a public-key and other asymmetric encryption schemes. The secret key popular to the encrypting party.
IDEA is a patented and universally accessible block encryption algorithm, which allows the effective protection of transmitted and stored information against unauthorized access by third parties.
The fundamental element for the development of IDEA were military durability for all security requirements and clear hardware and software implementation. The algorithm is used extensive in several banking and industry applications.
There are 8 rounds in IDEA. Each round includes a sequence of operations on the four data blocks, using six keys. At a broad level, these steps can be represented as follows. These steps perform several mathematical actions. There are multiplication, addition and XOR operations.
Details of one round in IDEA
Step1: Multiply * P1 and K1 |
Step2: Add * P2 and K2 |
Step3: Add * P3 and K3 |
Step4: Multiply * P4 and K4 |
Step5: XOR the results of step1 and step3 |
Step6: XOR the results of step2 and step4 |
Step7: Multiply * the results of step5 with K5 |
Step8: Add *the results of step6 and step7 |
Step9: Multiply * the results of step8 with 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 of step4 and step10 |
The Add * and Multiply * in the following step of each round are not simple addition and multiplication but they are addition module 216 i.e., 65536 and Multiplication Module 216 + 1 i. e. , 65537.
The normal addition will create a number that includes 17 bits (i.e., 11111111011000001). It can have only 16 bit positions accessible for the output of round2.
Therefore, it can decrease this number (which is 130753 in decimal) to a 16-bit number. For this, it can take modulo 65536 of this. 130753 modulo 65536 return 65217, which is 11111111011000001 in binary, and is a 16-bit number, which fits well in the scheme.
The input blocks are P1 to P4, and the subkeys are indicated by K1 to K6, and the output of this step is indicated by R1 to R4 (and not C1 to C4 because this is not the final cipher text). It is an intermediate output, which will be processed in more rounds as well as in the output transformation step.