S-Boxen sind elementare Bestandteile von Feistel-Netzwerken. Es handelt sich dabei um Funktionen, die eine m-n Abbildung realisieren, d.h. m Eingabe-Bits werden auf n Ausgabe-Bits abgebildet. Mit S-Boxen werden nichtlineare Abbildungen implementiert.
Zu unterscheiden sind im wesentlichen zwei Varianten:
Die Sicherheit von Verschlüsselungsalgorithmen, die auf Feistel-Netzwerken basieren, hängt in der Hauptsache von den gewählten S-Boxen ab.
Bruce Schneier empfiehlt (in [Schneier 1996], S.405):
"..., ich persönlich meine jedoch, daß S-Boxen so groß wie möglich, zufällig und schlüsselabhängig sein sollten."
DES verwendet S-Boxen entsprechend folgendem Schema:
Eine einzelne S-Box wird dabei durch eine Tabelle repräsentiert. Für S-Box 4 sieht diese so aus:
Die Abbildung von Eingangsbits auf Ausgangsbits geschieht folgendermaßen: