Informática

Criptografia: chave simétrica, assimétrica e assinatura digital

Criptografia é a técnica de transformar uma informação legível em um conteúdo embaralhado, que só quem possui a chave correta consegue reverter. É a base da confidencialidade, da integridade e da autenticidade nas comunicações digitais, e a diferença entre chave simétrica e assimétrica é um dos pontos mais cobrados.

Vocabulário essencial

  • Texto claro: a mensagem original, legível.
  • Cifrar: transformar o texto claro em texto cifrado.
  • Decifrar: voltar do texto cifrado ao texto claro, usando a chave correta.
  • Chave: informação secreta (ou parcialmente pública) que controla a cifragem.
  • Algoritmo: a receita matemática que realiza a transformação.

Princípio importante: a segurança deve depender do sigilo da chave, e não de manter o algoritmo secreto. Algoritmos bem conhecidos e testados publicamente são mais confiáveis.

Uma ideia simples: a cifra de César

A cifra de César desloca cada letra um número fixo de posições no alfabeto. Com deslocamento 3, A vira D, B vira E, e assim por diante.

Exemplo. Cifre a palavra CASA com deslocamento 3.

  1. C desloca 3 posições e vira F.
  2. A vira D.
  3. S vira V.
  4. A vira D.
  5. Resultado: FDVD.

Para decifrar, desloca-se 3 posições no sentido contrário. Note que a mesma chave (o número 3) serve para cifrar e para decifrar. É o princípio da criptografia simétrica, ainda que a cifra de César seja trivial de quebrar e sirva só como ilustração.

Criptografia simétrica

Usa uma única chave, compartilhada entre quem cifra e quem decifra.

  • Vantagem: é rápida e adequada para grandes volumes de dados.
  • Desvantagem: como distribuir a chave com segurança? Se alguém a interceptar, todo o sigilo se perde.
  • Escala de chaves: para que n pessoas se comuniquem em pares com chaves exclusivas, são necessárias n × (n − 1) ÷ 2 chaves. Para 5 pessoas: 5 × 4 ÷ 2 = 10 chaves. Para 10 pessoas: 10 × 9 ÷ 2 = 45.
  • Exemplos de algoritmos: DES (antigo), 3DES e AES (muito usado).

Criptografia assimétrica

Usa um par de chaves matematicamente relacionadas: uma pública, que pode ser divulgada, e uma privada, mantida em segredo pelo titular. O que uma chave cifra, só a outra decifra.

  • Vantagem: resolve o problema da distribuição de chaves, pois a chave pública pode circular livremente.
  • Desvantagem: é mais lenta que a simétrica.
  • Exemplo de algoritmo: RSA.

Dois usos, duas direções

Objetivo Quem cifra Com qual chave Quem decifra
Confidencialidade Remetente Chave pública do destinatário Destinatário, com a sua chave privada
Autenticidade e não repúdio Remetente Sua própria chave privada Qualquer pessoa, com a chave pública do remetente

Guarde a regra: para sigilo, cifra-se com a pública do destinatário; para assinar, usa-se a privada do autor.

Função hash

Um hash (resumo) é um valor de tamanho fixo calculado a partir de uma mensagem. Suas características:

  • Unidirecional: não se recupera a mensagem original a partir do hash.
  • Determinístico: a mesma entrada sempre gera o mesmo hash.
  • Sensível: qualquer alteração mínima na mensagem muda o hash por completo.

Por isso, o hash serve para verificar integridade. Se o hash de um arquivo recebido for igual ao divulgado pela origem, o arquivo não foi alterado. Exemplos de algoritmos: MD5 (considerado fraco para segurança) e a família SHA. Hash não é criptografia no sentido de cifrar e decifrar, pois não há volta.

Assinatura digital

A assinatura digital garante autenticidade, integridade e não repúdio. Funcionamento resumido:

  1. O remetente calcula o hash da mensagem.
  2. Cifra esse hash com a sua chave privada: esse é o conteúdo da assinatura.
  3. Envia a mensagem junto com a assinatura.
  4. O destinatário decifra a assinatura com a chave pública do remetente e obtém o hash enviado.
  5. Calcula ele mesmo o hash da mensagem recebida e compara os dois.

Se forem iguais, a mensagem é íntegra e foi mesmo assinada por quem possui a chave privada. Atenção: a assinatura digital, por si só, não deixa a mensagem confidencial. Para sigilo, é preciso cifrar também.

Certificado digital

Como saber que uma chave pública pertence realmente a determinada pessoa ou site? O certificado digital é um documento eletrônico que vincula uma chave pública a uma identidade, assinado por uma autoridade certificadora (AC) confiável. Ele contém, entre outros dados, o titular, a chave pública, o prazo de validade e a assinatura da AC. Se a AC é confiável, o certificado é confiável.

Uso combinado: o modelo híbrido

Como a assimétrica é lenta e a simétrica tem o problema da troca de chaves, protocolos como o HTTPS combinam as duas: usam a criptografia assimétrica para combinar com segurança uma chave de sessão e, depois, usam essa chave simétrica para proteger o restante da conversa, que é mais rápido.

Exercício resolvido

Pergunta: Ana quer enviar uma mensagem sigilosa a Bruno, de modo que só ele consiga lê-la. Qual chave Ana deve usar para cifrar?

Resolução: o sigilo exige que apenas Bruno decifre. Logo, Ana cifra com a chave pública de Bruno, e só a chave privada dele decifra.

Segunda pergunta: Ana também quer que Bruno tenha certeza de que a mensagem veio dela. O que ela deve acrescentar?

Resolução: sua assinatura digital, produzida com a chave privada de Ana; Bruno verifica com a pública dela.

Erros comuns

  • Trocar as chaves: cifrar com a privada do destinatário (ninguém além dele a possui).
  • Dizer que a assinatura digital garante sigilo.
  • Achar que o hash pode ser revertido.
  • Confundir a quantidade de chaves entre simétrica e assimétrica.
  • Esquecer que o certificado digital depende da confiança na autoridade certificadora.

Próximos passos

Leia também

Para continuar no site

Viu algo errado, desatualizado ou confuso? Relatar erro nesta página