cripto

Decidi escrever um humilde artigo sobre criptografia, pois tive o prazer de estudar este tema em algumas aulas da minha pós-graduação.

 

 

 

CRIPTOGRAFIA

 

 

Conceito:

Criptografia (do grego kryptós, "escondido", e gráphein, "escrita") é o ato de cifrar informações, ou seja, transformá-las em textos não compreensíveis, que só poderão ser lidos por indivíduos autorizados e ou que tenham conhecimento de como decifrar a mensagem, conhecendo-se a chave e ou o algoritmo.

 

História

A criptografia existe desde a Grécia antiga, onde os espartanos já utilizavam de meios para esconder (cifrar) suas mensagens, o mecanismo que usavam era bem rústico, se tratava de um "tubo" que deveria ter a espessura correta para que a mensagem fosse desenrolada nele, desta maneira o texto encaixava-se. Os generais tinham um tubo idêntico para troca de mensagens entre eles.

Skytale

Imagem de um  Skytale

 

Os romanos também utilizam de cifras para transmitir suas mensagens, Julius Caesar não confiava nos seus mensageiros para entregar mensagens secretas aos seus generais, ele usava um texto cifrado por substituição de letras do alfabeto. Abaixo uma imagem de um disco, ferramenta utilizada para cifrar e decifrar as mensagens, o segredo era conhecer quantas letras iria pular.

Thomas Jefferson, o terceiro presidente dos Estados Unidos da América também utilizava do método de substituição usado por Caesar.

caesarwhel

 

A máquina Enigma é o projeto que mais me impressiona, patenteada em 1918 e utilizada por Alemães durante a Segunda Guerra Mundial, era impossível descriptografar as mensagens obtidas via sinais de rádio, devido a quantidade de configurações possíveis que a máquina podia fazer, assistam “O Jogo da Imitação”, que conta a história de Alan Turing, o britânico que construiu um computador mecânico conseguindo decifrar as mensagens transmitidas pelos alemães e gerando uma vantagem competitiva para vencer a guerra.

 

EnigmaMachineLabeled

enigma2

 

 

Imagem da Máquina Enigma

 

 

Tipos de texto cifrado:

 

  • Transposição

A transposição como o nome já diz, embaralha o texto de uma forma que o torne incompreensível, um exemplo que podemos utilizar é escrever uma palavra de trás para frente.

Exemplo:

BATMAN VS SUPERMAN = NAMREPUS SV NAMTAB

Que por sinal irei na pré estréia hoje ver o Bruce Wayne dar um cacete no Superman.

Voltando, na cifra por transposição, não existe substituição de palavras por outras, somente um “embaralhamento” utilizando-se de uma técnica.

Atualmente os algoritmos modernos de criptografia simétrica utilizam cifras por transposição.

 

  • Substituição

Cifra por substituição, como o nome também já define, substitui letras por outras para cifrar o texto, método utilizado pelo francês Vinegère e por Caesar.

Vou ensinar como cifrar um texto usando a cifra de Vinegère publicada em 1586.

O modelo de Vinegère consiste em uma chave, sem a chave não se pode decifrar o texto, alias, não podia-se na época e só foi possível em 1886, 300 anos depois quando um britânico Charles Babbage, considerado o pai da computação moderna quebrou a cifra do francês.

Usaremos a palavra chave : MARVEL

FRASE:

SUPERMAN IRA APANHAR IGUAL MENINA

Frase criptograda:

EUGZVXMN ZME LBAECEC UGLVP XQNZIE

 

Entendendo:

O primeiro passo a se fazer é distribuir a chave na frase a ser codificada.

S U P E R   M A N   I R A   A P A N H A R   I G U A L   M E N I N A
M A R V E   L M A   R V E   L M A R V E L   M A R V E   L M A R V E
 

Agora usando-se o alfabeto numerado de 0 a 25 vamos codificar o texto da seguinte maneira:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

