This is a question I had in my exam today, and I'll be glad if someone can help me to find the answer.
A student built an encryption algorithm (something between DES and 3DES), in which the encryption is based on 2 keys, $K_1$ and $K_2$, and calculated this way:
$$Cipher = E_{K_1} (E_{K_2} (plaintext))$$
where $E_{K_i}$ is encryption using the key $K_i$.
An attacker knows:
- A single plaintext.
- The ciphertext of that plaintext.
- The encryption algorithm.
- Each key is 56-bit.
How can he find the 2 keys?
Of course there's the brute-force solution, looking in all the possible pairs of keys until we find the correct one.
My question is: Can we find another way, better than the brute-force, in order to find the keys?