Introdução - Curso de Padrões de Cripografia com Python

Flávio Conca
Curso de Programação Python
7 min readMar 29, 2020

--

Você está prestes a aprender sobre a arte da comunicação por meio de mensagens codificadas. A ciência da criptografia surgiu com o motivo básico de fornecer segurança às mensagens confidenciais transferidas de uma parte para outra. Criptografia é definida como a arte e a ciência de ocultar uma mensagem para introduzir privacidade e sigilo, conforme reconhecido em segurança da informação. É algo invisível, mas amplamente utilizado na tecnologia para garantir segurança aos usuários de dispositivos.

Primeiramente, entenda que esta conversão (podemos chamar de tratamento) de dados ocorre sobre um conjunto de informação que necessita se tornar ininteligível, ou seja, algo que seja impossível (nem intuitivamente) de ser lido e convertido para qualquer tipo de informação ou mensagem.

A criptografia é uma disciplina científica que reúne e estuda os conhecimentos (matemáticos, computacionais, psicológicos, filológicos, etc) e técnicas necessários para a criptoanálise (solução de criptogramas ou mensagens codificadas) e à criptografia (modificação da mensagem codificada).

Para existir a criptografia é preciso de um método, um texto simples para ser convertido em texto cifrado (onde nasce a criptografia em si) e a descriptografia, ou seja, ter a capacidade de converter e traduzir a mensagem.

Sim, para a criptografia existir é preciso 4 ingredientes. Anote aí!

  1. Texto simples.
    A mensagem de texto sem formatação é o texto legível e que pode ser entendido por todos os usuários. O texto sem formatação é a mensagem que vai sofrer a criptografia e ainda vai ser cifrada, um texto simples.
  2. Texto cifrado.
    Mensagem obtida após a aplicação de criptografia.
  3. Criptografia ou Codificação
    O processo de conversão de texto sem formatação em texto cifrado.
  4. Descriptografia ou Decodificação
    Processo de conversão de texto cifrado em texto sem formatação .

Se você anda não tem noção do que se trata a criptografia, vamos por partes!

Em suma é, se você tiver a capacidade de decodificar uma mensagem, um gesto ou um sinal, ser capaz de “descriptografar” um sinal para uma mensagem simples e passível de compreensão.

Vamos ao primeiro exercício, considere a seguinte imagem:

Consegue decifrar isso? Claro que sim!

O que pode ter ocorrido apenas neste gesto entre duas pessoas? Ficou evidente que houve um contato visual (eles se olharam) seguidos de um toque entre uma das mãos de cada indivíduo (ergueram as mãos) em um gesto sincronizado. Vai ficar fácil de decifrar este gesto, é um cumprimento.

Pronto, já é um especialista no assunto!

É um simples toque de mãos, assim como a forma mais comum de cumprimento, a mais conhecida no mundo ocidental, aquela onde duas pessoas dão as mãos direitas. Elas são apertadas enquanto se movem para cima e para baixo algumas vezes.

Este gesto foi amplamente replicado entre gregos e romanos (antigos inimigos das guerras romano-macedônicas) que davam as mãos vazias para simbolizar que estavam sem armas. Esta saudação simboliza uma relação de respeito e harmonia e revela informações importantes sobre uma cultura, como o aperto de mão, temos também alguns sinais que são fácilmente decodificados.

O sinal de positivo com a cabeça, o beijo no rosto, o sinal de reverência japonês (abaixar a cabeça para alguém) para ao se curvar como sinal de respeito, o sinal de beijar a mão (rainha, familiares, líder religioso), todos os gestos comunicam algo, transmitem mensagens, são compreendidos.

Se você ver políticos de filosofias e culturas diferentes em um gesto comum, como um aperto de mão, você já pode decodificar algo bem simples.

E por falar em política, a Criptografia é amplamente utilizada em operações políticas, diplomáticas e principalmente nas militares.

A criptografia foi muito usada nas maiores guerras para criar modificações codificadas de textos, de forma a impedir sua compreensão caso a mensagem fosse interceptada pelos inimigos, que óbviamente, não conheciam seus caracteres ou seus padrões e convenções. Há uma máquina famosa conhecida como ENIGMA que era algo a frente de seu tempo, uma máquina ultra tecnológica para a época que escrevia cartas criptografadas e reforçava a estratégia dos exércitos.

