DES is the best studied symmetric key algorithm
- Overview
- Internal Structure of DES
- initial and final permutation
- the -function
- key schedule
- Decryption
- reversed key schedule
- Security
- Exhaustive Key Search
- Weak Keys
- Analytical Attacks
- Implementations
- Alternatives
- 2DES
- 3DES
Overview
Fiestel Network paradigm of block ciphers
-
-
-
advantageous since encryption and decryption are very similar
-
thing of as a pseudorandom generator
-
each round bijectively maps input to output even if is not bijective (it is surjective)
Internal Structure of DES
Initial and Final Permutation
and add no additional security but are 2 bitwise permutations before and after the feistel network
The -function
E-box:
- increases the diffusion behaviour of DES since certain input bits influence two different output locations
S-box: all S boxes in a round are different
- core of the cryptographic strength
- only non-linear element and provide confusion
- criteria
- no single output bit should be too close to a linear combination of the input bits
- if the lowest and highest bits of input are fixed and the four middle bits are varied, each of the 4-bit output values must occur exactly once
- if two inputs to an s-box differ in exactly one bit their outputs must differ in at least two bits
- If two inputs to an S-box differ in the two middle bits, their outputs must differ in at least two bits.
- If two inputs to an S-box differ in their first two bits and are identical in their last two bits, the two outputs must be different.
- For any nonzero 6-bit difference between inputs, no more than 8 of the 32 pairs of inputs exhibiting that difference may result in the same output difference.
- A collision (zero output difference) at the 32-bit output of the eight S-boxes is only possible for three adjacent S-boxes.
- non linearity
P-permutation: introduces diffusion
- ensures by end of 5th round every bit is a function of every plaintext bit and every key bit
Key Schedule
- derives 16 rounds keys of 48 bits from 56-bit master key (every 8th bit is used as odd parity bit over previous 7 bits for total 64-bit master key)
- initial permutation
- split into two halves and
- start 16 round key schedule
- with each round the two halves are cyclically shifted by 1 bit id (round index) is a perfect square
- other wise rotated left by 2
- total rotation positions are which gives us and same for (this is useful for decryption)
- Each round key comes from a permutation on given by (same permutation)
Decryption
- essentially same as encryption, just key schedule needs to be reversed
Reversed Key Schedule
from generate
and the remaining can be derived with right shift on