-
Trick question, DES is fully linear
-
Swapping 4 bytes (left and right) after every round
-
Expansion & Contraction algorithms
-
16 rounds of S-Box lookups
EXPLANATION
The genius of Horst Feisel's cipher was in the use S-Boxes
for a non-linear lookup function based on the bit values of the
ciphertext within each round. Operating on only 1/2 the ciphertext per
round, the 48 expanded bits are chopped into 6-bit inputs across the 8
S-Boxes, with each 6-bit input performing a row/table lookup to yield 4
bits of output. Without this non-linear function, DES would have been
linear, and thus very weak.
This design is even more impressive when you
consider that the process ran the same forwards and backwards for
encrypt/decrypt, and was optimized for hardware. While met with great
suspicion when introduced, the Data Encryption Standard proved worthy of
the trust provided it, weathering every attack except Moore's Law and
time, which ultimately led to its obsolescence due to brute force
attacks. 40 years later, the field of cryptography, and the fabric of
the Internet and digital commerce, owes much to the knowledge we gained
regarding cryptanalysis and ciphers from this legacy
SOURCE
https://en.wikipedia.org/wiki/Data_Encryption_Standard#The_Feistel_.28F.29_function