Com vários rotores, era utilizada tanto para criptografar como para descriptografar códigos de guerra a partir dos anos 1920. Desenvolvida por Arthur Scherbius em 1918, a Enigma levantou um grande interesse por parte da marinha de guerra alemã em 1926, quando passou a ser usado como seu principal meio de comunicação. Foi adaptada pela maior parte das forças militares alemãs a partir de cerca de 1930 e também, ao ser decifrada, ajudou na queda do regime nazista com previsão de 1 ano de antecedência.

Breve história da Criptografia

Acho que já conseguiu entender que sempre há a necessidade de informações secretas. Não vou me extender muito na história, mas, vamos lá!

A criprografia é usada desde a idade antiga, desde as transições da idade do cobre com a Criptografia Clássica, na Era Medieval e até hoje é utilizada em nosso tempo, conhecida como Criptografia Moderna.

No egito, foram encontrados hieróglifos irregulares esculpidos em monumentos do Antigo Império do Egito (a cerca de 4500 anos), mas, não é consenso de elas eram mensagens criptografadas ou até mesmo, textos para alfabetização. Na Mesopotâmia, algumas tabuletas de argila foram utilizadas para proteger informações. Alguns estudiosos hebreus também fizeram o uso de simples cifras de substituição monoalfabética, uma técnica própria de encriptar, conhecida como Cifra Atbash (Um tipo de Código Da Vinci judaico), começando talvez em torno de 500 a 600 a.C.

Padrão ATBASH.

Veja um exemplo:

KBGSLM é uma palavra codificada usando o padrão ATBASH. É nosso mensagem secreta. Dê uma olhada na tabela. A chave que decodifica ou descriptografa a mansagem está aí.

Segundo o criptograma do ATBASH, na mensagem KBGSLM temos:

K = P
B = Y
G = T
S = H
L = O
M = N

Este é apenas um padrão, existem muitos outros!

Em ordem alfabética, vou citar alguns outros como Affine, Baconian, Base64, Bifid, Caesar (Keyed e ROT13), Column Trans (Double e Übchi), Cryptogram, Gronsfeld, o famoso Código Morse também é uma forma de criptografia, Numbers, One Time Pad, Playfair, Railfence, Rotate, Skip, Substitution e Vigenere (Keyed e Autokey).

Para estes padrões, existe uma metodologia diferente para codificar a mensagem. Uns trocam um texto por número, outros por símbolos, outros por números e símbolos. Cada padrão possui sua especificidade e cada padrão possui camadas, forças e chaves diferentes que passam por algumas camadas.

É comum o uso de algumas camadas de criptografia. Há padrões mais simples mas também, há alguns mais avançados. Vamos a eles:

  1. Camada Dupla Força
    Também chamada de criptografia múltipla, é o processo de criptografar um texto que já foi criptografado uma ou mais vezes, com o mesmo padrão ou outro padrão diferente
  2. Camada Padrão Hash
    O texto cifrado é gerado a partir da mensagem legível original usando padrões de hash e chaves simétricas. As chaves simétricas posteriores são criptografadas com a ajuda de chaves assimétricas.
  3. Camada 32 bits
    A segunda camada de criptografia é o processo de adicionar mais uma camada para criptografar o texto com o mesmo ou diferente algoritmo. Geralmente, também usa-se uma senha simétrica de caracteres de 32 bits.
  4. Camada SSL
    Nesse processo, a cápsula criptografada é transmitida via conexão SSL/TLS ao parceiro de comunicação. Bem comum quando você usa sites de e-commerce ou acessa o site do seu banco para efetuar transações.
  5. Camada Híbrida
    A criptografia híbrida é o processo de usar vários padrões de diferentes tipos juntos, incluindo os benefícios de cada uma das cifras. Existe uma abordagem comum que geralmente é seguida para gerar uma chave secreta aleatória para uma cifra simétrica e depois criptografar essa chave por meio de criptografia de chave assimétrica. Devido a esse padrão, a própria mensagem original é criptografada usando a cifra simétrica e, em seguida, usando a chave secreta. O destinatário depois de receber a mensagem descriptografa a mensagem usando a chave secreta primeiro, usando sua própria chave privada e depois usa a chave especificada para descriptografar a mensagem.

Aqui concluo a base do conhecimento em criptografia, há muitas outras informações que, claro, não estarão aqui. O objetivo é levar até você, métodos de usar criptografia usando a linguagem d programação Python.

No próximo capítulo vou abordar como construir mensagens criptografadas. E claro, você precisa, como requisito mínimo, saber Python.

Então, clique aqui e vamos programar!

--

--