• Nenhum resultado encontrado

Criptografia assimétrica

2.2 Criptografia

2.2.2 Criptografia assimétrica

A criptografia assimétrica consiste em criptografar e descriptografar usando chaves diferentes – uma pública e uma privada. Ela também é conhecida como criptografia de chave pública. Ela transforma o texto claro em texto cifrado usando a chave pública e um algoritmo de criptografia. Usando a chave privada associada e um algoritmo de decriptografia, o texto claro é recuperado a partir do texto cifrado. (STALLINGS, 2008) Para que o sistema funcione, cada usuário deve gerar um par de chaves, uma pública e outra privada. O usuário que possuir uma chave pública poderá enviar mensagens cifradas, que serão decifradas somente pelo usuário que tiver a chave privada correspondente. A Figura 16representa esse esquema.

Figura 16 – Modelo de criptografia assimétrica adaptado de (STALLINGS,2008)

Figura 17 – Modelo de autenticação adaptado de (STALLINGS, 2008)

O usuário que gerar as chaves deve manter em segredo sua chave privada. Toda mensagem que for criptografada com essa chave terá a garantia que os usuários que usarem sua chave pública saberão que estão recebendo a mensagem do determinado remetente, essa operação também é conhecida como assinatura. A Figura 17 ilustra o mecanismo de assinatura.

Os dois algoritmos mais utilizados para os criptossistemas de chaves públicas

atualmente são o RSA e a aritmética de curvas elípticas. A segurança do algoritmo RSA está no problema de fatorar grandes números primos. Na aritmética de curvas elípticas, para poder quebrar o sistema, deve-se resolver o problema do logaritmo discreto elíptico.

Um dos atuais focos de estudo de empresas que elaboram algoritmos de segurança é a escolha do algoritmo criptográfico a empregar nos sistemas para dispositivos móveis, devido as suas limitações. As duas principais restrições dos smartphones atuais a serem consideradas para desenvolvimento de criptossistemas são:

1. Limitação de processamento: mesmo com o avanço dos processadores dos dispositivos, ainda a capacidade de processamento é inferior ao de um dispositivo não portátil;

2. Consumo de energia: como os smartphones contam com baterias finitas, o consumo de energia deve ser levado em consideração para construção de aplicativos.

Os aplicativos que necessitam de um alto processamento devem ser otimizados se o objetivo é usá-los em dispositivos móveis, pois eles afetam as duas restrições acima mencionadas ao mesmo tempo, uma vez que a criptografia é potencialmente custosa computacionalmente pois faz uso de operações matemáticas complexas. A agência nacional de segurança americana publicou em (NSA, 2009) uma avaliação dos algoritmos de criptografia recomendando o uso das curvas elípticas.

A empresa canadense Certicom, responsável por desenvolver soluções de segurança que protegem conteúdo de milhões de dispositivos no mundo, inclusive os da NSA, está conduzindo atualmente uma pesquisa sobre assinaturas e certificados digitais utilizando os algoritmos de curvas elípticas para registros de assinaturas digitais usando NFC. O estudo publicado em (ROSATI; ZAVERUCHA,2011) propõe o uso do algoritmo de curvas elípticas para criar assinaturas digitais utilizando etiquetas NFC. Para tal foram comparados os principais algoritmos de criptografia demonstrando que os mais indicados são os que utilizam a aritmética de curvas elípticas pois utilizam chaves menores se comparadas aos métodos como o RSA, diminuindo o uso de memória. A redução da necessidade de memória é outro fator significativo para a escolha do algoritmo de criptografia, pois as etiquetas NFC com menor capacidade de armazenamento são consideravelmente mais baratas e a economia de memória chega ser de até 90 %. Entretanto a pesquisa demonstrou que o desempenho computacional não é afetado pela escolha do algoritmo uma vez que os processadores encontrados nos smartphones atuais conseguem executar os procedimentos de assinatura e verificação em menos de 10ms usando chaves de 384 bits. Os custos das etiquetas também foram quantificados no estudo. As etiquetas mais econômicas com memória de até 2048 bytes tem um preço menor que um dólar. Essa quantidade de memória seria suficiente para armazenar o caminho do aplicativo móvel e também a chave criptográfica.

