Как сказано в @CGG, S-боксы являются компонентом сети Substitution-Permutation. У Wikipedia entry есть хорошие диаграммы, которые помогут объяснить, как они работают.
Подумайте о S-box как о простом шифровании замещения - A = 1, B = 2 и т. Д. В SPN вы запускаете ввод через S-box для замены новых значений, затем вы запускаете этот результат через P-box (перестановка) для распределения модифицированных битов до максимально возможного количества S-блоков. Этот цикл повторяется, чтобы распространить изменения на весь текст шифрования.
В общем, S-box заменяет входные биты одинаковым количеством выходных бит. Этот обмен должен быть 1: 1, чтобы обеспечить обратимость (т. Е. Вы должны иметь возможность отменить операцию для дешифрования), использовать эффект лавины (поэтому изменение 1 бит входных изменений происходит примерно на половине выходных бит) и должно зависеть от каждый бит ввода.