M no alfabeto representa o número 12, então devemos contar 12 casas a partir da letra S nossa primeira letra da frase a ser cifrada.

Sendo assim:

S = E

Obs> Sempre iremos contar a partir da próxima letra.

A = 0 então U = U

R = 17 então P = G

V = 21 então E = Z

Simples não?

Para descriptografar é só fazer o processo inverso na contagem, contar no sentido anti-horário.

Link calculadora da cifra de Vinegère

http://planetcalc.com/2468/

´

Conceito de chave:

A chave é código secreto combinado entre o emissor e o receptor da mensagem, só conhecendo a mesma é possível a decodificação da mensagem.

 

Tipos de Criptografia:

Existem dois tipos de criptografia:

 

Criptografia Simétrica

A criptografia simétrica compartilha a mesma chave entre o emissor e o receptor da mensagem, algoritmos modernos como DES, 3DES, AES, Algoritmos RC utilizam essa forma de criptografia.

 

Criptografia Assimétrica

A criptografia assimétrica consiste no uso de diferentes chaves para criptografia e descriptografia de mensagens, também chamadas de chaves públicas. Existe uma chave publica, esta que pode ser compartilhada e uma chave privada (secreta) de conhecimento somente do remetente, aplicando algoritmos matemáticos, o remetente criptografa mensagens utilizando a chave publica do destinatário e o mesmo descriptografa essas mensagens aplicando sua chave privada ao algoritmo e vice versa. Desta forma, somente com a chave privada é possível decodificar as mensagens.

Algoritmos modernos de criptografia assimétrica são Diffie-Hellman, RSA, DSA, Curvas Elípticas, ElGamal entre outras.

O modelo de Diffie-Hellman consiste em acordar uma chave entre ambos, mas essa chave é um resultado de um cálculo matemático realizado com as chaves públicas e privadas de um e do outro, onde ambos não conhecem a chave privada de cada um. Segue um vídeo com uma analogia do funcionamento do mesmo.

 

 Public key cryptography - Diffie-Hellman Key Exchange (full version)

 em inglês

 

Para se ter segurança na informação, 3 fatores são importantes:

  • INTEGRIDADE
  • AUTENTICIDADE
  • CONFIDENCIALIDADE

 

Integridade

A integridade dos dados garante que a informação não seja alterada no caminho entre o remetente e o destinatário, ou seja, que chegue íntegra de ponto a ponto.

 

Autenticidade

 A autenticidade garante que a mensagem não é falsificada, ou seja, garante que ela vêm de quem diz que está vindo, garante que o remetente é ele mesmo. Um exemplo é dos nobres europeus que lacravam suas cartas com o brasão da casa utilizando uma cera. Desta forma, como só existia um anel com o brasão desenhado, garantia-se autenticidade.

 

Confidencialidade

A confidencialidade garante que a mensagem só irá ser lida pelos indivíduos devidamente autorizados, é o caso do uso da criptografia.

 

 

 

HASH

O hash é um calculo matemático que resulta no que pode-se chamar de impressão digital (fingerprint), mensagem resumida (message digest), usado para garantir integridade dos dados, através do fingerprint o destinatário pode comparar as duas mensagens, ou seja, a sua fingerprint com a fingerprint que o remetente irá compartilhar.

O calculo de hash é conhecido como de mão única (one-way), pois é simples para gerar mas muito difícil de reverte-lo. Ele também é utilizado para autenticação, onde se compara o valor de hash das chaves para garantir autenticidade.

 

Algoritmos modernos de HASH são: MD5, SHA

 

Exemplo de calculo de HASH usando MD5

cryptohash

Observe a mudança no resultado conforme muda-se a mensagem de entrada. Uma alteração mínima altera o resultado do cálculo.

O SHA é mais seguro para integridade dos dados, pois quanto maior a quantidade de bits, mais segura fica o resumo da informação.