Em razão de algoritmos de chave pública, como RSA-OAEP, serem menos eficientes do que suas contrapartes simétricas, eles não são comumente usados para criptografar dados diretamente. No entanto, desempenham um papel importante no ecossistema criptográfico ao fornecer um meio para trocas de chaves.
Para usar a encriptação simétrica, as partes devem compartilhar uma chave. Embora essa chave possa ser enviada por um canal criptografado existente, não haveria necessidade de uma nova chave se já tivéssemos um canal seguro. Em vez disso, resolvemos o problema de trocas de chaves usando criptografia de chave pública.
Aqui estão dois métodos comuns para a troca de chaves simétricas.
Encriptação assimétrica. Uma das partes gera uma chave simétrica e, em seguida, criptografa a chave usando um algoritmo, como o RSA-OAEP, para a chave pública da outra parte. O destinatário pode decodificar o texto cifrado usando a chave privada para recuperar a chave simétrica.
Troca de chaves de Diffie-Hellman (DH). O Diffie-Hellman é um tipo diferente de algoritmo criptográfico de chave pública. Ele foi projetado especificamente para ajudar as partes a concordar com uma chave simétrica na ausência de um canal seguro. O Diffie-Hellman é baseado em um problema matemático diferente quando comparado à função RSA e é menos flexível. No entanto, possui construções mais eficientes, o que o torna preferível em alguns casos de uso.
Essa combinação de criptografia de chave pública para trocas de chaves e criptografia simétrica para criptografia de dados em massa é conhecida como encriptação híbrida.
A encriptação híbrida usa as propriedades exclusivas da criptografia de chave pública para trocar informações secretas em um canal não confiável com a eficiência da encriptação simétrica. Isso garante uma solução prática completa para privacidade de dados.
A encriptação híbrida é usada extensivamente em protocolos de transferência de dados para a Web, como no Transport Layer Security (TLS). Quando você se conecta a um site que usa HTTPS (HTTP seguro com TLS), o navegador negociará os algoritmos criptográficos que protegem sua conexão. Isso inclui algoritmos para trocas de chaves, encriptação simétrica e assinaturas digitais.