Cifra de substituição simples (vários caracteres) - GregorioFornetti/CriPython GitHub Wiki
Vídeo tutorial
Caso goste de assistir vídeos tutorias, clique aqui para assistir um vídeo sobre a cifra de Substituição simples vários caracteres.
Substituição simples - Vários caracteres
O modo vários caracteres da cifra de substituição simples consiste em trocar qualquer caractere da mensagem por algum outro a sua escolha. Por exemplo, você pode trocar o "A" por "!", o "t" por "L", o "k" por ".", etc. Agora, para fazer a tradução, basta fazer o processo inverso de trocas. Por exemplo, se você trocar o "a" por "b", para traduzir a mensagem você deve trocar o "b" por "a".
Chaves disponíveis
Nesse tipo de cifra, a chave é dividida em duas partes: "letras mensagem comum" e "letras mensagem encriptada". Existem dois casos de chaves aceitas por essa cifra, que serão explicados logo abaixo:
Caso 1: ambas as chaves possuem todos os caracteres em comum (preferencialmente em ordem diferente). Nesse caso, todos caracteres da chave "letras mensagem comum" encontrados na mensagem, serão trocados pelos caracteres contidos na chave "letras mensagem encriptada". Para a tradução, o processo inverso acontecerá: todos caracteres da chave "letras mensagem encriptada" encontrados na mensagem, serão trocados pelos caracteres contidos na chave "letras mensagem comum".
EX: Considerando os seguintes valores: "letras mensagem comum" = abc e "letras mensagem encriptada" = cab, temos que toda vez que for encontrado a letra "a" na mensagem comum, ela será trocada por "c", "b" será trocado por "a" e "c" por "b". No caso da tradução, o "a" será trocado por "b", o "b" por "c", e o "c" por "b".
Caso 2: ambas as chaves possuem todos os caracteres em discordância (nenhuma possui um caractere igual a outra). Nesse caso, todos caracteres da chave "letras mensagem comum" encontrados na mensagem serão trocados pelos caracteres contidos na chave "letras mensagem encriptada", e todos os caracteres da chave "letras mensagem encriptada" encontrados na mensagem, serão trocadas pelos caracteres contidos na chave "letras mensagem comum". Para a tradução, o mesmo processo é aplicado.
EX: Considerando os seguintes valores: "letras mensagem comum" = a e "letras mensagem encriptada" = b, temos que toda vez que for encontrado a letra "a", ela será trocada por "b", e todo "b" será trocado por "a".
OBS 1: Caso tenha algum caractere repetido dentro de alguma das chaves, elas serão rejeitadas (ex: chave= "abcda").
OBS 2: Caracteres de caixa baixa e alta são considerados diferentes nesse modo. Por exemplo, se você colocar "Aa" na chave, ela poderá ser aceita.
OBS 3: Se você escolher que "a" será trocado por "b", "A" não será trocado por "B" (se você não definir essa troca). Para que "A" seja trocado por "B" nesse modo, você precisa defini-lo em sua chave.
Exemplos
EX 1: Considerando o valor "abcde" como "Letras mensagem encriptada" e "fghij" como "Letras mensagem comum", temos que, na mensagem encriptada, o "a" será trocado por "f", o "b" por "g", o "c" por "h"...
EX 2: Para fazer a tradução do exemplo anterior, o "f" terá que virar "a", o "g" virará "b", e o "h" terá que se transformar em "c"...
EX 3: Mensagem: "A" não trocará, "a" trocará
Letras mensagem comum: a
Letras mensagem encriptada: !
Mensagem encriptada: "A "não troc!rá, "!" troc!rá
EX 4: Mensagem: "A" trocará agora
Letras mensagem comum: aA
Letras mensagem encriptada: !?
Mensagem encriptada: "?" troc!rá !gor!
Algumas indicações
Caso tenha desejo em saber como essa cifra foi implementada em código Python, acesse o arquivo "subst_simples.py" na pasta "Cifras".