Questions tagged [idea]

The International Data Encryption Algorithm (IDEA) is a block cipher developed in 1991 by James Massey and Xuejia Lai.

The International Data Encryption Algorithm (IDEA) is a block cipher developed in 1991 by James Massey and Xuejia Lai. It was intended as a replacement for the venerable DES block cipher, whose low key size was starting to become an issue.

IDEA operates on 64-bit blocks and has a 128-bit key size. Internally, the cipher consists of 8 rounds and an additional "half-round", with each round mixing bitwise XOR operations with addition and multiplication modulo 216.

Due to its simple key schedule, IDEA has known classes of weak keys which reduce the security of the cipher if used. However, such weak keys are rare enough that IDEA remains secure if keys are chosen randomly.

IDEA used to be patented in several countries, but the last patents expired in 2012. Even before that, the patent holders had granted a free license for non-commercial use. IDEA was adopted for PGP v2.0 to replace the insecure BassOMatic cipher of PGP v1, and remains an optional cipher in the OpenPGP standard.

18 questions
3
votes
1 answer

How to multiply a matrix of bits with another?

For example, assume I have two 4x4 matrices of bits: 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 I want to apply matrix multiplication for the modified IDEA (International Data Encryption Algorithm).…
goldroger
  • 1,737
  • 8
  • 33
  • 41
3
votes
1 answer

openssl_get_cipher_methods: which one to choose?

When calling openssl_get_cipher_methods we get several cipher methods. I noticed that some of these method have same prefix like AES-256-(CBC|CFB|CFB1) or IDEA-(CBC|CFB). My question is which one to choose: which is the most safe and secure for…
Sidson AIdson
  • 43
  • 1
  • 3
2
votes
0 answers

How do I generate decryption keys for the IDEA algorithm from the 128 bit key?

I am trying to implement IDEA algorithm in C#, just to learn how it works. I have taken a 128 bit binary key and generated the 52 encryption keys using the following code: static ushort[] getKeys(string binaryKey) { ushort[] keys = new…
2
votes
4 answers

How to perform Multiplicative Inverse Modulo in IDEA

How to perform the Multiplicative Inverse Modulo in International Data Encryption Algorithm? I don't understand on how to perform it… For example, let's say I have a value of cf80 and the value that is appearing to me is this 3080. This is the thing…
goldroger
  • 1,737
  • 8
  • 33
  • 41
2
votes
0 answers

Algebraic Attack on Mix Mode Modular Arithmetic

I have a toy cipher that comprises of Mix Mode Modular Arithmetic (bit similar to IDEA including, Addition Modulo $2^{n}$ , Multiplication Modulo $2^{n}$ , Subtraction Modulo $2^{n}$ and circular shifts). I want to apply Algebraic Cryptanalysis…
R. Sam
  • 389
  • 2
  • 7
2
votes
1 answer

How can I implement the "Multiplication Modulo" and "Addition Modulo" operations in IDEA?

I am currently working on IDEA (International Data Encryption Algorithm), and I don't know how to perform Multiplication Modulo and Addition Modulo. This is how IDEA operates: IDEA operates on 64-bit blocks using a 128-bit key, and consists of a…
goldroger
  • 1,737
  • 8
  • 33
  • 41
2
votes
0 answers

how to build the plaintext structure for impossible differential cryptanaysis on IDEA?

I'm trying to implement impossible differential cryptanalysis on 3.5 round IDEA using Miss in the Middle Attack on IDEA and Khufu paper as a reference and I'm stuck on the first two steps of the attack: In the paper the authors say that I should…
siba36
  • 301
  • 1
  • 12
2
votes
1 answer

how to build textset for Impossible Differential Cryptanalysis on IDEA?

I'm implementing impossible differential cryptanalysis on 3.5 round IDEA using the methods in "Miss in the middle attack on IDEA and Khufu" paper. In the first step, I need to provide $2^{32}$ pairs that are identical in $X_2$ and $X_4$ and have all…
siba36
  • 301
  • 1
  • 12
1
vote
0 answers

decryption in IDEA if the encryption was made without the output transformation

I'm implementing IDEA encryption and decryption and I'm trying to implement it in different variants(e.g if we didn't do the output transformation or if we don't do full 8-round encryption). I got the encryption and decryption right for all variants…
siba36
  • 301
  • 1
  • 12
1
vote
2 answers

test vectors for IDEA

I'm implementing IDEA algorithm in java and I need test vectors for the algorithm that include plaintext,ciphertext and keys in each step to verify my code.
siba36
  • 301
  • 1
  • 12
1
vote
1 answer

Modifying Mix Mode Modular Arithmetic in IDEA Cipher

IDEA uses Mix Mode Modular Arithmetic that includes Addition Modulo $2^{16}$ and Multiplication Modulo $2^{16}+1$. If Multiplication Modulo with $2^{16}$ is used instead of $2^{16}+1$ (where $2^{16}$ is not a prime field) how this modification…
R. Sam
  • 389
  • 2
  • 7
1
vote
2 answers

Key Scheduling of the International Data Encryption Algorithm (IDEA)

How is key scheduling done in the International Data Encryption Algorithm (IDEA). I did some research, but to no avail. I could not understand this statement from Wikipedia: ...further groups of eight keys are created by rotating the main key left…
goldroger
  • 1,737
  • 8
  • 33
  • 41
1
vote
0 answers

How to get the value of the subkeys in IDEA decryption?

So I saw this example of IDEA .. If the key is : 5a14 fb3e 021c 79e0 6081 46a0 117b ff03 The encryption subkeys are: https://i.sstatic.net/suj48.jpg The decryption subkeys are: https://i.sstatic.net/EmCFU.jpg And I can't figure out how the…
1
vote
1 answer

Weak key schedule IDEA

Why was such a weak key schedule chosen for IDEA? The key schedule of IDEA works like this: Divide the key (128 bit) into 8 round keys, each 16 bit long. This are the first 8 "round" keys (6 keys per round). Rotate the original key by 25 bit to the…
Nova
  • 3,900
  • 1
  • 18
  • 23
1
vote
1 answer

How is multiplication inverted in IDEA's decryption round?

As we can see in the picture we have a multiplication in this algorithm, we know that two 16 bit inputs should have a 32 bit output, but here we just use 16 bits of the 32 bit output. For decryption we can reverse the algorithm from bottom of the…
1
2