A codificação por substituição consiste em substituir em uma mensagem uma ou várias entidades (geralmente letras), por uma ou várias outras entidades. Geralmente, distinguimos vários tipos de criptossistemas por substituição:
A substituição monoalfabética, que consiste em substituir cada letra da mensagem por outra letra do alfabeto;
A substituição polialfabética, que consiste em utilizar uma sequência de números monoalfabética reutilizada periodicamente;
A substituição homófona, que possibilita que cada letra da mensagem de texto simples corresponda a um grupo possível de outros caracteres;
A substituição de transposição, que consiste em substituir um grupo de caracteres, por um outro grupo de caracteres, em uma mensagem.
Este código é um dos mais antigos, já que teria sido utilizado por Júlio César. O princípio de codificação se baseia na adição de um valor constante a todos os caracteres da mensagem ou, mais exatamente, o seu código ASCII (para uma versão ‘informática’ desta codificação).
Basta trocar todos os valores dos caracteres de uma mensagem em um certo número de posições, ou seja, substituir cada letra por outra. Por exemplo, se trocarmos 3 posições da frase 'COMMENT CA MARCHE', obteremos 'FRPPHQW FD PDUFKH'. Quando o valor agregado der uma letra posterior a Z, basta continuar começando por A.
O caractere que corresponde ao valor que se agregou à mensagem para efetuar a codificação chama-se chave. Neste caso, a chave é C, já que é a 3ª letra do alfabeto.
Este sistema de codificação é, na realidade, muito fácil de aplicar, mas a sua desvantagem é ser totalmente assimétrico, o que significa que basta fazer uma subtração para ver a mensagem inicial. Um método básico consiste em uma simples subtração dos números 1 a 26 para ver se um destes números nos dá uma mensagem inteligível.
Um método mais avançado consiste em calcular a frequência com que aparecem as letras na mensagem codificada (quanto mais longa a mensagem, mais fácil de fazer). Dependendo do idioma, algumas letras são mais usadas do que outras (em português a letra mais utilizada é a letra A). Assim sendo, a letra que mais aparece num texto cifrado pela codificação César corresponderá provavelmente à letra A e a simples subtração nos dará a chave de codificação.
No caso específico da codificação César, onde a chave de codificação é N (13ª letra do alfabeto), ela é chamada de ROT13 (o número 13, metade de 26, foi escolhido para que seja possível calcular e decifrar as mensagens de texto).