Princípios de Criptografia - Informática | Tuco-Tuco
Aula de Informática (Segurança da Informação): Princípios de Criptografia. Noções básicas de criptografia, incluindo criptografia simétrica, assimétrica e uso de chaves. Estude gratuitamente para concursos públicos e OAB no Tuco-Tuco.
Princípios de Criptografia
Definição e Objetivos Fundamentais
A criptografia é a ciência e a arte de escrever mensagens de forma cifrada, ou seja, transformar uma informação legível (texto claro ou plaintext) em uma forma ilegível (texto cifrado ou ciphertext) por meio de um algoritmo e uma chave. O processo inverso, de transformar o texto cifrado de volta em texto claro, é chamado de decifração (ou decodificação). A criptografia moderna é um pilar da segurança da informação, pois garante a confidencialidade (apenas o destinatário autorizado pode ler a mensagem), a integridade (a mensagem não foi alterada durante a transmissão) e, quando combinada com assinaturas digitais, o não repúdio (o autor não pode negar a autoria) e a autenticidade.
Diferentemente da codificação (que transforma dados em outro formato sem segredo, como Base64), a criptografia depende de uma ou mais chaves secretas. A segurança do sistema não reside no sigilo do algoritmo (que pode ser público), mas sim no sigilo da chave e na robustez matemática do algoritmo (princípio de Kerckhoffs: "um sistema criptográfico deve ser seguro mesmo que tudo sobre ele, exceto a chave, seja público").
Para concursos e vestibulares, é essencial compreender as diferenças entre criptografia simétrica, assimétrica e hashing, conhecer os algoritmos mais importantes (AES, RSA, SHA), entender o funcionamento de assinaturas digitais e certificados, e saber aplicar esses conceitos em cenários práticos (HTTPS, e-mail seguro, armazenamento de senhas).
Criptografia Simétrica (Chave Secreta)
2.1. Conceito e Funcionamento
Na criptografia simétrica, a mesma chave é usada tanto para cifrar quanto para decifrar a mensagem. O remetente e o destinatário devem compartilhar essa chave de forma segura antes da comunicação. O algoritmo de cifração é público (ex.: AES, DES, 3DES, ChaCha20), mas a chave deve permanecer secreta.
Processo:
Cifração: – o algoritmo recebe a chave e o texto claro , produz o texto cifrado .
Decifração: – o algoritmo (que pode ser o mesmo ou o inverso) usa a mesma chave para recuperar .
2.2. Vantagens e Desvantagens
| Vantagens | Desvantagens |
|-----------|---------------|
| Alta velocidade de processamento (adequada para grandes volumes de dados) | Problema da distribuição da chave: como compartilhar a chave de forma segura sem que um atacante a intercepte? |
| Algoritmos relativamente simples de implementar | Escalabilidade: em um grupo de n pessoas, são necessárias n(n-1)/2 chaves (cada par precisa de uma chave diferente) |
| Baixo consumo de recursos (ideal para dispositivos embarcados) | Se a chave for comprometida, toda a comunicação passada e futura (sem forward secrecy adequada) pode ser decifrada |
2.3. Principais Algoritmos Simétricos
| Algoritmo | Tamanho da chave (bits) | Tamanho do bloco (bits) | Status atual |
|-----------|-------------------------|-------------------------|---------------|
| DES (Data Encryption Standard) | 56 (efetivos) | 64 | Obsoleto (quebrado por força bruta em 1999). Não usar. |
| 3DES (Triple DES) | 112 ou 168 | 64 | Considerado obsoleto a partir de 2023 (NIST); lento e vulnerável a ataques de meet-in-the-middle. |
| AES (Advanced Encryption Standard) | 128, 192, 256 | 128 | Padrão atual, seguro e amplamente adotado (governo dos EUA, HTTPS, Wi-Fi WPA2/3). |
| ChaCha20 | 256 | fluxo (stream cipher) | Alternativa moderna ao AES, mais rápida em software (sem aceleração de hardware), usada no TLS 1.3 e no WireGuard. |
O AES é o padrão de fato. Sua implementação é eficiente em hardware (Intel AES-NI) e resistente a ataques conhecidos (exceto side-channel se mal implementado). O AES-256 é considerado seguro para dados classificados como "secretos" pelo governo dos EUA.
2.4. Modos de Operação
Algoritmos de bloco (como AES) cifram blocos fixos (128 bits). Para cifrar mensagens maiores que um bloco, utilizam-se modos de operação:
ECB (Electronic Codebook): Cada bloco é cifrado independentemente. Inseguro porque blocos iguais produzem cifras iguais, revelando padrões. Não usar.
CBC (Cipher Block Chaining): Cada bloco é combinado (XOR) com o bloco cifrado anterior antes da cifragem. Requer um vetor de inicialização (IV) aleatório. Seguro, mas não paralelizável.
CTR (Counter): Transforma o algoritmo de bloco em stream cipher, usando um contador. Permite paralelização e acesso aleatório. Muito usado (incluindo AES-GCM).
GCM (Galois/Counter Mode): Modo de operação que fornece tanto confidencialidade (CTR) quanto autenticação de integridade (GMAC). É o modo preferido em TLS 1.3 e Wi-Fi WPA3.
Criptografia Assimétrica (Chave Pública)
3.1. Conceito e Funcionamento
A criptografia assimétrica utiliza um par de chaves matematicamente relacionadas: uma chave privada (mantida em segredo pelo proprietário) e uma chave pública (distribuída livremente). O que é cifrado com a chave pública só pode ser decifrado com a chave privada correspondente, e vice-versa.
Processos:
Cifração com chave pública (para confidencialidade): Alice obtém a chave pública de Bob, cifra a mensagem com ela e envia o texto cifrado. Somente Bob, com sua chave privada, pode decifrar.
Assinatura digital (autenticidade e não repúdio): Alice cifra um hash da mensagem com sua chave privada (ou aplica algoritmo de assinatura). Qualquer pessoa pode verificar a assinatura usando a chave pública de Alice. Isso prova que a mensagem foi criada por Alice e não foi alterada.
3.2. Vantagens e Desvantagens
| Vantagens | Desvantagens |
|-----------|---------------|
| Resolve o problema da distribuição de chaves (a chave pública pode ser enviada em texto claro) | Muito mais lenta que a criptografia simétrica (centenas a milhares de vezes) |
| Permite assinaturas digitais e não repúdio | Requer infraestrutura de chave pública (PKI) para garantir a autenticidade das chaves públicas (certificados digitais) |
| Escalável (cada pessoa precisa apenas de um par de chaves) | Maior tamanho de chave para segurança equivalente (ex.: 3072 bits RSA ≈ 128 bits AES) |
3.3. Principais Algoritmos Assimétricos
| Algoritmo | Base matemática | Tamanho típico de chave | Status |
|-----------|----------------|--------------------------|--------|
| RSA | Fatoração de números inteiros grandes | 2048, 3072, 4096 bits | Amplamente usado, mas vulnerável a computação quântica (algoritmo de Shor). Prefere-se 3072+ bits. |
| ECC (Elliptic Curve Cryptography) | Logaritmo discreto em curvas elípticas | 256 bits (equivalente a 3072 bits RSA) | Mais eficiente que RSA (chaves menores, mais rápidas). Usado em TLS, Bitcoin, SSH. |
| DSA (Digital Signature Algorithm) | Logaritmo discreto | 1024-3072 bits | Especificamente para assinaturas. Menos usado hoje; ECDSA é preferido. |
| ECDSA (Elliptic Curve DSA) | Curvas elípticas | 256 bits | Padrão para assinaturas em sistemas modernos. |
| Ed25519 | Curva Edwards | 256 bits | Alta segurança e performance; usado em SSH, OpenVPN, Signal. |
Hashing Criptográfico (Funções de Resumo)
4.1. Conceito e Propriedades
Uma função hash criptográfica (ou message digest) mapeia uma entrada de tamanho arbitrário (um arquivo, uma senha) para uma saída de tamanho fixo (ex.: 256 bits). Diferentemente da criptografia, o hashing não é reversível (não é possível obter a entrada a partir do hash). As propriedades essenciais são:
Determinismo: A mesma entrada produz sempre o mesmo hash.
Resistência a colisões: É computacionalmente inviável encontrar duas entradas diferentes que produzam o mesmo hash.
Resistência a pré-imagem (one-way): Dado um hash, é inviável encontrar uma entrada que o gere.
Efeito avalanche: Uma pequena mudança na entrada (um bit) altera cerca de metade dos bits do hash.
4.2. Usos Comuns
Armazenamento de senhas: Armazena-se o hash da senha (com salt) em vez da senha em texto claro.
Verificação de integridade: O hash de um arquivo (checksum) pode ser comparado após o download para detectar corrupção ou adulteração.
Assinaturas digitais: O hash da mensagem é assinado (em vez da mensagem inteira, que seria muito grande).
Estruturas de dados: Tabelas hash, árvores Merkle (blockchain).
4.3. Principais Algoritmos de Hash
| Algoritmo | Tamanho da saída (bits) | Status |
|-----------|-------------------------|--------|
| MD5 | 128 | Quebrado (colisões práticas desde 2004). Não usar para segurança. |
| SHA-1 | 160 | Quebrado (colisões demonstráveis desde 2017, ataque SHAttered). Descontinuado. |
| SHA-256 | 256 | Seguro, padrão atual (família SHA-2). Usado em TLS, blockchain, certificados. |
| SHA-512 | 512 | Seguro, mais lento em plataformas de 32 bits, mas recomendado para alta segurança. |
| SHA-3 | 224, 256, 384, 512 | Padrão mais recente (baseado em Keccak). Alternativa ao SHA-2. |
| bcrypt, Argon2 | variável | Específicos para hashing de senhas (intencionalmente lentos e com parâmetros de custo). |
Assinaturas Digitais
Uma assinatura digital é um mecanismo que permite ao receptor verificar a autenticidade e a integridade de uma mensagem, bem como o não repúdio (o autor não pode negar tê-la enviado). O processo típico com criptografia assimétrica:
O autor calcula o hash da mensagem ().
O autor cifra o hash com sua chave privada (ou aplica algoritmo de assinatura como RSA-PSS ou ECDSA), gerando a assinatura .
O autor envia a mensagem e a assinatura para o receptor.
O receptor calcula o hash da mensagem recebida ().
O receptor usa a chave pública do autor para decifrar a assinatura e obter o hash original .
Se , a mensagem é autêntica e íntegra; caso contrário, houve alteração ou a assinatura é inválida.
Importante: Assinaturas digitais fornecem autenticação (certeza da origem), integridade (a mensagem não foi modificada) e não repúdio (o autor não pode negar, pois só ele tem a chave privada). Elas não garantem confidencialidade (a mensagem ainda está em texto claro). Para confidencialidade, combina-se criptografia assimétrica (para a chave de sessão) com simétrica (para o conteúdo).
Certificados Digitais e Infraestrutura de Chave Pública (PKI)
6.1. O Problema da Autenticidade da Chave Pública
Como Alice pode ter certeza de que a chave pública que ela recebeu (supostamente de Bob) realmente pertence a Bob e não a um atacante (man-in-the-middle)? A solução é o certificado digital.
6.2. Certificado Digital (padrão X.509)
Um certificado digital é um documento eletrônico que associa uma chave pública a uma identidade (pessoa, organização, servidor). O certificado é assinado por uma Autoridade Certificadora (CA – Certification Authority) confiável. O certificado contém:
Nome do titular (Common Name – CN, ex.: ).
Chave pública do titular.
Nome da CA que emitiu.
Período de validade (data de início e fim).
Número de série.
Assinatura digital da CA (sobre o conteúdo do certificado).
(Opcional) Atributos como organização, localidade, país.
6.3. Hierarquia de Autoridades Certificadoras
CA raiz (Root CA): Certificado autoassinado (a própria CA assina seu certificado). As CA raiz são pré-instaladas nos navegadores e sistemas operacionais como confiáveis.
CAs intermediárias: Emitidas pela CA raiz, usadas para emitir certificados de servidores. Permitem revogação sem necessidade de retirar a raiz.
Certificados de servidor (SSL/TLS): Emitidos para domínios específicos.
6.4. Validação de Certificados
Quando o navegador acessa um site HTTPS, ele:
Obtém o certificado do servidor.
Verifica se o nome do domínio corresponde ao CN ou SAN (Subject Alternative Name) do certificado.
Verifica se o certificado está dentro do período de validade.
Verifica se o certificado foi emitido por uma CA confiável (caminho de certificação até uma raiz confiável).
Verifica se o certificado não foi revogado (via CRL – Certificate Revocation List ou OCSP – Online Certificate Status Protocol).
Se todas as verificações passarem, a chave pública do certificado é usada para estabelecer o TLS.
6.5. Tipos de Validação de Certificados SSL/TLS
| Tipo | Validação | Exibição no navegador | Uso típico |
|------|-----------|------------------------|-------------|
| DV (Domain Validation) | Apenas prova de controle do domínio (e-mail ou DNS) | Cadeado | Sites pessoais, blogs |
| OV (Organization Validation) | Validação da organização (nome, endereço, telefone) | Cadeado + nome da organização (ao clicar) | Empresas, e-commerce |
| EV (Extended Validation) | Validação rigorosa da organização jurídica e física | Barra de endereço verde (antigamente) ou nome da organização destacado | Bancos, instituições financeiras (menos comum hoje) |
Criptografia em Aplicações Práticas
7.1. HTTPS (TLS/SSL)
O HTTPS utiliza criptografia híbrida:
Fase de handshake (assimétrica): Cliente e servidor negociam parâmetros, autenticam o servidor (certificado) e trocam um segredo pré-mestre usando criptografia assimétrica (RSA ou ECDHE).
Fase de sessão (simétrica): A partir do segredo pré-mestre, derivam-se chaves simétricas para cifrar todos os dados da sessão com AES-GCM ou ChaCha20-Poly1305.
O ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) fornece forward secrecy: mesmo que a chave privada do servidor seja comprometida no futuro, as sessões passadas não podem ser decifradas, pois as chaves efêmeras são descartadas.
7.2. E-mail Criptografado (S/MIME, PGP)
S/MIME (Secure/Multipurpose Internet Mail Extensions): Baseado em certificados X.509. Criptografa e assina e-mails. Amplamente suportado por clientes como Outlook, Apple Mail.
PGP (Pretty Good Privacy) e GPG (GNU Privacy Guard): Usa modelo de "rede de confiança" (web of trust) em vez de CA centralizada. O usuário gera seu par de chaves e distribui sua chave pública.
7.3. VPNs
IPsec: Usa criptografia assimétrica para autenticação (IKE) e simétrica (AES) para dados em túnel.
OpenVPN: Combina TLS para handshake (certificados) e AES para dados.
WireGuard: Usa criptografia assimétrica com Curva25519 e simétrica com ChaCha20-Poly1305.
7.4. Armazenamento de Senhas (Hashing + Salt)
Sistemas não armazenam senhas em texto claro. O processo seguro:
Para cada usuário, gera-se um salt aleatório (16-32 bytes).
Calcula-se o hash da senha concatenada com o salt usando uma função lenta (bcrypt, Argon2, PBKDF2).
Armazena-se o salt e o hash no banco de dados.
Na autenticação, o sistema recupera o salt, calcula o hash da senha fornecida com o mesmo salt e compara com o hash armazenado.
O salt previne o uso de rainbow tables. A lentidão da função dificulta ataques de força bruta offline.
7.5. Criptografia de Disco (BitLocker, LUKS, FileVault)
BitLocker (Windows): Criptografia completa do volume usando AES-128 ou AES-256. A chave de criptografia (FVEK) é protegida por TPM (Trusted Platform Module) ou senha.
LUKS (Linux): Padrão para criptografia de partições. Suporta múltiplas senhas/chaves.
FileVault (macOS): Criptografia de disco completa com XTS-AES-128.
Ameaças e Limitações da Criptografia
| Ameaça | Descrição | Mitigação |
|--------|-----------|------------|
| Ataque de força bruta | Tentar todas as chaves possíveis | Chaves suficientemente longas (AES-128: 2^128 combinações) |
| Ataque de canal lateral | Explorar vazamentos físicos (tempo, consumo de energia, ruído) | Implementações constant-time, blindagem eletromagnética |
| Criptoanálise matemática | Explorar fraquezas no algoritmo (ex.: fatoração do RSA) | Algoritmos revisados por pares e com parâmetros adequados |
| Computação quântica | Algoritmo de Shor quebra RSA/ECC; Grover acelera busca de chaves simétricas | Criptografia pós-quântica (lattice-based, hash-based) em desenvolvimento |
| Chave fraca ou mal gerenciada | Uso de chaves previsíveis ou expostas | Geração aleatória de chaves, HSM, segregação de privilégios |
Quadro Comparativo: Criptografia Simétrica vs. Assimétrica
| Característica | Simétrica | Assimétrica |
|----------------|-----------|-------------|
| Número de chaves | 1 (secreta) | 2 (pública e privada) |
| Velocidade | Muito alta | Baixa |
| Tamanho da chave (segurança equivalente) | 128 bits | 3072 bits (RSA) / 256 bits (ECC) |
| Distribuição de chaves | Problema central | Resolvido (chave pública é pública) |
| Confidencialidade | Sim | Sim (cifrando com chave pública) |
| Autenticação / Não repúdio | Não (a menos que haja MAC) | Sim (assinatura digital) |
| Exemplo | AES, ChaCha20 | RSA, ECC, ECDSA |
Quadro Comparativo: Hash vs. Criptografia Simétrica
| Característica | Hash | Criptografia Simétrica |
|----------------|------|------------------------|
| Reversibilidade | Não (unidirecional) | Sim (requer chave) |
| Chave | Não | Sim (chave secreta) |
| Tamanho da saída | Fixo (ex.: 256 bits) | Igual ao tamanho da entrada (após padding) |
| Uso principal | Integridade, armazenamento de senhas | Confidencialidade |
| Exemplo | SHA-256 | AES-256 |
Considerações Finais
A criptografia é uma ferramenta indispensável para a segurança digital, mas deve ser aplicada corretamente. Para concursos e vestibulares, o candidato deve:
Saber diferenciar criptografia simétrica, assimétrica e hashing, com exemplos de algoritmos (AES, RSA, SHA).
Compreender o funcionamento das assinaturas digitais e dos certificados X.509 (PKI).
Entender a aplicação prática em HTTPS (TLS), e-mail seguro, armazenamento de senhas e criptografia de disco.
Conhecer as limitações (ataques de força bruta, canal lateral, computação quântica) e as boas práticas (chaves longas, uso de salt, forward secrecy).
Questões de prova frequentemente apresentam cenários (“qual algoritmo é adequado para cifrar grandes volumes de dados?” → simétrico; “qual método permite não repúdio?” → assinatura digital com chave privada; “qual função é usada para armazenar senhas?” → hash com salt). O estudo deve associar cada conceito às suas aplicações reais.
Exercícios:
Considere o envio seguro de uma mensagem. Qual alternativa diferencia corretamente criptografia simétrica da assimétrica?
Complete a frase: O algoritmo de criptografia simétrica _____, é atualmente o padrão global adotado para proteger dados sensíveis e comunicações Wi-Fi, sendo considerado seguro devido à robustez matemática e ao suporte a chaves de até 256 bits.
Complete a frase: Na infraestrutura de chaves públicas, o processo de assinatura digital garante a autenticidade e o não repúdio ao exigir que o autor cifre o resumo da mensagem (hash) utilizando sua própria _____.
Complete a frase: Uma função de hashing criptográfico ideal deve possuir a propriedade de _____, o que significa que deve ser computacionalmente inviável encontrar duas entradas diferentes que produzam exatamente o mesmo valor de saída.
Complete a frase: O certificado digital padrão _____, é o documento eletrônico que vincula de forma confiável uma identidade a uma chave pública, sendo validado e assinado digitalmente por uma Autoridade Certificadora.
Complete a frase: O protocolo HTTPS utiliza um modelo híbrido: a criptografia assimétrica é empregada na fase de negociação (handshake) para trocar uma chave temporária, que será então usada pela criptografia _____ para cifrar os dados reais da sessão.
Complete a frase: Para evitar ataques de dicionário e o uso de tabelas pré-computadas (rainbow tables) no armazenamento de senhas, os sistemas adicionam um valor aleatório único chamado _____ antes de realizar o cálculo do hash.
Complete a frase: Diferente da cifração simétrica, que utiliza um único segredo compartilhado, a criptografia assimétrica utiliza um par de chaves matematicamente relacionadas, sendo que a chave _____ pode ser distribuída abertamente.
Complete a frase: O algoritmo assimétrico _____, baseia-se na dificuldade matemática de fatorar números inteiros extremamente grandes, sendo o pilar de muitos sistemas de assinatura digital e certificados SSL atuais.
Complete a frase: O pilar da segurança da informação que garante que um autor não possa negar a autoria de uma mensagem enviada eletronicamente, visto que a mesma foi assinada com uma chave privada exclusiva, é o _____.
Complete a frase: No contexto de modos de operação de algoritmos de bloco, o modo _____ é considerado inseguro para a maioria das aplicações, pois blocos de texto claro idênticos produzem blocos de texto cifrado idênticos.
No contexto da Segurança da Informação, qual é a principal função da criptografia?