SubBytes
A etapa do AES que troca cada byte do estado por outro por meio de uma S-box fixa — a única operação não linear de toda a cifra.
A S-box não é uma tabela arbitrária. Cada byte é tratado como um elemento de GF(28), substituído pelo seu inverso multiplicativo e depois passado por um mapeamento afim. A construção foi escolhida porque o melhor diferencial ocorre com probabilidade 4/256 e a melhor aproximação linear é quase tão fraca, e essa é toda a defesa do AES contra a criptoanálise diferencial e linear. Sem o SubBytes, o AES seria um sistema de equações lineares, e esses se resolvem antes do almoço.
A ironia é que a tabela matematicamente elegante virou o ponto fraco da implementação. O software consulta a S-box na memória, e consultas indexadas por dados secretos vazam pelo cache. É por isso que o AES-NI existe, executando a etapa em hardware desde 2010.