A criptografia assimétrica é um campo da criptografia onde existe uma distinção entre dados públicos e privados , ao contrário da criptografia simétrica onde a funcionalidade é alcançada através da posse de um segredo comum de dados entre os participantes.
A criptografia assimétrica pode ser ilustrada com o exemplo da criptografia de chave pública e privada , que é uma técnica de criptografia , ou seja, o objetivo é garantir a confidencialidade dos dados. O termo assimétrico se aplica ao fato de existirem duas chaves de criptografia (o usuário que deseja receber mensagens fabrica a si mesmo), como se o usuário usar uma primeira chave em um algoritmo denominado "criptografia", os dados tornam-se ininteligíveis para todos aqueles que não tem a segunda chave, que pode encontrar a mensagem inicial quando esta segunda chave é dada na entrada de um algoritmo denominado de “descriptografia”.
Por convenção, chamamos a chave de descriptografia de chave privada e a chave de criptografia de chave pública .
A chave escolhida como privada nunca é transmitida a ninguém, enquanto a chave escolhida como pública pode ser transferida sem restrições.
Este sistema permite duas coisas principais:
O conceito de criptografia de chave pública - outro nome para criptografia assimétrica - é geralmente atribuído a Whitfield Diffie e Martin Hellman, que o apresentou ao público na National Computer Conference em 1976 e publicou alguns meses depois em New Directions in Cryptography . O conceito, no entanto, foi descoberto de forma independente por outros pesquisadores na mesma época.
Diz-se que Ralph Merkle fez a mesma descoberta na mesma época, embora seus artigos só tenham sido publicados em 1978.
Em seu artigo de 1976, W. Diffie e M. Hellman não poderiam dar o exemplo de um sistema de chave pública, não tendo encontrado um. Não foi até 1978 para ter um exemplo dado por Ronald Rivest , Adi Shamir e Leonard Adleman , o RSA , uma abreviatura tirada dos três nomes de seus autores. Os três homens posteriormente fundaram a empresa RSA Security . O sistema Merkle-Hellman é amplamente considerado como a primeira realização prática de um sistema de criptografia de chave pública, no entanto, Shamir provou ser inseguro em 1982.
Além da pesquisa pública, os serviços de criptografia britânicos (GCHQ, Government Communications Headquarters ) teriam realizado uma pesquisa secreta levando a conceitos e ferramentas de criptografia assimétrica da primeira metade da década de 1970:
Essas descobertas não foram divulgadas pelo GCHQ até 1997 .
A criptografia assimétrica ou criptografia de chave pública é baseada na existência de funções unilaterais e quebra de segredo .
One-way funções são matemáticos funções tais que, quando aplicada a uma mensagem, é extremamente difícil encontrar a mensagem original.
A existência de uma violação secreta, entretanto, permite que a pessoa que projetou a função unilateral decodifique facilmente a mensagem graças a uma informação em sua posse, chamada de chave privada.
Suponha que Alice queira receber uma mensagem secreta de Bob em um canal que poderia ser ouvido por uma atacante passiva Eva :
A terminologia convencionalmente usada é:
Na prática, as funções convencionais de criptografia são usadas , os termos “chave pública” e “chave privada” então correspondendo aos parâmetros usados para essas funções.
Alice deseja poder receber mensagens criptografadas de qualquer pessoa.
Distribuição de chaves públicasEm seguida, ele gera um valor de uma função de violação de segredo unilateral usando um algoritmo de criptografia assimétrica ( lista aqui ), por exemplo, RSA .
Alice transmite a função para codificar mensagens para todos (denotada como chave pública), mas mantém a função de decodificação secreta (denotada como chave privada).
EncriptaçãoUma das funções da chave pública é fornecer criptografia ; Portanto, esta é a chave que Bob usará para enviar mensagens criptografadas para Alice. A outra chave - a informação secreta - é usada para quantificar os dados . Assim, Alice, e somente ela, pode ler as mensagens de Bob. O conhecimento de uma chave não nos permite deduzir a outra.
Autenticação de origemPor outro lado, o uso de Alice de sua chave privada no resumo de uma mensagem permitirá que Bob verifique se a mensagem realmente vem de Alice: ele aplicará a chave pública de Alice ao hash fornecido (hash criptografado com a chave privada de Alice) e, portanto, encontra o resumo da mensagem original. Será suficiente para ele comparar o resumo assim obtido e o resumo real da mensagem para saber se Alice é de fato o remetente. É assim que Bob terá a certeza da origem da mensagem recebida: ela realmente pertence a Alice. É neste mecanismo em particular que funciona a assinatura digital .
Criptografia: Alice escolheu um cofre. Ela o envia aberto para Bob e fica com a chave. Quando Bob quer escrever para Alice, ele deixa sua mensagem ali, fecha o cofre, não precisa da chave para isso, e a envia de volta para Alice. Após o recebimento, apenas Alice pode abrir o cofre, já que só ela está com a chave, assumindo o cofre, e ninguém pode refazer a chave.
Autenticação ou assinatura: Alice coloca uma mensagem no cofre que ela fecha com sua chave privada antes de enviá-la para Bob. Se Bob consegue, usando a chave pública de Alice (que ele possui), ler a carta, é porque é de Alice e, portanto, foi ela quem colocou a carta ali.
A caixa com duas fechadurasOutra analogia possível seria imaginar uma caixa com duas fechaduras diferentes. Quando a caixa é fechada de um lado, apenas a chave correspondente à outra fechadura permite a abertura da caixa e vice-versa. Uma das chaves é privada e mantida em segredo, a outra é dita pública e uma cópia pode ser obtida por quem quiser usar a caixa.
Para criptografar uma mensagem, Bob pega a caixa, coloca sua mensagem lá e a fecha com a chave pública. Apenas o titular da chave privada que dá acesso à outra fechadura, neste caso Alice, poderá reabrir a caixa.
Para assinar uma mensagem, Alice a coloca na caixa e a fecha usando sua chave privada. Assim, qualquer pessoa que recuperou a chave pública poderá abrir a caixa. Mas como a caixa foi fechada pela chave privada, esta pessoa terá a certeza de que é realmente Alice, a única detentora desta chave, que terá colocado a mensagem na caixa e fechou a referida caixa.
Em troca de suas propriedades específicas, as cifras assimétricas são geralmente menos eficientes do que seus equivalentes simétricos : os tempos de processamento são mais longos e, para um nível equivalente de segurança, as chaves devem ser muito mais longas.
Se a criptografia assimétrica possibilita a proteção contra escuta passiva , a transmissão inicial da chave pública em um canal não seguro fica exposta a ataques do intermediário . Para se proteger contra esse risco, geralmente é usada uma infraestrutura de chave pública .
A criptografia assimétrica atende a uma grande necessidade da criptografia simétrica : o compartilhamento seguro de uma chave entre dois correspondentes, a fim de evitar a interceptação desta chave por um terceiro não autorizado e, portanto, a leitura de dados criptografados sem autorização.
Como os mecanismos de criptografia simétricos são menos onerosos em tempo de computação , eles são preferidos aos mecanismos de criptografia assimétricos. Porém, qualquer uso de uma chave de criptografia simétrica requer que os dois correspondentes compartilhem essa chave, ou seja, que a conheçam antes da troca. Isso pode ser um problema se a comunicação dessa chave for realizada por meio de um meio não seguro, "às claras". Para superar esta desvantagem, um mecanismo de criptografia assimétrica é usado para a única fase de troca da chave simétrica, e a última é usada para o resto da troca.
Uma grande desvantagem de usar mecanismos de criptografia assimétricos é o fato de que a chave pública é distribuída a todas as pessoas: Bob , Carole e Alice que desejam trocar dados confidencialmente. Portanto, quando a pessoa com a chave privada, Alice , descriptografa os dados criptografados, ela não tem como verificar com certeza a origem desses dados ( Bob ou Carole ): falamos de problemas de autenticação .
Para solucionar esse problema, mecanismos de autenticação são utilizados para garantir a origem das informações criptografadas. Esses mecanismos também são baseados em criptografia assimétrica, cujo princípio é o seguinte: Bob deseja enviar dados criptografados para Alice, garantindo a ela que ele é o remetente.
Este método de autenticação usa a especificidade dos pares de chaves assimétricas: se criptografarmos uma mensagem usando a chave pública, podemos descriptografar a mensagem usando a chave privada; o inverso também é possível: se criptografarmos usando a chave privada, podemos descriptografar usando a chave pública.
A criptografia assimétrica também é usada com certificados digitais , que contêm a chave pública da entidade associada ao certificado. A chave privada é armazenada no nível da última entidade. Um aplicativo de certificado é, por exemplo, a implementação de uma infraestrutura de chave pública (PKI) para gerenciar a autenticação e assinatura digital de uma entidade, por exemplo um servidor web ( Apache com o módulo SSL por exemplo), ou simplesmente um cliente que deseja assinar e criptografar informações usando seu certificado, conforme descrito nas seções anteriores.
A criptografia simétrica usando uma chave de 128 bits fornece 2128 (~ 3,4 10 38 ) maneiras de criptografar uma mensagem. Um hacker tentando decifrar a mensagem por força bruta teria que testá-los um por um.
Para sistemas de chave pública, é diferente. Em primeiro lugar, as chaves são mais longas (por exemplo, 2048 bits no mínimo para RSA ); na verdade, eles têm uma estrutura matemática muito particular (não se pode escolher uma sequência de bits aleatórios como chave secreta, por exemplo, no caso do RSA, apenas números primos são usados). Alguns algoritmos que exploram essa estrutura são mais eficientes do que uma busca exaustiva em, por exemplo, 1024 bits. Assim, no caso do RSA, a peneira geral dos campos numéricos é um método mais eficiente do que a busca exaustiva de fatoração .
Observe o desenvolvimento atual da criptografia usando curvas elípticas , que permitem (ao custo de uma teoria e implementações mais complexas) o uso de chaves significativamente menores do que as dos algoritmos convencionais (um tamanho de 160 bits é considerado muito seguro no momento), para um nível equivalente de segurança.
Em sua edição de 6 de setembro de 2013, o jornal The Guardian afirmou que a NSA foi capaz de decifrar a maioria dos dados criptografados que circulam na Internet. No entanto, muitas fontes indicaram que a NSA não quebrou matematicamente as cifras, mas confiaria nas deficiências na implementação de protocolos de segurança.