A criptografia é uma ferramenta essencial para salvaguardar informações e comunicações, empregando um conjunto de operações matemáticas e lógicas, conhecidas como algoritmos, e princípios matemáticos para garantir que somente as partes autorizadas possam interpretar os dados.
Sua principal função é prevenir o acesso não autorizado a informações confidenciais.
O termo “criptografia” deriva do grego “kryptos”, que significa oculto. Em essência, “cripto” se refere a “escondido” e “grafia” a “escrita”.
Este artigo oferece uma análise dos fundamentos da criptografia, explorando diferentes métodos com exemplos, examinando os desafios atuais e antecipando tendências futuras. O objetivo é apresentar uma visão completa, abrangendo tanto os conceitos primários quanto os secundários.
A criptografia protege a comunicação e as informações digitais em uma ampla gama de sistemas e aplicativos, garantindo a confidencialidade e a proteção dos dados contra acessos não autorizados.
Vejamos o processo básico da criptografia:
- Tudo começa com o remetente, que tem uma mensagem ou dados a serem transmitidos.
- Essa mensagem original, chamada texto simples, é convertida em um formato ilegível usando um processo conhecido como criptografia.
- O destinatário, por sua vez, usa uma chave específica para reverter o texto cifrado (formato ilegível) para o formato original legível, um processo denominado descriptografia.
- A mensagem descriptografada é idêntica à mensagem original enviada.
- O destinatário, então, tem acesso à mensagem original.
Agora, vamos nos aprofundar nos princípios básicos da criptografia.
Princípios Fundamentais da Criptografia
Existem quatro pilares fundamentais da criptografia:
#1. Confidencialidade: Somente o destinatário autorizado tem permissão para acessar as informações, mantendo-as em segredo de terceiros.
#2. Integridade: As informações não podem ser alteradas durante o armazenamento ou a transmissão sem que essas modificações sejam detectadas.
#3. Não Repúdio: O remetente não pode negar a autoria do envio da informação.
#4. Autenticação: Confirma as identidades do remetente e do destinatário, validando a origem e o destino das informações.
Antes de continuarmos, vamos analisar alguns termos-chave.
Glossário:
Palavra | Significado |
Criptografia | Técnica para proteger informações e comunicações por meio de algoritmos e conceitos matemáticos, garantindo que somente a pessoa certa possa compreendê-las. |
Cifra | Método ou algoritmo usado para codificar e decodificar dados. |
Criptografar | Processo de transformar texto simples em texto cifrado. |
Texto simples | Formato original de dados ou texto não criptografado. |
Texto cifrado | Dados ou texto criptografados (uma forma codificada dos dados). |
Descriptografar | Processo reverso de transformar o texto cifrado de volta em texto simples usando uma chave de descriptografia. |
Chave | Informação, geralmente uma sequência de bits, utilizada para controlar o processo de criptografia e descriptografia. |
Troca de chaves | Transferência segura de chaves de criptografia entre remetente e destinatário. |
Existem três tipos principais de criptografia:
- Criptografia de chave simétrica
- Criptografia de chave assimétrica
- Função hash
Criptografia de Chave Simétrica
A criptografia de chave simétrica, também conhecida como criptografia de chave única, é um método de criptografia que utiliza uma única chave secreta tanto para codificar quanto para decodificar os dados.
Nesse método, tanto o remetente quanto o destinatário devem utilizar exatamente a mesma chave secreta para entender as informações. O processo envolve transformar os dados originais em um código secreto (texto cifrado) por meio da chave secreta e um processo matemático específico.
Quando o receptor, que também possui a chave secreta, recebe a mensagem codificada, pode usar o mesmo processo matemático para transformá-la de volta em dados originais. Dessa forma, o receptor obtém as informações originais a partir do código secreto.
Vamos detalhar o processo em etapas:
- O algoritmo converte o texto original (texto simples) em texto cifrado, usando uma chave secreta.
- O remetente envia o texto cifrado para o destinatário por um canal de comunicação.
- O destinatário usa a mesma chave secreta para decifrar o texto cifrado e convertê-lo de volta ao texto original.
Essa criptografia simétrica garante que a comunicação entre o remetente e o destinatário seja segura. No entanto, a chave secreta precisa permanecer confidencial.
Para manter a confidencialidade e a integridade, ambas as partes devem gerenciar e proteger essa chave secreta com cuidado.
Existem dois tipos de cifras de criptografia simétrica:
- Cifra de fluxo
- Cifra de bloco
Cifra de Fluxo | Cifra de Bloco |
Criptografa dados um bit ou byte por vez. | Criptografa dados em blocos de tamanho fixo. |
Os dados são criptografados conforme recebidos. | O sistema armazena os dados aguardando blocos completos para processamento. |
Mais simples que a cifra de bloco. | Mais complexo que a cifra de fluxo. |
Usa 8 bits da chave. | Usa 64 bits ou mais da chave. |
Lento e adequado para aplicações offline. | Usa os modos ECB e CBC. |
Usa os modos CFB e OFB. | Criptografa dados em blocos de tamanho fixo. |
Alguns exemplos de algoritmos de criptografia simétrica são:
- AES (Advanced Encryption Standard): É conhecido por sua segurança e eficiência. É muito usado para proteger dados sensíveis como segurança sem fio, computação em nuvem, bancos e comércio eletrônico.
- DES (Data Encryption Standard): É um método de criptografia mais antigo que foi substituído pelo AES e 3DES. Ele usa uma chave de 56 bits.
- IDEA (International Data Encryption Algorithm): Utiliza uma chave de 128 bits e é usado em vários aplicativos.
- Blowfish: Algoritmo projetado como um substituto imediato para DES ou IDEA.
- RC4 (Rivest Cipher 4): Desenvolvido por Ron Rivest. É conhecido por sua simplicidade e velocidade, mas possui certas preocupações de segurança em algumas implementações.
- RC5 (Rivest Cipher 5): Foi projetado para ser eficiente e seguro, com tamanho de bloco e tamanho de chave variáveis.
- RC6 (Rivest Cipher 6): Foi projetado para fornecer segurança e desempenho aprimorados em comparação com versões anteriores.
AES, DES, IDEA, Blowfish, RC5 e RC6 são cifras de bloco.
RC4 é uma cifra de fluxo.
Vantagens da Criptografia de Chave Simétrica
- É mais rápida e eficiente do que a criptografia assimétrica.
- O tamanho da chave é pequeno, permitindo a criação de cifras mais fortes.
- É relativamente barato produzir chaves fortes para cifras.
- AES é considerado um dos algoritmos seguros.
Desvantagens da Criptografia de Chave Simétrica
- Compartilhar as chaves de criptografia de forma segura com todas as partes que precisam se comunicar é um desafio na criptografia simétrica.
- A segurança de todo o sistema pode ser comprometida se a chave for interceptada ou comprometida por um invasor durante a transmissão.
- Os sistemas de criptografia simétrica exigem práticas cuidadosas de gerenciamento de chaves. Isso inclui gerar, armazenar, atualizar e revogar chaves. O mau gerenciamento de chaves pode levar a violações de segurança.
- Invasores podem interceptar chaves trocadas em um canal inseguro, comprometendo a comunicação.
A criptografia simétrica é uma parte essencial da criptografia moderna e é muito usada em diversos aplicativos, apesar das desvantagens. Boas práticas de gerenciamento e métodos seguros de troca de chaves ajudam a superar alguns dos desafios da criptografia simétrica.
Criptografia de Chave Assimétrica
A criptografia assimétrica utiliza pares de chaves: uma privada mantida em segredo e uma pública compartilhada abertamente. Você pode usar a chave pública de alguém para criptografar uma mensagem e apenas essa pessoa pode descriptografá-la com sua chave privada.
Este método aumenta a segurança digital, permitindo a comunicação segura sem a necessidade de compartilhamento de chaves secretas, o que é muito importante no mundo online.
É muito útil para uma comunicação segura, pois os destinatários precisam apenas da sua chave pública. Isso elimina o risco de compartilhar uma chave simétrica secreta.
Esses algoritmos de “chave pública” utilizam um par de chaves para proteger os dados.
Aqui está uma explicação mais simples:
- Existem duas chaves. Uma chave pública, que todos podem acessar, e uma chave privada, que é mantida em segredo.
- A chave pública é usada para criptografar ou bloquear os dados.
- A chave privada é usada para descriptografar ou desbloquear os dados.
É importante entender que não é possível descobrir a chave privada a partir da chave pública. Além disso, as chaves públicas são geralmente vinculadas a identidades por organizações conhecidas como Autoridades Certificadoras.
Comunicação Segura: O remetente e o destinatário trocam mensagens de forma segura sem comprometer suas chaves privadas.
Esses algoritmos se baseiam em problemas matemáticos como a fatoração de números inteiros e logaritmos discretos para criar assinaturas digitais e estabelecer/distribuir chaves de sessão, como no protocolo TLS.
Alguns exemplos de algoritmos de criptografia assimétrica incluem:
- RSA (Rivest-Shamir-Adleman): RSA é um dos algoritmos de criptografia assimétrica mais usados. Baseia-se nas propriedades matemáticas de grandes números primos e é comumente usado para troca segura de chaves e assinaturas digitais.
- Criptografia de Curva Elíptica (ECC): Baseia-se na estrutura algébrica de curvas elípticas sobre campos finitos. O ECC oferece a vantagem de tamanhos de chave menores em comparação com a criptografia não-EC que depende de campos Galois simples. O ECC é usado principalmente para gerar números pseudoaleatórios e assinaturas digitais.
- Diffie-Hellman Key Exchange: Este algoritmo é usado para troca segura de chaves. Uma chave criada usando este método pode ser usada para criptografia com um algoritmo simétrico. O principal objetivo do Diffie-Hellman é permitir que duas partes criem uma chave secreta compartilhada através de um canal de comunicação inseguro.
Vantagens da Criptografia Assimétrica
- A criptografia assimétrica oferece maior segurança em comparação com a criptografia simétrica.
- O destinatário pode verificar a identidade do remetente.
- A criptografia assimétrica resolveu o problema relacionado à distribuição de chaves, que mencionei nas desvantagens da criptografia de chave simétrica.
- Os destinatários da mensagem podem verificar se a mensagem foi alterada durante a transmissão.
Desvantagens da Criptografia de Chave Assimétrica
- A criptografia assimétrica é um processo mais lento do que a criptografia simétrica.
- A criptografia e descriptografia assimétrica exigem mais recursos computacionais do que a criptografia simétrica.
- A criptografia assimétrica depende de chaves públicas e privadas. Gerenciar essas chaves com segurança pode ser complexo e desafiador, principalmente em sistemas de grande escala.
- A desvantagem potencial mais significativa da criptografia assimétrica é a sua vulnerabilidade aos computadores quânticos. Os computadores quânticos têm potencial para resolver certos problemas matemáticos, como a fatoração de números inteiros e logaritmos discretos, de forma mais eficiente do que os computadores clássicos.
No entanto, não é preciso se preocupar, as organizações e pesquisadores estão trabalhando na transição para essas técnicas criptográficas resistentes ao quantum.
Vamos avançar para o nosso próximo tipo de criptografia:
Função Hash
As funções hash criptográficas são diferentes de outros tipos de criptografia. Elas não criptografam dados. Em vez disso, usam matemática complexa para transformar qualquer dado em um código único composto de letras e números.
Esses códigos são chamados de códigos hash, valores hash ou resumos de mensagens. Eles são importantes para verificar se os dados estão seguros. Quando os dados são enviados ou armazenados, seu código hash é calculado e enviado ou mantido com os dados.
O destinatário pode recalcular o código dos dados recebidos e compará-lo com o enviado. Se os códigos corresponderem, significa que os dados permaneceram seguros durante a transmissão e armazenamento.
Aqui está uma explicação passo a passo:
Lado do Remetente:
- O remetente usa uma função hash para criar um valor hash exclusivo para os dados fornecidos.
- Depois de criar valores hash, o remetente envia a mensagem original e o código hash ao destinatário por meio de um canal inseguro.
Lado do Receptor:
- O receptor recebe a mensagem e o código hash.
- O receptor também usa a mesma função hash para criar um novo código hash para a mensagem recebida.
- O receptor compara o novo código hash com o enviado pelo remetente.
Resultado:
- Se os códigos hash corresponderem, significa que a mensagem não foi alterada durante a transmissão e é considerada segura.
- Se os códigos hash não corresponderem, isso sugere que a mensagem pode ter sido alterada e não é considerada segura.
Aqui estão algumas das propriedades que tornam as funções hash úteis:
Propriedades da Função Hash:
- Determinístico: Se você fornecer a mesma entrada, sempre produzirá a mesma saída.
- Uniformidade e livre de colisões: Uma boa função hash deve produzir resultados distribuídos uniformemente. Ajuda a evitar colisões.
- Eficiente: As funções hash são projetadas para serem computacionalmente eficientes, permitindo processar rapidamente grandes quantidades de dados.
- Saída de tamanho fixo: Produz uma saída de tamanho fixo, independente do tamanho da entrada. Essa propriedade é essencial porque permite armazenamento e recuperação eficiente de dados.
As funções hash têm muitas aplicações em ciência da computação e segurança da informação, incluindo criptografia, verificação da integridade dos dados, indexação de dados, impressão digital de dados, armazenamento de senhas, análise forense digital e blockchain.
As funções de hash criptográfico mais usadas incluem:
Existem duas famílias muito usadas de funções hash criptográficas: a família MD (MD = resumo da mensagem) e a família SHA (SHA = algoritmo de hash seguro).
- SHA-1 (Secure Hash Algorithm 1): Era uma das funções hash populares. No entanto, o SHA-1 agora é considerado fraco devido a vulnerabilidades que permitem ataques de colisão. Ele não é mais usado para a maioria dos aplicativos de segurança.
- MD5 (Message Digest Algorithm 5): O MD5 foi popular no passado, mas agora é considerado fraco devido a vulnerabilidades de colisão. Geralmente não é usado para aplicativos confidenciais de segurança.
- SHA-3: SHA-3 é uma família mais recente de funções hash selecionadas por meio de uma competição pelo Instituto Nacional de Padrões e Tecnologia (NIST). Ele oferece forte segurança e foi projetado para ser resistente a certos tipos de ataques.
Embora as funções hash não criptografem mensagens, elas são uma parte essencial da criptografia porque desempenham um papel crucial na segurança e autenticação de dados, que são objetivos importantes da criptografia.
Vantagens da Função Hash
- Uma função hash segura garante alta resistência a colisões.
- Dois arquivos podem ser comparados quanto à igualdade por meio de hashing.
- As funções hash são incrivelmente rápidas e eficientes.
- No SGBD, o hashing é usado para pesquisar a localização dos dados sem usar uma estrutura de índice.
Desvantagens da Função Hash
- As funções hash podem funcionar de forma menos eficaz quando existem inúmeras colisões.
- Nenhum valor nulo é permitido.
- Implementar tabelas hash pode ser uma tarefa desafiadora devido à sua complexidade.
- Na prática, é quase impossível evitar totalmente colisões de hash ao lidar com um grande conjunto de chaves potenciais.
Leia também: Como se proteger de um ataque à tabela arco-íris
Aplicações da Criptografia na Vida Real
- Autenticação/Assinaturas Digitais: A autenticação é o processo vital de confirmação da autenticidade dos dados, verificação da origem de um documento, validação da identidade do remetente, precisão do carimbo de data/hora e garantia da legitimidade das identidades do computador ou do usuário. As assinaturas digitais usam métodos criptográficos que envolvem uma função hash e uma chave privada para validar e assinar documentos com segurança.
- Criptografia de armazenamento em nuvem: A criptografia é utilizada para proteger arquivos armazenados na nuvem e durante a transmissão de e para serviços em nuvem.
- Dinheiro Eletrônico: O dinheiro eletrônico envolve transferências eletrônicas de fundos entre partes, que podem ser de débito ou crédito e anônimas ou identificadas. Ele usa criptografia, assinaturas digitais e criptografia de chave pública para segurança, permitindo vários tipos de transações.
- Criptografia/descriptografia em e-mail: A criptografia de e-mail protege o conteúdo do e-mail contra acesso não autorizado usando criptografia de chave pública. Cada usuário possui um par de chaves pública e privada, sendo a chave pública usada para criptografia, e somente a chave privada pode descriptografar a mensagem.
- Criptografia no WhatsApp: O WhatsApp usa o protocolo de sinal para criptografia, combinando criptografia de chave simétrica e assimétrica para confidencialidade, integridade, autenticação e não repúdio. Algoritmos baseados em Curve25519 são usados para troca de chaves.
- Criptografia no Instagram: A comunicação do Instagram é criptografada usando SSL/TLS na porta 443, evitando a escuta de dados trocados entre o usuário e os servidores do Instagram.
- Autenticação do cartão SIM: A autenticação do cartão SIM envolve a verificação do acesso do cartão SIM à rede, gerando um número aleatório e aplicando algoritmos como A3 com a chave secreta Ki. A criptografia depende do algoritmo A8 e da chave de sessão KC, usados com o algoritmo A5 para criptografia/descriptografia de dados.
Desafios na Criptografia
- A gestão de chaves continua a ser um desafio, já que a distribuição e gestão segura de chaves de criptografia é complexa, principalmente em sistemas de grande escala. Mecanismos de armazenamento e recuperação de chaves precisam ser sólidos.
- A criptografia simétrica pode se tornar ineficiente quando muitos usuários precisam se comunicar com segurança. Cada par de usuários exige uma chave exclusiva, o que pode se tornar complicado à medida que o número de usuários aumenta.
- A criptografia assimétrica normalmente exige chaves maiores do que a criptografia simétrica para alcançar o mesmo nível de segurança. Isso pode levar a um processamento mais lento e a maiores requisitos de recursos.
- A descoberta de vulnerabilidades ou fraquezas nas funções hash pode levar a violações de segurança. A comunidade criptográfica precisa analisar e adaptar continuamente as funções hash para mitigar tais riscos.
- Em aplicativos em que as funções hash são usadas para armazenar senhas, é necessário “salgar” as senhas adequadamente para evitar ataques de tabela arco-íris. O desafio é garantir que os “sais” sejam únicos e secretos.
- O surgimento da computação quântica representa um desafio significativo para a criptografia. Os computadores quânticos são excepcionalmente rápidos na resolução de problemas matemáticos específicos, aproveitando os princípios peculiares da física quântica para sua capacidade computacional extraordinária.
Essa velocidade ameaça a base dos nossos sistemas criptográficos atuais, que se baseiam na complexidade de certos desafios matemáticos para garantir a segurança dos dados. Os computadores quânticos podem resolver esses problemas muito mais rapidamente do que os computadores convencionais, comprometendo potencialmente a segurança dos nossos métodos de criptografia.
Os princípios subjacentes da mecânica quântica que os computadores quânticos utilizam são incomuns, mas concedem o poder de realizar tarefas que estão além do alcance dos computadores clássicos.
Consequentemente, a necessidade de desenvolver novas técnicas criptográficas capazes de resistir a ataques quânticos está se tornando cada vez mais urgente, criando um desafio contínuo no campo da criptografia.
Tendências Futuras em Criptografia
- O desenvolvimento e a adoção de algoritmos de criptografia pós-quântica que sejam resistentes a ataques quânticos será uma tendência importante. Algoritmos como criptografia baseada em rede estão sendo explorados.
- Há uma aceitação crescente da criptografia baseada em nuvem e do gerenciamento de chaves, especialmente no setor financeiro. A criptografia homomórfica permite cálculos em dados criptografados sem a necessidade de descriptografá-los. Isso pode aumentar a privacidade na computação em nuvem e no processamento de dados.
- A criptografia desempenha um papel crucial na segurança da tecnologia blockchain, e ambas continuarão interligadas no futuro.
- Com o aumento das regulamentações de proteção de dados, como o GDPR, a tokenização está sendo usada com mais frequência na saúde, nos serviços financeiros e nas empresas. A tokenização substitui os dados reais por um token que não tem valor para os hackers.
Considerações Finais
A criptografia é um campo extenso com muito a ser explorado, e nós apenas começamos ao cobrir os fundamentos da criptografia.
Abordamos a criptografia, seus princípios, tipos de criptografia, funções hash, desafios, tendências futuras e aplicações práticas.
No entanto, há muito mais a ser descoberto.
A seguir, Criptografia em nuvem: um guia introdutório e estudo de caso do Google Cloud.