Específicos · Segurança da Informação
Criptografia: simétrica × assimétrica × híbrida; hash (SHA-256, salt); HMAC
Antes de julgar qualquer item, pergunte qual chave foi usada e de quem ela é — pública do destinatário dá sigilo, privada do remetente dá autenticidade, e hash, que não usa chave nenhuma, dá…
Alta107 itens no tópico
A ideia que organiza o assunto
Criptografia não é um assunto de algoritmos. É um assunto de garantias, e são três: sigilo (ninguém mais lê), integridade (ninguém alterou) e autenticidade (veio de quem diz que veio). Cada ferramenta entrega uma dessas garantias, e nenhuma entrega todas.
O que decide quase todo item deste tópico é uma única pergunta: qual chave foi usada e de quem ela é?
- Cifrou com a chave pública do destinatário → só ele decifra, com a privada dele → confidencialidade.
- Cifrou com a própria chave privada → qualquer um decifra com a pública dele, e o fato de ter funcionado prova quem cifrou → autenticidade, assinatura, não repúdio.
- Nenhuma chave, só um resumo de tamanho fixo → integridade.
- Uma chave só, compartilhada → confidencialidade rápida, e autenticidade apenas entre as duas partes que já dividem o segredo.
Essas quatro linhas resolvem a maioria dos itens sem que você precise saber nada sobre o algoritmo citado. A banca vive trocando o sentido da seta: pública para assinar, privada para dar sigilo, hash para garantir confidencialidade. Leia o item procurando a seta antes de procurar o resto.
Por que se usa (e o que custa)
A criptografia simétrica é rápida — ordens de grandeza mais rápida que a assimétrica —, e por isso é ela que cifra o volume: o arquivo, o disco, o túnel TLS já estabelecido. O preço é o problema da distribuição de chaves: as duas pontas precisam combinar o segredo antes, por um canal que ainda não é seguro; e o número de chaves explode com o número de participantes — n pessoas exigem n(n−1)/2 chaves.
A criptografia assimétrica resolve exatamente isso: cada um publica a própria chave pública, e não é preciso canal seguro nenhum para começar a conversa. Paga-se em desempenho — cifrar um arquivo grande com RSA é inviável — e em confiança: uma chave pública só vale alguma coisa se você souber de quem ela é, o que traz o certificado digital e a autoridade certificadora para dentro do problema.
Daí a solução que a prova chama de correta em quase todo item de cenário: o esquema híbrido. A assimétrica transporta a chave de sessão; a simétrica cifra os dados; o hash e a assinatura cuidam de integridade e autenticidade. TLS, PGP e S/MIME fazem os três.
Como funciona
Simétrica. Uma chave, usada nos dois sentidos, conhecida por remetente e destinatário. Divide-se em duas famílias. A cifra de bloco processa blocos de tamanho fixo — e fixo pelo algoritmo, não pela chave: o AES tem bloco de 128 bits, use-se chave de 128, 192 ou 256. A cifra de fluxo cifra bit a bit ou byte a byte, tipicamente gerando um fluxo pseudoaleatório e aplicando XOR sobre o texto claro; o RC4, com chave de tamanho variável e usado no WEP e no SSL/TLS antigo, é o exemplo que a banca cita.
Modos de operação. Uma cifra de bloco sozinha só sabe cifrar um bloco; o modo diz como encadear os demais. O ECB cifra cada bloco isoladamente com a mesma chave — e é justamente por isso que blocos de texto claro iguais produzem criptogramas iguais, expondo padrões. Ele não é recomendado. CBC, CTR e GCM encadeiam ou usam contador/vetor de inicialização para que isso não aconteça.
Assimétrica. Um par matematicamente ligado: a chave pública deriva do mesmo processo de geração da privada e pode ser distribuída livremente, porque o caminho de volta — deduzir a privada a partir da pública — é computacionalmente inviável. O RSA apoia-se na dificuldade de fatorar o produto de dois números primos grandes; a curva elíptica (ECC), na dificuldade do logaritmo discreto sobre curvas elípticas em corpos finitos, o que lhe permite segurança equivalente com chaves muito menores. Ambos são de chave pública, e nenhum é simétrico.
Hash. Entrada de tamanho qualquer, saída de tamanho fixo, sem chave, de mão única. Duas propriedades importam: resistência à pré-imagem (dado o resumo, não se recupera a entrada) e resistência a colisão (não se acham duas entradas com o mesmo resumo). Colisões existem sempre — a saída é finita e a entrada não —, o que uma função boa oferece é que achá-las seja inviável. O efeito avalanche garante que trocar uma vírgula muda o resumo inteiro, e é disso que vive a verificação de integridade. Para senhas, acrescenta-se salt, um valor aleatório por senha, que derrota tabelas pré-computadas.
Assinatura digital é a costura das três coisas: calcula-se o hash da mensagem e cifra-se esse resumo com a chave privada do assinante. Quem recebe decifra com a pública, recalcula o hash e compara. Integridade vem do hash; autenticidade e não repúdio, da chave privada. Cifrar um arquivo com algoritmo assimétrico não produz assinatura — são operações diferentes, com chaves diferentes.
O que decide os itens
Qual chave, qual garantia — a tabela que resolve mais itens que todas as outras somadas:
| operação | chave usada | garante |
|---|---|---|
| cifrar para alguém | pública do destinatário | confidencialidade |
| decifrar o que recebeu | privada do destinatário | — |
| assinar | privada do remetente | autenticidade, integridade, não repúdio |
| verificar assinatura | pública do remetente | — |
| resumir | nenhuma | integridade |
Simétrica × assimétrica:
| simétrica | assimétrica | |
|---|---|---|
| chaves | uma, compartilhada | par: pública + privada |
| velocidade | rápida | lenta |
| distribuição de chave | exige canal seguro prévio | dispensa canal seguro |
| chaves para n partes | n(n−1)/2 | 2n |
| não repúdio | não | sim |
| exemplos | DES, 3DES, AES, IDEA, Blowfish, RC4 | RSA, ECC, Diffie-Hellman, ElGamal, DSA |
Hash não é criptografia de chave. MD5, SHA-1, SHA-2 e SHA-3 não são nem simétricos nem assimétricos: não têm chave. Item que classifica SHA como simétrico ou assimétrico está errado por isso, antes de qualquer outra coisa.
Bloco × fluxo — bloco processa blocos de tamanho fixo (AES, DES, 3DES, IDEA, Blowfish); fluxo processa bit a bit ou byte a byte, quase sempre por XOR (RC4, ChaCha20).
Tamanho de bloco × tamanho de chave — são independentes. O bloco do AES é sempre 128 bits; 128, 192 e 256 são tamanhos de chave. Trocar um pelo outro é a armadilha mais frequente do tópico.
Integridade × confidencialidade × autenticidade — hash dá integridade e não dá sigilo; cifra dá sigilo e não prova origem; assinatura dá origem e não esconde nada. Item que promete sigilo por hash, ou integridade por cifrar com a pública, está errado.
O tamanho da chave nunca é irrelevante — nem na simétrica nem na assimétrica. Ele define o espaço de busca da força bruta.
Algoritmos não interoperam. Texto cifrado com AES não se decifra com RC4, nem com a mesma chave. Cada algoritmo é um par cifra/decifra fechado.
Números que caem
| DES: chave · bloco · rodadas | 56 bits (64 com paridade) · 64 bits · 16 |
| 3DES: chaves · operação | 168 bits (3 chaves) ou 112 (2 chaves) · cifra–decifra–cifra (E-D-E) |
| AES: bloco · chaves · rodadas | 128 bits fixo · 128 / 192 / 256 · 10, 12 e 14 |
| IDEA · Blowfish | bloco 64, chave 128 · bloco 64, chave de 32 a 448 bits |
| RC4 | cifra de fluxo, chave de tamanho variável |
| MD5 | resumo de 128 bits, bloco de 512 |
| SHA-1 | resumo de 160 bits, bloco de 512 |
| SHA-256 · SHA-512 | 256 bits (bloco 512) · 512 bits (bloco 1.024) |
| SHA-3 | mesmas saídas do SHA-2 (224/256/384/512), construção em esponja (Keccak) |
| RSA: tamanhos usuais | 1.024, 2.048, 4.096 bits — hoje o mínimo recomendado é 2.048 |
| ECC × RSA equivalentes | 256 × 3.072 bits |
| força bruta | chave de n bits → 2^n tentativas; +1 bit dobra o tempo médio |
| colisão (paradoxo do aniversário) | esperada em cerca de 2^(n/2) para resumo de n bits |
| chaves simétricas para n partes | n(n−1)/2 |
| WPA3-Enterprise, modo de 192 bits | exige SHA-384; as demais suítes admitem SHA-1 e SHA-256 |
Como a CEBRASPE derruba você aqui
Troca de termo — 38%, o formato dominante, e quase sempre trocando simétrico por assimétrico. “O RSA […] é um algoritmo simétrico.” “O DES […] é um algoritmo de chave pública.” A criptografia de curva elíptica como “um tipo de sistema criptográfico simétrico”. “RSA e ECC são os principais protocolos utilizados na criptografia simétrica.” Na simétrica, “é comum o uso de duas chaves distintas”. “Em algoritmo de criptografia simétrica, a mensagem cifrada com chave pública pode somente ser decifrada pela sua chave privada correspondente.” Em todos, o resto da frase está impecável e uma palavra está trocada. Classifique o algoritmo antes de ler o predicado: RSA, ECC, Diffie-Hellman e ElGamal de um lado; DES, 3DES, AES, IDEA, Blowfish e RC4 do outro; MD5, SHA e RIPEMD em lugar nenhum, porque não têm chave — e há um item que vive exatamente disso, ao chamar o SHA-3 de “algoritmo de verificação de integridade simétrico”.
A mesma troca aparece entre propriedades, e esse é o eixo que decide mais itens do que parece. O trio confidencialidade × integridade × autenticidade mapeado na ferramenta errada: cifrar com a chave pública para “preservar a integridade da informação”, quando a operação dá confidencialidade; “a confidencialidade é uma propriedade verificável por meio do hash de uma mensagem”, quando o resumo verifica integridade e não esconde nada; e a verificação de integridade “possibilitada pela criptografia assimétrica, que utiliza chave pública de 2.048 bits”, quando quem a possibilita é a função de resumo e a assimétrica apenas acrescenta autenticidade na assinatura. A regra que resolve os três: quem dá sigilo é a cifra, quem dá integridade é o hash, quem dá autenticidade e não repúdio é a chave privada do remetente sobre o resumo.
Relação causal inventada — 24%, o segundo formato mais frequente, e muito acima do que ele pesa em qualquer outro tópico do corpus. É também o mais fácil de deixar passar, porque o predicado soa técnico e quem entrega o item é o conector. “Por suportar três tamanhos de chaves distintas”, o AES seria assimétrico — o que classifica um algoritmo é o número de chaves e a relação entre elas, nunca quantos tamanhos ele admite. O MD5 seria boa escolha para integridade “já que ele é resistente a colisões e garante confidencialidade” — as duas justificativas são falsas, e nenhum hash garante sigilo. “O algoritmo SHA512 é inseguro” porque o ataque de repetição “permite a colisão dos primeiros 64 bits de saída” — replay nada tem a ver com colisão. Cifrar arquivos com algoritmo assimétrico em que “é garantida automaticamente a assinatura digital do arquivo” — cifrar e assinar são operações distintas, com chaves distintas. Para “máxima segurança”, a chave simétrica “deverá ser enviada junto com o pacote criptografado” — quem intercepta o pacote intercepta o segredo. E o bloco da cifra dimensionado “usando como referência o tamanho da chave empregada” — bloco e chave são parâmetros independentes. Leia o porque, o já que, o visto que, o a fim de que e o automaticamente com desconfiança, e pergunte se a causa citada produz mesmo aquele efeito.
Inversão — 18%: a seta ao contrário. “Os algoritmos de hash MD5 e SHA-1 apresentam, respectivamente, mensagem de resumo de 160 bits e de 128 bits” — os dois valores certos, na ordem trocada. “O WPA2 usa o algoritmo de criptografia SAE […] enquanto o WPA3 usa o algoritmo AES” — trocados. No 3DES, “a primeira e a segunda criptografam informações; a terceira é usada para descriptografar aquelas” — é cifra-decifra-cifra, e quem decifra é a segunda. O ECB que “oculta padrões de dados em textos idênticos, sendo recomendado para uso em protocolos criptográficos considerados seguros” — ele expõe esses padrões e por isso não é recomendado. E, três vezes, o tamanho da chave declarado “uma característica irrelevante”, “indiferentes para a segurança do algoritmo” ou simplesmente “irrelevante para a segurança do sistema”, ora na simétrica ora na assimétrica — é o parâmetro que define o custo do melhor ataque conhecido, e foi o que aposentou o DES. As palavras respectivamente, enquanto e diferentemente de são o aviso: nelas, confira o par inteiro, nunca uma metade de cada vez.
Atribuição errada — 8%. Ação real, elemento errado: o certificado SSL “emitido por um validador de criptografia” em vez da autoridade certificadora; o UDP que “implementa por padrão a criptografia 3DES”, quando ele não implementa criptografia alguma; o SPF que “permite que os proprietários de domínios assinem emails automaticamente”, papel que é do DKIM — o SPF apenas publica em DNS a lista de servidores autorizados; e a proteção de confidencialidade descrita como “a geração de pares de chaves, a partir dos quais se obtém a identidade dos arquivos com comprimento fixo”, que mistura par de chaves com resumo.
Número alterado — 6%. O AES “de tamanho de 64 bits, considerado inseguro” — o bloco é de 128; DES e AES processando “em blocos de kilobits (Kb)” — são 64 e 128 bits; e a chave pública para a qual “é suficiente utilizar apenas um número primo”, quando são dois primos grandes cujo produto é o que resiste à fatoração. O par bloco × chave é o que mais cai, e a tabela de números acima é a defesa inteira.
Escopo ampliado e absolutos — 4% e 2%. O AES permitindo “a troca segura de informações e chaves criptográficas” — informações sim, desde que a chave já esteja compartilhada; trocar a chave com segurança em canal inseguro é o problema que a assimétrica resolve. “3DES e SHA-1 são métodos criptográficos que utilizam chave assimétrica” — vale para o RSA e é esticado a um algoritmo simétrico e a uma função sem chave. E o único absoluto medido: algoritmos de hash que “eliminam sistematicamente a possibilidade de colisões” — colisões existem necessariamente, porque a entrada é ilimitada e a saída é fixa; o que os algoritmos modernos fazem é torná-las computacionalmente inviáveis de encontrar.
Erros clássicos
Confundir tamanho de bloco com tamanho de chave. O AES tem bloco de 128 bits, ponto. Os três números famosos — 128, 192, 256 — são de chave. Esse é o erro número um do tópico.
Achar que hash é criptografia reversível. Não é: não há chave e não há volta. Hash não cifra, não esconde e não garante sigilo. Garante que o conteúdo não mudou.
Achar que uma função de hash boa não tem colisão. Tem, necessariamente — entrada infinita, saída finita. O que ela oferece é que encontrar uma seja computacionalmente inviável.
Assinar com a chave pública. Assina-se com a privada; verifica-se com a pública. E o que se cifra ao assinar é o resumo, não a mensagem inteira.
Supor que cifrar equivale a assinar. Cifrar com a pública do destinatário dá sigilo e não diz nada sobre quem enviou. Assinatura é operação separada.
Achar que a simétrica resolve distribuição de chaves. É exatamente o que ela não resolve, e é a razão de a assimétrica existir.
Tratar a assimétrica como a opção rápida. É a lenta. Por isso o mundo real é híbrido: assimétrica para a chave, simétrica para os dados.
Confundir SPF com DKIM. Quem assina o email com criptografia de chave pública é o DKIM; o SPF apenas publica em DNS quais servidores podem enviar pelo domínio.
Esquecer o salt. Hash de senha sem salt é vulnerável a tabelas pré-computadas, e a prova trata isso como armazenamento criptográfico inseguro.
LidoPraticado