Suppose that you knew that a plaintext was encrypted with DES and consisted only of 16-bit Unicode letters, numerals, and punctuation marks available on a standard English-language QWERTY keyboard. How could you use this knowledge to attack the DES-encrypted cipher?


Pure, raw DES has a key length of 56 bits, which makes it trivially vulnerable to a brute-force attack. Just try all $2^{56}$ possible keys to decrypt the message and stop when you find an English message. On average, this will happen after $2^{55}$ trial decryptions. See the Brute Force Attack section on the DES Wikipedia page for more information on how this has been done historically.

Detection of English text can be automated in several different ways, mostly using metrics that have been computed for large English corpora. Examples are the index of coincidence, letter frequency, and (more generally) n-gram frequency. Counting the number of spaces in the putative plaintext also works surprisingly well; textual documents tend to have quite a few of them.

Attacks under this model are called known-plaintext attacks. Secure ciphers are not vulnerable to known-plaintext attacks: if you replace DES with 3DES, AES, Salsa20, ... in your question, then the answer is "there is no known attack." But DES's key length is short enough to enable brute-force attacks. Note that the only attacks on DES faster than brute-force are not practical: they require an obscene amount of known (or even worse, chosen) plaintexts.

  • $\begingroup$ and you can't make use of the knowledge that every other byte is 0? $\endgroup$ – ratchet freak Feb 4 '14 at 12:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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