As far as I know, there are three standard options for the three keys $K_1$, $K_2$ and $K_3$ used by 3DES:
- Three distinct keys.
- The first and last key are equal: $K_1$ = $K_3$.
- Three equal keys: $K_1 = K_2 = K_3$
I wonder whether there is a way to find out which one of these options is (most likely) being used, given a set of known (plaintext, ciphertext) pairs. The attack does not need to reveal the keys; the goal is simply to find out which keying option is being used.
Currently, the only method I could think of consists of trying to recover the key. That is, apply known attacks on the third and second keying options. For example, a brute-force attack of complexity $2^{56}$ followed by a chosen plaintext attack of complexity $2^{57}$.
So the question is really: is there a way of doing this more efficiently, without having to figure out the keys. If that's not possible, (how) can the above mentioned method be optimized?