Codificação por substituição

Janeiro 2017

A codificação por substituição

A codificação por substituição consiste em substituir numa mensagem uma ou várias entidades (geralmente letras) por uma ou várias outras entidades.

Distinguem-se geralmente vários tipos de criptosistemas por substituição:

  • A substituição monoalfabética consiste em substituir cada letra da mensagem por outra letra do alfabeto
  • A substituição polialfabética consiste em utilizar uma sequência de números monoalfabética reutilizada periodicamente
  • A substituição homofónica permite fazer corresponder a cada letra da mensagem normal um conjunto possível de outros caracteres
  • A substituição de poligramas consiste em substituir um grupo de caracteres (poligrame) na mensagem por um outro grupo de caracteres

A codificação César

Este código de cifragem é um dos mais antigos, na medida em que teria sido utilizado por Júlio César. O princípio de codificação assenta na adição de um valor constante ao conjunto caracteres da mensagem, ou mais exactamente o seu código ASCII (para uma versão “informática” desta codificação).

Trata-se simplesmente de deslocar o conjunto dos valores dos caracteres da mensagem de um certo número de posições, quer dizer, em certa medida substituir cada letra por outra. Por exemplo, deslocando a mensagem “COMMENT CA MARCHE” de 3 posições, obtem-se “FRPPHQW FD PDUFKH”. Quando a adição do valor dá uma letra que excede a letra Z, é suficiente continuar partindo de A, o que é o mesmo que efectuar um modulo 26.
Por exemplo, no filme A odisseia do espaço, o computador tem o nome de HAL. Este apelido é com efeito IBM deslocado de 1 posição para baixo…

Chama-se chave ao caracter que corresponde ao valor que se acrescenta à mensagem para efectuar a cifragem. No nosso caso, a chave é C, porque é a 3.ª letra do alfabeto.

Este sistema de cifragem é certamente simples de aplicar, mas tem o inconveniente de ser totalmente simétrico, isto significa que basta fazer uma subtracção para conhecer a mensagem inicial. Um método primário pode consistir numa subtração básica dos números 1 a 26 para ver se um destes números dá uma mensagem compreensível.
Um método mais evoluído consiste em calcular as frequências de aparecimento das letras na mensagem codificada (isto é mais fácil de fazer quanto mais longa for a mensagem). Efectivamente, dependendo da língua, certas letras aparecem mais correntemente do que outras (em português, por exemplo, a letra mais utilizada é a letra E), assim a letra que aparece mais frequentemente num texto cifrado pelo cálculo César corresponderá provavelmente à letra E, uma simples subtracção dá então a chave de cifragem…

A codificação ROT13

No caso específico da codificação Júlio César, onde a chave de cifragem é N (13.ª letra do alfabeto), chama-se a esta cifragem ROT13 (o número 13, metade de 26, foi escolhido para poder calcular e decifrar facilmente as mensagens textuais).

Veja também


Substitution cipher
Substitution cipher
Cifrado de sustitución
Cifrado de sustitución
Chiffrement par substitution
Chiffrement par substitution
Cifrario a sostituzione
Cifrario a sostituzione
Este documento, intitulado 'Codificação por substituição', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.