Também disponível em: English · Español · Français · العربية
Cifra de César e ROT13
Desloca texto na medida que quiser e quebra um deslocamento que não conhece, com o ataque todo à vista e o seu custo medido.
O que é a cifra de César
Substitui cada letra pela que está um número fixo de posições à frente no alfabeto. Com um deslocamento de três, o A passa a D, o B a E, e o Z dá a volta até C. Decifrar é a mesma operação ao contrário. Chama-se assim por Júlio César, de quem se conta que a usava na correspondência militar, e é a primeira cifra que quase toda a gente conhece.
O ROT13 é o mesmo com um deslocamento de treze. Usa-se em fóruns e sites de enigmas para tapar um spoiler ou o remate de uma piada à vista de todos: não protege nada, apenas evita que o leia sem querer.
Esta ferramenta faz as três coisas: cifrar com o deslocamento que escolher, decifrar com um que conheça, e quebrar uma mensagem quando não sabe o deslocamento de todo. Tudo corre no seu navegador.
Como usar a ferramenta
- Escolha o que quer fazer. Cifrar, decifrar ou quebrar. Quebrar não precisa de deslocamento: é para isso que serve o terceiro botão.
- Escreva ou cole o seu texto. As letras deslocam-se; os algarismos, a pontuação e os espaços passam intactos. As letras acentuadas também ficam como estão, porque a cifra é definida sobre o alfabeto de vinte e seis letras e transformar o é em e às caladas mudaria o seu texto em vez de o cifrar.
- Leia o resultado ou a lista ordenada. No modo de quebra o painel mostra os vinte e seis deslocamentos candidatos, pontuados e ordenados, com o melhor no topo. Se a resposta estiver certa, costuma saltar à vista.
Quebrá-la custa trinta letras
O que sempre se diz da cifra de César é que a análise de frequências a quebra. É verdade e deixa de fora o mais interessante, que é a quantidade. Por isso medimo-la.
O ataque funciona assim: experimente os vinte e seis deslocamentos. Para cada candidato, conte quantas vezes aparece cada letra e compare com o habitual em inglês corrente, através de uma pontuação de qui-quadrado. O candidato que melhor encaixa é quase sempre a mensagem. Não há esperteza nenhuma, nem pesquisa: vinte e seis candidatos não são um espaço de pesquisa, são uma lista que cabe num ecrã.
As frequências de letras contra as quais esta ferramenta pontua foram medidas em vez de copiadas: 5 329 782 letras em doze livros de domínio público. Saem pela ordem que toda a gente recorda a meias: o e com 12,85%, depois o t com 9,45%, o a com 7,84%, o o com 7,52%, o n com 7,03% e o i com 7,02%. Recuperar essa ordem conhecida é a verificação de que o corpus era prosa normal e não algo estranho.
Depois, a varredura. Tomando passagens ao acaso, cifrando cada uma com um deslocamento aleatório e pedindo ao ataque que o recupere: com 15 letras acerta 90% das vezes, e com 30 letras 99%. Trinta letras são menos do que esta frase. Qualquer mensagem suficientemente longa para valer a pena enviar é suficientemente longa para ser quebrada, e isso é mais útil do que dizer «só há vinte e seis chaves».
O resultado que decidiu a interface foi o das línguas. Todos os números acima saíram com a tabela de frequências do inglês, e passámos a mesma varredura sobre texto cifrado em português, espanhol e francês sem a mudar. Todos caem também, apenas precisando de mais texto: os 90% de acerto chegam por volta das 60 letras em espanhol e das 40 em português e francês. Por isso esta ferramenta não tem selector de idioma, e é uma decisão medida e não um atalho: as distribuições das línguas europeias em alfabeto latino parecem-se o suficiente para que uma só tabela sirva. (Os números do inglês vêm de livros inteiros e os outros três das páginas traduzidas deste próprio site, que são mais pequenas, por isso tome os números não ingleses como indicativos.)
Limitações assumidas
Isto não é cifragem a sério e nada do que está aqui deve ser usado para proteger o que quer que seja. Não é uma ressalva sobre esta implementação, é o que a cifra é: uma chave com vinte e seis possibilidades, que a ferramenta desta página esgota no tempo que leva a desenhar uma tabela. Use-a para enigmas, para ensinar, para tapar um spoiler; nunca para um segredo.
O modo de quebra precisa de texto que chegue. Abaixo de umas trinta letras a resposta do topo é um palpite, e a ferramenta di-lo em vez de apresentar com aprumo um deslocamento errado. As mensagens muito curtas de facto não se conseguem quebrar assim, e essa é a única situação em que uma cifra de César aguenta: aguenta porque não há informação suficiente na mensagem, não porque a cifra esteja a fazer alguma coisa.
A pontuação dobra os acentos, de modo que o á conta como a, e é isso que permite que uma só tabela inglesa pontue quatro línguas. A cifra em si não dobra nada: o seu ã volta como ã. São comportamentos deliberadamente diferentes e vale a pena saber qual é qual.
Só se deslocam as vinte e seis letras latinas. O cirílico, o grego, o árabe e tudo o resto passa sem alterações, por isso uma cifra de César sobre texto árabe simplesmente não é coisa que esta ferramenta faça. O comprimento das palavras e a pontuação também sobrevivem intactos, e isso explica boa parte do muito que esta cifra deixa escapar: mesmo antes de contar letras, a forma da frase já está à vista.
O motor leva 58 verificações. A que merece nome enumera os vinte e cinco deslocamentos não nulos e confirma que exactamente um se desfaz a si próprio, que é o ROT13: um facto que se costuma afirmar e que aqui é verificado. Outra fixa o cálculo do qui-quadrado contra uma conta feita à mão, depois de uma sabotagem deliberada que o substituiu por uma distância mais grosseira ter passado todos os outros testes do ficheiro. Essa sabotagem ter sobrevivido foi informativo por si: o ataque não depende de uma estatística engenhosa, também funciona com uma bastante rude.
Porque é gratuito
Deslocar letras e contá-las é aritmética que a sua própria máquina faz num instante. Nada é enviado, não há conta e não há nada para marcar de água.
Se quiser codificar em vez de cifrar, as páginas de Base64 e do codificador de URL deste site tratam disso, também sem enviar nada.