Now, if we were to go round by round, you could give a distinct reason for not using a single round since after just one round, the right half of the text comes directly, as-is, to form the left half of the new text after the one round. In this way, if an observer were to notice this, he/she could deduce that DES may be the algorithm being implemented. But is there a way of figuring out that DES is being used after performing TWO rounds?

  • 2
    $\begingroup$ What you are looking for a is '2-round distinguisher' $\endgroup$ Feb 2, 2015 at 4:24
  • 1
    $\begingroup$ Rule #1 of security: The attacker knows the system. Don't try to use "an attacker doesn't know how we're encrypting this message" to provide any amount of security; even if you don't in fact publish the system you're using, any security analysis assumes the attacker has already figured it out. $\endgroup$
    – cpast
    Feb 3, 2015 at 1:50

1 Answer 1


DES with 2 rounds is broken. It is trivial to find a way to get the key with much less work than for the full DES (and even that is broken).

DES is a Feistel cipher, so we have two halves, the left and the right half. For every round, we do something with the one half and a subkey, and then XOR it with the other half. After that we switch both halves, repeating the whole algorithm until we have done all rounds.

Let's say we begin with both halves before the first round, $l_0$ and $r_0$. The calculated values for the next round are, with $DES()$ as the encryption function, this:

$$ l_1 = r_0 $$ $$ r_1 = DES(r_0) \oplus l_0 $$

If we continue this for another round, we have two "randomly mixed" halves. It's not easy to get the ciphertext from this, especially if the round function is really good. The one of DES is not so good, and that's the reason why we use 16 and not 4 rounds. (4 is the minimum of rounds needed, but explaining that would be beyond the scope of this answer.)

But there's another way to solve this. We can use the chosen-plaintext attack. If we encrypt an arbitrary plaintext, and then the same plaintext with one bit in the left side inverted, we will see some interesting things in the ciphertext: The right half has changed pretty much, but in the left half only the one bit you inverted earlier did change. This works with every Feistel cipher, not just DES. If you have to determine if DES was used, then you have a bit more work to do. I can't tell you how, but searching for something like "breaking DES reduced rounds" would be a good way to find a solution.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.