The International Data Encryption Algorithm (IDEA)
The International Data Encryption Algorithm (IDEA)
The International Data Encryption Algorithm (IDEA) is a symmetric-key block cipher that
made its debut in 1991. Its primary goal was to establish robust encryption for digital data,
serving a wide array of applications such as secure communications, financial transactions,
and electronic voting systems.
IDEA employs a block cipher with a 64-bit block size and a 128-bit key size. Utilizing an array
of mathematical operations, including modular arithmetic, bit shifting, and eXclusive-OR
(XOR) operations, it transforms plaintext into ciphertext. The cipher is meticulously designed
to offer significant security and resilience against diverse attack techniques, encompassing
differential and linear cryptanalysis.
While newer encryption algorithms like AES (Advanced Encryption Standard) have
predominantly superseded IDEA in recent years, the latter remains recognized as a potent
and efficacious encryption mechanism. It continues to be leveraged in legacy systems and
applications.
In the realm of cryptography, block ciphers play a pivotal role in shaping numerous
cryptographic algorithms. Their prevalence lies in their aptitude for segmenting substantial
data into fixed-size chunks for encryption. These chunks entail a specified amount of
plaintext, which the cipher processes using a predetermined key length, yielding a fixed size
ciphertext. The strength of an algorithm hinges on the length of its encryption key.
The Simplified International Data Encryption Algorithm (IDEA) is a symmetric key block
cipher characterized by the following attributes:
It adopts a fixed 16-bit plaintext, which it divides into four chunks of 4 bits each,
culminating in a 16-bit ciphertext.
The algorithm operates with a 32-bit key, fragmented into 8 blocks, each
comprising 4 bits.
Following the four full rounds, the "half-round" condenses to the initial 4 out of the
14 steps previously engaged in full rounds. Executing these rounds mandates a
transition from binary notation to its corresponding decimal form for computation,
then reverting the result to binary form for the ultimate outcome.
The key schedule relies on 6 subkeys of 4 bits each for each complete round and 4 subkeys
for the half-round. Consequently, 4.5 rounds necessitate a total of 28 subkeys. The initial key,
denoted as 'K', directly provides the first 8 subkeys. By rotating the core key leftward by 6
bits between each set of 8, supplementary sets of 8 subkeys are generated, entailing less
than a single rotation per round (3 rotations).
MODE OF OPERATION
IDEA uses a block cipher with a block size of 64 bits and a key size of 128 bits. A block cipher
is a cryptographic algorithm that encrypts fixed-size blocks of data (typically 64 or 128 bits)
at a time using a secret key. It transforms plaintext blocks into ciphertext blocks using a
specific encryption function, and decryption is performed using a corresponding decryption
function and the same secret key. The cipher takes a fixed size of the plaintext in the
encryption process and generates a fixed size ciphertext using a fixed-length key. IDEA
operates on 64-bit blocks of plaintext and produces 64-bit blocks of ciphertext. It uses a
series of mathematical operations, including modular arithmetic, bit shifting, and eXclusive-
OR (XOR) operations, to transform the plaintext into ciphertext. The cipher is designed to be
highly secure and resistant to various types of attacks, including differential and linear
cryptanalysis.
ENCRYPTION
IDEA derives most of its security from multiple interleaved mathematical operations
including modular addition, modular multiplication and bitwise exclusive-OR (XOR). By using
a 128-bit key, IDEA encrypts a 64-bit block of plaintext into a 64-bit block of ciphertext.
One process partitions the plaintext block into four 16-bit subblocks for each of the eight
complete rounds, namely X1, X2, X3 and X4. Another process produces six 16-bit key
subblocks for each of the encryption rounds, namely K1, K2, K3, K4, K5 and K6.
For subsequent output transformation, a further four 16-bit key subblocks are required.
Thus, from a 128-bit key, a total of 52 16-bit subblocks are generated.
In each complete round, three algebraic operations are performed: bitwise XOR, addition
modulo (216) and multiplication modulo (216+1).
2. Add X2 to Z2.
3. Add X3 to Z3.
Six subkeys are used in each of the eight rounds, and the final 4 subkeys are used in the
ninth half-round final transformation. Swapping occurs for every round until the final
complete round (round 8). After eight complete rounds, the final half-round transformation
occurs. The steps involved are the following:
The decryption process uses the same steps as the encryption process. However, different
16-bit key subblocks are generated. Each of the 52 16-bit key subblocks used for decryption
is the inverse of the key subblock used during encryption with respect to applied algebraic
operations. Also, these subblocks are used in reverse order during decryption. So, if we
numbered them 1 to 52 during encryption, we'd use them in the order 52 to 1 for decryption.
Decryption in IDEA works on the shoes and socks principle, i.e., the last encryption is the first
to be removed. Therefore IDEA decryption reverses the steps of encryption by using special
key parts in the opposite order, to allow us to convert the ciphertext back into plaintext.
SECURITY
Pros:
IDEA is considered to be a very secure encryption algorithm.
Cons:
Other encryption methods, such Advanced Encryption Standard (AES), are thought
to be more secure than IDEA.
As of 2007, the best attack applied to all keys could break IDEA reduced to 6
rounds (the full IDEA cipher uses 8.5 rounds).