Criptografia de Dados em uma Casca De Noz 🔐
Tags: python, security, data
Published: 2023-05-25 15:08:40

# Boas-vindas ao fascinante universo da criptografia de dados!

A criptografia é essencial na segurança da informação, protegendo comunicações, dados confidenciais, transações financeiras e autenticação de usuários. É fundamental para garantir a confidencialidade, integridade e autenticidade dos dados num mundo tão conectado e dependente da tecnologia.

Nesta série de artigos, vamos explorar de forma prática as técnicas e algoritmos amplamente utilizados na criptografia de dados, pois com a chegada da LGPD, proteger informações sensíveis tornou-se uma prioridade incontestável.

Hoje mergulharemos no mundo da criptografia, explorando sua importância na segurança da informação e desvendando os segredos por trás das técnicas essenciais na proteção de dados.

Vamos lá?

## Afinal, o que é Criptografia?

Imagine que você tem uma mensagem super secreta que não quer que ninguém entenda, exceto a pessoa para quem você está enviando. Você poderia simplesmente escrever a mensagem em um papel e entregá-lo a essa pessoa, mas e se alguém interceptar o papel pelo caminho? É aí que entra a criptografia!

Podemos pensar na criptografia como um disfarce para suas palavras, ou seja, palavras cifradas. Nesse processo podemos transformar sua mensagem original em algo que só pode ser entendido por alguém se essa pessoa possuir a "chave" certa. É como usar uma língua secreta ou um código que só você e seu destinatário conhecem.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6eip13tlvuiu2wzffwz.png)

Em outras palavras, podemos definir criptografia de dados como sendo:

> **O processo de transformar informações em um formato ilegível, conhecido como texto cifrado, para que apenas pessoas autorizadas possam acessá-lo por meio da aplicação de uma chave.**

## Um Breve Histórico da Criptografia

A história da criptografia de dados remonta a milhares de anos. Desde as civilizações antigas, como os egípcios e romanos, métodos rudimentares de criptografia eram usados para proteger mensagens importantes durante a comunicação. Um exemplo famoso é o cifra de César, em que cada letra da mensagem original é substituída por uma letra a certa quantidade de posições à frente no alfabeto.

