Conceitos básicos de criptografia

Este é o primeiro de uma série de artigos que vai tratar sobre criptografia e suas principais aplicações.

Fernando Souza
Prognosys
6 min readMar 11, 2020

--

Há muito tempo o ser humano se preocupa em proteger informações, garantindo que outras pessoas não vejam ou saibam o conteúdo da mensagem a ser transmitida. Vários métodos foram inventados ao longo do tempo para atingir esse objetivo e garantir a confidencialidade da informação.

A criptografia é o estudo e práticas de princípios e técnicas para comunicação segura na presença de terceiros

Ou seja, na prática, é qualquer técnica que garanta que um terceiro não tenha acesso a sua informação ou não consiga ler ou entender o verdadeiro significado da mensagem.

Princípios

Até pouco tempo atrás, a criptografia era sinômino de encriptação, que é o processo de converter um texto comum (ou texto em claro) para um texto inelegível (ou cifra). Hoje em dia, ela possui mais objetivos e princípios:

  • Confidencialidade: só o destinatário autorizado da mensagem é capaz extrair o conteúdo e entender a mensagem. Em uma analogia simples, é como um cofre. Só quem tem a chave é que tem acesso ao conteúdo do cofre;
  • Integridade: o destinatário consegue verificar se a mensagem foi alterada durante a transmissão. Isso garante que alguém malicioso não envie alguma mensagem correta, porém antiga, que não é mais válida. O destinatário vai conseguir abrir a mensagem e verificar o seu conteúdo, mas ela já não é mais válida;
  • Autenticidade: o destinatário consegue verificar que a mensagem foi realmente enviada por quem diz ser enviada. De forma simples, é como a assinatura em um contrato ou em um cheque;
  • Irretratabilidade: o remetente da mensagem não consegue negar a autoria da mensagem enviada. Ou seja, uma vez publicada ou enviada a mensagem, o remetente não pode se retratar ou dizer que não enviou, já que somente ele pode tem o conhecimento ou a chave para gerar a mensagem.

É bom notar que nem todos os sistemas ou algoritmos cobrem todos esses princípios ao mesmo tempo e que, na maioria das aplicações, é necessária a aplicação de mais um algoritmo em conjunto para atender a todos os requisitos.

Técnicas de criptografia

Existem várias técnicas de criptografia (e, consequentemente, algoritmos) que são usada hoje em dia, mas as principais são: criptografia de chave secreta, criptografia de chave pública e hashing. Vamos falar de cada uma delas a seguir.

1. Criptografia de chave secreta

Também conhecida como criptografia simétrica. Este tipo de criptografia usa somente uma chave tanto para encriptar quanto para decriptar uma mensagem, por isso o nome simétrico. Assim, ambas as partes devem ter uma cópia da chave para poder trocar a mensagem.

Criptografia modo simétrico.

Este modo é usado para o princípio da confidencialidade. Este tipo pode ter 2 modos de algoritmos:

  • Em bloco: a mensagem é encriptada em blocos de tamanhos específicos. Exemplos: DES, AES, etc.
  • Em stream: a mensagem é encriptada pegando-se byte a byte da informação. Exemplos: RC4, Salsa20, etc.

Por a mesma chave ser usada nas duas pontas do processo, ela deve ser compartilhada de forma segura entre as partes. Isso pode trazer problemas se não for feito com cuidado.

2. Criptografia de chave pública

A criptografia de chave pública, também conhecida como criptografia assimétrica, duas chaves diferentes são usadas no processo, uma para encriptar e outra para decriptar.

A chave usada para encriptar é também conhecida como chave pública e normalmente pode ser conhecida por qualquer pessoa. A chave usada para decriptar é conhecida como chave privada e é mantida em segredo por apenas uma das partes.

Criptografia modo assimétrico.

Este modo é usado para os princípios de confidencialidade e autenticidade. Para o caso de autenticar (ou assinar) uma mensagem, a ordem é invertida. A chave privada é usada para assinar a mensagem, enquanto a chave pública é usada para a sua verificação.

Este modo também é usado para a troca segura de chaves simétricas. Um bom exemplo disso é o SSL (usado no HTTPS), que usa em conjunto criptografia simétrica e assimétrica para criptografar e autenticar um website.

3. Hashing

Esta técnica não envolve nenhuma chave. Ela define um tamanho fixo e o valor muda de acordo com a mensagem. Qualquer pequena mudança na mensagem (um bit que for) faz com o que valor final mude drasticamente.

Função de hash.

Este modo é usada para verificar a integridade da mensagem enviada, pois funciona como uma impressão digital da mensagem a ser enviada. O hash é uma função de via única, ou seja, não se consegue recuperar a mensagem original a partir somente do valor final.

Exemplos de algoritmos: MD5, SHA, Whirpool, etc.

Por que 3 métodos?

Por que usar 3 métodos? Por que não usar somente um que cubra todos os princípios?

A resposta é que cada técnica é otimizada para uma aplicação específica. Em aplicações reais, para garantir todos os princípios, uma combinação das 3 técnicas é usada. Por exemplo, você pode usar o modo simétrico para encriptar a mensagem (confidencialidade) e enviar junto o hash (integridade) e a assinatura (autenticidade), com o modo assimétrico.

Aplicações

Com o uso cada vez maior da internet e sistemas em nuvem, a criptografia tem sido cada vez mais usada para garantir os princípios mostrados anteriormente.

  • Assinatura digital: uma forma de mandar documentos e garantir ao destinatário que esse documento é autêntico. Normalmente, se adquire uma chave privada de uma autoridade e, com essa chave, pode assinar os documentos. Na outra ponta, o destinatário possui uma chave pública da mesma autoridade e consegue verificar a validade da assinatura e, consequentemente, a autenticidade do documento. Isso elimina muitas vezes o uso de assinatura física e evita a impressão de papéis desnecessariamente.
  • Encriptação de e-mail: envio de e-mails com dados sensíveis pode ser perigoso e facilmente interceptado por terceiros, podendo gerar prejuízos ao negócio. Existem meios de se encriptar os dados enviados, como, por exemplo, usando o OpenPGP.
  • Encriptação de dados sensíveis: salvar dados sensíveis ao negócio (como senhas ou financeiro) deve ser feito de forma cuidadosa. Existem algumas práticas de como salvar isso de forma segura (como aqui), que usa várias técnicas mostradas nesse artigo.
  • HTTPS/SSL: neste exato momento você está se valendo da criptografia para ler este artigo. Uma combinação de hash, criptografia e assinatura é usada no protocolo HTTPS, que está presente na maior parte dos sites na web hoje em dia (caso não esteja, desconfie). Isso garante que o site que você está acessando realmente é de quem você espera e que as informações trafegadas estão seguras (tais como senha, dados pessoais, etc).
  • Blockchain: esta tecnologia tem estado bastante na moda ultimamente e se utiliza pesadamente dos princípios de criptografia para armazenar os dados e também verificar sua autenticidade, além de outros usos. Mais informações aqui.

Conclusão

A criptografia é estudada e usada há muito tempo pelo ser humano e a cada dia que passa, com a maior conectividade das pessoas e dos dados, se exige que se tenha maior segurança e confiabilidade dos seus dados que são tanto armazenados quanto trafegados pelo sistema.

Este artigo foi uma breve introdução nos termos utilizados e como são as principais aplicações no mundo. No próximo artigo, vamos falar sobre funções hash e suas aplicações.

--

--

Fernando Souza
Prognosys

Enthusiast of programming, electronics, technology and beer, not necessarily in that order. BuyMeACoffee: buymeacoffee.com/ustropo