Criptografia de Curva Elíptica: uma alternativa mais econômica do que o método RSA, sem abrir mão da segurança?
Em tempos em que os dispositivos conectados em rede estão cada vez mais presentes nas nossas vidas, fazer uso de uma tecnologia criptográfica eficiente, e que não demande um elevado grau de processamento, tem se tornado um elemento de inegável importância. Se formos considerar os dispositivos que integram a Internet das Coisas (IoT), que, tipicamente, possuem uma capacidade de processamento limitada, isso se torna ainda mais crucial, já que, para o bom funcionamento de todo o sistema, é preciso garantir não só a integridade dos dados, mas também a segurança quanto ao controle de acesso a esses dispositivos.
Para casos como esses, qual seria o método criptográfico mais apropriado? Ou seja, aquele que aliasse alto grau de segurança, sem exigir grandes investimentos em hardware, podendo ser embutidos em sistemas de todos os portes?
Por que não usar o RSA ou AES?
No artigo AES e RSA: Quais as Vantagens, Desvantagens e Usos Mais Apropriados?, vimos algumas características e aplicações desses dois métodos criptográficos considerados padrões da indústria. Contudo, eles não necessariamente representam a melhor solução para todos os casos.
Embora o RSA seja um dos métodos criptográficos de chave assíncrona mais popular da atualidade, um dos grandes riscos dos sistemas usados para cifrar informações é a possibilidade de ter a sua chave quebrada. Seja pelo uso de um dicionário de senhas, ou a aplicação de força bruta, em que todas as combinações possíveis de símbolos e caracteres são tentados até quebrar a chave, conseguir essa façanha depende muito da capacidade computacional disponível para fatorar números de grande magnitude em tempo hábil.
O avanço constante da capacidade computacional tem ameaçado essa segurança de tal forma que, desde 2015, a National Institute of Standards and Technology* recomenda que as chaves usando RSA tenham 2048 bits de comprimento.
Essa determinação, no entanto, traz algumas desvantagens.
Tamanho da chave VS poder de processamento
Na criptografia, quanto maior for o tamanho de uma chave, maior será o volume de dados trafegados. Da mesma forma, haverá uma maior exigência no poder de processamento necessário para realizar a codificação/decodificação da informação. Dois fatores impactantes quando estamos considerando a segurança de dados em dispositivos menos parrudos.
Proposto, em 1985, pelos pesquisadores Neal Koblitz e Victor S.Miller, a criptografia de curva elíptica (ou ECC, de Elliptic Curve Cryptography) pode ser considerada como uma alternativa capaz de contornar esses problemas. Isso ocorre porque, ao fazer uso dessa tecnologia, uma chave de apenas 224 bits teria o mesmo nível de segurança de uma de 2048 do RSA.
Para gerar as suas chaves, o método basicamente consiste em empregar uma curva elíptica, representada por uma função matemática como y2 = x3 + ax + b, e uma outra função, denominada trapdoor. Dessa forma, um ponto arbitrário da curva será multiplicado por um determinado número, traçando uma reta que poderá cruzar por um ou mais pontos dessa curva (como demonstrado na figura abaixo). Esse procedimento será repetido por N vezes, sendo que a grande vantagem dessa técnica é a enorme dificuldade de descobrir o número resultante, mesmo tendo conhecimento do número inicial. Isso acontece devido à complexidade de obter o logaritmo discreto de uma curva elíptica em relação a um ponto conhecido.
Dessa forma, mesmo seguindo o princípio das tecnologias de chaves assíncronas, em que a codificação deve ser uma tarefa simples, mas a decodificação sem a chave privada é uma tarefa praticamente impossível dependendo do tamanho dessa chave, fazer uso do método ECC traz inúmeras vantagens ao garantir que o mesmo grau de segurança do método RSA seja obtido, usando chaves com uma fração do seu tamanho─o que representa uma característica valiosa quando for considerada a sua aplicação em equipamentos cujos recursos são bem mais restritos.
Artigo escrito por Eduardo Stuart para um trabalho acadêmico da disciplina Segurança de Sistemas e Criptografia, ministrada para o curso de Sistemas de Informação da Universidade Veiga de Almeida. Originalmente publicado em 8 de março de 2021.