![Cifra de César](https://radames.manosso.nom.br/bitabit/files/cifra-cesar.jpg)

Ao longo dos séculos, a criptografia evoluiu com avanços significativos. Durante a Segunda Guerra Mundial, máquinas de criptografia como a Enigma, desenvolvida por Alan Turing, foram criadas e usadas por militares para codificar e decodificar mensagens secretas.

![Enigma - Alan Turing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fm7iqamgzk8imws1bpd4.png)

Se você tiver mais interesse sobre essa história, assista o filme *The Imitation Game*, onde o Alan Turing é interpretado por Benedict Cumberbatch.

![Benedict Cumberbatch em The Imitation Game](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l1dxiyviapl93f0y7bom.png)


Nos anos 1970, o algoritmo de criptografia simétrica DES (Data Encryption Standard) foi adotado como um padrão de criptografia pelo governo dos EUA. No entanto, com o avanço da tecnologia e a necessidade de algoritmos mais robustos, surgiu o AES (Advanced Encryption Standard), amplamente utilizado atualmente.

Além da criptografia simétrica, a criptografia assimétrica também se tornou essencial. O algoritmo RSA (Rivest-Shamir-Adleman), desenvolvido na década de 1970, revolucionou a criptografia assimétrica ao permitir a troca de chaves públicas de forma segura.

![Rivest-Shamir-Adleman](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25ex8svy8fypt6kkpsoh.png)


Com o aumento das preocupações com a privacidade e a segurança de dados, a criptografia continua a se desenvolver. Algoritmos modernos, como a criptografia de curva elíptica (ECC) e a criptografia homomórfica, abrem caminho para novas aplicações e desafios emocionantes na proteção dos dados na era digital.

## Principais desafios

Os desafios na criptografia de dados estão relacionados às necessidades de:
- Estar um passo à frente dos ataques;
- Manter algoritmos atualizados;
- Encontrar o equilíbrio entre segurança e eficiência.

Ao superar esses desafios, podemos garantir a proteção efetiva das informações em um mundo digital cada vez mais complexo e interconectado.

## Aplicações da criptografia

Alguns exemplos de casos de uso com aplicativos reais e os algoritmos de criptografia associados podem ser encontrados em aplicações de:

- Uso de criptografia em transações financeiras, como caixas eletrônicos e compras online
- Criptografia em dispositivos, como notebooks
- Uso de SSL em sites para proteger dados durante a transmissão
- Criptografia em mensagens de aplicativos, como WhatsApp
- Possibilidade de ter pastas criptografadas no telefone
- Criptografia em e-mails com protocolos como o OpenPGP
- Uso de criptografia em VPNs e armazenamento em nuvem
- Criptografia para garantir integridade e autenticidade de informações, incluindo assinaturas digitais
- Uso de criptografia para apagar dados de forma segura, evitando recuperação de informações originais.

Esses são apenas alguns exemplos de casos de uso reais da criptografia e os algoritmos associados a eles. É importante destacar que a escolha dos algoritmos pode variar dependendo da implementação e das especificidades de cada caso de uso.

## Classificação

### Criptografia simétrica

A criptografia simétrica utiliza a mesma chave para criptografar e descriptografar dados, oferecendo rapidez e eficiência. Porém, é fundamental garantir a segurança da chave compartilhada para evitar acesso não autorizado aos dados. É preciso estabelecer um canal seguro para compartilhar a chave simétrica.

### Criptografia assimétrica

A criptografia assimétrica, também chamada de criptografia de chave pública, utiliza pares de chaves: uma pública e uma privada. A chave pública é compartilhada, permitindo que qualquer pessoa criptografe os dados, mas apenas o detentor da chave privada correspondente pode descriptografá-los. Essa abordagem garante a segurança da comunicação, eliminando a necessidade de compartilhar uma chave secreta. A criptografia assimétrica é amplamente usada em diversas aplicações de segurança de dados.


## Algoritmos criptográficos

Existem diversos algoritmos criptográficos disponíveis, cada um com características e usos específicos. Alguns exemplos populares incluem o AES (Advanced Encryption Standard), o RSA (Rivest-Shamir-Adleman) e o ECC (Elliptic Curve Cryptography). Esses algoritmos são amplamente adotados na segurança da informação, proporcionando níveis avançados de criptografia em diferentes cenários.

> Deixando a formalidade de lado... E se os algoritmos criptográficos fossem Divas Pop? Quem eles seriam na fila do pão?

Saindo um pouco das formalidades de conceitos e definições, resolvi apostar no meu modo BuzzFeed pra escolher uma Diva Pop pra representar cada algoritmo criptográfico. Elas irão nos acompanhar com seus gifs icônicos nos próximos artigos onde veremos a implementação de cada um deles na prática.

### Algoritmos Simétricos:

#### DES (Data Encryption Standard)
Se o DES fosse uma diva pop, seria a Whitney Houston. Assim como Whitney Houston foi uma das maiores vozes da música pop, o DES foi um dos primeiros algoritmos de criptografia amplamente adotados. Ambos têm um legado significativo e foram líderes em suas épocas.

![Whitney Houston](https://78.media.tumblr.com/5c01e4d7161d7af412a55c211de8b651/tumblr_pow3a75ECc1wrmp1fo4_1280.gif)

#### O AES (Advanced Encryption Standard)
Se o AES fosse uma diva pop, ele seria a Beyoncé. Assim como Queen B, o AES é poderoso, confiável e uma referência no mundo da criptografia. Ambos têm uma presença impactante e são verdadeiros líderes, com uma reputação impecável. Assim como Beyoncé protege seu reinado na música, o AES protege informações valiosas com eficiência e resistência contra ataques.

![Beyoncé](https://media1.giphy.com/media/l3V0doGbp2EDaLHJC/giphy.gif?cid=6c09b952baxph5hroopyuv9kecxwgwwh8jgon8hm06pkfsls&ep=v1_gifs_search&rid=giphy.gif&ct=g)

### Algoritmos Assimétricos:

#### RSA (Rivest-Shamir-Adleman)
Se o RSA fosse uma diva pop, seria a Rihanna. Assim como a Riri é icônica na música, o RSA é um dos algoritmos mais populares da criptografia. Ambos são conhecidos por sua originalidade e estilo único. O RSA é inteligente e meticuloso, assim como alguém que faz cálculos complexos de números primos. Ele leva a segurança a sério, assim como a Rihanna leva a sua carreira.

![Rihanna](https://gifs.eco.br/wp-content/uploads/2022/09/gifs-da-rihanna-0.gif)

#### ECC (Elliptic Curve Cryptography)
Se o ECC fosse uma diva pop, seria a Shakira. Assim como a Shakira com seus quadris, o ECC usa curvas elípticas para criar uma dança matemática que protege nossos dados. Essas curvas são como os movimentos elegantes e sofisticados da diva.

![Shakira](https://media.tenor.com/bAq8NjywtPoAAAAd/shakira-hips-dont-lie.gif)

## Funções de Hash

As funções de hash são algoritmos que recebem um conjunto de dados de entrada e geram um valor de saída, chamado de "hash" ou "resumo". Esses valores são únicos e representam o conjunto de dados original. 

A principal diferença entre as funções de hash e os algoritmos criptográficos é que as funções de hash são unidirecionais, ou seja, é fácil calcular o hash de um dado, mas é extremamente difícil ou praticamente impossível obter os dados originais a partir do hash. Além disso, é muito improvável que dois conjuntos de dados diferentes produzam o mesmo hash. Já os algoritmos criptográficos envolvem operações de criptografia e descriptografia, usando chaves para proteger e acessar os dados.

## Conclusão

Neste artigo, exploramos a importância fundamental da criptografia de dados na segurança da informação. Destacamos também que além de desempenhar um papel vital na segurança da informação, é uma área em constante evolução. Ao compreender sua importância, estar atualizado com os avanços e enfrentar os desafios, podemos garantir a proteção efetiva das informações em um mundo digital cada vez mais complexo e ameaçador.

No próximo artigo, veremos como as boas práticas de proteção de dados podem ser aplicadas no dia a dia. Veremos orientações e recomendações para implementar uma criptografia segura em projetos, incluindo o uso de algoritmos adequados, gerenciamento de chaves, armazenamento seguro de dados criptografados e proteção contra ataques comuns.

Então até o próximo capítulo dessa saga! 


## Ao Infinito e Além!
- [Artigo no blog da Kaspersky "O que é criptografia de dados? Definição e explicação"](https://www.kaspersky.com.br/resource-center/definitions/encryption)
- [Artigo no Tecnoblog "O que é um hash?", por Ricardo Syozi](https://tecnoblog.net/responde/o-que-e-um-hash/#:~:text=Ao%20contr%C3%A1rio%20de%20uma%20criptografia,que%20os%20dados%20sejam%20lidos.)
- [Curso no YouTube "Fundamental Cryptography in Theory and Python", por
Cyrill Gössi](https://www.youtube.com/watch?v=k5CeZoHLXqo&list=PLWjMI9CAmVU4--SmpzgswTvxLkZqC9QWn)