Cifra de César

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
A ação de uma cifra de César é mover cada letra do alfabeto um número de vezes fixo abaixo no alfabeto. Este exemplo está com uma troca de três, então o B no texto normal se torna E no texto cifrado.

Em criptografia, a Cifra de César, também conhecida como cifra de troca, código de César ou troca de César, é uma das mais simples e conhecidas técnicas de criptografia. É um tipo de cifra de substituição na qual cada letra do texto é substituída por outra, que se apresenta no alfabeto abaixo dela um número fixo de vezes. Por exemplo, com uma troca de três posições, A seria substituído por D, B se tornaria E, e assim por diante. O nome do método é em homenagem a Júlio César, que o usou para se comunicar com os seus generais.

O processo de criptografia de uma cifra de César é frequentemente incorporado como parte de esquemas mais complexos, como a cifra de Vigenère, e continua tendo aplicações modernas, como no sistema ROT13. Como todas as cifras de substituição monoalfabéticas, a cifra de César é facilmente decifrada e na prática não oferece essencialmente nenhuma segurança na comunicação.

Exemplo[editar | editar código-fonte]

A transformação pode ser representada alinhando-se dois alfabetos; o alfabeto cifrado é o alfabeto normal rotacionado à direita ou esquerda por um número de posições. Por exemplo, aqui está uma cifra de César usando uma rotação à esquerda de três posições (o parâmetro de troca, três neste caso, é usado como chave).

Normal:  ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC

Para criptografar uma mensagem, deve-se simplesmente observar cada letra da mensagem na linha "Normal" e escrever a letra correspondente na linha "Cifrado". Para descriptografar, deve-se fazer o contrário.

Normal:  a ligeira raposa marrom saltou sobre o cachorro cansado
Cifrado: D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR

A criptografia também pode ser representada usando aritmética modular, primeiro transformando as letras em números, de acordo com o esquema: A = 0, B = 1,… , Z = 25.[1] A criptografia de uma letra x por uma troca fixa n pode ser descrita matematicamente como[2]

E_n(x) = (x + n) \mod {26}.

A descriptografia é feita de modo similar,

D_n(x) = (x - n) \mod {26}.

(Há diferentes definições para a operação módulo. Acima, o resultado está no intervalo 0...25. Ou seja, se x+n ou x-n não estiverem no intervalo 0...25, deve-se subtrair ou adicionar 26.)

O substituto permanece o mesmo por toda a mensagem, então a cifra é classificada como um tipo de substituição monoalfabética, ao invés de substituição polialfabética.

História e uso[editar | editar código-fonte]

A cifra de César foi nomeada em homenagem a Júlio César, que usou um alfabeto com uma troca de três posições à esquerda.

A cifra de César foi nomeada em homenagem a Júlio César que, segundo Suetónio, a usava com uma troca de três posições para proteger mensagens de significado militar. Ainda que o uso deste esquema por César tenha sido o primeiro a ser registrado, é sabido que outras cifras de substituições foram utilizadas anteriormente[3] .

Cquote1.svg Se ele tinha qualquer coisa confidencial a dizer, ele escrevia cifrado, isto é, mudando a ordem das letras do alfabeto, para que nenhuma palavra pudesse ser compreendida. Se alguém deseja decifrar a mensagem e entender seu significado, deve substituir a quarta letra do alfabeto, a saber 'D', por 'A', e assim por diante com as outras. Cquote2.svg

Seu sobrinho, Augusto, também usou a cifra, mas com troca de uma posição à direita e não fechava em torno do começo do alfabeto:

Cquote1.svg Sempre que ele escrevia cifrado, escrevia B para A, C para B, e o resto das letras sob o mesmo princípio, usando AA para X. Cquote2.svg
Suetónio, A Vida de Augusto[5]

Existem evidências de que Júlio César usava sistemas mais complicados também,[6] e um escritor, Aulus Gellius, refere-se a um tratado (agora perdido) em suas cifras:

Cquote1.svg Existe até mesmo um tratado engenhosamente escrito pelo gramático Probus sobre o significado secreto das letras na composição das epístolas de César. Cquote2.svg
Aulus Gellius, Noctes Atticae[7]

