Data Encryption Standard
History of LUCIFER, DES, triple DES
- 1971: IBM project, led by Horst Feistel, develops LUCIFER algorithm: A Feistel block cipher with 64-bit blocks and 128-bit key. Sold to Lloyd’s of London for use in a cash-dispensing system, also developed by IBM. Refined version (effort lead by Walter Tuchman and Carl Meyer of IBM, with support of National Security Agency NSA): more resistant to cryptanalysis but 56-bit key in order to fit on a single chip.
- 1973: National Bureau of Standards (NBS) issues a request for proposals for a national cipher standard. IBM’s refined version of LUCIFER by far best algorithm proposed.
- 1977: adopted as Data Encryption Standard (Federal Information Processing Standard 46 (FIPS PUB 46)) by National Bureau of Standards (now National Institute of Standards and Technology NIST).
- 1994: NIST reaffirms DES for federal use for another 5 years, recommends use for applications other than protection of classified info.
- 1999: NIST issues a new version (FIPS PUB 46-3), indicates DES should be used only for legacy systems and triple DES be used.
Data Encryption Standard
Data Encryption Standard is a symmetric key encryption algorithm.
Although DES standard is public, there was controversy over its design:
Link to original
- in choice of 56-bit key over 128-bit key Subsequent research showed design was in fact appropriate. DES is still standard for legacy application use. Extensions such as triple DES were created to overcome short key length.
- design criteria was classified
DES Encryption Scheme
- Block size of bits.
- Plaintext and ciphertext space is
- The input is bits of plaintext with a -bit key. (note: -bit key used as input but only bits are used)
- The output is bits.

DES keys are all bitstrings of length with a checksum property.
If a -bit DES key is divided into eight bytes, then the sum of the eight bits of each byte is odd. This means that out of the bits determine the value of the bit so that transmission errors of one bit can be spotted.
Therefore the key space is:
When we throw away the last bit of each byte, we are left with bits.
Explanation of scheme
The plaintext is processed in 3 phases:
- Initial permutation (): rearranges bits to produce permuted input
- 16 rounds of both permutation and substitution functions
- Output of round: bits, function of input plaintext and keys
- Left and right halves of output swapped to produce preoutput
- Preoutput is passed through to finally produce -bit ciphertext.
Except for initial and final permutations, DES has the exact structure of a Feistel cipher.
and have no cryptographic significance but included to facilitate loading blocks in and out of mid-1970s 8-bit based hardware.
Use of -bit key:
- Initially, key is passed through a permutation function.
- For each of rounds, a subkey is produced by a combination of left circular shift and permutation. The permutation function is the same for each round but a different subkey is produced because of repeated shifts of key bits.
and are defined by tables:
- Input to a table consists of bits numbered from to .
- The entries in permutation table contain a permutation of numbers from to .
- Even bits to LH half, odd bits to RH half.
- restores the original ordering of bits

Example: consider -bit input and permutation
Details of Single Round

- and halves of each -bit intermediate value treated as separate -bit quantities.
- As in any Feistel cipher, overall processing at each round is:
- The round key is bits.
Encryption
-
is bits and is expanded to bits by using Expansion Permutation (E) table which defines a permutation plus an expansion that involves a duplication of bits of . Resulting bits are XORed with .

-
bit result of XOR passes through substitution function (S-box) that produces a -bit output.
Substitution consists of a set of S-boxes, each of which accepts bits as input and produces bits as output.

The transformations are defined by the following table:
- The first and last bits of the input to box form a -bit binary number to select of substitutions defined by four rows in the table for .
- Middle bits select one of the columns.
- Decimal value in the cell selected by the row and column is then converted to its -bit representation to produce output.
- Each row of an S-box defines a general reversible substitution.

Example: in for input , the row is (row ) and the column is (column ). The value in row , column is , so the output is . -
The -bit output is permuted by using a table (Permutation Function P).

Key Generation
- -bit key is used as an input
- Every eighth bit is ignored:

- Key first subjected to a permutation using table Permuted Choice One

- Resulting -bit key is treated as two -bit quantities and .
- At each round, and are separately subjected to a circular shift (rotation) of or bits as governed by the Schedule of Left Shifts table.

- Shifted values are input to:
- next round
- Permuted Choice Two which produces a -bit output that serves as input to function
Decryption
As with any Feistel cipher, decryption uses the same algorithm as encryption, except that the application of the subkeys is reversed.
Example

Security of DES and Triple DES
Strength of DES (and Triple DES)
Since its invention, security of DES has been studied intensively. Special techniques such as differential cryptanalysis and linear cryptanalysis have been invented to attack DES (e.g. reducing key space from to ).
Most successful attack is an exhaustive search of the key space.
Link to original
- Special hardware or large networks of workstations can decrypt DES ciphertexts in a few days or even a few hours. hours with million dollar computer in 1993.
- DES will be breakable on a single PC.
Double DES
Double DES
To increase DES security, a proposal was made to perform two DES encryptions which supposedly was equivalent to using bit keys (i.e. and , but this is not true):
Link to original
Strength of Double DES
However, this is susceptible to a Meet-in-the-Middle attack:
Link to original
- For , let .
- Given known and , encrypt for all possible possible .
- Store in table, sorted by .
- Decrypt with all possible and look for a match.
- Each hit is a candidate solution, validated with additional plain/cipher-text pair.
- A known plaintext attack against double DES will succeed with effort on the order of operations.
Triple DES
Triple DES
Use 3 stages of encryption instead of 2, with 2 keys and :
- Compatible with standard DES () if needed.
- There is no known practical attack but a brute-force attack search with operations.
Link to originalVariant of Triple DES exists with different keys .
This has an effective key length of bits. This is also adopted by some internet applications such as PGP and S/MIME.
Advanced Encryption Standard
Advanced Encryption Standard (AES)
A symmetric block cipher intended to replace DES for commercial applications.
- Uses -bit block size and a key size of , , or bits.
- Does not use Feistel structure.
- Each full round consists of separate functions:
- byte substitution
- permutation
- arithmetic operations over a finite field
- XOR with a key
Link to original
History of AES
- 1997: NIST initiated selection process for the successor of DES. One of the submissions was the Rijndael cipher (named after its inventors Rijmen and Daemen).
- 2001: this encryption scheme standardized as the Advanced Encryption Standard. AES special case of Rijndael, which admits more different block lengths and ciphertext spaces.
AES Encryption
-
Key length can be , , or bytes ( or bits).
-
Cipher consists of rounds depending on key length:
- rounds for -byte key
- rounds for -byte key
- rounds for -byte key

Simplified DES (S-DES)
[skipped this, TODO later i guess for practice] [PDF included in this folder]



