Quebrador de cifra de substituição

Esta calculadora online tenta decodificar a cifra de substituição sem saber a chave. Ela usa algoritmo genético em cima da função de adequação do texto para quebrar o texto codificado

A calculadora abaixo tenta decodificar automaticamente o texto criptografado com a simples substituição de cifra sem saber a chave. A lógica da calculadora é explicada abaixo.

PLANETCALC, Quebrador de cifra de substituição

Quebrador de cifra de substituição

Chave para descriptografar a mensagem
 
Chave usada para criptografar a mensagem
 
Texto descriptografado
 
Adequação do texto inicial
 
Adequação do texto final
 
O arquivo é muito grande; pode ocorrer lentidão do navegador durante o carregamento e a criação.

Em criptografia, uma cifra de substituição é um método de criptografia que opera de acordo com um sistema pré-definido de substituição. Para criptografar uma mensagem, unidades do texto - que podem ser letras isoladas, pares ou outros grupos de letras - são substituídas para formar a cifra. As cifras de substituição são decifradas pela substituição inversa. Uma substituição simples pode ser expressa escrevendo o alfabeto numa ordem diferente, que se designa alfabeto de substituição. 1

Para a substituição de cifra simples, o conjunto de todas as chaves possíveis é o conjunto de todas as possíveis permutações. Logo, para o alfabeto latino, o número de chaves é 26! (fatorial de 26), que é aproximadamente 403*10^{24}. Portanto, se você quiser decifrar o texto sem saber a chave, a abordagem por força bruta está fora de questão.

Entretanto, a substituição de cifra simples é considerada uma cifra fraca, porque é vulnerável a criptoanálise. Primeiramente, a substituição não muda as frequências das letras, logo, se você tem uma quantidade suficiente de texto criptografado e sabe o idioma no qual ele foi escrito, você pode tentar a análise de frequência. Por exemplo, a letra mais comum do idioma Inglês é E, logo, a letra mais comum no texto criptografado é provavelmente a substituição de E. O analista também procura a frequência dos bigramas e trigramas, pois algumas frequências de unigrama são muito próximas uma das outras para poder se confiar. Utilizando as frequências, o analista pode criar chaves de tentativa e testá-las para ver se elas revelam algumas palavras e frases no texto criptografado.

Mas essa abordagem manual requere muito tempo, então o objetivo da solução automática é excluir o humano do processo de quebra da cifra. E isso é possível devido uma outra vulnerabilidade da cifra de substituição simples, conhecida como Utilidade de solução parcial.

Em outras palavras, se há muitos pares de chaves no espaço de chave onde descriptografia do texto criptografado pela chave mais similar à chave correta que mais proximamente se assemelha ao texto-fonte do que a descriptografia do texto criptografado pela outra chave, a cifra tem Utilidade de Soluções Parciais... Se há uma correlação entre o grau ao qual uma chave se parece, a chave correta e o grau ao qual essa descriptografia de chave do texto criptografado se assemelha ao texto-fonte, será possível procurar o espaço de chave eficientemente ao rapidamente descartar chaves que são "piores" do que qualquer chave que seja uma combinação mais próxima a qualquer momento, chegando cada vez mais perto à chave ideal sem conhecê-la inicialmente. Melhor ainda, esses espaços de chave podem ser buscado através dos Algoritmos de Otimização Estocástica. 2

A parte complicada aqui é como você pode medir se uma das chaves é "pior" do que a outra. Para isso, precisamos da adequação do texto que nos informa um tipo de pontuação sobre como o texto inserido se parece com um texto típico do idioma desejado. Existem diferentes abordagens, e eu tentei essa e essa também, mas a que funcionou para mim está descrita aqui: Adequação de texto (versão 3). Em resumo, ela usa a soma das probabilidades de registro dos quadgramas e compara a soma com a soma para o texto "normal" (criado como a soma de probabilidades de registro dos quadgramas mais frequentes do idioma). Aqui eu gostaria de agradecer a Jens Guballa (site), autor de outro solucionador de substituição (em inglês e alemão), que gentilmente me forneceu a dica que a função de adequação do texto deveria ser "normalizada".

A implementação abaixo usa o algoritmo genético para buscar pela chave correta. Caso falhe, você pode tentar repetir algumas vezes (cada vez se começa com um conjunto de chaves aleatórias como geração inicial) ou ajustar as configurações, por exemplo, aumentar o número de gerações. Apenas clique em Detalhes para revelar as configurações adicionais. Neste modo, a calculadora também exibe a melhor chave em cada geração, o que é bem curioso de se observar.

Se você vir que a chave encontrada é próxima da chave correta, mas quiser ajustar algumas letras, você pode usar a Ferramenta de Cifra de Substituição para testar as chaves manualmente.

Observação: Atualmente, a calculadora só decifra textos no idioma inglês.

URL copiado para a área de transferência
PLANETCALC, Quebrador de cifra de substituição

Comentários