É desconhecido o quão efetiva era a cifra de César nesta época, mas é provável que fosse razoavelmente segura, ainda mais porque a maioria dos inimigos de César eram analfabetos e outros presumiam que as mensagens estavam escritas em uma língua estrangeira desconhecida.[8] Presumindo que um inimigo pudesse ler a mensagem, não existem registros daquela época de nenhuma técnica para a solução de cifras de substituição simples. Os registros sobreviventes mais recentes datam dos trabalhos de Al-Kindi no século IX, no mundo árabe, com a descoberta da análise de frequência.[9]

Uma cifra de César com uma troca de uma posição é utilizada nas costas dos mezuzá para criptografar os nomes de Deus. Isto pode ser um legado de um tempo antigo quando não era permitido ao povo judeu ter mezuzás. As letras do criptograma formam um nome divino que mantém as forças do mal sob controle.[10]

No século XIX, a seção de anúncios pessoais nos jornais era por vezes utilizada para trocar mensagens criptografadas usando esquemas simples de criptografia. Kahn (1967) descreve alguns exemplos de amantes utilizando comunicações secretas criptografadas usando a cifra de César no The Times.[11] Até mesmo em 1915, a cifra de César continuava em uso: o exército russo empregou-a em substituição às cifras mais complicadas que provaram serem muito difíceis de suas tropas entenderem; no entanto, criptoanalistas alemães e austríacos tiveram pouca dificuldade em descriptografar suas mensagens.[12]

Atualmente, cifras de César podem ser encontradas em brinquedos infantis, como os anéis decodificadores. Uma troca de César de treze posições é também executada no algoritmo ROT13, um método simples de ofuscar o texto amplamente encontrado em UNIX e usado para obscurecer o texto (como a parte final de uma piada ou spoilers), mas não como método de criptografia).[13]

A cifra de Vigenère usa uma cifra de César com uma troca diferente em cada posição do texto; o valor da troca é definido usando uma palavra-chave repetida. Se a palavra-chave for tão longa quanto a mensagem sem se repetir e escolhida aleatoriamente, então é uma cifra one-time pad, indecifrável se seus usuários mantiverem a palavra-chave em segredo. Palavras-chave mais curtas que a mensagem (a exemplo de "Complete Victory" usada pelos Confederados durante a Guerra de Secessão), introduzem um padrão cíclico que pode ser detectado com uma versão estatisticamente avançada de análise de frequência.[14]

Em abril de 2006, o chefe da máfia foragido Bernardo Provenzano foi capturado na Sicília em parte devido a criptoanálise de suas mensagens escritas em uma variação da cifra de César. A cifra de Provenzano usava números, então "A" seria escrito como "4", "B" como "5", e assim por diante.[15]

Decifrando a cifra[editar | editar código-fonte]

Rotação ou troca Possível texto
0 ExeuyiEksve
1 DwdtxhDjrud
2 CvcswgCiqtc
3 BubrvfBhpsb
4 AtaqueAgora
5 ZszptdZfnqz
6 YryoscYempy
23 HahxblHnvyh
24 GzgwakGmuxg
25 FyfvzjFltwf

A cifra de César pode ser facilmente decifrada mesmo em um cenário que se tenha apenas o texto cifrado. Duas situações podem ser consideradas:

  1. Um interceptador conhece (ou adivinha) que algum tipo de cifra de substituição simples foi utilizado, mas não especificamente que é um código de César;
  2. Um interceptador sabe que uma cifra de César foi usada, mas não sabe o valor de troca.

No primeiro caso, a cifra pode ser decifrada usando as mesmas técnicas usadas para resolver qualquer outro tipo de cifra de substituição simples, como a análise de frequência ou verificando os padrões de palavras.[16] Enquanto resolve, é provável que o atacante rapidamente perceba a regularidade da solução e deduza que a cifra de César é o algoritmo específico empregado.

A distribuição das letras de um texto comum em português tem uma forma distinta e previsível. A cifra de César "rotaciona" essa distribuição, e é possível determinar o valor de troca examinando o gráfico de frequência resultante.

