Fino ad ora sono state utilizzate funzioni di tipo lineare (cioè gli xor, le permutazioni e le espansioni), e se un sistema fosse realizzato utilizzando solo funzioni di questo tipo sarebbe molto facile romperlo.
L'unico punto in cui il sistema DES non utilizza funzioni di tipo lineare è nelle S-box, che costituiscono quindi il fulcro dell'algoritmo. Riportiamo qui di seguito, a titolo di esempio, la tabella che specifica la S-box 1:
Vediamo come si leggono. Dato Bi (l'input a 6 bit dell'S-box Si), il primo e l'ultimo bit di Bi vengono interpretati come indice di riga, mentre i bit centrali come indice di colonna. La prima riga di Si è la riga 00, la seconda riga è la 01, la terza riga è la 10 e la quarta riga è la 11. Per le colonne abbiamo un'indicizzazione analoga: la prima colonna è la colonna 0000, la seconda colonna è la colonna 0001, ... , l'ultima colonna è la colonna 1111. Si consulta la tabella Si alle coordinate prescritte e il valore in uscita dall'S-box è l'equivalente binario del decimale trovato. In Figura 2.4.2 vi è un esempio di applicazione di S1 sull'input B1 = 101110.
Come abbiamo già detto in precedenza le S-box appaiono a molti come qualcosa di misterioso: alcuni asseriscono addirittura che esse nascondano in sé delle trapdoor. Tali sospetti nascono dal fatto che i criteri di progettazione delle S-box non sono al momento completamente noti.
Ad ogni modo nel 1976 l'NSA rese note alcune proprietà di cui le S-box godevano:
Le ultime due proprietà sono conseguenza dei criteri di progettazione. In tutti i casi non è noto se altre proprietà furono usate nel progetto delle S-box.