Criptografia Parte 1 - Técnicas Clássicas
Criptografia é um processo pelo qual podemos ocultar o valor real de uma informação como forma de protege-la. Ela pode ser aplicada de diversas maneiras, considerando o objetivo desejado. Pode ser realizada utilizando desde processos manuais até técnicas computacionais avançadas.
Este artigo é o primeiro de uma série na qual abordarei esse assunto tão relevante para segurança da informação. Na primeira parte veremos os métodos clássicos de criptografia e um pouco da sua história.
Métodos Manuais de Substituição e Transposição
No método de substituição cada letra da mensagem é trocada por outra, no exemplo seguinte cada letra é trocada pela letra seguinte do alfabeto:
E –> F
X –> Y
E –> F
M –> N
P –> Q
L –> M
O –> P
Assim, a palavra EXEMPLO será transmitida como FYFNQMP, o que torna difícil a compreensão por alguém que não tenha a chave criptográfica.
Agora um exemplo do método de transposição, também conhecido como método das colunas, onde iremos criptografar a frase APRENDA SOBRE CRIPTOGRAFIA:
A E A B C P G F
P N S R R T R I
R D O E I O A A
Após codificada, a mensagem é transmitida como AEABCPGF PNSRRTRI RDOEIOAA. A chave dessa mensagem é de 3 linhas e 8 colunas.
Uso de Métodos Manuais na História
A cidade-estado grega Esparta, por volta do século V a.C., não tinha como prática a democracia. Bem diferente era sua vizinha Atenas, em que retórica e cultura eram valorizadas. Esparta tinha uma forte cultura da guerra e com isto uma grande preocupação com a segurança das comunicações militares. Estes fatos estimularam a criação de várias formas de codificar mensagens, onde temos como exemplo mais notável o “Bastão de Licurgo” ou “Scytale Espartano”.
Bastão de Licurgo
Nesta técnica, utilizava-se um bastão de madeira onde se enrolava, em forma de espiral, uma tira de couro ou papiro. A mensagem era escrita no formato vertical. Após desenrolar a tira a mensagem tornava-se uma sequência de letras sem sentido. Então um mensageiro transportava a tira enrolada como um cinto, com as letras voltadas pra dentro. Quando o destinatário recebia a mensagem, enrolava a mesma num bastão com as mesmas medidas do bastão do remetente. Revelando assim a mensagem.
(Fonte: Wikimedia Commons)
Código de César
Um dos métodos mais simples e conhecidos, o CÓDIGO DE CÉSAR foi originalmente utilizado pelo Imperador Júlio César, de Roma. Originalmente, o alfabeto original era deslocado em 3 posições, resultando na CIFRA DE CÉSAR.
Código de César
ALFABETO ORIGINAL A B C D E F G H I J K L M N O P Q R S T U V X Y W Z CIFRA DE CÉSAR D E F G H I J K L M N O P Q R S T U V X Y W Z A B C
A chave neste caso é o número 3, pois para cifrar a mensagem desloca-se em 3 posições para a direita e para decifrar a mensagem desloca-se em 3 posições para a esquerda.
O Código de César original foi usado como base para outros tipos de código de substituição simples. Assim, usando todas as possibilidades de deslocamento no alfabeto português, podemos ter até 25 Códigos de César, inferindo que a chave será um número entre 1 e 25. Para decifrar a mensagem basta tempo para testar todas as 25 possibilidades. Nos dias atuais seria trivial quebrar o código usando um ataque de força bruta.
Cifra de César de 7 posições e resolução de exemplo
ALFABETO ORIGINAL A B C D E F G H I J K L M N O P Q R S T U V X Y W Z CIFRA DE CÉSAR H I J K L M N O P Q R S T U V X Y W Z A B C D E F G MENSAGEM CIFRADA T H B Z V B A W V L D L T X S V K L T L U Z H N L T SUBSTITUIÇÃO M A I S O U T R O E X E M P L O D E M E N S A G E M
Cifras Monoalfabéticas
Neste método ao invés de simplesmente usar o deslocamento de posições, cada letra corresponde a um símbolo distinto.
Exemplo de cifras monoalfabéticas
ALFABETO ORIGINAL A B C D E F G H I J K L M N O P Q R S T U V X Y W Z CIFRA DE CÉSAR L N M A X Y O P B K Q J R D I U S C H V T E Z G W F CIFRA DE CÉSAR O N M R S V Q Z T U O # @ ! * > \ A K P A B W 5 3 8
Utilizando as cifras da tabela acima para codificar a palavra EXEMPLO temos:
XGXRUJI usando a cifra 1 e;
S5S@>#* para a cifra 2.
Esse método é menos propenso a quebra através de um método de força bruta. No entanto, ele obriga que remetente e destinatário conheçam e armazenem a cifra em algum meio (por exemplo, escrevendo num papel). Este é ponto fraco do método, pois caso a anotação seja descoberta não há dificuldade em decifrar qualquer mensagem que utilize tal cifra. Seria mais seguro memorizar a cifra, mas isso também não é tão simples já que não segue uma regra de composição, como no caso do Código de César.
Substituição Homofônica
Essa técnica surge em um momento da história em que os criptoanalistas estavam conseguindo decifrar com facilidade cifras clássicas de substituição, utilizando Análise de Frequências. Na substituição homofônica focou-se em dificultar a decifragem através da análise de frequências. Assumindo-se que cada letra tem uma probabilidade de uso em um texto. A ideia era evoluir, a partir da substituição monoalfabética, para um método em que fosse possível anular as diferenças entre a frequência dos símbolos que pudessem orientar a decifragem. Como vogais aparecem com mais frequência, os criptógrafos criaram uma fórmula em que a cifra utilizava vários símbolos distintos para cada vogal, enquanto apenas um símbolo para consoantes. Além disso, introduziram outros símbolos sem significado para dificultar ainda mais o processo de decifragem.
Para exemplificar considere a seguinte cifra:
CONSOANTES | B | C | D | F | G | H | J | K | L | M | N | P | Q | R | S | T | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SUBSTITUIÇÃO | X | T | H | ! | @ | # | $ | % | & | : | K | F | A | Z | ? | O | I | Y | R | W | Q |
VOGAIS | A | E | I | O | U | NULOS | |||||||||||||||
SUBSTITUIÇÃO | Ω | ε | J | 9 | ∑ | 3 | N | 8 | P | 5 | 7 | S | 6 | V | 1 | 4 | M | α | ∇ | L | φ |
a frase
ENVIEM AS TROPAS
seria codificada como
∑KI83:Ω?OZ7Fε?
Cifra de Vigenère
Como resposta as técnicas de decifragem que utilizavam análise de frequências, surge por volta de 1580 a Cifra de Vigenère. Desde que foi criada por Blaise de Vigenère, permaneceu indecifrável durante um longo período, até 1854, quando Charles Babbage obteve êxito na quebra.
O método da Cifra de Vigenère utiliza substituição Polialfabética. Como base temos uma matriz de 27 x 27 posições. Tanto a primeira linha quanto a primeira coluna server para orientar o processo de cifragem. Na parte interna da tabela, temos os 25 Códigos de César.
Na cifragem de uma mensagem utilizando a Cifra de Vigenère utiliza-se uma chave simétrica. Esta chave pode ser uma palavra, uma frase ou conjunto aleatório de letras. A chave pode ter o comprimento desejado. Por tratar-se de um método de chave simétrica, tanto a cifragem quanto a decifragem fazem uso da mesma chave. Essa é a fragilidade do método, pois é necessária a troca prévia da chave entre remetente e destinatário.
Como exemplo, supondo que se quer criptografar o texto:
ATACAR BASE SUL Escolhendo a chave e repetindo-a até ter o comprimento do texto a cifrar, por exemplo, se a chave for LIMAO
LIMAOLIMAOLIM A primeira letra do texto, A, é cifrada usando o alfabeto na linha L, que é a primeira letra da chave. Basta olhar para a letra na linha L e coluna A na grelha de Vigenère, e que é um L. Para a segunda letra do texto, ver a segunda letra da chave: linha I e coluna T , que é B, continuando sempre até obter:
Texto: ATACARBASESUL
Chave: LIMAOLIMAOLIM
Texto cifrado: LBMCOCJMSSDCX
Até aqui passamos pelos principais métodos de cifragem clássicos utilizados na antiguidade até início da era moderna. Na próxima parte dessa série serão abordados os métodos modernos de criptografia.
Obrigado por visitar o blog, e caso tenha alguma sugestão ou comentário use o formulário de contato.
Até a próxima!