No segundo exemplo, decifrar o esquema é ainda mais fácil. Uma vez que existe apenas um número limitado de rotações possíveis (26 em português, se desconsiderarmos o uso de cedilha e letras acentuadas), cada uma pode ser testada por turno num ataque de força bruta.[17] Uma forma de conseguir o enunciado é escrevendo uma parte do texto cifrado em uma tabela com todas as trocas possíveis[18] — uma técnica às vezes conhecida como "completar os componentes normais".[19] O exemplo dado refere-se ao texto cifrado "ExeuyiEksve"; o texto decifrado é instantaneamente reconhecido olhando a tabela, na troca de quatro posições. Outra forma de executar este método é escrever abaixo de cada letra do texto cifrado o alfabeto inteiro ao contrário, começando por aquela letra. Este ataque pode ser acelerado usando tiras preparadas com o alfabeto escrito nelas em ordem reversa. As tiras são então alinhadas com o texto cifrado em uma linha, e o texto normal deve aparecer em uma das outras linhas resultantes.

Outra forma de usar a técnica de força bruta é comparando as frequências de distribuição das letras. Fazendo um gráfico com a frequência das letras do texto cifrado, e sabendo a distribuição esperada daquelas letras na língua original do texto, pode-se facilmente identificar o valor da troca ao verificar os deslocamentos de certas partes do gráfico. Este método é conhecido como análise de frequência. Por exemplo, na língua portuguesa a frequência das letras A, E, (geralmente mais frequentes), e Y, W (tipicamente menos frequentes) são particularmente distintas.[20] Os computadores também podem fazer isto ao medir o quão bem a distribuição de frequência combina com a distribuição esperada; por exemplo, a estatística χ² pode ser usada.[21]

Para textos com linguagens naturais, haverá, muito provavelmente, somente um texto decifrado plausível; porém, para textos muito pequenos, múltiplas opções são possíveis. Por exemplo, o texto cifrado qxq poderia, plausivelmente, ser decifrado como "ovo" ou "ele" (presumindo que o texto está em português).

Criptografias múltiplas não melhoram a segurança do código. Isto ocorre porque duas criptografias de, supondo, troca A e troca B, seriam equivalentes a uma troca de A + B. Em termos matemáticos, a criptografia sob várias chaves formaria um grupo.[22]

Referências

  1. LUCIANO, Dennis; PRICHETT, Gordon. Cryptology: From Caesar Ciphers to Public-Key Cryptosystems The College Mathematics Journal, Janeiro de 1987, volume 18, n.º 1, pp. 2–17. Visitado em 21 de dezembro de 2013.
  2. Wobst 2001, p. 19
  3. História da Criptologia – Antiguidade (em português) HU60. Visitado em 22 de outubro de 2009.
  4. Suetónio. De Vita Caesarum, Divus Iulius (A vida de Júlio César). [S.l.: s.n.]. 56 pp. Visitado em 1 de outubro de 2009.
  5. Suetónio. A Vida de Augusto. [S.l.: s.n.]. 88 pp. Visitado em 1 de outubro de 2009.
  6. Reinke, Edgar C.. (Dezembro 1992). "Classical Cryptography". The Classical Journal 58 (3): 114.
  7. Gellius, Aulus. Noctes Atticae 17.9.1–5. [S.l.: s.n.]. (Tradução para o inglês).
  8. Pieprzyk, Josef; Hardjono, Thomas e Seberry, Jennifer. Fundamentals of Computer Security. [S.l.: s.n.], 2003. 6 pp. ISBN 3-540-43101-2.
  9. Singh 2000, p. 14–20
  10. Alexander Poltorak. Mezuzah and Astrology (em inglês). Visitado em 5 de outubro de 2009.
  11. Kahn 1967, p. 775–776
  12. Kahn 1967, p. 631–632
  13. Wobst 2001, p. 20
  14. Kahn 1967
  15. Leyden, John (19/04/2006). Mafia boss undone by clumsy crypto (em inglês) The Register. Visitado em 5 de outubro de 2009.
  16. Beutelspacher 1994, p. 9–11
  17. Beutelspacher 1994, p. 8–9
  18. Leighton, Albert C.. (April 1969). "Secret Communication among the Greeks and Romans". Technology and Culture 10 (2): 153.
  19. Sinkov, Abraham; Irwin, Paul L. Elementary Cryptanalysis: A Mathematical Approach. [S.l.: s.n.], 1966. 13–15 pp. ISBN 0-88385-622-0.
  20. Singh 2000, p. 72–77
  21. Savarese, Chris; Hart, Brian (15/07/2002). The Caesar Cipher (em inglês). Visitado em 5 de outubro de 2009.
  22. Wobst 2001, p. 31

Bibliografia[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]