Criptografia de chave pública

Um número imprevisível (tipicamente grande e aleatório) é usado para começar a geração de um par de chaves adequado para uso por um algoritmo de chave assimétrica.
Em um esquema de encriptação de chave assimétrica, qualquer um pode encriptar mensagens usando a chave pública, mas apenas o detentor da chave privada pareada pode decriptar. Segurança depende do sigilo da chave privada.
No esquema de troca de chaves Diffie-Hellman, cada parte gera um par de chaves pública/privada e distribui a chave pública. Depois de obter uma cópia autenticada de cada chave pública dos outros, Alice e Bob podem computar um segredo compartilhado offline. O segredo compartilhado pode ser usado, por exemplo, como a chave para uma cifra simétrica.

Criptografia de chave pública, também conhecida como criptografia assimétrica, é qualquer sistema criptográfico que usa pares de chaves: chaves públicas, que podem ser amplamente disseminadas, e chaves privadas que são conhecidas apenas pelo proprietário. Isto realiza duas funções: autenticação, onde a chave pública verifica que um portador da chave privada parelhada enviou a mensagem, e encriptação, onde apenas o portador da chave privada parelhada pode decriptar a mensagem encriptada com a chave pública.

O termo assimétrica vem deste uso de diferentes chaves para realizar essas funções opostas, cada uma a inversa da outra – como contrapartida da criptografia ("simétrica") convencional, a qual depende da mesma chave para realizar ambos.

Em um sistema de criptografia de chave pública, qualquer pessoa pode criptografar uma mensagem usando a chave pública do destinatário. Essa mensagem criptografada só pode ser descriptografada com a chave privada do destinatário. Para ser prática, a geração de uma chave pública e privada deve ser computacionalmente econômica. A força de um sistema de criptografia de chave pública depende do esforço computacional (fator de trabalho em criptografia) necessário para encontrar a chave privada de sua chave pública emparelhada. Segurança efetiva requer apenas manter a chave privada. A chave pública pode ser distribuída abertamente sem comprometer a segurança.[1]

Algoritmos de chave pública são baseados em problemas matemáticos que atualmente não admitem solução eficiente e são inerentes em determinados relacionamentos de fatoração inteira, logaritmo discreto, e curva elíptica. É computacionalmente fácil para um usuário gerar um par de chaves, uma pública e uma privada, e usá-lo para encriptação e decriptação. A força está na "impossibilidade" (computacionalmente impraticável) para uma chave privada gerada apropriadamente ser determinada pela sua chave pública correspondente. Assim, a chave pública pode ser publicada sem comprometer a segurança. Segurança depende apenas de manter secreta a chave privada, isto é, a chave privada nunca deve ser descoberta. Algoritmos de chave pública, diferente de algoritmos de chave simétrica, não exigem um canal seguro para a troca inicial de uma (ou mais) chave secreta entre as partes.

Por causa da complexidade computacional da encriptação assimétrica, ela é tipicamente usada apenas para transferir uma chave de encriptação simétrica pela qual a mensagem (e normalmente a conversa inteira) é encriptada. A encriptação/decriptação simétrica é baseada em algoritmos mais simples e muito mais rápidos.

Autenticação de mensagens envolve aplicar hash à mensagem para produzir um "resumo", e encriptar o resumo com a chave privada para produzir uma assinatura digital. Dessa forma qualquer um pode verificar essa assinatura (1) computando o hash da mensagem, (2) decriptando a assinatura com a chave pública do signatário, e (3) comparando o resumo computado com o resumo decriptado. A igualdade entre os resumos confirma que a mensagem não foi modificada já que ela foi assinada, e que o assinante, e ninguém mais, intencionalmente realizou a operação de assinatura — presumindo que a chave privada do assinante se manteve secreta para o assinante.

A descrição acima depende de um algoritmo de hash de tamanha qualidade tal que ele seja computacionalmente impossível de alterar ou encontrar uma mensagem substituta que produza o mesmo resumo. Porém estudos mostram que até com os algoritmos MD5 e SHA-1, produzir uma mensagem alterada ou substituta não é impossível.[2] O padrão atual de hash para encriptação é SHA-2. A própria mensagem pode ser usada no lugar do resumo.

Algoritmos de chave pública são ingredientes de segurança fundamentais em criptosistemas, aplicações e protocolos. Eles dão sustentação a vários padrões da Internet, tais quais Segurança da Camada de Transporte (SCT), S/MIME, PBB, e GPG. Alguns algoritmos de chave pública fornecem distribuição de chave e sigilo (e.g., Troca de chaves de Diffie–Hellman), outros fornecem assinaturas digitais (e.g., Algoritmo de Assinatura Digital), e alguns fornecem ambos (e.g., RSA).

Criptografia de chave pública encontra aplicações na disciplina de segurança de TI segurança da informação, entre outras. Segurança da informação (SI) lida com todos os aspectos de proteção da informação eletrônica ativa contra ameaças de segurança.[3] Criptografia de chave pública é usada como um método de garantir a confidencialidade, autenticidade e o não-repúdio de comunicações eletrônicas e de armazenamento de dados.

Entendendo

Criptografia de chave pública é frequentemente usada para garantir a segurança da comunicação eletrônica sobre um ambiente interconectado aberto tal como a internet, sem depender de um canal encoberto até para uma troca de chaves. Ambientes interconectados abertos são suscetíveis a uma variedade de problemas de segurança de comunicação tais quais ataque do homem-no-meio e outras ameaças à segurança. Propriedades de segurança necessárias para comunicação tipicamente incluem que a comunicação que está sendo enviada não deva ser legível durante a transição (preservando confidencialidade), a comunicação não deve ser modificada durante a transição (preservando a integridade da comunicação), a comunicação deve ser originada por uma parte identificada (autenticidade do remetente) e para assegurar o não-repúdio (a não negação de envio da mensagem). Combinar criptografia de chave pública com um método de Encriptação de Chave Pública Envelopada (ECPE),[4] permite o envio seguro de uma comunicação sobre um ambiente interconectado aberto.

A técnica especial usada na criptografia de chave pública é o uso de algoritmos de chave assimétrica, nos quais a chave usada por uma das partes para realizar a encriptação ou a decriptação não é a mesma chave usada por outra parte em alguma operação. Cada usuário tem um par de chaves criptográficas – uma chave de encriptação pública e uma chave de decriptação privada. Por exemplo, um par de chaves usado para assinaturas digitais consiste em uma chave de assinatura privada e uma chave de verificação pública. A chave pública deve ser distribuída em larga escala, enquanto que a chave privada deveria ser conhecida somente pelo seu proprietário. As chaves são relacionadas matematicamente, mas os parâmetros são escolhidos de forma que seja inviável o cálculo da chave privada a partir da pública.

Em contraste, algoritmos de chave simétrica – variações dos quais tem sido usados por milhares de anos – usam apenas uma chave secreta, a qual deve ser compartilhada e mantida privada por ambos o remetente e o destinatário, por exemplo, em ambas encriptação e decriptação. Para usar um esquema de encriptação simétrico, o remetente e o destinatário devem, antecipadamente, compartilhar a chave de forma segura.

Como algoritmos de chave simétrica são quase sempre muito menos computacionalmente intensivos que os assimétricos, é comum trocar a chave usando um algoritmo de troca de chave, então transmitir dados usando uma chave e um algoritmo de chave simétrica. Privacidade Muito Boa (em inglês PGP) e a família SSL/TLS de esquemas usam esse procedimento, e são então chamados criptosistemas híbridos.