Simplified IDEA Algorithm
Simplified IDEA Algorithm
Simplified IDEA Algorithm
NICK HOFFMAN
1. Introduction
The International Data Encryption Algorithm (IDEA) is a symmetric-key, block
cipher. It was published in 1991 by Lai, Massey, and Murphy [3]. IDEA is a
modification of the Proposed Encryption Standard (PES) that was published in
1990 by Lai and Massy [1]; PES was designed as a replacement for the Data En-
cryption Standard (DES). The algorithm was modified and published in 1991 after
Biham and Shamir described the technique of differential cryptanalysis. The new
algorithm was called the Improved Proposed Encryption Standard (IPES); its name
changed to IDEA in 1992. IDEA is a candidate block cipher to the NESSIE Project.
NESSIE is a project within the Information Societies Technology (IST) Program
of the European Commission [3].
In the Second Edition (1996) of Applied Cryptography Bruce Schneier [9] de-
scribes IDEA as “... the best and most secure block algorithm available to the
public at this time;” however, in 1999 [10] he began to recommend newer algo-
rithms because IDEA “...isn’t very fast ... [and] IDEA is patented.”
Although IDEA did not replace DES, it was incorporated into Pretty Good
Privacy (PGP).
The algorithm is patented and licensed by MediaCrypt. MediaCrypt now offers
a successor algorithm IDEA NXT.
The algebraic idea behind IDEA is the mixing of three incompatible algebraic
operations on 16-bit blocks: bitwise XOR, addition modulo 216 , and multiplication
modulo 216 + 1.
There are 216 possible 16-bit blocks: 0000000000000000, ..., 1111111111111111,
which represent the integers 0, ..., 216 − 1. Each operation with the set of possible
16-bit blocks is an algebraic group. Bitwise XOR is bitwise addition modulo 2,
and addition modulo 216 is the usual group operation. Some spin must be put on
the elements – the 16-bit blocks – to make sense of multiplication modulo 216 + 1,
however. 0 (i.e., 0000000000000000) is not an element of the multiplicative group
because it has no inverse, but by thinking of the elements of the group instead as
0000000000000001, ..., 1111111111111111, 0000000000000000, which now represent
the integers 1, ..., 216 − 1, 216 , everything works for multiplication. 216 ≡ −1
mod 216 + 1, and 0000000000000000 is its own inverse under multiplication modulo
216 + 1.
For a description of IDEA, we follow Schneier [9], who breaks the encryption
algorithm into fourteen steps. (Another source for the algorithm is [5].) For each
of the eight complete rounds, the 64-bit plaintext block is split into four 16-bit
sub-blocks: X1 , X2 , X3 , X4 . The 64-bit input block is the concatenation of the sub-
blocks: X1 k X2 k X3 k X4 , where k denotes concatenation. Each complete round
requires six subkeys. The 128-bit key is split into eight 16-bit blocks, which become
eight subkeys. The first six subkeys are used in round one, and the remaining two
subkeys are used in round two. We will discuss the generation of the remaining
keys in the next section.
Each round uses each of the three algebraic operations: bitwise XOR, addition
modulo 216 , and multiplication modulo 216 + 1.
Here are the fourteen steps of a complete round (multiply means multiplication
modulo 216 + 1, and add means addition modulo 216 ):
For every round except the final transformation, a swap occurs, and the input
to the next round is: result of step 11 k result of step 13 k result of step 12 k result
of step 14, which becomes X1 k X2 k X3 k X4 , the input for the next round.
After round 8, a ninth “half round” final transformation occurs:
A SIMPLIFIED IDEA ALGORITHM 3
3. Key Scheduling
Each of the eight complete rounds requires six subkeys, and the final transforma-
tion “half round” requires four subkeys; so, the entire process requires 52 subkeys.
The 128-bit key is split into eight 16-bit subkeys. Then the bits are shifted to
the left 25 bits. The resulting 128-bit string is split into eight 16-bit blocks that
become the next eight subkeys. The shifting and splitting process is repeated until
52 subkeys are generated.
The shifts of 25 bits ensure that repetition does not occur in the subkeys.
Six subkeys are used in each of the 8 rounds. The final 4 subkeys are used in
the ninth “half round” final transformation.
Six subkeys are used in each of the 4 rounds. The final 4 subkeys are used in
the fifth “half round” final transformation.
As an example, we will encrypt the plaintext message 1001110010101100 using
the key 110111000110111100111111.
The ciphertext message is 1011101101001011.
K1 K2 K3 K4 K5 K6
Round 1 1000 0011 1010 0101 1100 0110
Round 2 1000 1011 0111 0100 1111 0011
Round 3 0100 1010 1001 0101 1100 1111
Round 4 0111 0111 1111 1110 0011 1111
Round 5 0100 0100 1010 1000
Decryption key schedule
6. Design Principles
Shannon’s 1949 paper [11] set the standard for modern cryptosystems. It requires
confusion (i.e., there should not be a simple relationship between the ciphertext
and the key) and diffusion (i.e., ideally, every plaintext bit should influence every
ciphertext bit and every key bit should influence every ciphertext bit).
The IDEA algorithm achieves confusion by mixing the three operations bitwise
XOR, addition modulo 216 , and multiplication modulo 216 + 1 on 16-bit blocks.
The operations are arranged so that the output of one operation is never the input
to another operation of the same type. The operations are incompatible in the
sense that no two of them satisfy a distributive law, for example, a ⊕ (b c) 6=
6 NICK HOFFMAN
7. Conclusion
IDEA is a well-known cipher that has been analyzed by many researchers for
the past decade, and, yet, no attack against five or more of its 8.5 rounds has been
found. Due to its strength against cryptanalytic attacks and due to its inclusion in
several popular cryptographic packages, IDEA is widely used. [4]
The Simplified IDEA algorithm is not intended to be compared for efficiency or
security with simplified versions of DES or AES. The Simplified IDEA algorithm is
intended to help students understand the IDEA algorithm by providing a version
of IDEA that permits examples to be worked by hand and to provide a comparison
of the method of IDEA with the methods of DES and AES.
References
1. Lai, Xuejia, and Massey, James L., A Proposal for a New Block Encryption Standard, Advances
in Cryptology - EUROCRYPT ’90, Lecture Notes in Computer Science, Springer-Verlag, 1991:
389-404.
2. Lai, X., Massey, J., and Murphy, S., Markov Ciphers and Differential Cryptanalysis, Advances
in Cryptology – EUROCRYPT ’91, Lecture Notes in Computer Science, Springer-Verlag, 1991:
17-38.
3. Mediacrypt AG, The IDEA Block Cipher, submission to the NESSIE Project,
http://cryptonessie.org
4. Meier, W., On the Security of the IDEA block cipher, Advances in Cryptology
5. Menezes, A., van Oorschot, P., and Vanstone, S. 1996. Handbook of Applied Cryptography.
CRC Press. This book may downloaded from http://www.cacr.math.uwaterloo.ca/hac/
6. Musa, M., Shaefer, E., and Wedig S. 2003. A Simplified AES Algorithm and its Linear and
Differential Cryptanalysis. Cryptologia. 17 (2): 148 - 177.
7. Phan, R. 2002. Mini Advanced Encryption Standard (Mini-AES): A Testbed for Cryptanalysis
Students. Cryptologia. 26 (4): 283 - 306.
8. Schaefer, E. 1996. A Simplified Data Encryption Standard Algorithm. Cryptologia. 20 (1): 77
- 84.
9. Schneier, B. 1996. Applied Cryptography, Second Edition. Wiley.
10. Schneier, B. 1999. http://slashdot.org/interviews/99/10/29/0832246.shtml.
11. Shannon, Claude, Communications theory of Secrecy Systems, Bell systems Technical Jour-
nal. 28 (4): 656 - 715.
12. Trappe, W. and Washington, L. 2006. Introduction to Cryptography with Coding Theory,
Second Edition. Prentice Hall.