INTERNATIONAL DATA ENCRYPTION ALGORITHM (IDEA)
It was developed by Xuejia Lai and James Massey.
It is developed at ETH in Zurich Switzerland (Swiss Federal Institute of Technology) in
1990.
The original version was called the “Proposed Encryption Standard (PES)”.
1992, International Data Encryption Algorithm – is a block cipher that uses a 128-bit key
to encrypt 64-bit data blocks.
Pretty Good Privacy (PGP) is based on the IDEA. - one of the popular e-mail privacy
technology
IDEA uses both diffusion and confusion for encryption.
Confusion is used for creating clueless ciphertext while diffusion is used for increasing the
redundancy of plaintext over the major part of the ciphertext to make it obscure.
BASIC IDEA ABOUT IDEA
Plaintext is of 64-bit.
Key is of 128-bit.
From 128-bit original key the 52 subkeys are generated.
Ciphertext is also same as plaintext in size that is of 64-bit.
Number of identical rounds are 8 where in each round 6 keys are used.
48 Keys are used in 8 rounds plus the last round (transformation) used 4 keys. (48+4 = 52)
OPERATIONS TO BE USED
There are several steps which include:
Multiplication
Addition
XOR operations.
Addition and Multiplication is not simple addition and multiplication. But it is…
Addition modulo 2^16 Multiplication modulo 2^16+1
STEP 1: MULTIPLY X1 AND Z1
STEP 2: ADD X2 AND Z2
STEP 3: ADD X3 AND Z3
STEP 4: MULTIPLY X4 AND Z4
STEP 5: XOR THE RESULTS OF STEP 1 AND 3
STEP 6: XOR THE RESULTS OF STEP 2 AND 4
STEP 7: MULTIPLY STEP 5 AND Z5
STEP 8: ADD STEP 6 AND STEP 7
STEP 9: MULTIPLY STEP 8 AND Z6
STEP 10: ADD STEP 7 AND 9
STEP 11: XOR STEP 1 AND 9
STEP 12: XOR STEP 3 AND 9
EXAMPLE: IDEA ENCRYPTION
The 52 Sub keys are all generated from the 128-bit original key. 128-bit original key Z is
given as
Z = 5a14 fb3e 021c 790e 6081 46a0 117b ff03
FIRST 8 SUBKEYS
52 16-BIT SUBKEYS
After that, the key is circularly shifted 25 bits to the left and again divided into eight 16-bits
subkeys:
ROUND 1:
Step 11 Step 12 Step 13 Step 14
C579 F2FF 0FBD 0FFC
EXPECTED OUTPUT AFTER ROUND 1:
ROUND 1: OUTPUT
x1 x2 x3 x4
C579 0FBD F2FF 0FFC