A empresa de semicondutores neerlandesa NXP criou um algoritmo de autenticação e cifragem para ser utilizado nas etiquetas NFC Mifare Classic. Entretanto esse algoritmo foi quebrado pelos pesquisadores da Universidade de Virginia e demonstrado em (NOHL et al., 2008).

A criptografia de curvas elípticas tem também a maior força por bit comparado aos outros criptossistemas de chaves públicas, ou seja, chaves menores conseguem prover a mesma segurança (CHOU, 2003). E por isso as ECC são a melhor escolha para os ambientes computacionalmente restritos como os smartphones. Além de contribuir para o menor gasto de bateria e processamento do dispositivo, também será necessária menor largura de banda para envio dos pacotes, quando empregado esse tipo de criptografia.

Mesmo com a melhora da rede de Internet móvel, essa economia reflete em menor custo para o usuário e também uma transferência mais rápida de pacotes.

As curvas elípticas foram propostas para uso em criptografia de forma independente por dois pesquisadores, em (MILLER, 1986) e (KOBLITZ, 1987). Através de operações matemáticas das propriedades das curvas elípticas é possível realizar assinaturas digitais, troca de chaves e encriptação.

O foco desse estudo é utilizar as curvas elípticas para geração e troca de chaves criptográficas usando o protocolo de Diffie-Hellman. A cifragem dos dados será feita usando algoritmos simétricos, pois são computacionalmente menos dispendiosos, porém com a combinação de chaves assimétricas. Esse protocolo visa usar a robustez de segurança das curvas elípticas associado a melhor performance dos algoritmos simétricos de criptografia.

Uma curva elíptica é um conjunto de pontos que satisfazem a seguinte Equação 2.1:

E =y2+x3+ax+bx (2.1)

onde a, bK, sendo K um corpo finito. A figura 18 ilustra alguns exemplos de curvas elípticas.

O próximo passo para entender as curvas elípticas é compreender as duas operações aritméticas usadas no protocolo de troca de chaves de Diffie-Hellman: adição e multiplicação

Figura 19 – Soma de pontos de curvas elípticas

por escalar. A adição de dois pontos numa curva elíptica resulta num terceiro ponto. Se traçarmos uma linha entre dois pontos, ela interceptará a curva no terceiro ponto que é o valor negativo da soma desses pontos. Então basta espelhar esse terceiro ponto para o outro lado da curva que resultará na soma dos pontos. A operação está graficamente demonstrada na Figura 19.

Algebricamente para chegar ao pontoRresultante da soma dos pontosP,Q,inicialmente é necessário achar a inclinaçãoda curva, através da Equação 2.2:

s=f racypyqxpxq (2.2) A partir do valor da inclinação é possível obter as coordenadas do ponto R usando as Equações 2.3 e2.4:

xr =s2−(xp+xq), (2.3)

yr =s(xpxr)−yp. (2.4)

Porém a adição de dois pontos verticais resulta no ponto no infinito O, conforme mostra a Figura 20.

A outra operação que permite o algoritmo de Diffie-Hellman é a multiplicação por escalar, representada pela Equação 2.5. A multiplicação de um ponto P por um escalar k resulta num ponto Q, que nada mais é que a soma de k vezes o ponto P, representada pela Equação 2.6.

Q=kP (2.5)

Figura 20 – Adição de pontos verticais

Q=P +P +P +...+P (2.6)

A segurança das curvas elípticas consiste na dificuldade em achar k dado o ponto Q na operação de multiplicação de um ponto P pelo escalar k, também conhecido como problema do logaritmo discreto sobre curvas elípticas. Essa função é dita de uma via, já que por meio das operações matemáticas básicas, como a divisão, não é possível chegar ao resultado de k.

A última peça faltante para o criptossistema é um ponto gerador baseG, que gera um subgrupo de pontos da curva elíptica. Multiplicando esse ponto gerador G por um escalar é possível acessar todos os pontos do subgrupo. A ordem de G é o tamanho do subgrupo. Uma curva elíptica robusta para uso em criptografia é quando o número total de pontos na curva é igual o número de pontos do subgrupo gerado por G. Esse valor é chamado de cofator e é obtido pela Equação 2.7. Portanto o valor ideal do cofator é 1.

Cof ator= numero de pontos da curva

Ordem de G (2.7)

Documentos relacionados