DES is a Boolean function that takes as input 64 bit block of plaintext and a 56 bit key and computes a 64 bit block of ciphertext:

In a known plaintext attack, a number of plaintext/ciphertext pairs
is available where the ciphertexts are all produced by the same key from
the corresponding plaintexts. The task is to find the key that was used
to generate the ciphertexts.

The difficulty of the benchmark can be adjusted in a number of ways:

- DES is a block cipher which consists of rounds and the strength ofthe cipher increases as the number of rounds grows. The complete DES contains 16 rounds. Interesting benchmarks can be obtained using a substantially smaller number of rounds (2,3,4,..).
- Increasing the number of plaintext/ciphertext pairs typically makes finding the key easier.
- Finding the key can be made easier by giving some of the key bits as input.

INPUT: A number of plaintext and ciphertext pairs, i.e. pairs of
64 bit blocks such that for each pair the ciphertext is the DES encoding
of the plaintext using the same key k for all pairs. This key is not part
of the input.

OUTPUT: The key k (56 bit block) that was used for encryption.uced by the same key from the corresponding plaintexts. The task is to find the key that was used to generate the ciphertexts.

DATA SETS:

General
information

DES data
file (tarred)

NOTES:

- Specification of DES
- There is a paper that discusses DES as a benchmark for nonmonotonic reasoning system and explains how to encode DES using normal logic programs and the stable model semantics: Hietalahti, M., Massacci, F., and Niemela, I. DES: a challenge problem for nonmonotonic reasoning systems. In Proceedings of the 8th International Workshop on Non-Monotonic Reasoning.
- Example encoding of DES using Smodels
- Proposed by Ilkka Niemel\"a