freeCodeCamp/guide/portuguese/security/cryptography/index.md

59 lines
3.8 KiB
Markdown

---
title: Cryptography
localeTitle: Criptografia
---
## Criptografia
O objetivo básico da criptografia é permitir que duas pessoas se comuniquem através do canal inseguro de tal maneira que uma terceira pessoa não possa entender o que está sendo dito. Este canal pode ser uma linha telefônica ou uma rede de computadores.
A criptografia começou a ser usada pelos romanos para tornar as mensagens em batalha ilegíveis pelo inimigo se decifrassem.
A criptografia anterior à era moderna era efetivamente sinônimo de criptografia, a conversão de informações de um estado legível em aparente absurdo.
A criptografia moderna é usada em dados para que apenas uma parte ou apenas partes autorizadas tenham a capacidade de acessar as informações.
A criptografia ao longo dos anos tornou-se mais avançada.
### Exemplo
As informações que Person1 deseja enviar para Person2, que chamamos de "texto sem formatação", podem ser texto, dados numéricos ou qualquer tipo de dado. Pessoa1 criptografa o texto simples, usando uma chave predeterminada e envia o "texto cifrado" resultante sobre o canal. Person3, ao ver o texto cifrado no canal, não pode determinar qual era o texto original, mas Person2, que conhece a chave de criptografia, pode descriptografar o texto cifrado e reconstruir o texto simples.
### César Cypher (Shift Cypher)
O primeiro cypher conhecido foi o cypher Ceasar. A cifra Ceasar funciona mudando as letras de um "texto simples" por uma quantidade específica para cima ou para baixo no alfabeto.
Do ponto de vista de uma pessoa externa, a mensagem parece ser letras aleatórias com espaços entre elas.
### Criptografia Moderna
A criptografia moderna usa números quase aleatórios e funções matematicamente sólidas para permitir uma comunicação segura. Essas funções recém-desenvolvidas não podem ser facilmente quebradas devido à sua estrutura, exigindo que até mesmo centenas de anos de supercomputadores sejam quebrados.
Existem dois tipos principais de criptografia moderna:
### 1) Criptografia Simétrica ou de Chave Única:
A Criptografia de Chave Simétrica é um método de criptografia em que ambas as partes usam apenas uma chave para criptografia e descriptografia. Esses algoritmos, devido ao seu design, geralmente são muito mais rápidos do que a criptografia de chave pública ou assimétrica.
Algumas técnicas de criptografia simétrica incluem: Data Encryption Standard (DES), Advanced Encryption Standard (AES), Blow Fish, Dois Peixes, RC4.
### 2) Criptografia de chave pública ou assimétrica:
Os algoritmos de criptografia assimétrica fornecem a cada usuário um par de chaves: uma pública e outra privada. Qualquer mensagem criptografada com uma chave do par só pode ser descriptografada com a outra.
Algumas técnicas assimétricas incluem: RSA, Diffie-Hellman, DSS (assinatura digital padrão), ElGamal.
### Hashing Criptográfico
A maioria das funções hash criptográficas é projetada para obter uma string de qualquer comprimento como entrada e produzir um valor de hash de tamanho fixo.
Uma função hash criptográfica deve ser capaz de suportar todos os tipos conhecidos de ataque criptográfico.
### Hashing de Criptografia
Uma função hash criptográfica é um tipo de função hash que é projetada para também ser uma função unidirecional (uma função que leva muito tempo e recursos para a força bruta). O principal objetivo dos hashes é lidar com a intregridade da mensagem, portanto, a mesma mensagem sempre resulta no mesmo hash.
#### Mais Informações:
* [Criptografia: teoria e prática por Douglas Stinson](https://www.crcpress.com/Cryptography-Theory-and-Practice-Third-Edition/Stinson/p/book/9781584885085)
* [TechTarget on Encryption](http://searchsecurity.techtarget.com/definition/encryption)
* [Guia de criptografia](https://www.tutorialspoint.com/cryptography/index.htm)